Ver código fonte

Wcs反馈任务完成后,更新入库单收货数量和入库单状态

LZH 2 anos atrás
pai
commit
3c043d61c0

+ 67 - 5
warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/service/WcsTaskSubService.java

@@ -1,5 +1,12 @@
 package com.ruoyi.ams.xuankuang.service;
 
+import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
+import com.ruoyi.ams.asn.domain.WmsDocAsnHeader;
+import com.ruoyi.ams.asn.service.IWmsDocAsnDetailsService;
+import com.ruoyi.ams.asn.service.IWmsDocAsnHeaderService;
+import com.ruoyi.ams.inv.domain.InvLotAtt;
+import com.ruoyi.ams.inv.domain.InvLotLocId;
+import com.ruoyi.ams.inv.service.IInvLotLocIdService;
 import com.ruoyi.ams.task.domain.WcsTask;
 import com.ruoyi.ams.task.service.IWcsTaskService;
 import com.ruoyi.base.constant.Constant;
@@ -13,7 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author JWK
@@ -28,6 +37,12 @@ public class WcsTaskSubService {
     private IWcsTaskService iWcsTaskService;
     @Autowired
     private IBaseLocationInfoService iBaseLocationInfoService;
+    @Autowired
+    private IInvLotLocIdService invLotLocIdService;
+    @Autowired
+    private IWmsDocAsnDetailsService iWmsDocAsnDetailsService;
+    @Autowired
+    private IWmsDocAsnHeaderService iWmsDocAsnHeaderService;
 
 
     /**
@@ -114,7 +129,7 @@ public class WcsTaskSubService {
                             , Constant.WAREHOUSE_ID, updateBy);
                     // 将起始点库存移动到终点库位
                     iWcsTaskService.moveStartingPointToDestination(wcsTask);
-                    // todo 修改入库单收货数量
+                    //  修改入库单收货数量
                     completeTheCallback(wcsTask);
 
                     break;
@@ -159,10 +174,57 @@ public class WcsTaskSubService {
      * @return
      */
     public AjaxResult completeTheCallback(WcsTask wcsTask) {
-        // 托盘号
-        String ext1 = wcsTask.getExt1();
-        // 入库单号
-        String ext2 = wcsTask.getExt2();
+        boolean con = true;
+        boolean con1 = true;
+        String palletNo = wcsTask.getExt2();
+        String asnNo = wcsTask.getExt1();
+        WmsDocAsnDetails wmsDocAsnDetails = iWmsDocAsnDetailsService.selectWmsDocAsnDetailsByAsnNoLineNo(asnNo, "1");
+        BigDecimal expectedQty = wmsDocAsnDetails.getExpectedQty();
+        BigDecimal receivedQty = wmsDocAsnDetails.getReceivedQty();
+        BigDecimal canQty= expectedQty.subtract(receivedQty);
+        InvLotAtt invLotAtt = new InvLotAtt();
+        invLotAtt.setLotatt07(palletNo);
+        List<InvLotLocId> invLotLocIds = invLotLocIdService.queryInvByInvLotatt(invLotAtt);
+        for (InvLotLocId invLotLocId:invLotLocIds) {
+            BigDecimal qty = invLotLocId.getQty();
+            if (qty.compareTo(expectedQty) == 1){
+                continue;
+            }else if ( qty.compareTo(expectedQty) == 0){
+                wmsDocAsnDetails.setReceivedQty(qty);
+                int i = iWmsDocAsnDetailsService.updateWmsDocAsnDetails(wmsDocAsnDetails);
+                if ( i > 0){
+                    wmsDocAsnDetails.setLineStatus(Constant.ASN_STS.STS40.getValue());
+                    iWmsDocAsnDetailsService.updateWmsDocAsnDetails(wmsDocAsnDetails);
+                }else {
+                    con = false;
+                    continue;
+                }
+            }else if (qty.compareTo(expectedQty) == -1){
+                wmsDocAsnDetails.setReceivedQty(qty);
+                expectedQty = canQty;
+                int i = iWmsDocAsnDetailsService.updateWmsDocAsnDetails(wmsDocAsnDetails);
+                if ( i > 0){
+                    wmsDocAsnDetails.setLineStatus(Constant.ASN_STS.STS30.getValue());
+                    iWmsDocAsnDetailsService.updateWmsDocAsnDetails(wmsDocAsnDetails);
+                    con1 = false;
+                }else {
+                    con = false;
+                    continue;
+                }
+            }
+        }
+        if (con == true) {
+            WmsDocAsnHeader wmsDocAsnHeader = iWmsDocAsnHeaderService.selectWmsDocAsnHeaderByAsnNo(asnNo);
+            // 修改 单头40
+            wmsDocAsnHeader.setAsnStatus(Constant.ASN_STS.STS40.getValue());
+            iWmsDocAsnHeaderService.updateWmsDocAsnHeader(wmsDocAsnHeader);
+        }
+        if (con1 == false) {
+            WmsDocAsnHeader wmsDocAsnHeader = iWmsDocAsnHeaderService.selectWmsDocAsnHeaderByAsnNo(asnNo);
+            // 修改 单头30
+            wmsDocAsnHeader.setAsnStatus(Constant.ASN_STS.STS30.getValue());
+            iWmsDocAsnHeaderService.updateWmsDocAsnHeader(wmsDocAsnHeader);
+        }
         return AjaxResult.success("");
     }
 }

+ 1 - 0
warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/service/WmsDocAsnSubService.java

@@ -60,6 +60,7 @@ public class WmsDocAsnSubService {
             billTaskForm.setNum(details.getExpectedQty().intValue());
 //            billTaskForm.setDest(Constant.PRODUCTION_LINE_SITE.getByValue());
             billTaskForm.setMaterial(Integer.valueOf(baseSku.getDesc2()));
+            //调用工单下发
             WmsToWcsApiService wmsToWcsApiService = new WmsToWcsApiService();
             WcsResponseVo wcsResponseVo = wmsToWcsApiService.wmsBillTask(billTaskForm);
             if (!wcsResponseVo.isSuccess()) {