Jelajahi Sumber

采购退货作废

于继渤 2 tahun lalu
induk
melakukan
7bc44e70b7

+ 2 - 2
src/main/java/com/dk/mdm/controller/ivt/IntoReturnController.java

@@ -60,8 +60,8 @@ public class IntoReturnController{
 
 
 
 
     /**
     /**
-     * @desc   : 冲正
-     * @date   : 2023/10/17 11:29
+     * @desc : 作废
+     * @date : 2022/6/28 16:58
      * @author : 于继渤
      * @author : 于继渤
      */
      */
     @ApiOperation(
     @ApiOperation(

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

@@ -24,10 +24,12 @@ import com.dk.common.mapper.BaseMapper;
 import com.dk.mdm.model.pojo.ivt.IntoReturnItem;
 import com.dk.mdm.model.pojo.ivt.IntoReturnItem;
 import com.dk.mdm.model.pojo.pur.Purchase;
 import com.dk.mdm.model.pojo.pur.Purchase;
 import com.dk.mdm.model.pojo.pur.PurchaseItem;
 import com.dk.mdm.model.pojo.pur.PurchaseItem;
+import com.dk.mdm.model.query.ivt.IntoReturnItemQuery;
 import com.dk.mdm.model.query.ivt.IntoReturnQuery;
 import com.dk.mdm.model.query.ivt.IntoReturnQuery;
 import com.dk.mdm.model.query.pur.PurchaseQuery;
 import com.dk.mdm.model.query.pur.PurchaseQuery;
 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.response.ivt.IntoReturnItemResponse;
 import com.dk.mdm.model.response.ivt.IntoReturnResponse;
 import com.dk.mdm.model.response.ivt.IntoReturnResponse;
 import com.dk.mdm.model.response.pur.PurchaseItemResponse;
 import com.dk.mdm.model.response.pur.PurchaseItemResponse;
 import com.dk.mdm.model.response.pur.PurchaseResponse;
 import com.dk.mdm.model.response.pur.PurchaseResponse;
@@ -88,6 +90,8 @@ public class IntoReturnService extends BaseService<IntoReturn> {
     @Autowired
     @Autowired
     private InboundItemMapper inboundItemMapper;
     private InboundItemMapper inboundItemMapper;
 
 
+    @Autowired
+    private InboundItemService inboundItemService;
 
 
     /**
     /**
      * @desc : 查询
      * @desc : 查询
@@ -272,7 +276,7 @@ public class IntoReturnService extends BaseService<IntoReturn> {
                 intoReturnItemVO.setOutQty(intoReturnItemVO.getItemQty().abs());
                 intoReturnItemVO.setOutQty(intoReturnItemVO.getItemQty().abs());
                 intoReturnItemVO.setOutAmt(intoReturnItemVO.getItemAmt().abs());
                 intoReturnItemVO.setOutAmt(intoReturnItemVO.getItemAmt().abs());
 
 
-            }else{
+            } else {
                 intoReturnItemVO.setOutingQty(intoReturnItemVO.getItemQty().abs());
                 intoReturnItemVO.setOutingQty(intoReturnItemVO.getItemQty().abs());
                 intoReturnItemVO.setOutingAmt(intoReturnItemVO.getItemAmt().abs());
                 intoReturnItemVO.setOutingAmt(intoReturnItemVO.getItemAmt().abs());
             }
             }
@@ -285,7 +289,6 @@ public class IntoReturnService extends BaseService<IntoReturn> {
     }
     }
 
 
 
 
-    //TODO 未完成
 
 
     /**
     /**
      * @desc : 作废
      * @desc : 作废
@@ -294,16 +297,84 @@ public class IntoReturnService extends BaseService<IntoReturn> {
      */
      */
     @Transactional(rollbackFor = {Exception.class})
     @Transactional(rollbackFor = {Exception.class})
     public ResponseResultVO<String> cancel(IntoReturnVO intoReturnVO) {
     public ResponseResultVO<String> cancel(IntoReturnVO intoReturnVO) {
-        //根据订单id查询到订单
-//        Purchase purchase = purchaseMapper.selectPurchaseByRighting(new PurchaseQuery().setPurId(purId));
-//
-//
-//        //查询采购退货数据List
-//        List<IntoReturn> intoReturnList = intoReturnMapper.selectReturnList(intoReturnIdList);
-//
-//        //根据订单id查询所有退货单
-//        List<IntoReturnResponse> intoReturnResponsesList = intoReturnMapper.selectByCond(new IntoReturnQuery().setIntoReturnIdList(intoReturnIdList));
-        return null;
+        //根据入库退货单id查询到退货单
+        IntoReturnResponse intoReturnResponse = intoReturnMapper.selectById(intoReturnVO.getReturnId());
+        if(intoReturnResponse.getReturnStatus().equals(Constant.returnStatus.OUT_REJECT_STATUS_RIGHTING_NOT.getName())){
+            //当前单据已经作废,不能重复操
+            return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ISFLGVALID_FALSE.getMessage());
+        }
+
+        //查询入库单 修改 已入库退货数量/金额
+        InboundResponse inboundResponse = inboundMapper.selectById(intoReturnVO.getIntoId());
+        if (inboundResponse == null ) {
+            //返回 单据所对应的原始单据不存在,请重新操作
+            return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
+        }
+        inboundMapper.updateAmount(new Inbound()
+                .setReturnQty(inboundResponse.getReturnQty().subtract(intoReturnResponse.getSumQuantity()))
+                .setReturnAmt(inboundResponse.getReturnAmt().subtract(intoReturnResponse.getSumAmount())));
+
+        //查询采购单
+        PurchaseResponse purchaseResponse = purchaseMapper.selectById(intoReturnResponse.getPurId());
+        if (purchaseResponse == null ) {
+            //返回 单据所对应的原始单据不存在,请重新操作
+            return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
+        }
+        //修改采购单 已入库数量/金额
+        purchaseMapper.updateAmount(
+                new Purchase().setReturnQty(purchaseResponse.getReturnQty().subtract(intoReturnResponse.getSumQuantity()))
+                        .setReturnAmt(purchaseResponse.getReturnAmt().subtract(intoReturnResponse.getSumAmount())).setPurId(intoReturnResponse.getPurId())
+        );
+
+        //查询入库退货单明细
+        List<IntoReturnItemResponse> intoReturnItemList = intoReturnItemService.selectByCond(new IntoReturnItemQuery().setReturnId(intoReturnResponse.getReturnId())).getData().getList();
+        //明细不存在
+        if (intoReturnItemList == null || intoReturnItemList.size() == 0) {
+            //返回 采购退货明细不可为空,请重新操作
+            return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.PURCHASE_RETURN_DETAIL_NOT_EXIST.getMessage());
+        }
+
+        if (intoReturnItemList != null && intoReturnItemList.size() > 0) {
+            for (IntoReturnItemResponse intoReturnItemResponse : intoReturnItemList) {
+                //查询入库单明细
+                InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(intoReturnItemResponse.getIntoItemId());
+                if (inboundItemResponse == null) {
+                    //返回 单据所对应的原始单据不存在,请重新操作
+                    return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
+                }
+                //修改入库单明细 已入库退货数量/金额
+                inboundItemService.updateByUuid(new InboundItem()
+                        .setItemId(intoReturnItemResponse.getIntoItemId())
+                        .setReturnQty(inboundItemResponse.getReturnQty().subtract(intoReturnItemResponse.getItemQty()))
+                        .setReturnAmt(inboundItemResponse.getReturnAmt().subtract(intoReturnItemResponse.getItemAmt()))
+                );
+                //查询采购单明细
+                PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(intoReturnItemResponse.getPurId());
+                if (purchaseItemResponse == null ) {
+                    //返回 单据所对应的原始单据不存在,请重新操作
+                    return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORIGINAL_DOCUMENT_ABSENT.getMessage());
+                }
+                //修改采购单明细 已入库退货数量/金额
+                purchaseItemMapper.updateAmount(
+                        new PurchaseItem()
+                                .setItemId(purchaseItemResponse.getItemId())
+                                .setReturnQty(purchaseItemResponse.getReturnQty().subtract(intoReturnItemResponse.getItemQty()))
+                                .setReturnAmt(purchaseItemResponse.getReturnAmt().subtract(intoReturnItemResponse.getItemAmt()))
+
+                );
+            }
+            //TODO 未处理出库单
+
+            //修改入库退货单明细
+            super.updateByUuid(
+                    new IntoReturn()
+                            .setReturnId(intoReturnVO.getReturnId())
+                            //修改退货状态 作废
+                            .setReturnStatus(Constant.returnStatus.OUT_REJECT_STATUS_RIGHTING_NOT.getName())
+            );
+
+        }
+        return ResponseResultUtil.success();
     }
     }
 
 
 }
 }