소스 검색

Merge remote-tracking branch 'origin/master' into Joburgess

Joburgess 4 년 전
부모
커밋
c0bab7a1ca
38개의 변경된 파일742개의 추가작업 그리고 165개의 파일을 삭제
  1. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/FinancialExpenditureDao.java
  2. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
  3. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDetailDao.java
  4. 26 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseFormDto.java
  5. 40 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/FinancialExpenditureDto.java
  6. 14 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/RegisterPayDto.java
  7. 77 41
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/EmployeeInfo.java
  8. 15 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupSubjectGoodsGroup.java
  9. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SporadicChargeInfo.java
  10. 12 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPaymentOrder.java
  11. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPaymentOrderDetail.java
  12. 6 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/OrderDetailTypeEnum.java
  13. 24 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/StaffStatusEnum.java
  14. 18 7
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/EmployeeInfoQueryInfo.java
  15. 95 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/FinancialExpenditureQueryInfo.java
  16. 17 0
      mec-biz/src/main/java/com/ym/mec/biz/service/FinancialExpenditureService.java
  17. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SporadicChargeInfoService.java
  18. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderDetailService.java
  19. 3 2
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java
  20. 34 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/FinancialExpenditureServiceImpl.java
  21. 58 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  22. 27 8
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SporadicChargeInfoImpl.java
  23. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderDetailServiceImpl.java
  24. 61 31
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  25. 1 1
      mec-biz/src/main/resources/config/mybatis/CooperationOrganMapper.xml
  26. 38 22
      mec-biz/src/main/resources/config/mybatis/EmployeeInfoMapper.xml
  27. 65 7
      mec-biz/src/main/resources/config/mybatis/FinancialExpenditureMapper.xml
  28. 2 2
      mec-biz/src/main/resources/config/mybatis/GoodsMapper.xml
  29. 5 4
      mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectGoodsGroupMapper.xml
  30. 1 1
      mec-biz/src/main/resources/config/mybatis/SchoolMapper.xml
  31. 6 2
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderDetailMapper.xml
  32. 6 2
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml
  33. 2 1
      mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  34. 1 17
      mec-student/src/main/java/com/ym/mec/student/controller/SporadicChargeInfoController.java
  35. 2 0
      mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java
  36. 16 0
      mec-web/src/main/java/com/ym/mec/web/controller/EmployeeInfoController.java
  37. 2 2
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java
  38. 7 6
      mec-web/src/main/java/com/ym/mec/web/controller/FinancialExpenditureController.java

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/FinancialExpenditureDao.java

@@ -1,12 +1,20 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.dto.FinancialExpenditureDto;
 import com.ym.mec.biz.dal.entity.FinancialExpenditure;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 public interface FinancialExpenditureDao extends BaseDAO<Long, FinancialExpenditure> {
 
     void batchInsert(@Param("financialExpenditures") List<FinancialExpenditure> financialExpenditures);
+
+    int findFinancialExpenditureCount(Map<String, Object> params);
+
+    List<FinancialExpenditureDto> queryFinancialExpenditurePage(Map<String, Object> params);
+
+    void batchDel(String ids);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java

@@ -281,5 +281,5 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @param organId:
      * @return java.util.List<com.ym.mec.biz.dal.dto.MusicCardDto>
      */
-    List<MusicCardDto> queryOrganMusicInfos(Integer organId);
+    List<MusicCardDto> queryOrganMusicInfos(@Param("organId") Integer organId);
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDetailDao.java

@@ -78,4 +78,11 @@ public interface StudentPaymentOrderDetailDao extends BaseDAO<Long, StudentPayme
      * @return
      */
     StudentPaymentOrderDetail findApplyOrderMusical(@Param("orderId") Long orderId);
+
+    /**
+     *
+     * @param orderId
+     * @return
+     */
+    List<String> getOrderDetailType(@Param("orderId") Long orderId);
 }

+ 26 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseFormDto.java

@@ -0,0 +1,26 @@
+package com.ym.mec.biz.dal.dto;
+
+import java.math.BigDecimal;
+
+public class CourseFormDto {
+
+    private String type;
+
+    private BigDecimal price;
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public BigDecimal getPrice() {
+        return price;
+    }
+
+    public void setPrice(BigDecimal price) {
+        this.price = price;
+    }
+}

+ 40 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/FinancialExpenditureDto.java

@@ -0,0 +1,40 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.FinancialExpenditure;
+import io.swagger.annotations.ApiModelProperty;
+
+public class FinancialExpenditureDto extends FinancialExpenditure {
+
+    @ApiModelProperty(value = "批次号",required = false)
+    private String organName;
+
+    @ApiModelProperty(value = "批次号",required = false)
+    private String cooperationName;
+
+    @ApiModelProperty(value = "批次号",required = false)
+    private String realName;
+
+    public String getOrganName() {
+        return organName;
+    }
+
+    public void setOrganName(String organName) {
+        this.organName = organName;
+    }
+
+    public String getCooperationName() {
+        return cooperationName;
+    }
+
+    public void setCooperationName(String cooperationName) {
+        this.cooperationName = cooperationName;
+    }
+
+    public String getRealName() {
+        return realName;
+    }
+
+    public void setRealName(String realName) {
+        this.realName = realName;
+    }
+}

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/RegisterPayDto.java

@@ -1,6 +1,9 @@
 package com.ym.mec.biz.dal.dto;
 
