Bläddra i källkod

Merge branch 'master' of http://git.dongkesoft.com:9001/iBOSS-2.0-Mini/iboss-server-mdm

hongxudong 1 år sedan
förälder
incheckning
da79911cc6

+ 4 - 1
src/main/java/com/dk/mdm/controller/ivt/outBound/OutboundSaleOrderController.java

@@ -2,6 +2,7 @@ package com.dk.mdm.controller.ivt.outBound;
 
 
 import com.dk.common.model.pojo.PageList;
+import com.dk.common.response.ResponseResultUtil;
 import com.dk.common.response.ResponseResultVO;
 import com.dk.common.service.BaseService;
 import com.dk.mdm.model.pojo.ivt.Outbound;
@@ -10,6 +11,7 @@ import com.dk.mdm.model.query.sale.OrderQuery;
 import com.dk.mdm.model.response.ivt.InboundResponse;
 import com.dk.mdm.model.response.ivt.OutboundResponse;
 import com.dk.mdm.model.response.sale.OrderResponse;
+import com.dk.mdm.model.vo.ivt.OutboundItemVO;
 import com.dk.mdm.model.vo.ivt.OutboundVO;
 import com.dk.mdm.service.ivt.outbound.OutboundSaleOrderService;
 import io.swagger.annotations.Api;
@@ -18,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.util.List;
 import java.util.Map;
 
 
@@ -44,7 +47,7 @@ public class OutboundSaleOrderController {
     )
     @PostMapping({"outbound_insert"})
     public ResponseResultVO<?> saleOrderOutboundInsert(@Valid @RequestBody OutboundVO outboundVO) {
-        return outboundSaleOrderService.saleOrderOutboundInsert(outboundVO,false);
+        return outboundSaleOrderService.saleOrderOutboundInsert(outboundVO, false);
     }
 
     /**

+ 11 - 0
src/main/java/com/dk/mdm/controller/mst/StaffController.java

@@ -268,4 +268,15 @@ public class StaffController {
     public ResponseResultVO<?> deleteGhostStaff(@RequestBody StaffVO staffVO) {
         return staffService.deleteGhostStaff(staffVO);
     }
+
+    /**
+     * @desc   : 更新负责人标识
+     * @author : 刘尧
+     * @date   : 2024/6/21 16:24
+     */
+    @ApiOperation(value = "更新负责人标识", notes = "更新负责人标识")
+    @PostMapping({"update_flgInit"})
+    public ResponseResultVO updateFlgInit(@RequestBody Map<String, Object> params){
+        return staffService.updateFlgInit(params);
+    }
 }

+ 13 - 2
src/main/java/com/dk/mdm/mapper/ivt/InboundItemMapper.xml

@@ -589,8 +589,19 @@
         <include refid="Base_Column_List_Response"/>
         ,tpid.into_no as "intoNo"
         ,tmgs.sku_code  as "skuCode"
-        ,tmgs.sku_model as "skuModel"
-        ,tmgs.sku_name  as "skuName"
+
+        ,case when tmgs.sku_model is null then tpii.sku_model
+        when tmgs.sku_model is not null then tmgs.sku_model
+        else null end as "skuModel"
+        ,case when tmgs.sku_name is null then tpii.sku_name
+        when tmgs.sku_name is not null then tmgs.sku_name
+        else null end as "skuName"
+
+
+--         ,tmgs.sku_model as "skuModel"
+--         ,tmgs.sku_name  as "skuName"
+--         ,tpii.sku_model as "skuModel"
+--         ,tpii.sku_name  as "skuName"
         ,tmgs.sku_spec  as "skuSpec"
         ,tmgb.brand_name  as "brandName"
         ,tmgb.short_name  as "shortName"

+ 1 - 0
src/main/java/com/dk/mdm/mapper/ivt/OutboundItemMapper.xml

@@ -620,6 +620,7 @@ sys.f_remove_zero(out_qty) as out_qty, out_amt, sys.f_remove_zero(return_qty) as
                t.s_order_item_id,
                t.item_index,
                t.sku_id,
+               t.from_id,
                tmgs.sku_images,
                tmgb.brand_name,
                tmgb.short_name,

+ 9 - 2
src/main/java/com/dk/mdm/mapper/mac/RecPayMapper.xml

@@ -70,6 +70,7 @@
             <result column="receipt_residue" property="receiptResidue"/>
             <result column="payable_residue" property="payableResidue"/>
             <result column="payment_residue" property="paymentResidue"/>
+            <result column="macNames" property="macNames"/>
     </resultMap>
 
     <!-- 通用条件列 -->
