于继渤 1 vuosi sitten
vanhempi
commit
e840f3d1be

+ 4 - 3
src/main/java/com/dk/mdm/mapper/ivt/InboundItemMapper.xml

@@ -556,9 +556,10 @@
         tpii.price_into,
         tpii.non_std_code,
         tpii.into_status,
-         sys.f_remove_zero(tpii.into_qty - tpii.return_qty)  AS can_return_qty,
-         sys.f_remove_zero(tpii.into_qty - tpii.return_qty)  AS intoing_qty,
-         tpii.price_into * (tpii.into_qty - tpii.return_qty)  as intoing_amt,
+      --   sys.f_remove_zero(tpii.into_qty - tpii.return_qty)  AS can_return_qty,
+        sys.f_remove_zero(COALESCE(tpsii.into_qty, 0) - COALESCE(tpsii.return_qty, 0) + tpii.intoing_qty + tpii.into_qty) as can_return_qty,
+        sys.f_remove_zero(tpii.intoing_qty + tpii.into_qty)               as intoing_qty,
+        sys.f_remove_zero(tpii.intoing_amt + tpii.into_amt)   as intoing_amt,
         sys.f_remove_zero ( tpii.into_qty ) AS into_qty,
         tpii.into_amt,
         sys.f_remove_zero ( tpii.return_qty ) AS return_qty,

+ 53 - 6
src/main/java/com/dk/mdm/mapper/ivt/InboundMapper.xml

@@ -606,8 +606,8 @@
         tpii.into_status AS list_into_status,
        - sys.f_remove_zero(tpii.into_qty - tpii.return_qty)                     as list_can_return_qty,
            - sys.f_remove_zero(tpii.into_qty - tpii.return_qty)                 as list_intoing_qty,
-           - t.price_pur * (tpii.into_qty - tpii.return_qty)  as list_intoing_amt,
-             t.price_pur                                         as list_price_into,
+           - tpii.price_into * (tpii.into_qty - tpii.return_qty)  as list_intoing_amt,
+             tpii.price_into                                         as list_price_into,
         sys.f_remove_zero(tpii.into_qty)  AS list_into_qty,
         tpii.into_amt AS list_into_amt,
         sys.f_remove_zero(tpii.return_qty) AS list_return_qty,
@@ -638,12 +638,57 @@
     <!-- 查询表t_psi_inbound,(条件查询+分页)列表 -->
     <select id="selectInboundAndItem" resultMap="BaseResultMapItemResponse">
         SELECT
-        <include refid="Base_Column_List_Item_Response"/>,
-        <include refid="Base_Column_List_Item_Response_Join"/>
+        tpi.into_id
+        , tpi.into_no, tpi.into_type, tpi.from_id, tpi.from_no, tpi.org_id, tpi.staff_id, tpi.cus_id, tpi.sup_id,
+        tpi.into_status, sys.f_remove_zero(tpi.intoing_qty) as intoing_qty, tpi.intoing_amt,
+        sys.f_remove_zero(tpi.into_qty) as into_qty, tpi.into_amt, sys.f_remove_zero(tpi.return_qty) as return_qty, tpi.return_amt, tpi.into_date,
+        tpi.remarks, tpi.annex_paths, tpi.make_staff, tpi.make_time,
+        tpi.receivable_id, tpi.flg_valid, tpi.cp_id,
+        tpii
+        .
+        item_id
+        AS list_item_id,
+        tpii.item_id  AS list_into_item_Id,
+        tpii.into_id AS list_into_id,
+        tpi.into_no AS list_into_no,
+        tpii.into_type AS list_into_type,
+        tpii.from_id AS list_from_id,
+        tpii.from_item_id AS list_from_item_id,
+        tpii.item_index AS list_item_index,
+        tpii.sku_id AS list_sku_id,
+        --         tpii.price_into AS list_price_into,
+        tpii.non_std_code AS list_non_std_code,
+        tpii.into_status AS list_into_status,
+        - sys.f_remove_zero(tpii.into_qty - tpii.return_qty)                     as list_can_return_qty,
+        - sys.f_remove_zero(tpii.into_qty - tpii.return_qty)                 as list_intoing_qty,
+        - tpii.price_into * (tpii.into_qty - tpii.return_qty)  as list_intoing_amt,
+        tpii.price_into                                         as list_price_into,
+        sys.f_remove_zero(tpii.into_qty)  AS list_into_qty,
+        tpii.into_amt AS list_into_amt,
+        sys.f_remove_zero(tpii.return_qty) AS list_return_qty,
+        tpii.return_amt AS list_return_amt,
+        tpii.remarks AS list_remarks,
+        tpii.inv_id AS list_inv_id,
+        tpii.cost_price AS list_cost_price,
+        tpii.cost_amt AS list_cost_amt,
+        sys.f_remove_zero(tpii.out_qty) AS list_out_qty,
+        sys.f_remove_zero(tpii.inv_qty) AS list_inv_qty,
+        tpii.flg_valid AS list_flg_valids,
+        tpii.cp_id AS list_cp_id,
+        tmgs.sku_code AS  list_sku_code,
+        tmgs.sku_name AS  list_sku_name,
+        tmgs.sku_model AS  list_sku_model,
+        tmgb.short_name AS  list_short_name,
+        tmgs.sku_images AS  list_sku_images,
+        tmgs.price_standard AS list_price_std,
+
+        i.inv_id  as list_inv_id,
+        i.wh_id as list_wh_id,
+        i.inv_qty    as list_inv_qty,
+        i.usable_qty  as list_usable_qty,
+        i.wh_name     as list_wh_name
         FROM dkic_b.t_psi_inbound  tpi
         left  join dkic_b.t_psi_inbound_item tpii  on tpi.into_id = tpii.into_id and  ( tpii.into_qty - tpii.return_qty) > 0