+import io.swagger.annotations.ApiModelProperty;
+
 import java.math.BigDecimal;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -23,6 +26,9 @@ public class RegisterPayDto {
     //是否余额支付
     private Boolean isUseBalancePayment = false;
 
+    @ApiModelProperty(value = "可选课程的key",required = false)
+    private List<String> courseKeys;
+
 
     public Integer getRegisterId() {
         return registerId;
@@ -79,4 +85,12 @@ public class RegisterPayDto {
     public void setGoodsGroups(Map<Long, String> goodsGroups) {
         this.goodsGroups = goodsGroups;
     }
+
+    public List<String> getCourseKeys() {
+        return courseKeys;
+    }
+
+    public void setCourseKeys(List<String> courseKeys) {
+        this.courseKeys = courseKeys;
+    }
 }

+ 77 - 41
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/EmployeeInfo.java

@@ -4,8 +4,8 @@ import io.swagger.annotations.ApiModelProperty;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
-import com.ym.mec.biz.dal.enums.JobNatureEnum;
 import com.ym.mec.biz.dal.enums.JobTypeEnum;
+import com.ym.mec.biz.dal.enums.StaffStatusEnum;
 
 /**
  * 对应数据库表(employee_info):
@@ -31,7 +31,7 @@ public class EmployeeInfo {
 	private Integer age;
 
 	@ApiModelProperty(value = "性别", required = false)
-	private boolean gender;
+	private Boolean gender;
 
 	@ApiModelProperty(value = "出生年月日", required = false)
 	private java.util.Date birthdate;
@@ -55,28 +55,32 @@ public class EmployeeInfo {
 	private String educationalBackground;
 
 	@ApiModelProperty(value = "声部", required = false)
-	private Integer subjectId;
+	private String subjectIdList;
+	
+	private String subjectName;
 
-	@ApiModelProperty(value = "是否评估", required = false)
-	private boolean isInterviewed;
+	@ApiModelProperty(value = "评估结果", required = false)
+	private String assessmentResult;
 
 	@ApiModelProperty(value = "其他综合情况", required = false)
 	private String otherComment;
 
 	@ApiModelProperty(value = "入职日期", required = false)
 	private java.util.Date entryDate;
-	
+
 	@ApiModelProperty(value = "分部", required = false)
 	private Integer organId;
+	
+	private String organName;
 
 	@ApiModelProperty(value = "职位", required = false)
 	private JobTypeEnum position;
 
-	@ApiModelProperty(value = "工作性质(全职/兼职)", required = false)
-	private JobNatureEnum jobNature;
+	@ApiModelProperty(value = "人员状态", required = false)
+	private StaffStatusEnum status;
 
 	@ApiModelProperty(value = "是否是试用期", required = false)
-	private boolean isProbationPeriod;
+	private Boolean isProbationPeriod;
 
 	@ApiModelProperty(value = "银行卡号", required = false)
 	private String bankCardNo;
@@ -87,6 +91,14 @@ public class EmployeeInfo {
 	@ApiModelProperty(value = "离职日期", required = false)
 	private java.util.Date resignationDate;
 
+	@ApiModelProperty(value = "操作人编号", required = false)
+	private Integer operatorId;
+	
+	private String operatorName;
+
+	@ApiModelProperty(value = "信息来源", required = false)
+	private String sourceFrom;
+
 	/**  */
 	private java.util.Date createTime;
 
@@ -141,11 +153,11 @@ public class EmployeeInfo {
 		return this.age;
 	}
 
-	public void setGender(boolean gender) {
+	public void setGender(Boolean gender) {
 		this.gender = gender;
 	}
 
-	public boolean isGender() {
+	public Boolean getGender() {
 		return this.gender;
 	}
 
@@ -205,20 +217,20 @@ public class EmployeeInfo {
 		return this.educationalBackground;
 	}
 
-	public void setSubjectId(Integer subjectId) {
-		this.subjectId = subjectId;
+	public String getSubjectIdList() {
+		return subjectIdList;
 	}
 
-	public Integer getSubjectId() {
-		return this.subjectId;
+	public void setSubjectIdList(String subjectIdList) {
+		this.subjectIdList = subjectIdList;
 	}
 
-	public void setIsInterviewed(boolean isInterviewed) {
-		this.isInterviewed = isInterviewed;
+	public String getAssessmentResult() {
+		return assessmentResult;
 	}
 
-	public boolean isIsInterviewed() {
-		return this.isInterviewed;
+	public void setAssessmentResult(String assessmentResult) {
+		this.assessmentResult = assessmentResult;
 	}
 
 	public void setOtherComment(String otherComment) {
@@ -237,14 +249,6 @@ public class EmployeeInfo {
 		return this.entryDate;
 	}
 
-	public boolean isInterviewed() {
-		return isInterviewed;
-	}
-
-	public void setInterviewed(boolean isInterviewed) {
-		this.isInterviewed = isInterviewed;
-	}
-
 	public Integer getOrganId() {
 		return organId;
 	}
@@ -253,14 +257,6 @@ public class EmployeeInfo {
 		this.organId = organId;
 	}
 
-	public boolean isProbationPeriod() {
-		return isProbationPeriod;
-	}
-
-	public void setProbationPeriod(boolean isProbationPeriod) {
-		this.isProbationPeriod = isProbationPeriod;
-	}
-
 	public void setPosition(JobTypeEnum position) {
 		this.position = position;
 	}
@@ -269,19 +265,19 @@ public class EmployeeInfo {
 		return this.position;
 	}
 
-	public void setJobNature(JobNatureEnum jobNature) {
-		this.jobNature = jobNature;
+	public StaffStatusEnum getStatus() {
+		return status;
 	}
 
-	public JobNatureEnum getJobNature() {
-		return this.jobNature;
+	public void setStatus(StaffStatusEnum status) {
+		this.status = status;
 	}
 
-	public void setIsProbationPeriod(boolean isProbationPeriod) {
+	public void setIsProbationPeriod(Boolean isProbationPeriod) {
 		this.isProbationPeriod = isProbationPeriod;
 	}
 
-	public boolean isIsProbationPeriod() {
+	public Boolean getIsProbationPeriod() {
 		return this.isProbationPeriod;
 	}
 
@@ -325,6 +321,46 @@ public class EmployeeInfo {
 		return this.updateTime;
 	}
 
+	public Integer getOperatorId() {
+		return operatorId;
+	}
+
+	public void setOperatorId(Integer operatorId) {
+		this.operatorId = operatorId;
+	}
+
+	public String getSourceFrom() {
+		return sourceFrom;
+	}
+
+	public void setSourceFrom(String sourceFrom) {
+		this.sourceFrom = sourceFrom;
+	}
+
+	public String getSubjectName() {
+		return subjectName;
+	}
+
+	public void setSubjectName(String subjectName) {
+		this.subjectName = subjectName;
+	}
+
+	public String getOrganName() {
+		return organName;
+	}
+
+	public void setOrganName(String organName) {
+		this.organName = organName;
+	}
+
+	public String getOperatorName() {
+		return operatorName;
+	}
+
+	public void setOperatorName(String operatorName) {
+		this.operatorName = operatorName;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 15 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupSubjectGoodsGroup.java

@@ -52,9 +52,14 @@ public class MusicGroupSubjectGoodsGroup {
 	//购买方式
 	private KitGroupPurchaseTypeEnum kitGroupPurchaseType;
 
-	//购买方式-减免金额 json
+	//购买方式-乐器减免金额 json
+	@ApiModelProperty(value = "购买方式-乐器减免金额 json",required = false)
 	private String kitGroupPurchaseTypeJson;
 
+	//购买方式-减免金额 json
+	@ApiModelProperty(value = "购买方式-课程减免金额 json",required = false)
+	private String coursePurchaseTypeJson;
+
 
 	/**  */
 	private java.util.Date createTime;
@@ -178,6 +183,14 @@ public class MusicGroupSubjectGoodsGroup {
 		this.kitGroupPurchaseType = kitGroupPurchaseType;
 	}
 
+	public String getCoursePurchaseTypeJson() {
+		return coursePurchaseTypeJson;
+	}
+
+	public void setCoursePurchaseTypeJson(String coursePurchaseTypeJson) {
+		this.coursePurchaseTypeJson = coursePurchaseTypeJson;
+	}
+
 
 	public String getKitGroupPurchaseTypeJson() {
 		return kitGroupPurchaseTypeJson;
@@ -191,4 +204,5 @@ public class MusicGroupSubjectGoodsGroup {
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);
 	}
+
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SporadicChargeInfo.java

@@ -60,6 +60,17 @@ public class SporadicChargeInfo {
 	@ApiModelProperty(value = "所属乐团", required = true)
 	private String musicGroupId;
 
+	@ApiModelProperty(value = "所属乐团名称", required = true)
+	private String musicGroupName;
+
+	public String getMusicGroupName() {
+		return musicGroupName;
+	}
+
+	public void setMusicGroupName(String musicGroupName) {
+		this.musicGroupName = musicGroupName;
+	}
+
 	public String getMusicGroupId() {
 		return musicGroupId;
 	}

+ 12 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPaymentOrder.java

@@ -111,9 +111,12 @@ public class StudentPaymentOrder {
 	
 	private SysUser user = new SysUser();
 
-	//优惠金额
+	//乐器优惠金额
 	private BigDecimal remitFee;
 
+	//课程优惠金额
+	private BigDecimal courseRemitFee;
+
 	public void setId(Long id){
 		this.id = id;
 	}
@@ -342,4 +345,12 @@ public class StudentPaymentOrder {
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);
 	}
+
+	public BigDecimal getCourseRemitFee() {
+		return courseRemitFee;
+	}
+
+	public void setCourseRemitFee(BigDecimal courseRemitFee) {
+		this.courseRemitFee = courseRemitFee;
+	}
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPaymentOrderDetail.java

@@ -45,6 +45,9 @@ public class StudentPaymentOrderDetail {
 	//商品成本价
 	private String goodsPrices;
 
+	//减免费用
+	private BigDecimal remitFee;
+
 	public void setId(Long id){
 		this.id = id;
 	}
@@ -121,4 +124,12 @@ public class StudentPaymentOrderDetail {
 	public void setGoodsPrices(String goodsPrices) {
 		this.goodsPrices = goodsPrices;
 	}
+
+	public BigDecimal getRemitFee() {
+		return remitFee;
+	}
+
+	public void setRemitFee(BigDecimal remitFee) {
+		this.remitFee = remitFee;
+	}
 }

+ 6 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/OrderDetailTypeEnum.java

@@ -10,7 +10,12 @@ public enum OrderDetailTypeEnum implements BaseEnum<String, OrderDetailTypeEnum>
 	ACCESSORIES("ACCESSORIES", "辅件"),
 	TEACHING("TEACHING", "教谱"),
 	OTHER("OTHER", "其他"),
-	COURSE("COURSE", "课程");
+	COURSE("COURSE", "课程"),
+	MUSIC_COURSE("MUSIC_COURSE", "乐团声部训练"),
+	MIX_COURSE("MIX_COURSE", "乐团合奏训练"),
+	HIGH_ONLINE_COURSE("HIGH_ONLINE_COURSE", "网络基础训练"),
+	HOLIDAY_COURSE("HOLIDAY_COURSE", "假期集中训练"),
+	NETWORK_COURSE("NETWORK_COURSE", "乐团云课堂");
 
 	private String code;
 

+ 24 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/StaffStatusEnum.java

@@ -0,0 +1,24 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+public enum StaffStatusEnum implements BaseEnum<String, StaffStatusEnum> {
+
+	NOT_EMPLOYED("未录用"), INTERVIEWING("面试中"), RESERVE("储备"), PART_TIME("兼职"), FULL_TIME("全职"), DIMISSION("离职");
+
+	private String desc;
+
+	StaffStatusEnum(String desc) {
+		this.desc = desc;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+
+	@Override
+	public String getCode() {
+		return this.name();
+	}
+
+}

+ 18 - 7
mec-biz/src/main/java/com/ym/mec/biz/dal/page/EmployeeInfoQueryInfo.java

@@ -2,14 +2,17 @@ package com.ym.mec.biz.dal.page;
 
 import io.swagger.annotations.ApiModelProperty;
 
-import com.ym.mec.biz.dal.enums.JobNatureEnum;
 import com.ym.mec.biz.dal.enums.JobTypeEnum;
+import com.ym.mec.biz.dal.enums.StaffStatusEnum;
 import com.ym.mec.common.page.QueryInfo;
 
 public class EmployeeInfoQueryInfo extends QueryInfo {
 
 	@ApiModelProperty(value = "姓名/编号/手机号", required = false)
 	private String userNameOrIdOrMobile;
+	
+	@ApiModelProperty(value = "信息来源", required = false)
+	private String sourceFrom;
 
 	@ApiModelProperty(value = "分部", required = false)
 	private Integer organId;
@@ -20,8 +23,8 @@ public class EmployeeInfoQueryInfo extends QueryInfo {
 	@ApiModelProperty(value = "职位", required = false)
 	private JobTypeEnum position;
 
-	@ApiModelProperty(value = "工作性质(全职/兼职)", required = false)
-	private JobNatureEnum jobNature;
+	@ApiModelProperty(value = "状态", required = false)
+	private StaffStatusEnum status;
 
 	public String getUserNameOrIdOrMobile() {
 		return userNameOrIdOrMobile;
@@ -55,11 +58,19 @@ public class EmployeeInfoQueryInfo extends QueryInfo {
 		this.position = position;
 	}
 
-	public JobNatureEnum getJobNature() {
-		return jobNature;
+	public StaffStatusEnum getStatus() {
+		return status;
 	}
 
-	public void setJobNature(JobNatureEnum jobNature) {
-		this.jobNature = jobNature;
+	public void setStatus(StaffStatusEnum status) {
+		this.status = status;
+	}
+
+	public String getSourceFrom() {
+		return sourceFrom;
+	}
+
+	public void setSourceFrom(String sourceFrom) {
+		this.sourceFrom = sourceFrom;
 	}
 }

+ 95 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/FinancialExpenditureQueryInfo.java

@@ -0,0 +1,95 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+public class FinancialExpenditureQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "批次号",required = false)
+    private String batchNo;
+    /**  */
+    @ApiModelProperty(value = "财务流程编号",required = false)
+    private String financialProcessNo;
+    /**  */
+    @ApiModelProperty(value = "钉钉流程编号",required = false)
+    private String dingtalkProcessNo;
+    /**  */
+    @ApiModelProperty(value = "分部",required = false)
+    private Integer organId;
+    /**  */
+    @ApiModelProperty(value = "学校/合作单位",required = false)
+    private Integer cooperationOrganId;
+    /**  */
+    @ApiModelProperty(value = "申请人编号",required = false)
+    private Integer applyUserId;
+    /**  */
+    @ApiModelProperty(value = "开始时间",required = false)
+    private String startTime;
+    /**  */
+    @ApiModelProperty(value = "结束时间",required = false)
+    private String endTime;
+
+    public String getBatchNo() {
+        return batchNo;
+    }
+
+    public void setBatchNo(String batchNo) {
+        this.batchNo = batchNo;
+    }
+
+    public String getFinancialProcessNo() {
+        return financialProcessNo;
+    }
+
+    public void setFinancialProcessNo(String financialProcessNo) {
+        this.financialProcessNo = financialProcessNo;
+    }
+
+    public String getDingtalkProcessNo() {
+        return dingtalkProcessNo;
+    }
+
+    public void setDingtalkProcessNo(String dingtalkProcessNo) {
+        this.dingtalkProcessNo = dingtalkProcessNo;
+    }
+
+    public Integer getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Integer organId) {
+        this.organId = organId;
+    }
+
+    public Integer getCooperationOrganId() {
+        return cooperationOrganId;
+    }
+
+    public void setCooperationOrganId(Integer cooperationOrganId) {
+        this.cooperationOrganId = cooperationOrganId;
+    }
+
+    public Integer getApplyUserId() {
+        return applyUserId;
+    }
+
+    public void setApplyUserId(Integer applyUserId) {
+        this.applyUserId = applyUserId;
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+}

+ 17 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/FinancialExpenditureService.java

@@ -1,6 +1,10 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.FinancialExpenditureDto;
 import com.ym.mec.biz.dal.entity.FinancialExpenditure;
+import com.ym.mec.biz.dal.page.FinancialExpenditureQueryInfo;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -18,4 +22,17 @@ public interface FinancialExpenditureService extends BaseService<Long, Financial
      * @return java.lang.Object
      */
     List<FinancialExpenditure> importFinancialExpenditure(MultipartFile file) throws Exception;
+
+    PageInfo<FinancialExpenditureDto> queryFinancialExpenditurePage(FinancialExpenditureQueryInfo queryInfo);
+
+    /**
+     * @describe 批量删除
+     * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
+     * @author zouxuan
+     * @date 2020/9/9
+     * @time 11:44
+     * @param ids:
+     * @return void
+     */
+    void batchDel(String ids);
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SporadicChargeInfoService.java

@@ -42,4 +42,15 @@ public interface SporadicChargeInfoService extends BaseService<Integer, Sporadic
      * @param id
      */
     void del(Integer id);
+
+    /**
+     * @describe 获取详情
+     * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
+     * @author zouxuan
+     * @date 2020/9/10
+     * @time 15:20
+     * @param id:
+     * @return com.ym.mec.biz.dal.entity.SporadicChargeInfo
+     */
+    SporadicChargeInfo findDetail(Integer id, Integer userId);
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderDetailService.java

@@ -70,4 +70,11 @@ public interface StudentPaymentOrderDetailService extends BaseService<Long, Stud
      * @return
      */
     StudentPaymentOrderDetail findApplyOrderMusical(Long orderId);
+
+    /**
+     * 获取订单类型的详情
+     * @param orderId
+     * @return
+     */
+    List<String> getOrderDetailType(Long orderId);
 }

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java

@@ -89,7 +89,8 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
 	 * @return
 	 */
 	StudentPaymentOrder addOrder(StudentRegistration studentRegistration, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee,
-			List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList) throws Exception;
+			List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList,List<CourseFormDto> courseForms,
+								 BigDecimal remitFee,BigDecimal courseRemitFee) throws Exception;
 
 	/**
 	 * 学生注册缴费重新下订单
@@ -103,7 +104,7 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
 	StudentPaymentOrder reAddOrder(
 			Integer userId, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee,
 			List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList,
-			String musicGroupId,StudentPaymentOrder oldOrder);
+			String musicGroupId,StudentPaymentOrder oldOrder,List<CourseFormDto> courseForms,BigDecimal remitFee,BigDecimal courseRemitFee);
 
 	/**
 	 * 查询用户指定乐团的报名信息

+ 34 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/FinancialExpenditureServiceImpl.java

@@ -3,12 +3,17 @@ package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.biz.dal.dao.FinancialExpenditureDao;
+import com.ym.mec.biz.dal.dto.FinancialExpenditureDto;
 import com.ym.mec.biz.dal.entity.FinancialExpenditure;
 import com.ym.mec.biz.dal.enums.TemplateTypeEnum;
+import com.ym.mec.biz.dal.page.FinancialExpenditureQueryInfo;
 import com.ym.mec.biz.service.FinancialExpenditureService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.excel.IniFileUtil;
 import com.ym.mec.util.excel.POIUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -23,6 +28,7 @@ import org.springframework.web.multipart.MultipartFile;
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -115,4 +121,32 @@ public class FinancialExpenditureServiceImpl extends BaseServiceImpl<Long, Finan
 		}
 		return financialExpenditures;
 	}
+
+	@Override
+	public PageInfo<FinancialExpenditureDto> queryFinancialExpenditurePage(FinancialExpenditureQueryInfo queryInfo){
+		PageInfo<FinancialExpenditureDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<FinancialExpenditureDto> dataList = null;
+		int count = financialExpenditureDao.findFinancialExpenditureCount(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = financialExpenditureDao.queryFinancialExpenditurePage(params);
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
+
+	@Override
+	public void batchDel(String ids) {
+		if(StringUtils.isEmpty(ids)){
+			throw new BizException("参数校验失败");
+		}
+		financialExpenditureDao.batchDel(ids);
+	}
 }

+ 58 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.TypeReference;
 import com.ym.mec.auth.api.client.SysUserFeignService;
@@ -409,6 +410,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         orderAmount = orderAmount.add(courseFee);
 
         BigDecimal remitFee = BigDecimal.ZERO;
+        BigDecimal courseRemitFee = BigDecimal.ZERO;
 
         //乐器及打包辅件
         List<MusicGroupSubjectGoodsGroup> goodsGroups = new ArrayList<>();
@@ -451,6 +453,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
                 Map<String, BigDecimal> groupType = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson(), new TypeReference<Map<String, BigDecimal>>() {
                 });
+                Map<String, BigDecimal> coursePurchase = JSONObject.parseObject(goodsGroup.getCoursePurchaseTypeJson(), new TypeReference<Map<String, BigDecimal>>() {
+                });
                 if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
                     String kitGroupPurchaseType = registerPayDto.getGoodsGroups().get(goodsGroup.getId());
                     if (!groupType.containsKey(kitGroupPurchaseType)) {
@@ -460,12 +464,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                         goodsGroup.setPrice(kitGroupPurchaseType.equals("FREE") ? new BigDecimal(0) : goodsGroup.getDepositFee());
                     }
                     goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.valueOf(kitGroupPurchaseType));
-                    remitFee = groupType.get(kitGroupPurchaseType);
+                    remitFee = groupType.get(kitGroupPurchaseType) == null ? BigDecimal.ZERO : groupType.get(kitGroupPurchaseType);
+                    courseRemitFee = coursePurchase.get(kitGroupPurchaseType) == null ? BigDecimal.ZERO : coursePurchase.get(kitGroupPurchaseType);
                 }
                 orderAmount = orderAmount.add(goodsGroup.getPrice());
                 goodsGroup.setGoodsList(goodsService.findGoodsByIds(goodsGroup.getGoodsIdList()));
             }
-            orderAmount = orderAmount.subtract(remitFee);
+            orderAmount = orderAmount.subtract(remitFee).subtract(courseRemitFee);
         }
 
         //单独辅件
@@ -485,6 +490,27 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 orderAmount = orderAmount.add(goods.getGroupPurchasePrice());
             }
         }
+        //可选课程
+        List<CourseFormDto> courseForms = new ArrayList<>();
+        if (registerPayDto.getCourseKeys() != null && registerPayDto.getCourseKeys().size() > 0) {
+            MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
+            if (musicGroup.getCourseForm() == null) {
+                throw new BizException("可选课程不存在");
+            }
+            JSONObject courseForm = JSON.parseObject(musicGroup.getCourseForm());
+            for (String courseKey : registerPayDto.getCourseKeys()) {
+                if (courseForm.get(courseKey) == null) {
+                    throw new BizException("可选课程不存在");
+                }
+                CourseFormDto courseFormDto = new CourseFormDto();
+                JSONObject jsonObject = JSON.parseObject(courseForm.getString(courseKey));
+                orderAmount = orderAmount.add(jsonObject.getBigDecimal("value"));
+                courseFormDto.setType(courseKey);
+                courseFormDto.setPrice(jsonObject.getBigDecimal("value"));
+                courseForms.add(courseFormDto);
+            }
+        }
+
         if (amount.compareTo(orderAmount) != 0) {
             throw new BizException("商品价格不符");
         }
@@ -496,7 +522,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         String channelType = "";
 
-        StudentPaymentOrder studentPaymentOrder = studentRegistrationService.addOrder(studentRegistration, amount, orderNo, channelType, courseFee, goodsGroups, goodsList, otherGoodsList);
+        StudentPaymentOrder studentPaymentOrder = studentRegistrationService.addOrder(studentRegistration, amount, orderNo, channelType, courseFee, goodsGroups, goodsList, otherGoodsList, courseForms,remitFee,courseRemitFee);
         studentPaymentOrder.setVersion(0);
 
         Date date = new Date();
@@ -518,6 +544,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
         studentPaymentOrder.setPaymentChannel("BALANCE");
         studentPaymentOrder.setRemitFee(remitFee);
+        studentPaymentOrder.setCourseRemitFee(courseRemitFee);
         studentPaymentOrder.setOrganId(musicGroup.getOrganId());
         studentPaymentOrder.setRoutingOrganId(musicGroup.getOrganId());
         studentPaymentOrder.setUpdateTime(date);
@@ -589,6 +616,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         orderAmount = orderAmount.add(courseFee);
 
         BigDecimal remitFee = BigDecimal.ZERO;
+        BigDecimal courseRemitFee = BigDecimal.ZERO;
 
         //乐器及打包辅件
         List<MusicGroupSubjectGoodsGroup> goodsGroups = new ArrayList<>();
@@ -631,6 +659,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
                 Map<String, BigDecimal> groupType = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson(), new TypeReference<Map<String, BigDecimal>>() {
                 });
+                Map<String, BigDecimal> coursePurchase = JSONObject.parseObject(goodsGroup.getCoursePurchaseTypeJson(), new TypeReference<Map<String, BigDecimal>>() {
+                });
                 if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
                     String kitGroupPurchaseType = registerPayDto.getGoodsGroups().get(goodsGroup.getId());
                     if (!groupType.containsKey(kitGroupPurchaseType)) {
@@ -641,11 +671,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                     }
                     goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.valueOf(kitGroupPurchaseType));
                     remitFee = groupType.get(kitGroupPurchaseType);
+                    courseRemitFee = coursePurchase.get(kitGroupPurchaseType) == null ? BigDecimal.ZERO : coursePurchase.get(kitGroupPurchaseType);
                 }
                 orderAmount = orderAmount.add(goodsGroup.getPrice());
                 goodsGroup.setGoodsList(goodsService.findGoodsByIds(goodsGroup.getGoodsIdList()));
             }
-            orderAmount = orderAmount.subtract(remitFee);
+            orderAmount = orderAmount.subtract(remitFee).subtract(courseRemitFee);
         }
 
         //单独辅件
@@ -665,6 +696,27 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 orderAmount = orderAmount.add(goods.getGroupPurchasePrice());
             }
         }
+        //可选课程
+        List<CourseFormDto> courseForms = new ArrayList<>();
+        if (registerPayDto.getCourseKeys() != null && registerPayDto.getCourseKeys().size() > 0) {
+            MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
+            if (musicGroup.getCourseForm() == null) {
+                throw new BizException("可选课程不存在");
+            }
+            JSONObject courseForm = JSON.parseObject(musicGroup.getCourseForm());
+            for (String courseKey : registerPayDto.getCourseKeys()) {
+                if (courseForm.get(courseKey) == null) {
+                    throw new BizException("可选课程不存在");
+                }
+                CourseFormDto courseFormDto = new CourseFormDto();
+                JSONObject jsonObject = JSON.parseObject(courseForm.getString(courseKey));
+                orderAmount = orderAmount.add(jsonObject.getBigDecimal("value"));
+                courseFormDto.setType(courseKey);
+                courseFormDto.setPrice(jsonObject.getBigDecimal("value"));
+                courseForms.add(courseFormDto);
+            }
+        }
+
         if (amount.compareTo(orderAmount) != 0) {
             throw new BizException("商品价格不符");
         }
@@ -677,7 +729,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         String channelType = "";
 
-        StudentPaymentOrder studentPaymentOrder = studentRegistrationService.reAddOrder(userId, amount, orderNo, channelType, courseFee, goodsGroups, goodsList, otherGoodsList, studentRegistration.getMusicGroupId(), ApplyOrder);
+        StudentPaymentOrder studentPaymentOrder = studentRegistrationService.reAddOrder(userId, amount, orderNo, channelType, courseFee, goodsGroups, goodsList, otherGoodsList, studentRegistration.getMusicGroupId(), ApplyOrder, courseForms,remitFee,courseRemitFee);
         studentPaymentOrder.setVersion(0);
         Date date = new Date();
 
@@ -699,6 +751,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
         studentPaymentOrder.setPaymentChannel("BALANCE");
         studentPaymentOrder.setRemitFee(remitFee);
+        studentPaymentOrder.setCourseRemitFee(courseRemitFee);
         studentPaymentOrder.setOrganId(musicGroup.getOrganId());
         studentPaymentOrder.setRoutingOrganId(musicGroup.getOrganId());
         studentPaymentOrder.setUpdateTime(date);

+ 27 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SporadicChargeInfoImpl.java

@@ -2,14 +2,8 @@ package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.OrganizationDao;
-import com.ym.mec.biz.dal.dao.SporadicChargeInfoDao;
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
-import com.ym.mec.biz.dal.dao.TeacherDao;
-import com.ym.mec.biz.dal.entity.SporadicChargeInfo;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
-import com.ym.mec.biz.dal.entity.SysUserCashAccount;
-import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
+import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
@@ -48,6 +42,8 @@ public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicCha
     @Autowired
     private TeacherDao teacherDao;
     @Autowired
+    private MusicGroupDao musicGroupDao;
+    @Autowired
     private SysUserCashAccountService sysUserCashAccountService;
     @Autowired
     private SysUserCashAccountDetailService sysUserCashAccountDetailService;
@@ -210,4 +206,27 @@ public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicCha
             throw new BizException("当前缴费项目存在收费记录,请走关闭流程");
         }
     }
+
+    @Override
+    public SporadicChargeInfo findDetail(Integer id, Integer userId) {
+        if (userId == null) {
+            SysUser sysUser = sysUserFeignService.queryUserInfo();
+            if (sysUser == null || sysUser.getId() == null) {
+                throw new BizException("用户不存在");
+            }
+            userId = sysUser.getId();
+        }
+        SporadicChargeInfo chargeInfo = sporadicChargeInfoDao.get(id);
+        MusicGroup musicGroup = musicGroupDao.get(chargeInfo.getMusicGroupId());
+        if(musicGroup != null){
+            chargeInfo.setMusicGroupName(musicGroup.getName());
+        }
+        if (chargeInfo != null) {
+            SysUserCashAccount locked = sysUserCashAccountService.getLocked(userId);
+            chargeInfo.setBalance(locked.getBalance());
+        } else {
+            throw new BizException("信息不存在");
+        }
+        return chargeInfo;
+    }
 }

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderDetailServiceImpl.java

@@ -211,4 +211,9 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
     public StudentPaymentOrderDetail findApplyOrderMusical(Long orderId) {
         return studentPaymentOrderDetailDao.findApplyOrderMusical(orderId);
     }
+
+    @Override
+    public List<String> getOrderDetailType(Long orderId) {
+        return studentPaymentOrderDetailDao.getOrderDetailType(orderId);
+    }
 }

+ 61 - 31
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -277,7 +277,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
     @Override
     @Transactional
-    public StudentPaymentOrder addOrder(StudentRegistration studentRegistration, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee, List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList) throws Exception {
+    public StudentPaymentOrder addOrder(StudentRegistration studentRegistration, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee, List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList, List<CourseFormDto> courseForms,BigDecimal remitFee,BigDecimal courseRemitFee) throws Exception {
         Date date = new Date();
         StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
         studentPaymentOrder.setUserId(studentRegistration.getUserId());
@@ -294,7 +294,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         ArrayList<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>();
         StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
         studentPaymentOrderDetail.setType(OrderDetailTypeEnum.COURSE);
-        studentPaymentOrderDetail.setPrice(courseFee);
+        studentPaymentOrderDetail.setPrice(courseFee.subtract(courseRemitFee));
+        studentPaymentOrderDetail.setRemitFee(courseRemitFee);
         studentPaymentOrderDetail.setCreateTime(date);
         studentPaymentOrderDetail.setUpdateTime(date);
         studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
@@ -302,25 +303,18 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         //乐器及打包辅件
         if (goodsGroups != null && goodsGroups.size() > 0) {
             for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
-                List<Map<String, Object>> goodsPrices = new ArrayList<>();
-                for (Goods goods : goodsGroup.getGoodsList()) {
-                    HashMap<String, Object> goodsPrice = new HashMap<>();
-                    goodsPrice.put("id", goods.getId());
-                    goodsPrice.put("discountPrice", goods.getDiscountPrice());
-                    goodsPrice.put("agreeCostPrice", goods.getAgreeCostPrice());
-                    goodsPrices.add(goodsPrice);
-                }
-
                 StudentPaymentOrderDetail studentPaymentOrderDetail4goodsGroup = new StudentPaymentOrderDetail();
+                studentPaymentOrderDetail4goodsGroup.setRemitFee(BigDecimal.ZERO);
                 OrderDetailTypeEnum type = null;
                 if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
                     type = OrderDetailTypeEnum.MUSICAL;
+                    goodsGroup.setPrice(goodsGroup.getPrice().subtract(remitFee));
+                    studentPaymentOrderDetail4goodsGroup.setRemitFee(remitFee);
                 } else if (goodsGroup.getType().equals(GoodsType.ACCESSORIES)) {
                     type = OrderDetailTypeEnum.ACCESSORIES;
                 } else if (goodsGroup.getType().equals(GoodsType.OTHER)) {
                     type = OrderDetailTypeEnum.TEACHING;
                 }
-                studentPaymentOrderDetail4goodsGroup.setGoodsPrices(JSON.toJSONString(goodsPrices));
                 studentPaymentOrderDetail4goodsGroup.setType(type);
                 studentPaymentOrderDetail4goodsGroup.setPrice(goodsGroup.getPrice());
                 studentPaymentOrderDetail4goodsGroup.setGoodsIdList(goodsGroup.getGoodsIdList());
@@ -334,17 +328,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
         //单独辅件
         if (goodsList != null && goodsList.size() > 0) {
-            List<Map<String, Object>> goodsPrices = new ArrayList<>();
             for (Goods goods : goodsList) {
-                HashMap<String, Object> goodsPrice = new HashMap<>();
-                goodsPrice.put("id", goods.getId());
-                goodsPrice.put("discountPrice", goods.getDiscountPrice());
-                goodsPrice.put("agreeCostPrice", goods.getAgreeCostPrice());
-                goodsPrices.add(goodsPrice);
-
                 StudentPaymentOrderDetail studentPaymentOrderDetail4goods = new StudentPaymentOrderDetail();
                 OrderDetailTypeEnum orderDetailType = goods.getType().equals(GoodsType.INSTRUMENT) ? OrderDetailTypeEnum.MUSICAL : OrderDetailTypeEnum.ACCESSORIES;
-                studentPaymentOrderDetail4goods.setGoodsPrices(JSON.toJSONString(goodsPrices));
                 studentPaymentOrderDetail4goods.setType(orderDetailType);
                 studentPaymentOrderDetail4goods.setPrice(goods.getGroupPurchasePrice());
                 studentPaymentOrderDetail4goods.setGoodsIdList(goods.getId().toString());
@@ -356,17 +342,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         }
         //单独教谱
         if (otherGoodsList != null && otherGoodsList.size() > 0) {
-            List<Map<String, Object>> goodsPrices = new ArrayList<>();
 
             for (Goods goods : otherGoodsList) {
-                HashMap<String, Object> goodsPrice = new HashMap<>();
-                goodsPrice.put("id", goods.getId());
-                goodsPrice.put("discountPrice", goods.getDiscountPrice());
-                goodsPrice.put("agreeCostPrice_", goods.getAgreeCostPrice());
-                goodsPrices.add(goodsPrice);
-
                 StudentPaymentOrderDetail studentPaymentOrderDetail4otherGoods = new StudentPaymentOrderDetail();
-                studentPaymentOrderDetail4otherGoods.setGoodsPrices(JSON.toJSONString(goodsPrices));
                 studentPaymentOrderDetail4otherGoods.setType(OrderDetailTypeEnum.TEACHING);
                 studentPaymentOrderDetail4otherGoods.setPrice(goods.getGroupPurchasePrice());
                 studentPaymentOrderDetail4otherGoods.setGoodsIdList(goods.getId().toString());
@@ -376,6 +354,30 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 studentPaymentOrderDetailList.add(studentPaymentOrderDetail4otherGoods);
             }
         }
+        //可选课程
+        if (courseForms != null && courseForms.size() > 0) {
+            for (CourseFormDto courseForm : courseForms) {
+                OrderDetailTypeEnum courType = OrderDetailTypeEnum.MUSIC_COURSE;
+                if (courseForm.getType().equals("soundInfo")) {
+                    courType = OrderDetailTypeEnum.MUSIC_COURSE;
+                } else if (courseForm.getType().equals("allInfo")) {
+                    courType = OrderDetailTypeEnum.MIX_COURSE;
+                } else if (courseForm.getType().equals("baseInfo")) {
+                    courType = OrderDetailTypeEnum.HIGH_ONLINE_COURSE;
+                } else if (courseForm.getType().equals("holidayInfo")) {
+                    courType = OrderDetailTypeEnum.HOLIDAY_COURSE;
+                } else if (courseForm.getType().equals("networkInfo")) {
+                    courType = OrderDetailTypeEnum.NETWORK_COURSE;
+                }
+                StudentPaymentOrderDetail studentPaymentOrderDetailCourse = new StudentPaymentOrderDetail();
+                studentPaymentOrderDetailCourse.setType(courType);
+                studentPaymentOrderDetailCourse.setPrice(courseForm.getPrice());
+                studentPaymentOrderDetailCourse.setCreateTime(date);
+                studentPaymentOrderDetailCourse.setUpdateTime(date);
+                studentPaymentOrderDetailCourse.setPaymentOrderId(studentPaymentOrder.getId());
+                studentPaymentOrderDetailList.add(studentPaymentOrderDetailCourse);
+            }
+        }
 
         studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);
 
@@ -407,7 +409,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
     @Override
     @Transactional
-    public StudentPaymentOrder reAddOrder(Integer userId, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee, List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList, String musicGroupId, StudentPaymentOrder oldOrder) {
+    public StudentPaymentOrder reAddOrder(Integer userId, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee, List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList, String musicGroupId, StudentPaymentOrder oldOrder, List<CourseFormDto> courseForms,BigDecimal remitFee,BigDecimal courseRemitFee) {
         //关闭老订单
         oldOrder.setStatus(DealStatusEnum.CLOSE);
         studentPaymentOrderService.update(oldOrder);
@@ -427,10 +429,11 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         studentPaymentOrder.setMusicGroupId(musicGroupId);
         studentPaymentOrderService.insert(studentPaymentOrder);
 
-        ArrayList<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>();
+        List<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>();
         StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
         studentPaymentOrderDetail.setType(OrderDetailTypeEnum.COURSE);
-        studentPaymentOrderDetail.setPrice(courseFee);
+        studentPaymentOrderDetail.setPrice(courseFee.subtract(courseRemitFee));
+        studentPaymentOrderDetail.setRemitFee(courseRemitFee);
         studentPaymentOrderDetail.setCreateTime(date);
         studentPaymentOrderDetail.setUpdateTime(date);
         studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
@@ -439,9 +442,12 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         if (goodsGroups != null && goodsGroups.size() > 0) {
             for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
                 StudentPaymentOrderDetail studentPaymentOrderDetail4goodsGroup = new StudentPaymentOrderDetail();
+                studentPaymentOrderDetail4goodsGroup.setRemitFee(BigDecimal.ZERO);
                 OrderDetailTypeEnum type = null;
                 if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
                     type = OrderDetailTypeEnum.MUSICAL;
+                    goodsGroup.setPrice(goodsGroup.getPrice().subtract(remitFee));
+                    studentPaymentOrderDetail4goodsGroup.setRemitFee(remitFee);
                 } else if (goodsGroup.getType().equals(GoodsType.ACCESSORIES)) {
                     type = OrderDetailTypeEnum.ACCESSORIES;
                 } else if (goodsGroup.getType().equals(GoodsType.OTHER)) {
@@ -486,6 +492,30 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 studentPaymentOrderDetailList.add(studentPaymentOrderDetail4otherGoods);
             }
         }
+        //可选课程
+        if (courseForms != null && courseForms.size() > 0) {
+            for (CourseFormDto courseForm : courseForms) {
+                OrderDetailTypeEnum courType = OrderDetailTypeEnum.MUSIC_COURSE;
+                if (courseForm.getType().equals("soundInfo")) {
+                    courType = OrderDetailTypeEnum.MUSIC_COURSE;
+                } else if (courseForm.getType().equals("allInfo")) {
+                    courType = OrderDetailTypeEnum.MIX_COURSE;
+                } else if (courseForm.getType().equals("baseInfo")) {
+                    courType = OrderDetailTypeEnum.HIGH_ONLINE_COURSE;
+                } else if (courseForm.getType().equals("holidayInfo")) {
+                    courType = OrderDetailTypeEnum.HOLIDAY_COURSE;
+                } else if (courseForm.getType().equals("networkInfo")) {
+                    courType = OrderDetailTypeEnum.NETWORK_COURSE;
+                }
+                StudentPaymentOrderDetail studentPaymentOrderDetailCourse = new StudentPaymentOrderDetail();
+                studentPaymentOrderDetailCourse.setType(courType);
+                studentPaymentOrderDetailCourse.setPrice(courseForm.getPrice());
+                studentPaymentOrderDetailCourse.setCreateTime(date);
+                studentPaymentOrderDetailCourse.setUpdateTime(date);
+                studentPaymentOrderDetailCourse.setPaymentOrderId(studentPaymentOrder.getId());
+                studentPaymentOrderDetailList.add(studentPaymentOrderDetailCourse);
+            }
+        }
 
         studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);
 

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/CooperationOrganMapper.xml

@@ -121,7 +121,7 @@
 	</select>
 
     <select id="queryByOrganId" resultMap="CooperationOrgan">
-        SELECT * FROM cooperation_organ WHERE FIND_IN_SET(organ_id_,#{organId}) AND del_flag_ != 1
+        SELECT * FROM cooperation_organ WHERE FIND_IN_SET(organ_id_,#{organId}) AND del_flag_ != 1 AND is_enable_ = 1
     </select>
 
     <select id="queryNameByIds" resultType="java.util.Map">

+ 38 - 22
mec-biz/src/main/resources/config/mybatis/EmployeeInfoMapper.xml

@@ -18,19 +18,24 @@
 		<result column="live_city_" property="liveCity" />
 		<result column="intention_city_" property="intentionCity" />
 		<result column="educational_background_" property="educationalBackground" />
-		<result column="subject_id_" property="subjectId" />
-		<result column="is_interviewed_" property="isInterviewed" />
+		<result column="subject_id_list_" property="subjectIdList" />
+		<result column="assessment_result_" property="assessmentResult" />
 		<result column="other_comment_" property="otherComment" />
 		<result column="entry_date_" property="entryDate" />
 		<result column="position_" property="position" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler" />
-		<result column="job_nature_" property="jobNature" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler" />
+		<result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler" />
 		<result column="is_probation_period_" property="isProbationPeriod" />
 		<result column="bank_card_no_" property="bankCardNo" />
 		<result column="bank_address_" property="bankAddress" />
 		<result column="resignation_date_" property="resignationDate" />
 		<result column="organ_id_" property="organId" />
+		<result column="operator_id_" property="operatorId" />
+		<result column="source_from_" property="sourceFrom" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
+		<result column="organName" property="organName" />
+		<result column="subjectName" property="subjectName" />
+		<result column="operatorName" property="operatorName" />
 	</resultMap>
 
 	<!-- 根据主键查询一条记录 -->
@@ -51,8 +56,8 @@
 		<!-- <selectKey resultClass="int" keyProperty="id" > SELECT SEQ_WSDEFINITION_ID.nextval 
 			AS ID FROM DUAL </selectKey> -->
 		INSERT INTO employee_info
-		(id_,real_name_,mobile_no_,wechat_no_,id_card_,age_,gender_,birthdate_,emergency_contact_name_,emergency_contact_relation_,emergency_contact_phone_,live_city_,intention_city_,educational_background_,subject_id_,is_interviewed_,other_comment_,entry_date_,organ_id_,position_,job_nature_,is_probation_period_,bank_card_no_,bank_address_,resignation_date_,create_time_,update_time_)
-		VALUES(#{id},#{realName},#{mobileNo},#{wechatNo},#{idCard},#{age},#{gender},#{birthdate},#{emergencyContactName},#{emergencyContactRelation},#{emergencyContactPhone},#{liveCity},#{intentionCity},#{educationalBackground},#{subjectId},#{isInterviewed},#{otherComment},#{entryDate},#{organId},#{position,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{jobNature,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{isProbationPeriod},#{bankCardNo},#{bankAddress},#{resignationDate},#{createTime},#{updateTime})
+		(id_,real_name_,mobile_no_,wechat_no_,id_card_,age_,gender_,birthdate_,emergency_contact_name_,emergency_contact_relation_,emergency_contact_phone_,live_city_,intention_city_,educational_background_,subject_id_list_,assessment_result_,other_comment_,entry_date_,organ_id_,position_,status_,is_probation_period_,bank_card_no_,bank_address_,resignation_date_,operator_id_,source_from_,create_time_,update_time_)
+		VALUES(#{id},#{realName},#{mobileNo},#{wechatNo},#{idCard},#{age},#{gender},#{birthdate},#{emergencyContactName},#{emergencyContactRelation},#{emergencyContactPhone},#{liveCity},#{intentionCity},#{educationalBackground},#{subjectIdList},#{assessmentResult},#{otherComment},#{entryDate},#{organId},#{position,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{isProbationPeriod},#{bankCardNo},#{bankAddress},#{resignationDate},#{operatorId},#{sourceFrom},#{createTime},#{updateTime})
 	</insert>
 
 	<!-- 根据主键查询一条记录 -->
@@ -62,8 +67,8 @@
 			<if test="isProbationPeriod != null">
 				is_probation_period_ = #{isProbationPeriod},
 			</if>
-			<if test="subjectId != null">
-				subject_id_ = #{subjectId},
+			<if test="subjectIdList != null">
+				subject_id_list_ = #{subjectIdList},
 			</if>
 			<if test="gender != null">
 				gender_ = #{gender},
@@ -74,8 +79,8 @@
 			<if test="otherComment != null">
 				other_comment_ = #{otherComment},
 			</if>
-			<if test="jobNature != null">
-				job_nature_ = #{jobNature,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+			<if test="status != null">
+				status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
 			</if>
 			<if test="educationalBackground != null">
 				educational_background_ = #{educationalBackground},
@@ -83,9 +88,7 @@
 			<if test="emergencyContactPhone != null">
 				emergency_contact_phone_ = #{emergencyContactPhone},
 			</if>
-			<if test="resignationDate != null">
 				resignation_date_ = #{resignationDate},
-			</if>
 			<if test="position != null">
 				position_ = #{position,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
 			</if>
@@ -122,8 +125,8 @@
 			<if test="wechatNo != null">
 				wechat_no_ = #{wechatNo},
 			</if>
-			<if test="isInterviewed != null">
-				is_interviewed_ = #{isInterviewed},
+			<if test="assessmentResult != null">
+				assessment_result_ = #{assessmentResult},
 			</if>
 			<if test="mobileNo != null">
 				mobile_no_ = #{mobileNo},
@@ -140,6 +143,12 @@
 			<if test="organId != null">
 				organ_id_ = #{organId},
 			</if>
+			<if test="operatorId != null">
+				operator_id_ = #{operatorId},
+			</if>
+			<if test="sourceFrom != null">
+				source_from_ = #{sourceFrom},
+			</if>
 		</set>
 		WHERE id_ = #{id}
 	</update>
@@ -152,34 +161,41 @@
 	<sql id="queryPageMap">
 		<where>
 			<if test="organId != null">
-            	AND organ_id_ = #{organId}
+            	AND ei.organ_id_ = #{organId}
 	        </if>
 	        <if test="userNameOrIdOrMobile != null">
-	            AND (real_name_ LIKE CONCAT('%',#{userNameOrIdOrMobile},'%') OR mobile_no_ LIKE CONCAT('%',#{userNameOrIdOrMobile},'%') OR id_ = #{userNameOrIdOrMobile})
+	            AND (ei.real_name_ LIKE CONCAT('%',#{userNameOrIdOrMobile},'%') OR ei.mobile_no_ LIKE CONCAT('%',#{userNameOrIdOrMobile},'%') OR ei.id_ = #{userNameOrIdOrMobile})
 	        </if>
 	        <if test="subjectId != null">
-	            AND subject_id_ = #{subjectId}
+	            AND find_in_set(#{subjectId},ei.subject_id_list_)
+	        </if>
+	        <if test="sourceFrom != null">
+	            AND ei.source_from_ = #{sourceFrom}
 	        </if>
 	        <if test="position != null">
-	            AND position_ = #{position,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+	            AND ei.position_ = #{position,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 	        </if>
-	        <if test="jobNature != null">
-	            AND job_nature_ = #{jobNature,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+	        <if test="status != null">
+	            AND ei.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 	        </if>
 		</where>
     </sql>
 
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="EmployeeInfo" parameterType="map">
-		SELECT * FROM employee_info 
+		SELECT o.name_ organName,group_concat(s.name_) subjectName,u.real_name_ operatorName,ei.* FROM employee_info ei
+		left join subject s on find_in_set(s.id_,ei.subject_id_list_)
+		left join organization o on o.id_ = ei.organ_id_
+		left join sys_user u on u.id_ = ei.operator_id_
         <include refid="queryPageMap"/>
-		ORDER BY id_
+        GROUP BY ei.id_
+		ORDER BY ei.update_time_
 		<include refid="global.limit" />
 	</select>
 
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM employee_info
+		SELECT COUNT(ei.id_) FROM employee_info ei
         <include refid="queryPageMap"/>
 	</select>
 </mapper>

+ 65 - 7
mec-biz/src/main/resources/config/mybatis/FinancialExpenditureMapper.xml

@@ -53,7 +53,7 @@
 
     <!-- 根据主键查询一条记录 -->
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.FinancialExpenditure">
-        UPDATE charge_type
+        UPDATE financial_expenditure
         <set>
             <if test="delFlag != null">
                 del_flag_ = #{delFlag},
@@ -94,19 +94,77 @@
     </update>
 
     <!-- 根据主键删除一条记录 -->
-    <delete id="delete">
-		UPDATE charge_type SET del_flag_ = 1 WHERE id_ = #{id}
-	</delete>
+    <update id="delete">
+		UPDATE financial_expenditure SET del_flag_ = 1 WHERE id_ = #{id}
+	</update>
+    <update id="batchDel">
+        UPDATE financial_expenditure SET del_flag_ = 1 WHERE FIND_IN_SET(id_,#{ids})
+    </update>
+
+    <sql id="queryPageSql">
+        <where>
+            fe.del_flag_ = 0
+            <if test="batchNo != null and batchNo != ''">
+                AND fe.batch_no_ = #{batchNo}
+            </if>
+            <if test="financialProcessNo != null and financialProcessNo != ''">
+                AND fe.financial_process_no_ = #{financialProcessNo}
+            </if>
+            <if test="dingtalkProcessNo != null and dingtalkProcessNo != ''">
+                AND fe.dingtalk_process_no_ = #{dingtalkProcessNo}
+            </if>
+            <if test="organId != null">
+                AND fe.organ_id_ = #{organId}
+            </if>
+            <if test="cooperationOrganId != null">
+                AND fe.cooperation_organ_id_ = #{cooperationOrganId}
+            </if>
+            <if test="applyUserId != null">
+                AND fe.apply_user_id_ = #{applyUserId}
+            </if>
+            <if test="startTime != null and startTime != ''">
+                AND DATE_FORMAT(fe.payment_time_,'%Y%m%d') &gt;= #{startTime}
+            </if>
+            <if test="endTime != null and endTime != ''">
+                AND DATE_FORMAT(fe.payment_time_,'%Y%m%d') &lt;= #{endTime}
+            </if>
+        </where>
+    </sql>
 
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="FinancialExpenditure" parameterType="map">
-        SELECT * FROM financial_expenditure
-        WHERE del_flag_ = 0
+        SELECT fe.*,o.name_ organ_name_,co.name_ cooperation_name_,su.real_name_
+        FROM financial_expenditure fe
+        LEFT JOIN organization o ON o.id_ = fe.organ_id_
+        LEFT JOIN sys_user su ON su.id_ = fe.apply_user_id_
+        LEFT JOIN cooperation_organ co ON co.id_ = fe.cooperation_organ_id_
+        <include refid="queryPageSql"/>
         <include refid="global.limit"/>
     </select>
 
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM financial_expenditure WHERE del_flag_ = 0
+		SELECT COUNT(DISTINCT fe.id_) FROM financial_expenditure fe
+        <include refid="queryPageSql"/>
 	</select>
+
+    <resultMap type="com.ym.mec.biz.dal.dto.FinancialExpenditureDto" id="FinancialExpenditureDto" extends="FinancialExpenditure">
+        <result column="organ_name_" property="organName"/>
+        <result column="cooperation_name_" property="cooperationName"/>
+        <result column="real_name_" property="realName"/>
+    </resultMap>
+
+    <select id="findFinancialExpenditureCount" resultType="java.lang.Integer">
+        SELECT COUNT(DISTINCT fe.id_) FROM financial_expenditure fe
+        <include refid="queryPageSql"/>
+    </select>
+    <select id="queryFinancialExpenditurePage" resultMap="FinancialExpenditureDto">
+        SELECT fe.*,o.name_ organ_name_,co.name_ cooperation_name_,su.real_name_
+        FROM financial_expenditure fe
+        LEFT JOIN organization o ON o.id_ = fe.organ_id_
+        LEFT JOIN sys_user su ON su.id_ = fe.apply_user_id_
+        LEFT JOIN cooperation_organ co ON co.id_ = fe.cooperation_organ_id_
+        <include refid="queryPageSql"/>
+        <include refid="global.limit"/>
+    </select>
 </mapper>

+ 2 - 2
mec-biz/src/main/resources/config/mybatis/GoodsMapper.xml

@@ -59,12 +59,12 @@
     <insert id="batchInsert">
         INSERT INTO goods
         (goods_category_id_,name_,brand_,specification_,image_,market_price_,
-        discount_price_,group_purchase_price_,desc_,update_time_,create_time_,type_,agree_cost_price_)
+        discount_price_,group_purchase_price_,desc_,update_time_,create_time_,type_,agree_cost_price_,sn_)
         VALUES
         <foreach collection="goodsList" separator="," item="goods">
             (#{goods.goodsCategoryId},#{goods.name},#{goods.brand},#{goods.specification},#{goods.image},#{goods.marketPrice},
             #{goods.discountPrice},#{goods.groupPurchasePrice},#{goods.desc},now(),now(),
-            #{goods.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{goods.agreeCostPrice})
+            #{goods.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{goods.agreeCostPrice},#{goods.sn})
         </foreach>
     </insert>
     <!-- 根据主键查询一条记录 -->

+ 5 - 4
mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectGoodsGroupMapper.xml

@@ -18,6 +18,7 @@
         <result column="deposit_fee_" property="depositFee"/>
         <result column="remission_course_fee_" property="remissionCourseFee"/>
         <result column="kit_group_purchase_type_json_" property="kitGroupPurchaseTypeJson"/>
+        <result column="course_purchase_type_json_" property="coursePurchaseTypeJson"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -38,16 +39,16 @@
             parameterType="com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup"
             useGeneratedKeys="true" keyColumn="id" keyProperty="id">
         INSERT INTO music_group_subject_goods_group
-        (id_,name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_,deposit_fee_,remission_course_fee_,kit_group_purchase_type_json_)
-        VALUES(#{id},#{name},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{subjectId},#{goodsIdList},NOW(),NOW(),#{price},#{depositFee},#{remissionCourseFee},#{kitGroupPurchaseTypeJson})
+        (id_,name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_,deposit_fee_,remission_course_fee_,kit_group_purchase_type_json_,course_purchase_type_json_)
+        VALUES(#{id},#{name},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{subjectId},#{goodsIdList},NOW(),NOW(),#{price},#{depositFee},#{remissionCourseFee},#{kitGroupPurchaseTypeJson},#{coursePurchaseTypeJson})
     </insert>
 
     <insert id="batchInsert" parameterType="java.util.List">
         INSERT INTO music_group_subject_goods_group
-        (name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_,deposit_fee_,remission_course_fee_,kit_group_purchase_type_json_) VALUES
+        (name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_,deposit_fee_,remission_course_fee_,kit_group_purchase_type_json_,course_purchase_type_json_) VALUES
         <foreach collection="lists" item="item" index="index" separator=",">
             (#{item.name},#{item.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-            #{musicGroupId},#{item.subjectId},#{item.goodsIdList},now(),now(),#{item.price},#{item.depositFee},#{item.remissionCourseFee},#{item.kitGroupPurchaseTypeJson})
+            #{musicGroupId},#{item.subjectId},#{item.goodsIdList},now(),now(),#{item.price},#{item.depositFee},#{item.remissionCourseFee},#{item.kitGroupPurchaseTypeJson},#{item.coursePurchaseTypeJson})
         </foreach>
     </insert>
 

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/SchoolMapper.xml

@@ -122,7 +122,7 @@
     <select id="queryByOrganId" resultMap="School">
         SELECT * FROM school
         <where>
-            del_flag_ != 1 and user_id_ is null
+            del_flag_ = 0 and user_id_ is null
             <if test="organId != null">
                 AND FIND_IN_SET(organ_id_,#{organId})
             </if>

+ 6 - 2
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderDetailMapper.xml

@@ -88,11 +88,11 @@
 
     <insert id="batchAdd" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
         INSERT INTO student_payment_order_detail
-        (id_,type_,goods_id_list_,price_,create_time_,update_time_,payment_order_id_,kit_group_purchase_type_)
+        (id_,type_,goods_id_list_,price_,remit_fee_,create_time_,update_time_,payment_order_id_,kit_group_purchase_type_)
         VALUES
         <foreach collection="studentPaymentOrderDetailList" item="orderDetail" separator=",">
             (#{orderDetail.id},#{orderDetail.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-            #{orderDetail.goodsIdList},#{orderDetail.price},now(),now(),#{orderDetail.paymentOrderId},
+            #{orderDetail.goodsIdList},#{orderDetail.price},#{orderDetail.remitFee},now(),now(),#{orderDetail.paymentOrderId},
             #{orderDetail.kitGroupPurchaseType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
         </foreach>
     </insert>
@@ -163,4 +163,8 @@
     <select id="findApplyOrderMusical" resultMap="StudentPaymentOrderDetail">
         SELECT * FROM student_payment_order_detail WHERE payment_order_id_ = #{orderId} AND type_ = 'MUSICAL' LIMIT 1
     </select>
+
+    <select id="getOrderDetailType" resultType="java.lang.String">
+        SELECT DISTINCT type_ FROM student_payment_order_detail WHERE payment_order_id_ = #{orderId}
+    </select>
 </mapper>

+ 6 - 2
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -18,6 +18,7 @@
         <result column="per_amount_" property="perAmount"/>
         <result column="balance_payment_amount_" property="balancePaymentAmount"/>
         <result column="remit_fee_" property="remitFee"/>
+        <result column="course_remit_fee_" property="courseRemitFee"/>
         <result column="trans_no_" property="transNo"/>
         <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="memo_" property="memo"/>
@@ -85,14 +86,14 @@
         INSERT INTO student_payment_order
         (id_, group_type_, user_id_, organ_id_, routing_organ_id_, type_, expect_amount_, actual_amount_, com_amount_,
          per_amount_,
-         balance_payment_amount_, remit_fee_, trans_no_,
+         balance_payment_amount_, remit_fee_,course_remit_fee_, trans_no_,
          status_, memo_, create_time_, update_time_, payment_channel_, payment_business_channel_,
          payment_account_no_, mer_nos_, order_no_, music_group_id_, class_group_id_, pay_time_)
         VALUES (#{id}, #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
                 #{userId}, #{organId}, #{routingOrganId},
                 #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
                 #{expectAmount}, #{actualAmount}, #{comAmount}, #{perAmount}, #{balancePaymentAmount},
-                #{remitFee}, #{transNo},
+                #{remitFee},#{courseRemitFee}, #{transNo},
                 #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{memo}, now(), now(),
                 #{paymentChannel}, #{paymentBusinessChannel}, #{paymentAccountNo}, #{merNos}, #{orderNo},
                 #{musicGroupId},
@@ -157,6 +158,9 @@
             <if test="remitFee != null">
                 remit_fee_ = #{remitFee},
             </if>
+            <if test="courseRemitFee != null">
+                course_remit_fee_ = #{courseRemitFee},
+            </if>
             <if test="type != null">
                 type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>

+ 2 - 1
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -302,9 +302,10 @@
 		FROM student_payment_order spo
         LEFT JOIN student_payment_order_detail spod ON spod.payment_order_id_ = spo.id_
         LEFT JOIN goods g ON FIND_IN_SET(g.id_,spod.goods_id_list_)
-        WHERE spo.type_ = 'APPLY' AND spo.group_type_ = 'MUSIC' AND spo.user_id_ = #{studentId} AND spo.music_group_id_ = #{musicGroupId}
+        WHERE spo.type_ = 'APPLY' AND spo.group_type_ = 'MUSIC' AND spo.user_id_ = #{studentId} AND spo.music_group_id_ = #{musicGroupId} AND spo.status_='SUCCESS'
         GROUP BY spo.id_,spod.type_
         ORDER BY spo.id_ DESC
+        LIMIT 1
     </select>
 
     <!-- 根据乐团和声部获取未分班的学生 -->

+ 1 - 17
mec-student/src/main/java/com/ym/mec/student/controller/SporadicChargeInfoController.java

@@ -33,8 +33,6 @@ public class SporadicChargeInfoController extends BaseController {
     @Autowired
     private SysUserFeignService sysUserFeignService;
     @Autowired
-    private SysUserCashAccountDao sysUserCashAccountDao;
-    @Autowired
     private StudentPaymentOrderService studentPaymentOrderService;
     @Autowired
     private MusicGroupService musicGroupService;
@@ -42,21 +40,7 @@ public class SporadicChargeInfoController extends BaseController {
     @ApiOperation(value = "单查询")
     @GetMapping("/get")
     public Object get(Integer id, Integer userId) {
-        if (userId == null) {
-            SysUser sysUser = sysUserFeignService.queryUserInfo();
-            if (sysUser == null || sysUser.getId() == null) {
-                return failed("用户不存在");
-            }
-            userId = sysUser.getId();
-        }
-        SporadicChargeInfo chargeInfo = sporadicChargeInfoService.get(id);
-        if (chargeInfo != null) {
-            SysUserCashAccount locked = sysUserCashAccountDao.getLocked(userId);
-            chargeInfo.setBalance(locked.getBalance());
-        } else {
-            throw new BizException("信息不存在");
-        }
-        return succeed(chargeInfo);
+        return succeed(sporadicChargeInfoService.findDetail(id,userId));
     }
 
 

+ 2 - 0
mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java

@@ -129,9 +129,11 @@ public class StudentOrderController extends BaseController {
         if (orderByOrderNo.getGroupType().equals(GroupType.MUSIC)) {
             MusicGroup musicGroup = musicGroupService.get(orderByOrderNo.getMusicGroupId());
             List<Goods> goodsList = studentPaymentOrderDetailService.findApplyOrderGoods(orderByOrderNo.getId());
+            List<String> orderDetailType = studentPaymentOrderDetailService.getOrderDetailType(orderByOrderNo.getId());
             orderDetail.put("goods", goodsList);
             orderDetail.put("course", musicGroup.getCourseForm());
             orderDetail.put("ownershipType", musicGroup.getOwnershipType());
+            orderDetail.put("detailType",orderDetailType);
         } else if (orderByOrderNo.getGroupType().equals(GroupType.VIP)) {
             VipBuyResultDto vipBuyResultInfo = vipGroupService.findVipBuyResultInfo(Integer.valueOf(orderByOrderNo.getMusicGroupId()));
             orderDetail.put("detail", vipBuyResultInfo);

+ 16 - 0
mec-web/src/main/java/com/ym/mec/web/controller/EmployeeInfoController.java

@@ -13,6 +13,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.EmployeeInfo;
 import com.ym.mec.biz.dal.page.EmployeeInfoQueryInfo;
 import com.ym.mec.biz.service.EmployeeInfoService;
@@ -25,11 +27,20 @@ public class EmployeeInfoController extends BaseController {
 
     @Autowired
     private EmployeeInfoService employeeInfoService;
+    
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
+
 
     @ApiOperation(value = "新增员工信息")
     @PostMapping("/insert")
     @PreAuthorize("@pcs.hasPermissions('employeeInfo/insert')")
     public Object insert(@RequestBody EmployeeInfo employeeInfo) {
+    	SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed("用户信息获取失败");
+		}
+		employeeInfo.setOperatorId(sysUser.getId());
     	Date date = new Date();
     	employeeInfo.setUpdateTime(date);
     	employeeInfo.setCreateTime(date);
@@ -41,6 +52,11 @@ public class EmployeeInfoController extends BaseController {
     @PostMapping("/update")
     @PreAuthorize("@pcs.hasPermissions('employeeInfo/update')")
     public Object update(@RequestBody EmployeeInfo employeeInfo) {
+    	SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed("用户信息获取失败");
+		}
+		employeeInfo.setOperatorId(sysUser.getId());
     	Date date = new Date();
     	employeeInfo.setUpdateTime(date);
     	employeeInfoService.update(employeeInfo);

+ 2 - 2
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -950,9 +950,9 @@ public class ExportController extends BaseController {
 
         try {
             String[] header = {"序号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "应付金额", "现金支付", "余额支付", "到账时间",
-                    "关联乐团ID/VIP课ID", "课程形态", "课程费用", "减免费用", "押金", "乐器", "教辅费用", "零星收款费用", "零星收款类别", "手续费", "专业", "分部", "单位/学校", "合作机构", "备注"};
+                    "关联乐团ID/VIP课ID", "课程形态", "课程费用", "乐器减免费用","课程减免费用", "押金", "乐器", "教辅费用", "零星收款费用", "零星收款类别", "手续费", "专业", "分部", "单位/学校", "合作机构", "备注"};
             String[] body = {"id", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "expectAmount", "actualAmount", "balancePaymentAmount", "payTime", "musicGroupId",
-                    "groupType.desc", "courseFee", "remitFee", "leaseFee", "musicalFee", "teachingFee", "sporadicAmount", "sporadicType", "transferFee", "subjectName", "organName", "schoolName", "cooperationOrganName", "memo"};
+                    "groupType.desc", "courseFee", "remitFee","courseRemitFee", "leaseFee", "musicalFee", "teachingFee", "sporadicAmount", "sporadicType", "transferFee", "subjectName", "organName", "schoolName", "cooperationOrganName", "memo"};
             HSSFWorkbook workbook = POIUtil.exportExcel(header, body, studentPaymentOrderExportDtos);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");

+ 7 - 6
mec-web/src/main/java/com/ym/mec/web/controller/FinancialExpenditureController.java

@@ -1,6 +1,7 @@
 package com.ym.mec.web.controller;
 
 import com.ym.mec.biz.dal.entity.FinancialExpenditure;
+import com.ym.mec.biz.dal.page.FinancialExpenditureQueryInfo;
 import com.ym.mec.biz.service.FinancialExpenditureService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.page.QueryInfo;
@@ -28,18 +29,18 @@ public class FinancialExpenditureController extends BaseController {
     }
 
     @ApiOperation(value = "删除财务支出")
-    @PostMapping("/del/{id}")
-    @PreAuthorize("@pcs.hasPermissions('financialExpenditure/del')")
-    public Object del(@ApiParam(value = "财务支出编号", required = true) @PathVariable("id") Long id) {
-        financialExpenditureService.delete(id);
+    @PostMapping("/batchDel")
+    @PreAuthorize("@pcs.hasPermissions('financialExpenditure/batchDel')")
+    public Object batchDel(String ids) {
+        financialExpenditureService.batchDel(ids);
         return succeed();
     }
 
     @ApiOperation(value = "分页查询财务支出列表")
     @GetMapping("/queryPage")
     @PreAuthorize("@pcs.hasPermissions('financialExpenditure/queryPage')")
-    public Object queryPage(QueryInfo queryInfo) {
-        return succeed(financialExpenditureService.queryPage(queryInfo));
+    public Object queryPage(FinancialExpenditureQueryInfo queryInfo) {
+        return succeed(financialExpenditureService.queryFinancialExpenditurePage(queryInfo));
     }
 
 }