فهرست منبع

Merge remote-tracking branch 'origin/20221010' into 20221010

zouxuan 2 سال پیش
والد
کامیت
779261210c

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

@@ -78,6 +78,9 @@ public class MusicGroupSubjectGoodsGroup extends BaseEntity {
 	/** 打包价格 */
 	@ApiModelProperty(value = "打包价格",required = false)
 	private BigDecimal price = new BigDecimal(0);
+	
+	@ApiModelProperty(value = "分部分润金额",required = false)
+	private BigDecimal organShareProfit;
 
 	public List<String> getGoodsName() {
 		return goodsName;
@@ -228,4 +231,12 @@ public class MusicGroupSubjectGoodsGroup extends BaseEntity {
 	public void setChildGoodsList(List<Goods> childGoodsList) {
 		this.childGoodsList = childGoodsList;
 	}
+
+	public BigDecimal getOrganShareProfit() {
+		return organShareProfit;
+	}
+
+	public void setOrganShareProfit(BigDecimal organShareProfit) {
+		this.organShareProfit = organShareProfit;
+	}
 }

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

@@ -30,7 +30,8 @@ public enum OrderDetailTypeEnum implements BaseEnum<String, OrderDetailTypeEnum>
     CLOUD_TEACHER("CLOUD_TEACHER","云教练"),
     CLOUD_TEACHER_PLUS("CLOUD_TEACHER_PLUS","云教练"),
     THEORY_COURSE("THEORY_COURSE", "乐理课"),
-    REPAIR("REPAIR", "乐器维修");
+    REPAIR("REPAIR", "乐器维修"),
+    ORGAN_SHARE_PROFIT("ORGAN_SHARE_PROFIT", "分部分润");
 
     private String code;
 

+ 23 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -91,6 +91,7 @@ import com.ym.mec.biz.dal.dto.HighClassGroupDto;
 import com.ym.mec.biz.dal.dto.MusicCardDto;
 import com.ym.mec.biz.dal.dto.MusicGroupApplyGoodsDto;
 import com.ym.mec.biz.dal.dto.MusicGroupBasicDto;
+import com.ym.mec.biz.dal.dto.MusicGroupGoodsAndDiscountDto;
 import com.ym.mec.biz.dal.dto.MusicGroupQuitDto;
 import com.ym.mec.biz.dal.dto.RegisterPayDto;
 import com.ym.mec.biz.dal.dto.SporadicPayDto;
@@ -1158,6 +1159,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                     }
                 } else {
                     goodsDto.setOrderAmount(goodsDto.getOrderAmount().add(goodsGroup.getPrice()));
+
+                    //分部分润金额
+                    goodsDto.setOrderAmount(goodsDto.getOrderAmount().add(goodsGroup.getOrganShareProfit()));
                 }
             }
             goodsDto.setOrderAmount(goodsDto.getOrderAmount().subtract(goodsDto.getRemitFee()));
@@ -1423,7 +1427,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             musicGroupDao.update(musicGroup);
         }
         //记录日志信息
-        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "基础信息提交审核(编辑中 -> 审核中)", sysUser.getId(), JSONObject.toJSONString(subFeeSettingDto)));
+        //musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "基础信息提交审核(编辑中 -> 审核中)", sysUser.getId(), JSONObject.toJSONString(subFeeSettingDto)));
         //删除原有的乐团声部规划
         musicGroupSubjectPlanDao.delByMusicGroupId(musicGroupId);
         //删除原有的声部商品组合
