Kaynağa Gözat

退货相关

于继渤 2 yıl önce
ebeveyn
işleme
eeb99816e9

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

@@ -9,6 +9,8 @@ import org.springframework.stereotype.Repository;
 */
 @Repository
 public interface InboundItemMapper extends BaseMapper<InboundItem>{
+
+    int  updateAmount(InboundItem inboundItem);
 	
 }
 

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

@@ -252,4 +252,17 @@
             )
         </foreach>
     </insert>
+
+    <update id="updateAmount" parameterType="com.dk.mdm.model.pojo.ivt.InboundItem">
+        update dkic_b.t_psi_inbound_item
+        <set>
+            <if test="returnQty!= null">
+                return_qty= #{returnQty},
+            </if>
+            <if test="returnAmt!= null">
+                return_amt = #{returnAmt},
+            </if>
+        </set>
+        where item_id = #{itemId}::uuid
+    </update>
 </mapper>

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

@@ -2,6 +2,7 @@ package com.dk.mdm.mapper.ivt;
 
 import com.dk.mdm.model.pojo.ivt.Inbound;
 import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.pojo.ivt.InboundItem;
 import com.dk.mdm.model.query.ivt.InboundQuery;
 import com.dk.mdm.model.response.mst.DictionaryDataResponse;
 import org.springframework.stereotype.Repository;
@@ -29,6 +30,8 @@ public interface InboundMapper extends BaseMapper<Inbound>{
      * @date : 2024/2/26 10:36
      */
     Long selectInboundAndItemCountByCond(InboundQuery inboundQuery);
-	
+
+
+    int  updateAmount(Inbound inbound);
 }
 

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

@@ -10,7 +10,7 @@
     </sql>
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.dk.mdm.model.response.ivt.InboundResponse">
+    <resultMap id="BaseResultMap" type="com.dk.mdm.model.pojo.ivt.Inbound">
         <id column="into_id" property="intoId"/>
         <result column="into_no" property="intoNo"/>
         <result column="into_type" property="intoType"/>
@@ -475,4 +475,18 @@
         FROM dkic_b.t_psi_inbound tpi
         <include refid="Condition_Join"/>
     </select>
+
+
+    <update id="updateAmount" parameterType="com.dk.mdm.model.pojo.ivt.InboundItem">
+        update dkic_b.t_psi_inbound
+        <set>
+            <if test="returnQty!= null">
+                return_qty= #{returnQty},
+            </if>
+            <if test="returnAmt!= null">
+                return_amt = #{returnAmt},
+            </if>
+        </set>
+        where into_id = #{intoId}::uuid
+    </update>
 </mapper>

+ 3 - 0
src/main/java/com/dk/mdm/mapper/pur/PurchaseItemMapper.java

@@ -1,5 +1,6 @@
 package com.dk.mdm.mapper.pur;
 
+import com.dk.mdm.model.pojo.ivt.InboundItem;
 import com.dk.mdm.model.pojo.pur.PurchaseItem;
 import com.dk.common.mapper.BaseMapper;
 import com.dk.mdm.model.query.pur.PurchaseItemQuery;
@@ -31,5 +32,7 @@ public interface PurchaseItemMapper extends BaseMapper<PurchaseItem>{
     int deleteById(@Param("id") String id);
     PurchaseItemResponse selectById(@Param("itemId") String id);
 
+    int  updateAmount(PurchaseItem purchaseItem);
+
 }
 

+ 14 - 0
src/main/java/com/dk/mdm/mapper/pur/PurchaseItemMapper.xml

@@ -306,4 +306,18 @@
         DELETE FROM dkic_b.t_psi_purchase_item
         WHERE item_id = #{id}::UUID;
     </delete>
+
+
+    <update id="updateAmount" parameterType="com.dk.mdm.model.pojo.pur.PurchaseItem">
+        update dkic_b.t_psi_purchase_item
+        <set>
+            <if test="returnQty!= null">
+                return_qty= #{returnQty},
+            </if>
+            <if test="returnAmt!= null">
+                return_amt = #{returnAmt},
+            </if>
+        </set>
+        where item_id = #{itemId}::uuid
+    </update>
 </mapper>

+ 83 - 18
src/main/java/com/dk/mdm/service/ivt/IntoReturnService.java

@@ -10,8 +10,12 @@ import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.infrastructure.convert.ivt.IntoReturnConvert;
 import com.dk.mdm.infrastructure.convert.ivt.IntoReturnItemConvert;
 import com.dk.mdm.infrastructure.util.AuthUtils;
+import com.dk.mdm.mapper.ivt.InboundItemMapper;
+import com.dk.mdm.mapper.ivt.InboundMapper;
 import com.dk.mdm.mapper.pur.PurchaseItemMapper;
 import com.dk.mdm.mapper.pur.PurchaseMapper;
+import com.dk.mdm.model.pojo.ivt.Inbound;
+import com.dk.mdm.model.pojo.ivt.InboundItem;
 import com.dk.mdm.model.pojo.ivt.IntoReturn;
 import com.dk.mdm.mapper.ivt.IntoReturnMapper;
 import com.dk.common.service.BaseService;
@@ -25,6 +29,7 @@ import com.dk.mdm.model.response.pur.PurchaseItemResponse;
 import com.dk.mdm.model.response.pur.PurchaseResponse;
 import com.dk.mdm.model.vo.ivt.IntoReturnItemVO;
 import com.dk.mdm.model.vo.ivt.IntoReturnVO;
+import com.dk.mdm.model.vo.ivt.OutboundItemVO;
 import com.dk.mdm.model.vo.ivt.OutboundVO;
 import com.dk.mdm.service.common.CommonService;
 import org.springframework.stereotype.Service;