-
-        inner join dkic_b.t_psi_purchase_item as t on t.item_id = tpii.from_item_id
         left  join  dkic_b.t_mst_warehouse tmw on  tmw.wh_id =   tpii.wh_id
         inner join  dkic_b.t_mst_goods_sku  tmgs on tmgs.sku_id = tpii.sku_id
         left join  dkic_b.t_mst_goods_brand  tmgb on tmgb.brand_id = tmgs.brand_id
@@ -682,6 +727,8 @@
     </select>
 
 
+
+
     <update id="updateAmount" parameterType="com.dk.mdm.model.pojo.ivt.InboundItem">
         update dkic_b.t_psi_inbound
         <set>

+ 5 - 1
src/main/java/com/dk/mdm/model/vo/ivt/InboundVO.java

@@ -7,6 +7,7 @@ import com.dk.common.infrastructure.handler.TimestampTypeHandler;
 import com.dk.common.infrastructure.handler.UuidTypeHandler;
 import com.dk.common.model.vo.AnnexVO;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
@@ -257,7 +258,10 @@ public class InboundVO {
     @ApiModelProperty(value = "修改采购总单的合金金额和采购明细的入库单价和入库金额标识;true:改,false:不改")
     private Boolean updatePurchaseOrderFlag;
 
-
+    @ApiModelProperty(value = "源采购订单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    @JsonProperty(value = "sPurId")
+    private String sPurId;
 
     private static final long serialVersionUID = 1L;
 

+ 29 - 59
src/main/java/com/dk/mdm/service/ivt/InboundReturnService.java

@@ -123,85 +123,55 @@ public class InboundReturnService extends BaseService<Inbound> {
             //返回 采购退货明细不可为空,请重新操作
             return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.PURCHASE_RETURN_DETAIL_NOT_EXIST.getMessage());
         }
-        inboundVO.setReturnQty(inboundVO.getReturnQty().abs());
-        inboundVO.setReturnAmt(inboundVO.getReturnAmt().abs());
-        if (inboundVO.getFromId() != null) {
-            //查询采购订单
-            PurchaseResponse purchaseResponse = purchaseMapper.selectById(inboundVO.getFromId()); //采购订单id
 
+        //查询采购订单
+        PurchaseResponse purchaseResponse = purchaseMapper.selectById(inboundVO.getSPurId());
 
-            //反写采购订单已入库退货数量、金额
-            purchaseMapper.updateAmount(new Purchase().setPurId(inboundVO.getFromId())
+        if(purchaseResponse != null){
+            //反写采购订单退货数量、金额
+            purchaseMapper.updateAmount(new Purchase().setPurId(inboundVO.getSPurId())
                     .setReturnQty(purchaseResponse.getReturnQty().add(inboundVO.getReturnQty()))
                     .setReturnAmt(purchaseResponse.getReturnAmt().add(inboundVO.getReturnAmt()))
             );
         }
 
+        //反写入库单退货数量金额
+        InboundResponse inboundResponse = inboundMapper.selectById(inboundVO.getFromId());
+        if(inboundResponse != null){
+            inboundMapper.updateAmount(new Inbound().setIntoId(inboundVO.getFromId())
+                    .setReturnQty(inboundResponse.getReturnQty().add(inboundVO.getReturnQty()))
+                    .setReturnAmt(inboundResponse.getReturnAmt().add(inboundVO.getReturnAmt())));
+        }
+
 
         //反写入库订单明细、反写订单明细
         for (InboundItemVO inboundItemVO : itemList) {
-
-            inboundItemVO.setReturnQty(inboundItemVO.getReturnQty().abs());
-            inboundItemVO.setReturnAmt(inboundItemVO.getReturnAmt().abs());
-            if (inboundItemVO.getItemId() != null) {
-                //根据退货明细中入库明细id查询入库明细数据
-                InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId()); //原入库单明细id
-                BigDecimal returnQty = inboundItemResponse.getReturnQty().add(inboundItemVO.getReturnQty().setScale(6, BigDecimal.ROUND_HALF_UP));
-                BigDecimal returnAmt = inboundItemResponse.getReturnAmt().add(inboundItemVO.getReturnAmt().setScale(6, BigDecimal.ROUND_HALF_UP));
-
-                //反写入库单退货数量金额
-                InboundResponse inboundResponse = inboundMapper.selectById(inboundItemVO.getIntoId()); //原入库单id
-                inboundMapper.updateAmount(new Inbound().setIntoId(inboundItemVO.getIntoId())
-                        .setReturnQty(inboundResponse.getReturnQty().add(returnQty))
-                        .setReturnAmt(inboundResponse.getReturnAmt().add(returnAmt)));
-                inboundItemMapper.updateAmount(
-                        new InboundItem()
-                                .setItemId(inboundItemResponse.getItemId())
-                                .setReturnQty(returnQty)
-                                .setReturnAmt(returnAmt)
-                );
-            }
-            if (inboundItemVO.getFromItemId() != null) {
-                //反写订单出库明细 退货数量和退货金额
-                //查询采购订单明细数据
-                PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getFromItemId());
+            //查询采购订单明细数据
+            PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getSPurItemId());
+            if(purchaseItemResponse != null){
                 //反写订单明细退货数量和退货金额
                 purchaseItemMapper.updateAmount(
                         new PurchaseItem()
-                                .setItemId(inboundItemVO.getFromItemId())
+                                .setItemId(inboundItemVO.getSPurItemId())
                                 .setReturnQty(purchaseItemResponse.getReturnQty().add(inboundItemVO.getReturnQty().setScale(6, BigDecimal.ROUND_HALF_UP)))
                                 .setReturnAmt(purchaseItemResponse.getReturnAmt().add(inboundItemVO.getReturnAmt().setScale(6, BigDecimal.ROUND_HALF_UP)))
+
                 );
             }
 
-        }
-        inboundVO.setIntoingQty(inboundVO.getReturnQty().multiply(new BigDecimal(-1)));
-        inboundVO.setIntoingAmt(inboundVO.getReturnAmt().multiply(new BigDecimal(-1)));
-        List<InboundItemVO> list = new ArrayList<>();
-        for (InboundItemVO inboundItemVO : inboundVO.getItemList()) {
-            //源入库单ID(采购退货时记录)
-            inboundItemVO.setSIntoId(inboundItemVO.getIntoId());
-            //源入库单明细ID(采购退货时记录)
-            inboundItemVO.setSIntoItemId(inboundItemVO.getItemId());
-            //源采购订单ID(采购退货时记录)
-            inboundItemVO.setSPurId(inboundItemVO.getFromId());
-            //源采购明细ID(采购退货时记录)
-            inboundItemVO.setSPurItemId(inboundItemVO.getFromItemId());
-            inboundItemVO.setIntoingQty(inboundItemVO.getReturnQty());
-            inboundItemVO.setIntoingAmt(inboundItemVO.getReturnAmt());
-            inboundItemVO.setPriceInto(inboundItemVO.getPriceInto().abs());
-            inboundItemVO.setFromItemId(inboundItemVO.getItemId());
-            inboundItemVO.setSkuId(inboundItemVO.getSkuId());
-            inboundItemVO.setItemIndex(inboundItemVO.getItemIndex());
-            inboundItemVO.setNonStdCode(inboundItemVO.getNonStdCode());
-            inboundItemVO.setReturnQty(inboundItemVO.getReturnQty().multiply(new BigDecimal(-1)));
-            inboundItemVO.setReturnAmt(inboundItemVO.getReturnAmt().multiply(new BigDecimal(-1)));
 
-            inboundItemVO.setItemId(null);
-            list.add(inboundItemVO);
-        }
+            //根据退货明细中入库明细id查询入库明细数据
+            InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getSIntoItemId());
+            if(purchaseItemResponse != null){
+                inboundItemMapper.updateAmount(
+                        new InboundItem()
+                                .setItemId(inboundItemVO.getSIntoItemId())
+                                .setReturnQty(inboundItemResponse.getReturnQty().add(inboundItemVO.getReturnQty().setScale(6, BigDecimal.ROUND_HALF_UP)))
+                                .setReturnAmt(inboundItemResponse.getReturnAmt().add(inboundItemVO.getReturnAmt().setScale(6, BigDecimal.ROUND_HALF_UP)))
+                );
+            }
 
-        inboundVO.setItemList(list);
+        }
         inboundPurchaseReturnService.purchaseReturnInboundInsert(inboundVO);
         return ResponseResultUtil.success();
     }