@@ -1436,12 +1440,30 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             musicGroupSubjectPlanDao.batchAdd(musicGroupSubjectPlans, musicGroupId);
         }
         if (subFeeSettingDto.getMusicGroupSubjectGoodsGroups() != null && subFeeSettingDto.getMusicGroupSubjectGoodsGroups().size() > 0) {
+        	//获取分部最大分润金额
+        	Organization organ = organizationDao.get(musicGroup.getOrganId());
+        	if(organ == null){
+        		throw new BizException("分部信息查询失败");
+        	}
+        	BigDecimal maxProfits = organ.getMaxMusicalInstrumentsProfits();
+        	
             for (MusicGroupSubjectGoodsGroup musicGroupSubjectGoodsGroup : subFeeSettingDto.getMusicGroupSubjectGoodsGroups()) {
                 if (musicGroupSubjectGoodsGroup.getType().equals(GoodsType.INSTRUMENT) && (musicGroupSubjectGoodsGroup.getKitGroupPurchaseTypeJson() == null
                         || musicGroupSubjectGoodsGroup.getKitGroupPurchaseTypeJson().isEmpty()
                         || musicGroupSubjectGoodsGroup.getKitGroupPurchaseTypeJson().equals("{}"))) {
                     throw new BizException(musicGroupSubjectGoodsGroup.getName() + " 请选择提供方式");
                 }
+                
+                if(musicGroupSubjectGoodsGroup.getType().equals(GoodsType.INSTRUMENT)){
+                    if(musicGroupSubjectGoodsGroup.getOrganShareProfit() == null){
+                    	throw new BizException("请设置分润金额");
+                    }
+                    //判断分润是否超过最大值
+                    if(maxProfits.compareTo(musicGroupSubjectGoodsGroup.getOrganShareProfit()) < 0){
+                    	throw new BizException("超过了分润最大金额[{}],请重新设置分润金额", maxProfits.doubleValue());
+                    }
+                }
+                
                 if (musicGroupSubjectGoodsGroup.getGroupRemissionCourseFee() == null) {
                     musicGroupSubjectGoodsGroup.setGroupRemissionCourseFee(0);
                 }

+ 19 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -539,6 +539,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         List<MusicGroupPaymentCalenderCourseSettings> newCourses = goodsDto.getNewCourses();
         BigDecimal remitFee = goodsDto.getRemitFee();
         if (CollectionUtils.isNotEmpty(goodsGroups)) {
+        	
+        	BigDecimal organShareProfit = BigDecimal.ZERO;
+        	
             for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
                 StudentPaymentOrderDetail studentPaymentOrderDetail4goodsGroup = new StudentPaymentOrderDetail();
                 studentPaymentOrderDetail4goodsGroup.setRemitFee(BigDecimal.ZERO);
@@ -580,6 +583,22 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 if (OrderDetailTypeEnum.MUSICAL.equals(type)) {
                     maintenanceGoodsId = goodsGroup.getGoodsIdList();
                 }
+                
+                if(goodsGroup.getOrganShareProfit() != null){
+                	organShareProfit = organShareProfit.add(goodsGroup.getOrganShareProfit());
+                }
+            }
+            
+            //分部分润
+            if(organShareProfit.compareTo(BigDecimal.ZERO) > 0) {
+            	StudentPaymentOrderDetail spod = new StudentPaymentOrderDetail();
+                spod.setType(OrderDetailTypeEnum.ORGAN_SHARE_PROFIT);
+                spod.setPrice(organShareProfit);
+                spod.setRemitFee(BigDecimal.ZERO);
+                spod.setCreateTime(date);
+                spod.setUpdateTime(date);
+                spod.setPaymentOrderId(studentPaymentOrder.getId());
+                studentPaymentOrderDetailList.add(spod);
             }
         }
 

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

@@ -20,6 +20,7 @@
         <result column="group_remission_course_fee_" property="groupRemissionCourseFee"/>
         <result column="kit_group_purchase_type_json_" property="kitGroupPurchaseTypeJson"/>
         <result column="course_purchase_type_json_" property="coursePurchaseTypeJson"/>
+        <result column="organ_share_profit_" property="organShareProfit"/>
         <result column="tenant_id_" property="tenantId"/>
     </resultMap>
 
@@ -41,16 +42,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_,course_purchase_type_json_,tenant_id_)
-        VALUES(#{id},#{name},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{subjectId},#{goodsIdList},NOW(),NOW(),#{price},#{depositFee},#{remissionCourseFee},#{kitGroupPurchaseTypeJson},#{coursePurchaseTypeJson},#{tenantId})
+        (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_,organ_share_profit_,tenant_id_)
+        VALUES(#{id},#{name},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{subjectId},#{goodsIdList},NOW(),NOW(),#{price},#{depositFee},#{remissionCourseFee},#{kitGroupPurchaseTypeJson},#{coursePurchaseTypeJson},#{organShareProfit},#{tenantId})
     </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_,group_remission_course_fee_,kit_group_purchase_type_json_,course_purchase_type_json_,tenant_id_) VALUES
+        (name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_,deposit_fee_,remission_course_fee_,group_remission_course_fee_,kit_group_purchase_type_json_,course_purchase_type_json_,organ_share_profit_,tenant_id_) 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.groupRemissionCourseFee},#{item.kitGroupPurchaseTypeJson},#{item.coursePurchaseTypeJson},#{item.tenantId})
+            #{musicGroupId},#{item.subjectId},#{item.goodsIdList},now(),now(),#{item.price},#{item.depositFee},#{item.remissionCourseFee},#{item.groupRemissionCourseFee},#{item.kitGroupPurchaseTypeJson},#{item.coursePurchaseTypeJson},#{item.organShareProfit},#{item.tenantId})
         </foreach>
     </insert>
 
@@ -89,6 +90,9 @@
             <if test="name != null">
                 name_ = #{name},
             </if>
+            <if test="organShareProfit != null">
+                organ_share_profit_ = #{organShareProfit},
+            </if>
         </set>
         WHERE id_ = #{id} and tenant_id_ = #{tenantId}
     </update>