fubin 2 лет назад
Родитель
Сommit
0b827ee509

+ 9 - 1
src/main/java/com/dk/mdm/mapper/sale/MultiOwnerMapper.java

@@ -2,6 +2,7 @@ package com.dk.mdm.mapper.sale;
 
 import com.dk.mdm.model.pojo.sale.MultiOwner;
 import com.dk.common.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -9,6 +10,13 @@ import org.springframework.stereotype.Repository;
 */
 @Repository
 public interface MultiOwnerMapper extends BaseMapper<MultiOwner>{
-	
+
+
+    /**
+     * @desc : 删除明细(通过订单Id)
+     * @author : 付斌
+     * @date : 2024-03-03 14:17
+     */
+    int deleteByOrderId(@Param("orderId") String orderId);
 }
 

+ 10 - 6
src/main/java/com/dk/mdm/mapper/sale/MultiOwnerMapper.xml

@@ -83,7 +83,7 @@
     <select id="selectByCond" resultMap="BaseResultMap">
         SELECT
         <include refid="Base_Column_List"/>
-        FROM t_psi_multi_owner
+        FROM dkic_b.t_psi_multi_owner
         <include refid="Condition"/>
         <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
             limit #{end} offset #{start}
@@ -94,7 +94,7 @@
     <select id="countByCond" resultType="Long">
         SELECT
         count(1)
-        FROM t_psi_multi_owner
+        FROM dkic_b.t_psi_multi_owner
         <include refid="Condition"/>
     </select>
 
@@ -102,7 +102,7 @@
     <select id="selectById" resultMap="BaseResultMap">
         SELECT
         <include refid="Base_Column_List"/>
-        FROM t_psi_multi_owner
+        FROM dkic_b.t_psi_multi_owner
         WHERE multi_id = #{multiId}::uuid
     </select>
 
@@ -110,7 +110,7 @@
     <select id="selectByIdForUpdate" resultMap="BaseResultMap">
         SELECT
         <include refid="Base_Column_List"/>
-        FROM t_psi_multi_owner
+        FROM dkic_b.t_psi_multi_owner
         WHERE multi_id = #{id}::uuid
         for update
     </select>
@@ -119,13 +119,13 @@
     <select id="selectByIdsForUpdate" resultMap="BaseResultMap">
         SELECT
         <include refid="Base_Column_List"/>
-        FROM t_psi_multi_owner
+        FROM dkic_b.t_psi_multi_owner
         <include refid="idsForeach"/>
         for update
     </select>
 
     <insert id="insertBatch">
-        insert into t_psi_multi_owner
+        insert into dkic_b.t_psi_multi_owner
         (
         <trim suffixOverrides=",">
             order_id,
@@ -150,4 +150,8 @@
             )
         </foreach>
     </insert>
+
+    <delete id="deleteByOrderId">
+        DELETE FROM dkic_b.t_psi_multi_owner WHERE order_id = #{orderId}::uuid
+    </delete>
 </mapper>

+ 72 - 1
src/main/java/com/dk/mdm/service/sale/OrderService.java

@@ -12,9 +12,11 @@ import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.infrastructure.convert.sale.OrderConvert;
 import com.dk.mdm.infrastructure.convert.sale.OrderItemConvert;
 import com.dk.mdm.mapper.mst.CustomerMapper;
+import com.dk.mdm.mapper.sale.MultiOwnerMapper;
 import com.dk.mdm.mapper.sale.OrderItemMapper;
 import com.dk.mdm.mapper.sale.OrderMapper;
 import com.dk.mdm.model.pojo.mst.Customer;
+import com.dk.mdm.model.pojo.sale.MultiOwner;
 import com.dk.mdm.model.pojo.sale.Order;
 import com.dk.common.service.BaseService;
 import com.dk.common.mapper.BaseMapper;
