于继渤 1 год назад
Родитель
Сommit
e18779fb91

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

@@ -757,12 +757,15 @@
         'intoId', A."intoId",
         'outId', A."outId",
         'invId', A."invId",
+        'intoType', A."intoType",
+        'outType', A."outType",
         'fromId', A."fromId",
         'fromItemId', A."fromItemId",
         'skuModel', A."skuModel",
         'skuName', A."skuName",
         'skuId', A."skuId",
         'intoQty', A."intoQty",
+        'outQty', A."outQty",
         'costPrice', A."costPrice",
         'costAmt', A."costAmt",
         'brandId', A."brandId",
@@ -787,9 +790,12 @@
         tpii.into_id AS "intoId",
         NULL AS "outId",
         tpii.inv_id AS "invId",
+        null AS "outType",
+        tpii.into_type AS "intoType",
         tpii.from_id AS "fromId",
         tpii.from_item_id AS "fromItemId",
-        tpii.into_qty AS "intoQty"
+        tpii.into_qty AS "intoQty",
+        null  AS "outQty"
         FROM
         dkic_b.t_psi_inbound_item tpii
         LEFT JOIN dkic_b.t_psi_inbound tpi ON tpi.into_id = tpii.into_id
@@ -852,9 +858,12 @@
         NULL AS "intoId",
         tpoi.out_id AS "outId",
         tpoi.inv_id AS "invId",
+        tpoi.out_type AS "outType",
+        null AS "intoType",
         tpoi.from_id AS "fromId",
         tpoi.from_item_id AS "fromItemId",
-        tpoi.out_qty AS "intoQty"
+        null AS "intoQty",
+        tpoi.out_qty AS "outQty"
         FROM
         dkic_b.t_psi_outbound_item tpoi
         LEFT JOIN dkic_b.t_psi_outbound tpo ON tpo.out_id = tpoi.out_id

+ 4 - 0
src/main/java/com/dk/mdm/model/query/ivt/InboundItemQuery.java