@@ -194,6 +195,10 @@
         <if test="orgName != null and orgName != ''">
             AND tmo.org_name LIKE concat('%',my_ex.likequery(#{orgName}),'%')
         </if>
+
+        <if test="sumAmtReceivableHandleFlag != null and sumAmtReceivableHandleFlag == true">
+            AND t.sum_amt_receivable_handle > 0
+        </if>
     </sql>
 
     <sql id="idsForeach">
@@ -241,7 +246,8 @@
                t.flg_valid,
                t.cp_id,
                 tma.receivable_residue,
-                tma.receipt_residue
+                tma.receipt_residue,
+                 concat (tmma.mac_name ) AS "macNames"
         from dkic_b.t_mac_rec_pay as t
                  left join dkic_b.t_mst_customer tmc on tmc.cus_id = t.object_id
                  left join sys.t_data_kind as tdk1 on tdk1.kind_code = t.rp_type
@@ -249,7 +255,8 @@
                  left join dkic_b.t_mst_staff tms on tms.staff_id = t.staff_id
                  left join dkic_b.t_mst_staff as makestaff on makestaff.staff_id = t.make_staff
                   LEFT JOIN  dkic_b.t_mac_account tma  on tma.object_id = t.object_id and tma.object_type in ('对象类型-客户')
-
+                 left  join   dkic_b.t_mac_rec_pay_item  rpi  on  rpi.rp_id = t.rp_id
+                 left  join   dkic_b.t_mst_money_account tmma  on  tmma.mac_id = rpi.mac_id
         where t.rp_type in ('收付款类型-收款', '收付款类型-退收款')
         <include refid="Condition"/>
 

+ 13 - 0
src/main/java/com/dk/mdm/mapper/mst/StaffMapper.java

@@ -67,5 +67,18 @@ public interface StaffMapper extends BaseMapper<Staff>{
      */
     int deleteGhostStaff(StaffQuery staffQuery);
 
+    /**
+     * @desc : 通过商户号注销当前负责人
+     * @author : 刘尧
+     * @date : 2024/6/21 10:21
+     */
+    boolean updateFlgInit(Map<String, Object> params);
+
+    /**
+     * @desc : 通过用户id更新负责人
+     * @author : 刘尧
+     * @date : 2024/6/21 10:43
+     */
+    boolean updateFlgInitById(String owner);
 }
 

+ 11 - 0
src/main/java/com/dk/mdm/mapper/mst/StaffMapper.xml

@@ -257,4 +257,15 @@
           and cp_id = #{cpId}
           and flg_ghost = true
     </delete>
+
+    <!--根据商户号注销当前商户的负责人-->
+    <update id="updateFlgInit">
+        UPDATE dkic_b.t_mst_staff SET flg_init = false
+        WHERE cp_id = #{cpId}
+    </update>
+    <!--通过用户id更新负责人-->
+    <update id="updateFlgInitById">
+        UPDATE dkic_b.t_mst_staff SET flg_init = true
+        WHERE staff_id = #{userId}::uuid
+    </update>
 </mapper>

+ 2 - 0
src/main/java/com/dk/mdm/mapper/report/ReportMapper.xml

@@ -2990,6 +2990,7 @@
                 LEFT JOIN dkic_b.t_psi_outbound tpo ON tpo.out_id = a.biznis_id
                 LEFT JOIN dkic_b.t_mac_rec_pay tmrp ON tmrp.rp_id = a.biznis_id
         WHERE a.flg_valid
+          AND a.cp_id = #{cpId}
         <if test="objectId != null and objectId != ''">
             AND a.object_id = #{objectId}::uuid
         </if>
@@ -3047,6 +3048,7 @@
         LEFT JOIN dkic_b.t_mac_rec_pay tmrp ON tmrp.rp_id = a.biznis_id
         LEFT JOIN dkic_b.t_mst_customer tmc ON tmc.cus_id = a.object_id
         WHERE a.flg_valid
+        AND a.cp_id = #{cpId}
         AND tmc.cus_name IS NOT NULL AND tmc.cus_name != ''
         GROUP BY a.object_id, tmc.cus_name, tmc.cus_phone, tmc.address_full
         HAVING SUM(COALESCE(tpo.out_amt, 0) + COALESCE(tpo.return_amt, 0)) - SUM(COALESCE(tmrp.sum_amt_rec, 0)) > 0

+ 3 - 0
src/main/java/com/dk/mdm/model/query/mac/RecPayQuery.java

@@ -293,6 +293,9 @@ public class RecPayQuery extends PageInfo<RecPayQuery> implements Serializable {
 
     private List<String> rpTypeList;
 
+    @ApiModelProperty(value = "已核销查询标识")
+    private Boolean sumAmtReceivableHandleFlag;
+
     private static final long serialVersionUID = 1L;
 
 }

+ 3 - 0
src/main/java/com/dk/mdm/model/response/mac/RecPayResponse.java

@@ -312,6 +312,9 @@ public class RecPayResponse extends PageInfo<RecPayResponse> implements Serializ
     @ApiModelProperty(value = "资金账户编码")
     private String macCode;
 
+    @ApiModelProperty(value = "账户名称")
+    private String macNames;
+
     private static final long serialVersionUID = 1L;
 
 }

+ 12 - 0
src/main/java/com/dk/mdm/model/vo/ivt/OutboundItemVO.java

@@ -325,6 +325,18 @@ public class OutboundItemVO {
     @TableField(typeHandler = UuidTypeHandler.class)
     private String makeStaff;
 
+    @ApiModelProperty(value = "修改订单总单信息(存未修改时候的已出库数量)")
+    private  BigDecimal updateOrderOutQty;
+
+    @ApiModelProperty(value = "修改订单总单信息(存未修改时候的已出库金额)")
+    private  BigDecimal updateOrderOutAmt;
+
+    @ApiModelProperty(value = "修改订单总单信息(存未修改时候的出库中数量)")
+    private  BigDecimal updateOrderOutingQty;
+
+    @ApiModelProperty(value = "修改订单总单信息(存未修改时候的出库中金额)")
+    private  BigDecimal updateOrderOutingAmt;
+
 
 
     private static final long serialVersionUID = 1L;

+ 10 - 0
src/main/java/com/dk/mdm/service/ivt/inventory/InventoryService.java

@@ -1115,6 +1115,16 @@ public class InventoryService extends BaseService<Inventory> {
                     //存货批次明细ID
                     inOutRecordVO.setBatchId(inventoryBatchResponse.getBatchId());
                     this.insertOutboundItemCost(inOutRecordVO);
+                    //region  反写本次办理出库的 出库成本金额和成本单价
+                    OutboundItem outboundItem = new OutboundItem();
+                    outboundItem.setItemId(inOutRecordVO.getBiznisItemId());
+                    outboundItem.setCostAmt(inOutRecordVO.getIntoAmt());
+                    outboundItem.setCostPrice(inOutRecordVO.getIntoAmt().divide(inOutRecordVO.getIntoQty(),2,BigDecimal.ROUND_HALF_UP));
+                    outboundItemMapper.update(outboundItem,
+                            new UpdateWrapper<OutboundItem>().lambda()
+                                    .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
+                    );
+                    //endregion
                 }
                 //endregion
             }

+ 326 - 183
src/main/java/com/dk/mdm/service/ivt/outbound/OutboundSaleOrderService.java

@@ -17,38 +17,30 @@ import com.dk.mdm.infrastructure.convert.ivt.OutboundConvert;
 import com.dk.mdm.infrastructure.convert.ivt.OutboundItemConvert;
 import com.dk.mdm.mapper.common.CommonMapper;
 import com.dk.mdm.mapper.ivt.*;
-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.ivt.Inbound;
 import com.dk.mdm.model.pojo.ivt.InboundItem;
 import com.dk.mdm.model.pojo.ivt.Outbound;
 import com.dk.mdm.model.pojo.ivt.OutboundItem;
-import com.dk.mdm.model.pojo.mst.Customer;
-import com.dk.mdm.model.pojo.pur.Purchase;
-import com.dk.mdm.model.pojo.pur.PurchaseItem;
-import com.dk.mdm.model.pojo.sale.MultiOwner;
 import com.dk.mdm.model.pojo.sale.Order;
 import com.dk.mdm.model.pojo.sale.OrderItem;
 import com.dk.mdm.model.query.ivt.InventoryQuery;
 import com.dk.mdm.model.query.ivt.OutboundItemQuery;
 import com.dk.mdm.model.query.ivt.OutboundQuery;
-import com.dk.mdm.model.query.sale.OrderQuery;
 import com.dk.mdm.model.response.ivt.InboundResponse;
 import com.dk.mdm.model.response.ivt.InventoryResponse;
 import com.dk.mdm.model.response.ivt.OutboundItemResponse;
 import com.dk.mdm.model.response.ivt.OutboundResponse;
-import com.dk.mdm.model.response.pur.PurchaseItemResponse;
-import com.dk.mdm.model.response.pur.PurchaseResponse;
 import com.dk.mdm.model.response.sale.OrderItemResponse;
 import com.dk.mdm.model.response.sale.OrderResponse;
-import com.dk.mdm.model.vo.ivt.*;
-import com.dk.mdm.model.vo.mac.RecPayVO;
+import com.dk.mdm.model.vo.ivt.InboundItemVO;
+import com.dk.mdm.model.vo.ivt.InboundVO;
+import com.dk.mdm.model.vo.ivt.OutboundItemVO;
+import com.dk.mdm.model.vo.ivt.OutboundVO;
 import com.dk.mdm.service.common.CommonService;
 import com.dk.mdm.service.ivt.inventory.InventoryService;
 import com.dk.mdm.service.mac.AccountService;
-import com.dk.mdm.service.mac.ReceiptService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -122,9 +114,6 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
     private InboundItemConvert inboundItemConvert;
 
     @Autowired
-    private ReceiptService receiptService;
-
-    @Autowired
     private InventoryMapper inventoryMapper;
 
 
@@ -132,8 +121,8 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
 
 
     /**
-     * @desc   : 校验库存是否存在
-     * @date   : 2024/6/11 10:55
+     * @desc : 校验库存是否存在
+     * @date : 2024/6/11 10:55
      * @author : 寇珊珊
      */
     @Transactional(
@@ -151,10 +140,10 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         }
         return inventoryResponse;
     }
-    
+
     /**
-     * @desc   : 先查库存后出库
-     * @date   : 2024/6/11 9:30
+     * @desc : 先查库存后出库
+     * @date : 2024/6/11 9:30
      * @author : 寇珊珊
      */
     @Transactional(rollbackFor = {Exception.class})
@@ -178,14 +167,14 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                 outboundItemVO.setMakeStaff(outboundVO.getMakeStaff());
             }
             //销售出库新建