@@ -33,6 +38,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -71,6 +77,16 @@ public class IntoReturnService extends BaseService<IntoReturn> {
 
     @Autowired
     private OutboundService outboundService;
+
+    @Autowired
+    private InboundService inboundService;
+
+    @Autowired
+    private InboundMapper inboundMapper;
+
+    @Autowired
+    private InboundItemMapper inboundItemMapper;
+
     /**
      * @desc : 查询
      * @author : 于继渤
@@ -102,25 +118,75 @@ public class IntoReturnService extends BaseService<IntoReturn> {
         //设置明细
         intoReturnItemVOList = this.insertDetail(intoReturnVO, intoReturnItemVOList);
 
-        //新建出库单
-        OutboundVO outboundVO = new OutboundVO();
-        //来源ID
-        outboundVO.setFromId(intoReturnVO.getReturnId());
-        //来源单号
-        outboundVO.setFromNo(intoReturnVO.getReturnNo());
-        //部门
-        outboundVO.setOrgId(intoReturnVO.getOrgId());
-        //员工
-        outboundVO.setStaffId(intoReturnVO.getStaffId());
-        //供应商
-        outboundVO.setSupId(intoReturnVO.getSupId());
-        //出库状态
-        outboundVO.setOutStatus("出库状态-出库中");
-        outboundService.insert(outboundVO);
+        //反写入库单 反写退货数量金额
+        Inbound inbound = inboundMapper.selectById(intoReturnVO.getIntoId());
+        inboundMapper.updateAmount(new Inbound().setIntoId(intoReturnVO.getIntoId())
+                .setReturnQty(inbound.getReturnQty().add(intoReturnVO.getSumQuantity()))
+                .setReturnAmt(inbound.getReturnAmt().add(intoReturnVO.getSumAmount())));
+
+
+        //反写入库订单明细、反写订单明细
+        for (IntoReturnItemVO intoReturnItemVO : intoReturnItemVOList) {
+
+            //根据退货明细中入库明细id查询入库明细数据
+            InboundItem inboundItem = inboundItemMapper.selectById(intoReturnItemVO.getIntoItemId());
+            inboundItemMapper.updateAmount(
+                    new InboundItem()
+                    .setItemId(inboundItem.getItemId())
+                    .setReturnQty(inboundItem.getReturnQty().add(intoReturnItemVO.getItemQty().setScale(6, BigDecimal.ROUND_HALF_UP)))
+                    .setReturnAmt(inboundItem.getReturnAmt().add(intoReturnItemVO.getItemAmt().setScale(6, BigDecimal.ROUND_HALF_UP)))
+            );
+            //TODO 反写订单出库明细 退货数量和退货金额
+            //查询采购订单明细数据
+            PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(intoReturnItemVO.getPurItemId());
+            //反写订单明细退货数量和退货金额
+            purchaseItemMapper.updateAmount(
+                    new PurchaseItem()
+                            .setItemId(intoReturnItemVO.getPurItemId())
+                            .setReturnQty(purchaseItemResponse.getReturnQty().add(intoReturnItemVO.getItemQty().setScale(6, BigDecimal.ROUND_HALF_UP)))
+                            .setReturnAmt(purchaseItemResponse.getReturnAmt().add(intoReturnItemVO.getItemAmt().setScale(6, BigDecimal.ROUND_HALF_UP)))
+
+            );
+        }
+
+//        //新建出库单
+//        OutboundVO outboundVO = new OutboundVO();
+//        //来源ID
+//        outboundVO.setFromId(intoReturnVO.getReturnId());
+//        //来源单号
+//        outboundVO.setFromNo(intoReturnVO.getReturnNo());
+//        //部门
+//        outboundVO.setOrgId(intoReturnVO.getOrgId());
+//        //员工
+//        outboundVO.setStaffId(intoReturnVO.getStaffId());
+//        //供应商
+//        outboundVO.setSupId(intoReturnVO.getSupId());
+//        //出库状态
+//        outboundVO.setOutStatus("出库状态-出库中");
+//        outboundVO.setMakeStaff(authUtils.getStaff().getStaffId());
+//        outboundVO.setCpId(authUtils.getStaff().getCpId());
+//        List<OutboundItemVO> itemList = new ArrayList<>();
+//        Integer itemIndex = 0;
+//
+//        for (IntoReturnItemVO intoReturnItemVO : intoReturnItemVOList) {
+//            OutboundItemVO outboundItemVO = new OutboundItemVO();
+//            outboundItemVO.setSkuId(intoReturnItemVO.getSkuId());
+//            outboundItemVO.setItemIndex(itemIndex +1);
+//            outboundItemVO.setPriceOut(intoReturnItemVO.getPriceReturn());
+//            outboundItemVO.setInvId("10112024-0305-0000-0000-000009593bb6");
+//            itemList.add(outboundItemVO);
+//        }
+//
+//        outboundVO.setItemList(itemList);
+//
+//
+//
+//        outboundService.insert(outboundVO);
 
 
         return ResponseResultUtil.success();
     }
+
     /**
      * @desc : 设置总单信息
      * @date : 2023/9/28 16:20
@@ -137,7 +203,8 @@ public class IntoReturnService extends BaseService<IntoReturn> {
         //部门Id
         intoReturnVO.setOrgId(purchaseResponse.getOrgId());
         intoReturnVO.setReturnStatus("退货状态-通过");
-        intoReturnVO.setOutStatus("出库状态-未出");
+        //出库状态
+        intoReturnVO.setOutStatus(Constant.OutStatus.DAICHUKU.getName());
         //制单员
         intoReturnVO.setMakeStaff(authUtils.getStaff().getStaffId());
         //业务员
@@ -239,6 +306,4 @@ public class IntoReturnService extends BaseService<IntoReturn> {
     }
 
 
-
-
 }