Przeglądaj źródła

销售订单-》销售出库编辑外协

koushanshan 1 rok temu
rodzic
commit
644ce902dc

+ 1 - 1
src/main/java/com/dk/mdm/mapper/ivt/InboundMapper.java

@@ -115,7 +115,7 @@ public interface InboundMapper extends BaseMapper<Inbound>{
      * @date   : 2024/3/9 9:14
      * @date   : 2024/3/9 9:14
      * @author : 寇珊珊
      * @author : 寇珊珊
      */
      */
-    InboundResponse selectByFromId(@Param("fromId") String fromId);
+    InboundResponse selectByFromId(InboundQuery inboundQuery);
 
 
     /**
     /**
      * @desc   : 根据来源id删除单据
      * @desc   : 根据来源id删除单据

+ 3 - 0
src/main/java/com/dk/mdm/mapper/ivt/InboundMapper.xml

@@ -1429,6 +1429,9 @@
         FROM dkic_b.t_psi_inbound tpi
         FROM dkic_b.t_psi_inbound tpi
         WHERE tpi.from_id = #{fromId}::uuid
         WHERE tpi.from_id = #{fromId}::uuid
         and tpi.flg_valid
         and tpi.flg_valid
+        <if test="intoId != null and intoId != ''">
+            and tpi.into_id = #{intoId}::uuid
+        </if>
     </select>
     </select>
 
 
 
 

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

@@ -347,6 +347,11 @@ public class OutboundItemVO {
     @ApiModelProperty(value = "库存反写销售订单成本相关字段----销售出库专用")
     @ApiModelProperty(value = "库存反写销售订单成本相关字段----销售出库专用")
     private String invOrderItemId;
     private String invOrderItemId;
 
 
+    @ApiModelProperty(value = "入库单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String intoId;
+
+
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 
 }
 }

+ 5 - 0
src/main/java/com/dk/mdm/model/vo/sale/OrderItemVO.java

@@ -330,6 +330,11 @@ public class OrderItemVO extends PageInfo<OrderItemVO> implements Serializable {
     @ApiModelProperty(value = "原非标号")
     @ApiModelProperty(value = "原非标号")
     private String nonStdCodePri;
     private String nonStdCodePri;
 
 
+    @ApiModelProperty(value = "入库单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String intoId;
+
+
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 
 }
 }

+ 2 - 1
src/main/java/com/dk/mdm/service/ivt/inbound/InboundCheckService.java

@@ -18,6 +18,7 @@ import com.dk.mdm.mapper.ivt.InboundMapper;
 import com.dk.mdm.model.pojo.ivt.Inbound;
 import com.dk.mdm.model.pojo.ivt.Inbound;
 import com.dk.mdm.model.pojo.ivt.InboundItem;
 import com.dk.mdm.model.pojo.ivt.InboundItem;
 import com.dk.mdm.model.query.ivt.InboundItemQuery;
 import com.dk.mdm.model.query.ivt.InboundItemQuery;
+import com.dk.mdm.model.query.ivt.InboundQuery;
 import com.dk.mdm.model.response.ivt.InboundItemResponse;
 import com.dk.mdm.model.response.ivt.InboundItemResponse;
 import com.dk.mdm.model.response.ivt.InboundResponse;
 import com.dk.mdm.model.response.ivt.InboundResponse;
 import com.dk.mdm.model.vo.ivt.InboundItemVO;
 import com.dk.mdm.model.vo.ivt.InboundItemVO;
@@ -230,7 +231,7 @@ public class InboundCheckService extends BaseService<Inbound> {
     public ResponseResultVO<?> inboundRepeal(String fromId) {
     public ResponseResultVO<?> inboundRepeal(String fromId) {
         //region  查询总单  查询明细
         //region  查询总单  查询明细
         //根据来源id查询 此条入库单的数据还未更改前的数据
         //根据来源id查询 此条入库单的数据还未更改前的数据
-        InboundResponse inboundResponse = inboundMapper.selectByFromId(fromId);
+        InboundResponse inboundResponse = inboundMapper.selectByFromId(new InboundQuery().setFromId(fromId));
         //根据总单id查询
         //根据总单id查询
         List<InboundItemResponse> inboundItemResponseList = inboundItemMapper.selectByCond(new InboundItemQuery().setIntoId(inboundResponse.getIntoId()));
         List<InboundItemResponse> inboundItemResponseList = inboundItemMapper.selectByCond(new InboundItemQuery().setIntoId(inboundResponse.getIntoId()));
         //endregion
         //endregion

+ 27 - 19
src/main/java/com/dk/mdm/service/ivt/outbound/OutboundSaleOrderService.java

@@ -25,10 +25,7 @@ import com.dk.mdm.model.pojo.ivt.Outbound;
 import com.dk.mdm.model.pojo.ivt.OutboundItem;
 import com.dk.mdm.model.pojo.ivt.OutboundItem;
 import com.dk.mdm.model.pojo.sale.Order;
 import com.dk.mdm.model.pojo.sale.Order;
 import com.dk.mdm.model.pojo.sale.OrderItem;
 import com.dk.mdm.model.pojo.sale.OrderItem;
-import com.dk.mdm.model.query.ivt.InboundItemQuery;
-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.ivt.*;
 import com.dk.mdm.model.response.ivt.InboundResponse;
 import com.dk.mdm.model.response.ivt.InboundResponse;
 import com.dk.mdm.model.response.ivt.InventoryResponse;
 import com.dk.mdm.model.response.ivt.InventoryResponse;
 import com.dk.mdm.model.response.ivt.OutboundItemResponse;
 import com.dk.mdm.model.response.ivt.OutboundItemResponse;
@@ -264,7 +261,8 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
             //根据出库单id分组
             //根据出库单id分组
             Map<String, List<OutboundItemVO>> outboundItemVOMap = outboundItemVOList.stream().collect(Collectors.groupingBy(OutboundItemVO::getFromId));
             Map<String, List<OutboundItemVO>> outboundItemVOMap = outboundItemVOList.stream().collect(Collectors.groupingBy(OutboundItemVO::getFromId));
             for (String str : outboundItemVOMap.keySet()) {
             for (String str : outboundItemVOMap.keySet()) {
-                InboundResponse inboundResponse = inboundMapper.selectByFromId(str);
+                List<OutboundItemVO> outboundItemVOListGroup = outboundItemVOMap.get(str);
+                InboundResponse inboundResponse = inboundMapper.selectByFromId(new InboundQuery().setFromId(str).setIntoId(outboundItemVOListGroup.get(0).getIntoId()));
                 // 退账
                 // 退账
                 if (inboundResponse != null && inboundResponse.getReceivableId() != null) {
                 if (inboundResponse != null && inboundResponse.getReceivableId() != null) {
                     accountService.reversePayable(inboundResponse.getIntoId(), Constant.InventoryDocCode.INTOBOUND.getTableName());
                     accountService.reversePayable(inboundResponse.getIntoId(), Constant.InventoryDocCode.INTOBOUND.getTableName());
@@ -587,14 +585,24 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
         if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
             //region 外协品新建外协入库单
             //region 外协品新建外协入库单
             //筛选出skuId为空的 走外协品逻辑
             //筛选出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());
+            if(outboundVO.getItemList()!=null  && outboundVO.getItemList().size()>0){
+                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());
+                }
+                //新建外协品生产外协入库单
+                this.insertOutsideGoodsInto(outboundVO, outsideGoods);
             }
             }
-            //删除外协品生产外协入库单
-            this.deleteOutsideGoodsInto(outboundVO, outsideGoods);
-            //新建外协品生产外协入库单
-            this.insertOutsideGoodsInto(outboundVO, outsideGoods);
+            if(outboundVO.getDeleteItemList()!=null  && outboundVO.getDeleteItemList().size()>0){
+                List<OutboundItemVO> delOutsideGoods = outboundVO.getDeleteItemList().stream().filter(it -> it.getSkuId() == null).collect(Collectors.toList());
+                for (int i = 0; i < delOutsideGoods.size(); i++) {
+                    delOutsideGoods.get(i).setPriceOut(delOutsideGoods.get(i).getCostPrice() == null ? BigDecimal.ZERO : delOutsideGoods.get(i).getCostPrice());
+                }
+                //删除外协品生产外协入库单
+                this.deleteOutsideGoodsInto(outboundVO, delOutsideGoods);
+            }
+
+
             //endregion
             //endregion
 
 
             //region 库存
             //region 库存
@@ -887,18 +895,18 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                 accountService.accReceivable(outboundResponse.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
                 accountService.accReceivable(outboundResponse.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
                 //endregion
                 //endregion
 
 
-                //region 外协品新建外协入库单
+                //region 外协品新建/删除 外协入库单
                 //筛选出skuId为空的 走外协品逻辑
                 //筛选出skuId为空的 走外协品逻辑
-                List<OutboundItemVO> outsideGoods = outboundVO.getItemList().stream().filter(it -> it.getSkuId() == null).collect(Collectors.toList());
-                //删除外协品生产外协入库单
-                this.deleteOutsideGoodsInto(outboundVO, outsideGoods);
-                //新建外协品生产外协入库单
-                this.insertOutsideGoodsInto(outboundVO, outsideGoods);
-                if (outboundVO.getDeleteItemList() != null) {
+                if (outboundVO.getDeleteItemList() != null && outboundVO.getDeleteItemList().size() > 0) {
                     List<OutboundItemVO> delOutsideGoods = outboundVO.getDeleteItemList().stream().filter(it -> it.getSkuId() == null).collect(Collectors.toList());
                     List<OutboundItemVO> delOutsideGoods = outboundVO.getDeleteItemList().stream().filter(it -> it.getSkuId() == null).collect(Collectors.toList());
                     //删除外协品生产外协入库单
                     //删除外协品生产外协入库单
                     this.deleteOutsideGoodsInto(outboundVO, delOutsideGoods);
                     this.deleteOutsideGoodsInto(outboundVO, delOutsideGoods);
                 }
                 }
+                if (outboundVO.getItemList() != null && outboundVO.getItemList().size() > 0) {
+                    List<OutboundItemVO> outsideGoods = outboundVO.getItemList().stream().filter(it -> it.getSkuId() == null).collect(Collectors.toList());
+                    //新建外协品生产外协入库单
+                    this.insertOutsideGoodsInto(outboundVO, outsideGoods);
+                }
                 //endregion
                 //endregion
 
 
                 //region 修改库存
                 //region 修改库存