@@ -64,6 +66,9 @@ public class OrderService extends BaseService<Order> {
     private CustomerMapper customerMapper;
 
     @Autowired
+    MultiOwnerMapper multiOwnerMapper;
+
+    @Autowired
     private OrderConvert orderConvert;
 
     @Autowired
@@ -79,6 +84,7 @@ public class OrderService extends BaseService<Order> {
         return super.mergeListWithCount(orderQuery, orderMapper.selectByCond(orderQuery),
                 orderMapper.countByCond(orderQuery));
     }
+
     /**
      * @desc : 以销定采 查询
      * @author : 王英杰
@@ -89,6 +95,7 @@ public class OrderService extends BaseService<Order> {
         return super.mergeListWithCount(orderQuery, orderMapper.purSaleSelectByCond(orderQuery),
                 orderMapper.countByCond(orderQuery));
     }
+
     /**
      * @desc : 查询订单明细(货物、收款、附件)
      * @author : 付斌
@@ -146,6 +153,36 @@ public class OrderService extends BaseService<Order> {
         // 订单总单保存
         super.insert(order);
 
+        // 业务部门业绩保存
+        if (orderVO.getOrgList() != null && orderVO.getOrgList().size() > 0) {
+            for (Map<String, Object> map : orderVO.getOrgList()) {
+                MultiOwner multiOwner = new MultiOwner();
+                multiOwner.setOrderId(order.getOrderId()).setOwnerId(map.get("orgId").toString())
+                        .setAllocationRatio(new BigDecimal(map.get("allocationRatio").toString())).setCpId(order.getCpId());
+                if (Boolean.parseBoolean(map.get("ownerFlag").toString())) {
+                    multiOwner.setOwnerType(Constant.OwnerType.Z_ORG.getName());
+                } else {
+                    multiOwner.setOwnerType(Constant.OwnerType.C_ORG.getName());
+                }
+                multiOwnerMapper.insert(multiOwner);
+            }
+        }
+
+        // 业务员业绩保存
+        if (orderVO.getStaffList() != null && orderVO.getStaffList().size() > 0) {
+            for (Map<String, Object> map : orderVO.getStaffList()) {
+                MultiOwner multiOwner = new MultiOwner();
+                multiOwner.setOrderId(order.getOrderId()).setOwnerId(map.get("staffId").toString())
+                        .setAllocationRatio(new BigDecimal(map.get("allocationRatio").toString())).setCpId(order.getCpId());
+                if (Boolean.parseBoolean(map.get("ownerFlag").toString())) {
+                    multiOwner.setOwnerType(Constant.OwnerType.Z_STAFF.getName());
+                } else {
+                    multiOwner.setOwnerType(Constant.OwnerType.C_STAFF.getName());
+                }
+                multiOwnerMapper.insert(multiOwner);
+            }
+        }
+
         // 订单明细保存
         if (orderVO.getItemList() != null && orderVO.getItemList().size() > 0) {
             for (OrderItemVO orderItemVO : orderVO.getItemList()) {
@@ -202,6 +239,40 @@ public class OrderService extends BaseService<Order> {
             orderItemService.updateByUuid(orderItem);
         }
 
+        // 删除业绩信息
+        multiOwnerMapper.deleteByOrderId(order.getOrderId());
+
+        // 重新保存业绩信息
+        // 业务部门业绩保存
+        if (orderVO.getOrgList() != null && orderVO.getOrgList().size() > 0) {
+            for (Map<String, Object> map : orderVO.getOrgList()) {
+                MultiOwner multiOwner = new MultiOwner();
+                multiOwner.setOrderId(order.getOrderId()).setOwnerId(map.get("orgId").toString())
+                        .setAllocationRatio(new BigDecimal(map.get("allocationRatio").toString())).setCpId(order.getCpId());
+                if (Boolean.parseBoolean(map.get("ownerFlag").toString())) {
+                    multiOwner.setOwnerType(Constant.OwnerType.Z_ORG.getName());
+                } else {
+                    multiOwner.setOwnerType(Constant.OwnerType.C_ORG.getName());
+                }
+                multiOwnerMapper.insert(multiOwner);
+            }
+        }
+
+        // 业务员业绩保存
+        if (orderVO.getStaffList() != null && orderVO.getStaffList().size() > 0) {
+            for (Map<String, Object> map : orderVO.getStaffList()) {
+                MultiOwner multiOwner = new MultiOwner();
+                multiOwner.setOrderId(order.getOrderId()).setOwnerId(map.get("staffId").toString())
+                        .setAllocationRatio(new BigDecimal(map.get("allocationRatio").toString())).setCpId(order.getCpId());
+                if (Boolean.parseBoolean(map.get("ownerFlag").toString())) {
+                    multiOwner.setOwnerType(Constant.OwnerType.Z_STAFF.getName());
+                } else {
+                    multiOwner.setOwnerType(Constant.OwnerType.C_STAFF.getName());
+                }
+                multiOwnerMapper.insert(multiOwner);
+            }
+        }
+
         return ResponseResultUtil.success(super.update(order, new UpdateWrapper<Order>().lambda().eq(Order::getOrderId,
                 UUID.fromString(order.getOrderId()))));
     }
@@ -214,7 +285,7 @@ public class OrderService extends BaseService<Order> {
     public ResponseResultVO<?> invalid(String id) {
         Order orderForUpdate = orderMapper.selectByIdForUpdate(id);
         // 并发校验
-        if(!orderForUpdate.getFlgValid()){
+        if (!orderForUpdate.getFlgValid()) {
             throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ISFLGVALID_FALSE.getMessage());
         }