@@ -50,6 +50,10 @@ public class InboundItemQuery extends PageInfo<InboundItemQuery>  {
     private String intoType;
 
 
+    @ApiModelProperty(value = "除库类型 (【系统字典】采购入库、销退入库、其他入库)")
+    private String outType;
+
+
     /**
      * 来源单ID (采购订单、出库退货)
      */

+ 52 - 35
src/main/java/com/dk/mdm/service/ivt/inbound/InboundItemService.java

@@ -16,10 +16,7 @@ import com.dk.mdm.model.query.ivt.InboundItemQuery;
 import com.dk.mdm.model.query.ivt.InventoryBatchQuery;
 import com.dk.mdm.model.query.ivt.OutboundItemCostQuery;
 import com.dk.mdm.model.query.ivt.OutboundItemQuery;
-import com.dk.mdm.model.response.ivt.InboundItemResponse;
-import com.dk.mdm.model.response.ivt.InventoryBatchResponse;
-import com.dk.mdm.model.response.ivt.InventoryResponse;
-import com.dk.mdm.model.response.ivt.OutboundItemCostResponse;
+import com.dk.mdm.model.response.ivt.*;
 import com.dk.mdm.model.vo.ivt.InboundItemVO;
 import com.dk.mdm.model.vo.ivt.InboundVO;
 import com.dk.mdm.service.common.CommonService;
@@ -123,40 +120,60 @@ public class InboundItemService extends BaseService<InboundItem> {
 	@Transactional(rollbackFor = {Exception.class})
 	public ResponseResultVO<?> CostCheckOk(List<InboundItemQuery> inboundItemQuery) {
 		for(InboundItemQuery inboundItem : inboundItemQuery){
-			//修改入库明细表
-			if(inboundItem.getOutId() != null){
-				//修改出库明细表
-				OutboundItemQuery outboundItemQuery = new OutboundItemQuery()
-						.setItemId(inboundItem.getItemId())
-						.setCostPrice(inboundItem.getCostPrice())
-						.setCostAmt(inboundItem.getCostAmt());
-				outboundItemMapper.updateOutCost(outboundItemQuery);
-			}else{
-				InboundItem inboundItem1 = new InboundItem()
-						.setItemId(inboundItem.getItemId())
-						.setCostPrice(inboundItem.getCostPrice())
-						.setCostAmt(inboundItem.getCostAmt());
-				inboundItemMapper.updateCost(inboundItem1);
-			}
+			//判断是否是入库单
+			if(inboundItem.getIntoId() != null){
+                //修改当前入库单
+                inboundItemMapper.updateCost(new InboundItem()
+                        .setItemId(inboundItem.getItemId())
+                        .setCostPrice(inboundItem.getCostPrice())
+                        .setCostAmt(inboundItem.getCostAmt()));
+
+
+                //查询关联的单据
+                // 1 获取 订单明细的ID  2.查询出当前 入库单关联的出库单
+                List<OutboundItemResponse> outboundItemResponses = outboundItemMapper.selectByCond(new OutboundItemQuery().setFromItemId(inboundItem.getFromItemId()));
+                if(outboundItemResponses!=null && outboundItemResponses.size() > 0){
+                    //修改回库信息
+                    outboundItemMapper.updateOutOrderCost(new OutboundItemQuery()
+                            .setFromItemId(outboundItemResponses.get(0).getItemId())
+                            .setCostPrice(inboundItem.getCostPrice())
+                            .setCostAmt(inboundItem.getCostAmt().multiply(new BigDecimal(-1))));
+                }
 
-			//修改销售订单
-			if(inboundItem.getFromItemId() != null){
-				OrderItem orderItem = new OrderItem()
-						.setItemId(inboundItem.getFromItemId())
-						.setCostPrice(inboundItem.getCostPrice())
-						.setCostAmt(inboundItem.getCostAmt());
-				orderItemMapper.updateCost(orderItem);
 			}
+            //修改出库明细表
+            if(inboundItem.getOutId() != null){
+                outboundItemMapper.updateOutCost(new OutboundItemQuery()
+                        .setItemId(inboundItem.getItemId())
+                        .setCostPrice(inboundItem.getCostPrice())
+                        .setCostAmt(inboundItem.getCostAmt()));
+            }
+
+            // 入库明细出口明细的来源单明细id都是订单明细   并且 不是销售回库  修改销售订单成本
+            if(inboundItem.getFromItemId() != null){
+                orderItemMapper.updateCost(new OrderItem()
+                        .setItemId(inboundItem.getFromItemId())
+                        .setCostPrice(inboundItem.getCostPrice())
+                        .setCostAmt(inboundItem.getCostAmt()));
+            }
+            //入库单   外协入库类型
+            if(inboundItem.getIntoType() !=null && inboundItem.getIntoType().equals(Constant.IntoType.OUTSOURCED) || inboundItem.getSkuId() == null){
+                //修改出库明细表
+                outboundItemMapper.updateOutOrderCost( new OutboundItemQuery()
+                        .setFromItemId(inboundItem.getFromItemId())
+                        .setCostPrice(inboundItem.getCostPrice())
+                        .setCostAmt(inboundItem.getCostAmt()));
+
+            }
+
+            if(inboundItem.getOutType()!=null && inboundItem.getOutType().equals(Constant.OutType.SALE_RETURN)){
+                //修改 销售回库 的出库信息
+                outboundItemMapper.updateOutOrderCost(new OutboundItemQuery()
+                        .setFromItemId(inboundItem.getItemId())
+                        .setCostPrice(inboundItem.getCostPrice())
+                        .setCostAmt(inboundItem.getCostAmt().multiply(new BigDecimal(-1))));
+            }
 
-			//判断是否是入库的外协品
-			if(inboundItem.getSkuId() == null && inboundItem.getOutId() == null){
-				//修改出库明细表
-				OutboundItemQuery outboundItemQuery = new OutboundItemQuery()
-						.setFromItemId(inboundItem.getFromItemId())
-						.setCostPrice(inboundItem.getCostPrice())
-						.setCostAmt(inboundItem.getCostAmt());
-				outboundItemMapper.updateOutOrderCost(outboundItemQuery);
-			}
 
 			//查询存货批次明细
 			InventoryBatchResponse inventoryBatchResponse =