-            this.saleOrderOutboundInsert(outboundVO,true);
+            this.saleOrderOutboundInsert(outboundVO, true);
         }
         //先查库存锁表看能出库的数量有多少   可出库数量建一张已出库的单子并扣减库存,剩下的数量建一张出库中的单子
         else {
             //过滤外协品
             for (OutboundItemVO outboundItemVO : outboundVO.getItemList()) {
                 //商品id不为空才校验库存    因为为空是外协品
-                if(outboundItemVO.getSkuId()!=null){
+                if (outboundItemVO.getSkuId() != null) {
                     //查询库存是否存在
                     InventoryResponse inventoryResponse = this.checkInventoryExist(outboundItemVO);
                     if (inventoryResponse != null) {
@@ -204,36 +193,36 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                 }
             }
             //过滤出库存量足够的数据
-            List<OutboundItemVO> itemList = outboundVO.getItemList().stream().filter(it -> it.getNotEnoughInventoryQty()==null ).collect(Collectors.toList());
+            List<OutboundItemVO> itemList = outboundVO.getItemList().stream().filter(it -> it.getNotEnoughInventoryQty() == null).collect(Collectors.toList());
 
             //region  过滤出不够出库的每条明细数量  ------新建出库中数据
-            List<OutboundItemVO> outboundIngList = outboundVO.getItemList().stream().filter(it -> it.getNotEnoughInventoryQty()!=null && it.getNotEnoughInventoryQty().compareTo(BigDecimal.ZERO)>0).collect(Collectors.toList());
-            if(outboundIngList != null && outboundIngList.size()>0){
+            List<OutboundItemVO> outboundIngList = outboundVO.getItemList().stream().filter(it -> it.getNotEnoughInventoryQty() != null && it.getNotEnoughInventoryQty().compareTo(BigDecimal.ZERO) > 0).collect(Collectors.toList());
+            if (outboundIngList != null && outboundIngList.size() > 0) {
                 //赋值箱片
                 for (OutboundItemVO outboundItemVO : outboundIngList) {
                     //箱
-                    outboundItemVO.setOutingBox(Integer.valueOf(outboundItemVO.getOutingQty().divide(outboundItemVO.getPackBox(),RoundingMode.DOWN).toString()) );
+                    outboundItemVO.setOutingBox(Integer.valueOf(outboundItemVO.getOutingQty().divide(outboundItemVO.getPackBox(),0,RoundingMode.DOWN).toString()) );
                     //片
                     outboundItemVO.setOutingPiece(outboundItemVO.getOutingQty().remainder(outboundItemVO.getPackBox()));
                 }
                 outboundVO.setFlgAutoHandle(false);
                 outboundVO.setItemList(outboundIngList);
                 //销售出库新建
-                this.saleOrderOutboundInsert(outboundVO,true);
+                this.saleOrderOutboundInsert(outboundVO, true);
             }
             //endregion
 
             //region  库存够扣减的明细  -----------新建已出库数据并扣减库存
             //销售出库新建
-            if (itemList!=null && itemList.size() > 0) {
+            if (itemList != null && itemList.size() > 0) {
                 for (OutboundItemVO outboundItemVO : itemList) {
-                    if(outboundItemVO.getSkuId()!=null){ //过滤外协品 外协品没有箱片
+                    if (outboundItemVO.getSkuId() != null) { //过滤外协品 外协品没有箱片
                         //箱
-                        outboundItemVO.setOutBox(Integer.valueOf(outboundItemVO.getOutingQty().divide(outboundItemVO.getPackBox(),RoundingMode.DOWN).toString()) );
+                        outboundItemVO.setOutBox(Integer.valueOf(outboundItemVO.getOutingQty().divide(outboundItemVO.getPackBox(),0,RoundingMode.DOWN).toString()) );
                         //片
                         outboundItemVO.setOutPiece(outboundItemVO.getOutingQty().remainder(outboundItemVO.getPackBox()));
                     }
-                 }
+                }
                 outboundVO.setFlgAutoHandle(true);
                 outboundVO.setItemList(itemList);
                 this.saleOrderOutboundInsert(outboundVO, true);
@@ -393,13 +382,13 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
      * @author : 寇珊珊
      */
     @Transactional(rollbackFor = {Exception.class})
-    public ResponseResultVO<?> saleOrderOutboundInsert(OutboundVO outboundVO,Boolean orderTransmitFlag) {
+    public ResponseResultVO<?> saleOrderOutboundInsert(OutboundVO outboundVO, Boolean orderTransmitFlag) {
         //region 如果没有客户id,要新建
 //        outboundVO = outCommon.insertCustomer(outboundVO);
         //endregion
 
         //region 查询当前公司的系统参数  自动办理信息  并赋值
-        if(!orderTransmitFlag){
+        if (!orderTransmitFlag) {
             Map<String, Object> map = new HashMap<>();
             map.put("cpId", outboundVO.getCpId());
             map.put("code", Constant.SystemConstant.IVT_001.getValue());
@@ -418,7 +407,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         BigDecimal sumIntoQty = BigDecimal.ZERO;
         //出库金额
         BigDecimal sumIntoPriceAmt = BigDecimal.ZERO;
-        if(orderTransmitFlag){
+        if (orderTransmitFlag) {
             sumIntoQty = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
             sumIntoPriceAmt = outboundVO.getItemList().stream().map(OutboundItemVO::getPriceOut).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
         }
@@ -504,7 +493,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                     ErrorCodeEnum.OUTBOUND_ITEM_NOT_EXIST.getMessage());
         }
         for (OutboundItemVO outboundItemVO : outboundVO.getItemList()) {
-            outboundItemVO.setItemId(null );
+            outboundItemVO.setItemId(null);
             //region 将库存需要的参数赋值
             outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
             outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_ORDER.getValue());
@@ -587,9 +576,9 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
             //region 外协品新建外协入库单
             //筛选出skuId为空的 走外协品逻辑
             List<OutboundItemVO> outsideGoods = outboundVO.getItemList().stream().filter(it -> it.getSkuId() == null).collect(Collectors.toList());
-           for(int i=0;i<outsideGoods.size();i++){
-              outsideGoods.get(i).setPriceOut( outsideGoods.get(i).getCostPrice()==null?BigDecimal.ZERO:outsideGoods.get(i).getCostPrice());
-           }
+            for (int i = 0; i < outsideGoods.size(); i++) {
+                outsideGoods.get(i).setPriceOut(outsideGoods.get(i).getCostPrice() == null ? BigDecimal.ZERO : outsideGoods.get(i).getCostPrice());
+            }
             //删除外协品生产外协入库单
             this.deleteOutsideGoodsInto(outboundVO, outsideGoods);
             //新建外协品生产外协入库单
@@ -599,7 +588,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
             //region 库存
             //筛选出skuId不为空的 走库存
             List<OutboundItemVO> invList = outboundVO.getItemList().stream().filter(it -> it.getSkuId() != null).collect(Collectors.toList());
-            if(invList!=null && invList.size() > 0){
+            if (invList != null && invList.size() > 0) {
                 Map<String, Object> invMap = new HashMap<>();
                 invMap.put("outDetail", invList);
                 inventoryService.operatingInventoryInformation(invMap);
@@ -646,11 +635,13 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         //region 大编辑
         else {
             // region 更新客户信息
-            outboundVO = outCommon.insertCustomer(outboundVO);
+//            outboundVO = outCommon.insertCustomer(outboundVO);
             // endregion
 
             //region 根据id查询   并且明细数量金额  求和
             OutboundResponse outboundResponse = outboundMapper.selectById(outboundVO.getOutId());
+            //根据总单id查询
+            List<OutboundItemResponse> outboundItemResponseList = outboundItemMapper.selectByCond(new OutboundItemQuery().setOutId(outboundResponse.getOutId()));
             BigDecimal sumQty = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
             BigDecimal sumAmt = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
             //endregion
@@ -669,6 +660,11 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                     //根据id查询
                     OutboundItemResponse outboundItemResponse = outboundItemMapper.selectById(outboundItemVO.getItemId());
 
+                    //region 反写订单总单 数据需要  把查出来的已出库数量用别的变量存起来
+                    outboundItemVO.setUpdateOrderOutQty(outboundItemResponse.getOutQty());
+                    outboundItemVO.setUpdateOrderOutAmt(outboundItemResponse.getOutAmt());
+                    //endregion
+
                     //region  编辑明细
                     if (outboundItemVO.getItemId() != null) {
 
@@ -747,15 +743,12 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                         }
                     }
                     //endregion
+
                 }
                 //endregion
 
                 //region 删除明细
-                BigDecimal delOutQty = BigDecimal.ZERO;
-                BigDecimal delOutAmt = BigDecimal.ZERO;
                 if (outboundVO.getDeleteItemList() != null && outboundVO.getDeleteItemList().size() > 0) {
-                    delOutQty = outboundVO.getDeleteItemList().stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
-                    delOutAmt = outboundVO.getDeleteItemList().stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
                     for (OutboundItemVO outboundItemVO : outboundVO.getDeleteItemList()) {
                         if (outboundItemVO.getItemId() != null) {
                             //region 将库存需要的参数赋值
@@ -807,26 +800,8 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                 //endregion
 
                 //region 修改销售总单
-                if (outboundVO.getFromId() != null) {
-                    //根据id查询
-                    OrderResponse orderResponse = orderMapper.selectById(outboundVO.getFromId());
-                    Order order = new Order();
-                    order.setOrderId(outboundVO.getFromId());
-                    order.setOutQty(outboundResponse.getOutQty().negate().add(sumQty).subtract(delOutQty));
-                    order.setOutAmt(outboundResponse.getOutAmt().negate().add(sumAmt).subtract(delOutAmt));
-                    order.setOutingQty(delOutQty);
-                    order.setOutingAmt(delOutAmt);
-                    //出库状态
-                    String outStatus = this.setOutStatus(orderResponse.getOutingQty().add(order.getOutingQty()),
-                            orderResponse.getOutQty().add(order.getOutQty()), orderResponse.getSumQuantity());
-                    order.setOutStatus(outStatus);
-                    //修改
-                    int countRow = orderMapper.updateById(order);
-                    //数量超出
-                    if (countRow == 0) {
-                        throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
-                    }
-                }
+
+                this.updateOrderMessageByEdit(outboundResponse, outboundVO.getItemList(), outboundVO.getDeleteItemList());
                 //endregion
 
                 //region  应收记账
@@ -842,7 +817,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                 this.deleteOutsideGoodsInto(outboundVO, outsideGoods);
                 //新建外协品生产外协入库单
                 this.insertOutsideGoodsInto(outboundVO, outsideGoods);
-                if(outboundVO.getDeleteItemList() != null){
+                if (outboundVO.getDeleteItemList() != null) {
                     List<OutboundItemVO> delOutsideGoods = outboundVO.getDeleteItemList().stream().filter(it -> it.getSkuId() == null).collect(Collectors.toList());
                     //删除外协品生产外协入库单
                     this.deleteOutsideGoodsInto(outboundVO, delOutsideGoods);
@@ -853,7 +828,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                 //筛选出skuId不为空的 走库存
                 List<OutboundItemVO> invList = outboundVO.getItemList().stream().filter(it -> it.getSkuId() != null).collect(Collectors.toList());
                 List<OutboundItemVO> invDelList = null;
-                if(outboundVO.getDeleteItemList() != null){
+                if (outboundVO.getDeleteItemList() != null) {
                     invDelList = outboundVO.getDeleteItemList().stream().filter(it -> it.getSkuId() != null).collect(Collectors.toList());
                 }
                 if ((invList != null && invList.size() > 0) || (invDelList != null && invDelList.size() > 0)) {
@@ -878,6 +853,12 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
 
                     //region 编辑明细
                     if (outboundItemVO.getItemId() != null) {
+
+                        //region 反写订单总单 数据需要  把查出来的出库中数量用别的变量存起来
+                        outboundItemVO.setUpdateOrderOutingQty(outboundItemResponse.getOutingQty());
+                        outboundItemVO.setUpdateOrderOutingAmt(outboundItemResponse.getOutingAmt());
+                        //endregion
+
                         OutboundItem outboundItem = new OutboundItem();
                         outboundItem.setItemId(outboundItemResponse.getItemId());
                         outboundItem.setOutingQty(outboundItemResponse.getOutingQty());
@@ -892,6 +873,11 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
 
                     //region 新建明细
                     else {
+                        //region 反写订单总单 数据需要  把查出来的出库中数量用别的变量存起来
+                        outboundItemVO.setUpdateOrderOutingQty(outboundItemVO.getOutingQty());
+                        outboundItemVO.setUpdateOrderOutingAmt(outboundItemVO.getOutingAmt());
+                        //endregion
+
                         outboundItemVO
                                 .setOutId(outboundItemVO.getOutId())
                                 .setOutQty(BigDecimal.ZERO)
@@ -934,11 +920,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                 //endregion
 
                 //region 删除明细
-                BigDecimal delOutQty = BigDecimal.ZERO;
-                BigDecimal delOutAmt = BigDecimal.ZERO;
                 if (outboundVO.getDeleteItemList() != null && outboundVO.getDeleteItemList().size() > 0) {
-                    delOutQty = outboundVO.getDeleteItemList().stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
-                    delOutAmt = outboundVO.getDeleteItemList().stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
                     for (OutboundItemVO outboundItemVO : outboundVO.getDeleteItemList()) {
                         if (outboundItemVO.getItemId() != null) {
                             OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
@@ -983,32 +965,108 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                 );
                 //endregion
 
-                //region 修改采购总单
-                if (outboundVO.getFromId() != null) {
+                //region 修改销售总单
+                this.updateOrderMessageByEdit(outboundResponse, outboundVO.getItemList(), outboundVO.getDeleteItemList());
+                //endregion
+
+            }
+            //endregion
+        }
+        //endregion
+
+        return ResponseResultUtil.success(outboundVO);
+    }
+
+    /**
+     * @desc : 编辑销售出库修改销售订单信息
+     * @date : 2024/6/21 10:34
+     * @author : 寇珊珊
+     */
+    @Transactional(rollbackFor = {Exception.class})
+    public void updateOrderMessageByEdit(OutboundResponse outboundResponse, List<OutboundItemVO> itemList, List<OutboundItemVO> deleteItemList) {
+        //出库明细汇总
+        Map<String, List<OutboundItemVO>> orderOutItemVOListMap = itemList.stream().collect(Collectors.groupingBy(OutboundItemVO::getFromId));
+        //出库明细删除汇总
+        Map<String, List<OutboundItemVO>> delOrderOutItemVOListMap = deleteItemList.stream().collect(Collectors.groupingBy(OutboundItemVO::getFromId));
+        //出库明细汇总循环
+        for (String fromId : orderOutItemVOListMap.keySet()) {
+            //出库明细删除汇总循环
+            for (String delFromId : delOrderOutItemVOListMap.keySet()) {
+                //新建出库明细来源Id = 删除出库明细来源Id
+                if (fromId.equals(delFromId)) {
+                    //region  提取新建分组后的明细
+                    List<OutboundItemVO> orderOutItemVOListGroup = orderOutItemVOListMap.get(fromId);
+                    //分组后的明细 出库数量和金额总和
+                    BigDecimal orderSumQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+                    BigDecimal orderSumAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    //分组后的明细 原出库数量和金额总和
+                    BigDecimal updateOrderOutQty = BigDecimal.ZERO;
+                    BigDecimal updateOrderOutAmt = BigDecimal.ZERO;
+                    BigDecimal updateOrderOutingQty = BigDecimal.ZERO;
+                    BigDecimal updateOrderOutingAmt = BigDecimal.ZERO;
+                    //已出库
+                    if (Constant.OutStatus.YICHUKU.getName().equals(outboundResponse.getOutStatus())) {
+                        updateOrderOutQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+                        updateOrderOutAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    }
+                    //出库中
+                    else {
+                        updateOrderOutingQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+                        updateOrderOutingAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    }
+                    //endregion
+
+                    //region 提取删除分组后的明细
+                    List<OutboundItemVO> delOrderOutItemVOListGroup = delOrderOutItemVOListMap.get(delFromId);
+                    BigDecimal orderDelOutQty = BigDecimal.ZERO;
+                    BigDecimal orderDelOutAmt = BigDecimal.ZERO;
+                    //已出库
+                    if (Constant.OutStatus.YICHUKU.getName().equals(outboundResponse.getOutStatus())) {
+                        orderDelOutQty = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+                        orderDelOutAmt = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    }
+                    //出库中
+                    else if (Constant.OutStatus.CHUKUZHONG.getName().equals(outboundResponse.getOutStatus())) {
+                        orderDelOutQty = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+                        orderDelOutAmt = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    }
+                    //endregion
+
+                    //region  反写订单数据
                     //根据id查询
-                    OrderResponse orderResponse = orderMapper.selectById(outboundVO.getFromId());
+                    OrderResponse orderResponse = orderMapper.selectById(fromId);
                     Order order = new Order();
-                    order.setOrderId(outboundVO.getFromId());
-                    order.setOutingQty(outboundResponse.getOutingQty().negate().add(sumQty).subtract(delOutQty));
-                    order.setOutingAmt(outboundResponse.getOutingAmt().negate().add(sumAmt).subtract(delOutAmt));
-                    //出库状态
-                    String outStatus = this.setOutStatus(orderResponse.getOutingQty().add(order.getOutingQty()),
-                            orderResponse.getOutQty(), orderResponse.getSumQuantity());
-                    order.setOutStatus(outStatus);
+                    order.setOrderId(fromId);
+                    //已出库
+                    if (Constant.OutStatus.YICHUKU.getName().equals(outboundResponse.getOutStatus())) {
+                        order.setOutQty(updateOrderOutQty.negate().add(orderSumQty).subtract(orderDelOutQty));
+                        order.setOutAmt(updateOrderOutAmt.negate().add(orderSumAmt).subtract(orderDelOutAmt));
+                        order.setOutingQty(orderDelOutQty);
+                        order.setOutingAmt(orderDelOutAmt);
+                        //出库状态
+                        String outStatus = this.setOutStatus(orderResponse.getOutingQty().add(order.getOutingQty()),
+                                orderResponse.getOutQty().add(order.getOutQty()), orderResponse.getSumQuantity());
+                        order.setOutStatus(outStatus);
+                    }
+                    //出库中
+                    else if (Constant.OutStatus.CHUKUZHONG.getName().equals(outboundResponse.getOutStatus())) {
+                        order.setOutingQty(updateOrderOutingQty.negate().add(orderSumQty).subtract(orderDelOutQty));
+                        order.setOutingAmt(updateOrderOutingAmt.negate().add(orderSumQty).subtract(orderDelOutAmt));
+                        //出库状态
+                        String outStatus = this.setOutStatus(orderResponse.getOutingQty().add(order.getOutingQty()),
+                                orderResponse.getOutQty(), orderResponse.getSumQuantity());
+                        order.setOutStatus(outStatus);
+                    }
                     //修改
                     int countRow = orderMapper.updateById(order);
                     //数量超出
                     if (countRow == 0) {
                         throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
                     }
+                    //endregion
                 }
-                //endregion
             }
-            //endregion
         }
-        //endregion
-
-        return ResponseResultUtil.success(outboundVO);
     }
 
     /**
@@ -1075,7 +1133,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
             }
             //endregion
 
-            //region  修改库总单
+            //region  修改库总单
             Outbound outbound = new Outbound();
             outbound.setOutId(outboundResponse.getOutId());
             outbound.setFlgValid(false);
@@ -1086,28 +1144,9 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
             //endregion
 
             //region 修改销售总单
-            if (outboundResponse.getFromId() != null) {
-                //根据id查询
-                OrderResponse orderResponse = orderMapper.selectById(outboundResponse.getFromId());
-                Order order = new Order();
-                order.setOrderId(outboundResponse.getFromId());
-                order.setOutQty(outboundResponse.getOutQty().negate());
-                order.setOutAmt(outboundResponse.getOutAmt().negate());
-                //出库状态
-                String orderOutStatus = this.setOutStatus(orderResponse.getOutingQty(),
-                        orderResponse.getOutQty().add(order.getOutQty()), orderResponse.getSumQuantity());
-                order.setOutStatus(orderOutStatus);
-                //修改
-                int countRow = orderMapper.updateById(order);
-                //数量超出
-                if (countRow == 0) {
-                    throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
-                }
-            }
-
+            this.updateOrderMessageByRepeal(outboundResponse, outboundItemResponseList);
             //endregion
 
-
             //region 外协品新建外协入库单
             //筛选出skuId为空的 走外协品逻辑
             OutboundVO outboundVO = outboundConvert.convertResToVO(outboundResponse);
@@ -1120,7 +1159,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
             //region  修改库存
             //筛选出skuId不为空的 走库存
             List<OutboundItemResponse> invList = outboundItemResponseList.stream().filter(it -> it.getSkuId() != null).collect(Collectors.toList());
-            if(invList!=null && invList.size()>0) {
+            if (invList != null && invList.size() > 0) {
                 Map<String, Object> map = new HashMap<>();
                 map.put("delOutDetail", invList);
                 inventoryService.operatingInventoryInformation(map);
@@ -1183,32 +1222,77 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
             //endregion
 
             //region 修改销售总单
-            if (outboundResponse.getFromId() != null) {
-                //根据id查询
-                OrderResponse orderResponse = orderMapper.selectById(outboundResponse.getFromId());
-                Order order = new Order();
-                order.setOrderId(outboundResponse.getFromId());
-                order.setOutingQty(outboundResponse.getOutingQty().negate());
-                order.setOutingAmt(outboundResponse.getOutingAmt().negate());
+            this.updateOrderMessageByRepeal(outboundResponse, outboundItemResponseList);
+            //endregion
+        }
+        //endregion
+
+        return ResponseResultUtil.success();
+    }
+
+    /**
+     * @desc : 作废销售出库修改销售订单信息
+     * @date : 2024/6/21 10:34
+     * @author : 寇珊珊
+     */
+    @Transactional(rollbackFor = {Exception.class})
+    public void updateOrderMessageByRepeal(OutboundResponse outboundResponse, List<OutboundItemResponse> itemList) {
+        //出库明细汇总
+        Map<String, List<OutboundItemResponse>> orderOutItemListMap = itemList.stream().collect(Collectors.groupingBy(OutboundItemResponse::getFromId));
+        //出库明细汇总循环
+        for (String fromId : orderOutItemListMap.keySet()) {
+            //region  提取新建分组后的明细
+            //分组后的明细 原出库数量和金额总和
+            List<OutboundItemResponse> orderOutItemListGroup = orderOutItemListMap.get(fromId);
+            BigDecimal updateOrderOutQty = BigDecimal.ZERO;
+            BigDecimal updateOrderOutAmt = BigDecimal.ZERO;
+            BigDecimal updateOrderOutingQty = BigDecimal.ZERO;
+            BigDecimal updateOrderOutingAmt = BigDecimal.ZERO;
+            //已出库
+            if (Constant.OutStatus.YICHUKU.getName().equals(outboundResponse.getOutStatus())) {
+                updateOrderOutQty = orderOutItemListGroup.stream().map(OutboundItemResponse::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+                updateOrderOutAmt = orderOutItemListGroup.stream().map(OutboundItemResponse::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+            }
+            //出库中
+            else {
+                updateOrderOutingQty = orderOutItemListGroup.stream().map(OutboundItemResponse::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+                updateOrderOutingAmt = orderOutItemListGroup.stream().map(OutboundItemResponse::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+            }
+            //endregion
+
+            //region  反写订单数据
+            //根据id查询
+            OrderResponse orderResponse = orderMapper.selectById(fromId);
+            Order order = new Order();
+            order.setOrderId(fromId);
+            //已出库
+            if (Constant.OutStatus.YICHUKU.getName().equals(outboundResponse.getOutStatus())) {
+                order.setOutQty(updateOrderOutQty.negate());
+                order.setOutAmt(updateOrderOutAmt.negate());
+                //出库状态
+                String orderOutStatus = this.setOutStatus(orderResponse.getOutingQty(),
+                        orderResponse.getOutQty().add(order.getOutQty()), orderResponse.getSumQuantity());
+                order.setOutStatus(orderOutStatus);
+            }
+            //出库中
+            else if (Constant.OutStatus.CHUKUZHONG.getName().equals(outboundResponse.getOutStatus())) {
+                order.setOutingQty(updateOrderOutingQty.negate());
+                order.setOutingAmt(updateOrderOutingAmt.negate());
                 //出库状态
                 String orderOutStatus = this.setOutStatus(orderResponse.getOutingQty().add(order.getOutingQty()),
                         orderResponse.getOutQty(), orderResponse.getSumQuantity());
                 order.setOutStatus(orderOutStatus);
-                //修改
-                int countRow = orderMapper.updateById(order);
-                //数量超出
-                if (countRow == 0) {
-                    throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
-                }
+            }
+            //修改
+            int countRow = orderMapper.updateById(order);
+            //数量超出
+            if (countRow == 0) {
+                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
             }
             //endregion
         }
-        //endregion
-
-        return ResponseResultUtil.success();
     }
 
-
     /**
      * @desc : 销售出库办理
      * @date : 2024/3/7 15:47
@@ -1244,6 +1328,11 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
             }
             //endregion
 
+            //region 反写订单总单 数据需要  把查出来的出库中数量用别的变量存起来
+            outboundItemVO.setUpdateOrderOutingQty(outboundItemResponse.getOutingQty());
+            outboundItemVO.setUpdateOrderOutingAmt(outboundItemResponse.getOutingAmt());
+            //endregion
+
             //region  编辑明细
             if (outboundItemVO.getItemId() != null) {
                 outboundItemVO
@@ -1338,15 +1427,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         //endregion
 
         //region 删除明细
-        BigDecimal delOutingQty = BigDecimal.ZERO;
-        BigDecimal delOutingAmt = BigDecimal.ZERO;
-        BigDecimal delOutQty = BigDecimal.ZERO;
-        BigDecimal delOutAmt = BigDecimal.ZERO;
         if (outboundVO.getDeleteItemList() != null && outboundVO.getDeleteItemList().size() > 0) {
-            delOutingQty = outboundVO.getDeleteItemList().stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
-            delOutingAmt = outboundVO.getDeleteItemList().stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
-            delOutQty = outboundVO.getDeleteItemList().stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
-            delOutAmt = outboundVO.getDeleteItemList().stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
             for (OutboundItemVO outboundItemVO : outboundVO.getDeleteItemList()) {
                 if (outboundItemVO.getItemId() != null) {
 
@@ -1410,27 +1491,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         //endregion
 
         //region  修改销售订单订单
-        if (outboundVO.getFromId() != null) {
-            //根据id查询
-            OrderResponse orderResponse = orderMapper.selectById(outboundVO.getFromId());
-            //赋值(这里重写了更新方法,数量在更新方法中有数据库院士数量+本次数量)
-            Order order = new Order();
-            order.setOrderId(outboundVO.getFromId());
-            order.setOutQty(sumOutQty.subtract(delOutQty));
-            order.setOutAmt(sumOutAmt.subtract(delOutAmt));
-            order.setOutingQty((outboundResponse.getOutingQty().add(delOutingQty)).negate());
-            order.setOutingAmt((outboundResponse.getOutingAmt().add(delOutingAmt)).negate());
-            //出库状态
-            String orderOutStatus = this.setOutStatus(orderResponse.getOutingQty().subtract(sumOutQty).add(delOutQty),
-                    orderResponse.getOutQty().add(order.getOutQty()), orderResponse.getSumQuantity());
-            order.setOutStatus(orderOutStatus);
-            //修改
-            int countRow = orderMapper.updateById(order);
-            //数量超出
-            if (countRow == 0) {
-                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
-            }
-        }
+        this.updateOrderMessageByHandle(outboundVO.getItemList(), outboundVO.getDeleteItemList());
         //endregion
 
         //region  应收记账
@@ -1438,10 +1499,10 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         //endregion
 
         //region 库存明细处理
-        if(outboundVO.getItemList()!=null && outboundVO.getItemList().size()>0){
+        if (outboundVO.getItemList() != null && outboundVO.getItemList().size() > 0) {
             Map<String, Object> map = new HashMap<>(); // 定义map值 修改库存用
             // 获取外协数据
-            List<OutboundItemVO>  outsideGoods = outboundVO.getItemList().stream().filter(it -> it.getSkuId() == null).collect(Collectors.toList());
+            List<OutboundItemVO> outsideGoods = outboundVO.getItemList().stream().filter(it -> it.getSkuId() == null).collect(Collectors.toList());
             //新建外协品生产外协入库单
             this.insertOutsideGoodsInto(outboundVO, outsideGoods);
             // 获取商品明细数据
@@ -1450,7 +1511,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
             // 赋值修改明细
             map.put("outDetail", invList);
             // 删除的商品
-            if(outboundVO.getDeleteItemList()!=null && outboundVO.getDeleteItemList().size()>0){
+            if (outboundVO.getDeleteItemList() != null && outboundVO.getDeleteItemList().size() > 0) {
                 // 获取外协删除数据
                 List<OutboundItemVO> invsideDelList = outboundVO.getDeleteItemList().stream().filter(it -> it.getSkuId() == null).collect(Collectors.toList());
                 //删除外协品生产外协入库单
@@ -1468,6 +1529,66 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         return ResponseResultUtil.success(outboundVO);
     }
 
+    /**
+     * @desc : 办理销售出库修改销售订单信息
+     * @date : 2024/6/21 15:13
+     * @author : 寇珊珊
+     */
+    @Transactional(rollbackFor = {Exception.class})
+    public void updateOrderMessageByHandle(List<OutboundItemVO> itemList, List<OutboundItemVO> deleteItemList) {
+        //出库明细汇总
+        Map<String, List<OutboundItemVO>> orderOutItemVOListMap = itemList.stream().collect(Collectors.groupingBy(OutboundItemVO::getFromId));
+        //出库明细删除汇总
+        Map<String, List<OutboundItemVO>> delOrderOutItemVOListMap = deleteItemList.stream().collect(Collectors.groupingBy(OutboundItemVO::getFromId));
+        //出库明细汇总循环
+        for (String fromId : orderOutItemVOListMap.keySet()) {
+            //出库明细删除汇总循环
+            for (String delFromId : delOrderOutItemVOListMap.keySet()) {
+                //新建出库明细来源Id = 删除出库明细来源Id
+                if (fromId.equals(delFromId)) {
+                    //region  提取新建分组后的明细
+                    List<OutboundItemVO> orderOutItemVOListGroup = orderOutItemVOListMap.get(fromId);
+                    //分组后的明细 出库数量和金额总和
+                    BigDecimal orderSumQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+                    BigDecimal orderSumAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    //分组后的明细 原出库数量和金额总和
+                    BigDecimal updateOrderOutingQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+                    BigDecimal updateOrderOutingAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    //endregion
+
+                    //region 提取删除分组后的明细
+                    List<OutboundItemVO> delOrderOutItemVOListGroup = delOrderOutItemVOListMap.get(delFromId);
+                    BigDecimal orderDelOutingQty = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+                    BigDecimal orderDelOutingAmt = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    BigDecimal orderDelOutQty = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+                    BigDecimal orderDelOutAmt = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    //endregion
+
+                    //region 反写订单数据
+                    //根据id查询
+                    OrderResponse orderResponse = orderMapper.selectById(fromId);
+                    //赋值(这里重写了更新方法,数量在更新方法中有数据库院士数量+本次数量)
+                    Order order = new Order();
+                    order.setOrderId(fromId);
+                    order.setOutQty(orderSumQty.subtract(orderDelOutQty));
+                    order.setOutAmt(orderSumAmt.subtract(orderDelOutAmt));
+                    order.setOutingQty((updateOrderOutingQty.add(orderDelOutingQty)).negate());
+                    order.setOutingAmt((updateOrderOutingAmt.add(orderDelOutingAmt)).negate());
+                    //出库状态
+                    String orderOutStatus = this.setOutStatus(orderResponse.getOutingQty().subtract(orderSumQty).add(orderDelOutQty),
+                            orderResponse.getOutQty().add(order.getOutQty()), orderResponse.getSumQuantity());
+                    order.setOutStatus(orderOutStatus);
+                    //修改
+                    int countRow = orderMapper.updateById(order);
+                    //数量超出
+                    if (countRow == 0) {
+                        throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
+                    }
+                    //endregion
+                }
+            }
+        }
+    }
 
     /**
      * @desc : 销售出库撤销
@@ -1480,6 +1601,10 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         OutboundResponse outboundResponse = outboundMapper.selectById(outboundVO.getOutId());
         //endregion
 
+        //region根据总单id查明细
+        List<OutboundItemResponse> outboundItemResponseList = outboundItemMapper.selectByCond(new OutboundItemQuery().setOutId(outboundResponse.getOutId()));
+        //endregion
+
         //region    应收反记账
         if (outboundResponse.getReceivableId() != null) {
             accountService.reverseReceivable(outboundResponse.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
@@ -1487,28 +1612,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         //endregion
 
         //region 修改订单数据信息
-        if (outboundResponse.getFromId() != null) {
-            //赋值  (这里重写了更新方法,数量在更新方法中有数据库院士数量+本次数量)
-            Order order = new Order();
-            order.setOrderId(outboundResponse.getFromId());
-            order.setOutingQty(outboundResponse.getOutQty());
-            order.setOutingAmt(outboundResponse.getOutAmt());
-            order.setOutQty(outboundResponse.getOutQty().negate());
-            order.setOutAmt(outboundResponse.getOutAmt().negate());
-            //根据id查询
-            OrderResponse orderResponse = orderMapper.selectById(outboundResponse.getFromId());
-            //出库状态
-            String outStatus = this.setOutStatus(orderResponse.getOutingQty().add(order.getOutingQty()),
-                    orderResponse.getOutQty().add(order.getOutQty()), orderResponse.getSumQuantity());
-            order.setOutStatus(outStatus);
-            //修改
-            int countRow = orderMapper.updateById(order);
-            //数量超出
-            if (countRow == 0) {
-                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
-            }
-
-        }
+        this.updateOrderMessageByCancel(outboundItemResponseList);
         //endregion
 
         //region 修改总单数据信息
@@ -1528,8 +1632,6 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         //endregion
 
         //region 明细数据
-        //根据总单id查明细
-        List<OutboundItemResponse> outboundItemResponseList = outboundItemMapper.selectByCond(new OutboundItemQuery().setOutId(outboundResponse.getOutId()));
         for (OutboundItemResponse outboundItemResponse : outboundItemResponseList) {
             //region 修改销售订单明细数据信息
             if (outboundItemResponse.getFromItemId() != null) {
@@ -1596,16 +1698,59 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         //region   调用库存
         //筛选出skuId不为空的 走库存
         List<OutboundItemResponse> invList = outboundItemResponseList.stream().filter(it -> it.getSkuId() != null).collect(Collectors.toList());
-        if(invList!=null && invList.size()>0) {
+        if (invList != null && invList.size() > 0) {
             Map<String, Object> map = new HashMap<>();
             map.put("delOutDetail", invList);
             inventoryService.operatingInventoryInformation(map);
         }
         //endregion
+
         return ResponseResultUtil.success();
     }
 
     /**
+     * @desc : 撤销销售出库修改销售订单信息
+     * @date : 2024/6/21 16:00
+     * @author : 寇珊珊
+     */
+    @Transactional(rollbackFor = {Exception.class})
+    public void updateOrderMessageByCancel(List<OutboundItemResponse> itemList) {
+        //出库明细汇总
+        Map<String, List<OutboundItemResponse>> orderOutItemListMap = itemList.stream().collect(Collectors.groupingBy(OutboundItemResponse::getFromId));
+        //出库明细汇总循环
+        for (String fromId : orderOutItemListMap.keySet()) {
+
+            //region  提取新建分组后的明细
+            List<OutboundItemResponse> orderOutItemListGroup = orderOutItemListMap.get(fromId);
+            //分组后的明细 出库数量和金额总和
+            BigDecimal orderSumQty = orderOutItemListGroup.stream().map(OutboundItemResponse::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+            BigDecimal orderSumAmt = orderOutItemListGroup.stream().map(OutboundItemResponse::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+            //endregion
+
+            //region  反写订单数据
+            //根据id查询
+            OrderResponse orderResponse = orderMapper.selectById(fromId);
+            Order order = new Order();
+            order.setOrderId(fromId);
+            order.setOutingQty(orderSumQty);
+            order.setOutingAmt(orderSumAmt);
+            order.setOutQty(orderSumAmt.negate());
+            order.setOutAmt(orderSumAmt.negate());
+            //出库状态
+            String outStatus = this.setOutStatus(orderResponse.getOutingQty().add(order.getOutingQty()),
+                    orderResponse.getOutQty().add(order.getOutQty()), orderResponse.getSumQuantity());
+            order.setOutStatus(outStatus);
+            //修改
+            int countRow = orderMapper.updateById(order);
+            //数量超出
+            if (countRow == 0) {
+                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
+            }
+            //endregion
+        }
+    }
+
+    /**
      * @desc : 出库状态通用(目前本页面)
      * @date : 2024/3/9 8:59
      * @author : 寇珊珊
@@ -1632,7 +1777,6 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         return outStatus;
     }
 
-
     /**
      * @desc : 上游单据入库状态通用(目前本页面)
      * @date : 2024/4/1 17:14
@@ -1660,7 +1804,6 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         return outStatus;
     }
 
-
     /**
      * @desc : 获取单据信息(编辑用)
      * @date : 2024/3/16 16:28

+ 56 - 58
src/main/java/com/dk/mdm/service/ivt/outbound/OutboundSaleReturnService.java

@@ -107,68 +107,66 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
      */
     @Transactional(rollbackFor = {Exception.class})
     public void updatePrimaryTotal(OutboundVO outboundVO, Boolean posNegFlag) {
-        if (outboundVO.getFromId() != null) {
-            //region 原入库单
-            Map<String, List<OutboundItemVO>> outboundItemVOListOutPri = outboundVO.getItemList().stream().collect(Collectors.groupingBy(OutboundItemVO::getSOutId));
-            for (String str : outboundItemVOListOutPri.keySet()) {
-                List<OutboundItemVO> outboundItemList = outboundItemVOListOutPri.get(str);
-                //region 汇总退货数量 金额
-                BigDecimal returnSumQty = outboundItemList.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
-                BigDecimal returnSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
-                BigDecimal returnIngSumQty = outboundItemList.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
-                BigDecimal returnIngSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
-                //endregion
-                //查询原单
-                OutboundResponse outboundResponse = outboundMapper.selectById(str);
-                //校验数据
-                if (returnSumQty.add(returnIngSumQty).compareTo(outboundResponse.getOutQty()) > 0) {
-                    throw new BaseBusinessException(ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getCode(),
-                            ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getMessage());
-                }
-                Outbound outboundPri = new Outbound();
-                outboundPri.setOutId(str);
-                if (posNegFlag) {
-                    outboundPri.setReturnQty((returnSumQty.add(returnIngSumQty)).negate());
-                    outboundPri.setReturnAmt((returnSumAmt.add(returnIngSumAmt)).negate());
-                } else {
-                    outboundPri.setReturnQty(returnSumQty.add(returnIngSumQty));
-                    outboundPri.setReturnAmt(returnSumAmt.add(returnIngSumAmt));
-                }
-                outboundMapper.updateReturnMessage(outboundPri);
-            }
+        //region 原入库单
+        Map<String, List<OutboundItemVO>> outboundItemVOListOutPri = outboundVO.getItemList().stream().collect(Collectors.groupingBy(OutboundItemVO::getSOutId));
+        for (String str : outboundItemVOListOutPri.keySet()) {
+            List<OutboundItemVO> outboundItemList = outboundItemVOListOutPri.get(str);
+            //region 汇总退货数量 金额
+            BigDecimal returnSumQty = outboundItemList.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+            BigDecimal returnSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+            BigDecimal returnIngSumQty = outboundItemList.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+            BigDecimal returnIngSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
             //endregion
+            //查询原单
+            OutboundResponse outboundResponse = outboundMapper.selectById(str);
+            //校验数据
+            if (returnSumQty.add(returnIngSumQty).compareTo(outboundResponse.getOutQty()) > 0) {
+                throw new BaseBusinessException(ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getCode(),
+                        ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getMessage());
+            }
+            Outbound outboundPri = new Outbound();
+            outboundPri.setOutId(str);
+            if (posNegFlag) {
+                outboundPri.setReturnQty((returnSumQty.add(returnIngSumQty)).negate());
+                outboundPri.setReturnAmt((returnSumAmt.add(returnIngSumAmt)).negate());
+            } else {
+                outboundPri.setReturnQty(returnSumQty.add(returnIngSumQty));
+                outboundPri.setReturnAmt(returnSumAmt.add(returnIngSumAmt));
+            }
+            outboundMapper.updateReturnMessage(outboundPri);
+        }
+        //endregion
 
-            //region 原销售订单
-            Map<String, List<OutboundItemVO>> outboundItemVOListOrderPri = outboundVO.getItemList().stream().collect(Collectors.groupingBy(OutboundItemVO::getSOrderId));
-            for (String str : outboundItemVOListOrderPri.keySet()) {
-                List<OutboundItemVO> outboundItemList = outboundItemVOListOrderPri.get(str);
-                //region 汇总退货数量 金额
-                BigDecimal returnSumQty = outboundItemList.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
-                BigDecimal returnSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
-                BigDecimal returnIngSumQty = outboundItemList.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
-                BigDecimal returnIngSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+        //region 原销售订单
+        Map<String, List<OutboundItemVO>> outboundItemVOListOrderPri = outboundVO.getItemList().stream().collect(Collectors.groupingBy(OutboundItemVO::getSOrderId));
+        for (String str : outboundItemVOListOrderPri.keySet()) {
+            List<OutboundItemVO> outboundItemList = outboundItemVOListOrderPri.get(str);
+            //region 汇总退货数量 金额
+            BigDecimal returnSumQty = outboundItemList.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+            BigDecimal returnSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+            BigDecimal returnIngSumQty = outboundItemList.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+            BigDecimal returnIngSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
 
-                //endregion
-                //查询原单
-                OrderResponse orderResponse = orderMapper.selectById(str);
-                //校验数据
-                if (returnSumQty.add(returnIngSumQty).compareTo(orderResponse.getOutQty()) > 0) {
-                    throw new BaseBusinessException(ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getCode(),
-                            ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getMessage());
-                }
-                Order orderPri = new Order();
-                orderPri.setOrderId(str);
-                if (posNegFlag) {
-                    orderPri.setReturnQty((returnSumQty.add(returnIngSumQty)).negate());
-                    orderPri.setReturnAmt((returnSumAmt.add(returnIngSumAmt)).negate());
-                } else {
-                    orderPri.setReturnQty(returnSumQty.add(returnIngSumQty));
-                    orderPri.setReturnAmt(returnSumAmt.add(returnIngSumAmt));
-                }
-                orderMapper.updateReturnMessage(orderPri);
-            }
             //endregion
+            //查询原单
+            OrderResponse orderResponse = orderMapper.selectById(str);
+            //校验数据
+            if (returnSumQty.add(returnIngSumQty).compareTo(orderResponse.getOutQty()) > 0) {
+                throw new BaseBusinessException(ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getCode(),
+                        ErrorCodeEnum.OUTBOUND_ITEM_RETURN_QTY_ERROR.getMessage());
+            }
+            Order orderPri = new Order();
+            orderPri.setOrderId(str);
+            if (posNegFlag) {
+                orderPri.setReturnQty((returnSumQty.add(returnIngSumQty)).negate());
+                orderPri.setReturnAmt((returnSumAmt.add(returnIngSumAmt)).negate());
+            } else {
+                orderPri.setReturnQty(returnSumQty.add(returnIngSumQty));
+                orderPri.setReturnAmt(returnSumAmt.add(returnIngSumAmt));
+            }
+            orderMapper.updateReturnMessage(orderPri);
         }
+        //endregion
     }
 
     /**
@@ -305,7 +303,7 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
         //退款的时候 判断资金账户金额是否充足
         BigDecimal result = accountResponse.getReceipt().add(outboundVO.getSumAmtRec());//getSumAmtRec 退款是负值 所以相加
         if (result.compareTo(BigDecimal.ZERO) < 0) {
-            return ResponseResultUtil.error(ResponseCodeEnum.NOT_LESS_THAN_ZERO);
+            return ResponseResultUtil.error(ResponseCodeEnum.NOT_LESS_RECEIPT_ZERO);
         }
         //新建退货出库
         saleReturnOutboundInsert(outboundVO);

+ 17 - 1
src/main/java/com/dk/mdm/service/mst/StaffService.java

@@ -535,7 +535,9 @@ public class StaffService extends BaseService<Staff> {
                     gc.setOpCreateUserId(staffId);
                     listG.add(gc);
                 };
-                goodsCategoryMapper.insertBatch(listG);
+                if(listG != null && listG.size() > 0){
+                    goodsCategoryMapper.insertBatch(listG);
+                }
             }
             //执行函数
             goodsCategoryMapper.resetLevelGoodsCategory(new GoodsCategoryQuery());
@@ -929,4 +931,18 @@ public class StaffService extends BaseService<Staff> {
             return ResponseResultUtil.error(-200,"绑定员工不存在");
         }
     }
+
+    /**
+     * @desc   : 更新负责人标识
+     * @author : 刘尧
+     * @date   : 2024/6/21 16:24
+     */
+    public ResponseResultVO updateFlgInit(Map<String, Object> params) {
+        boolean updateBool = staffMapper.updateFlgInit(params);
+        if (updateBool){
+            updateBool = staffMapper.updateFlgInitById(String.valueOf(params.get("owner")));
+            return ResponseResultUtil.success(updateBool);
+        }
+        return ResponseResultUtil.error();
+    }
 }

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

@@ -452,7 +452,7 @@ public class OrderService extends BaseService<Order> {
             for (OrderItemVO orderItemVO : orderVO.getItemList()) {
                 orderItemVO.setOutingQty(orderItemVO.getItemQty());
                 orderItemVO.setOutingAmt(orderItemVO.getItemAmt());
-                orderItemVO.setPriceOut(orderItemVO.getPriceSale());
+                orderItemVO.setPriceOut(orderItemVO.getFactPrice());
                 orderItemVO.setFromId(orderVO.getOrderId());
                 orderItemVO.setFromItemId(orderItemVO.getItemId());
             }