소스 검색

1、任务反馈
2、agv出库任务下发
3、回调卸货完成前操作

LZH 1 년 전
부모
커밋
77f0c4fd38

+ 19 - 1
warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/service/WcsTaskSubService.java

@@ -59,6 +59,8 @@ public class WcsTaskSubService {
     private WcsToWmsApiService wcsToWmsApiService;
     @Autowired
     private WmsDocOrderHeaderMapper wmsDocOrderHeaderMapper;
+    @Autowired
+    WmsDocAsnSubService wmsDocAsnSubService;
 
     /**
      * 增加四向车任务
@@ -220,6 +222,15 @@ public class WcsTaskSubService {
                         //  修改入库单收货数量
                         completeTheCallback(wcsTask);
                     }
+                    else if (wcsTask.getLocationTo().equals("100733") && wcsTask.getExt1()==null){
+                        // 解锁库位
+                        iBaseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom())
+                                , Long.parseLong(wcsTask.getLocationTo())
+                                , Constant.WAREHOUSE_ID, updateBy);
+                        // 将起始点库存移动到终点库位
+                        iWcsTaskService.moveStartingPointToDestination(wcsTask);
+                        wcsToWmsApiService.agvCallbackWCSBeforeUnloadingIsCompleted();
+                    }
                     if (wcsTask.getExt1().startsWith("SO")) {
                         // 解锁库位
                         iBaseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom())
@@ -236,7 +247,14 @@ public class WcsTaskSubService {
                                 , Long.parseLong(wcsTask.getLocationTo())
                                 , Constant.WAREHOUSE_ID, updateBy);
                         iWcsTaskService.moveStartingPointToDestinationout(wcsTask);
-                        invLotLocIdService.adjLocationIsEmpty(wcsTask.getLocationFrom(), Constant.WAREHOUSE_ID, "Wcs");
+//                        invLotLocIdService.adjLocationIsEmpty(wcsTask.getLocationFrom(), Constant.WAREHOUSE_ID, "Wcs");
+                    }else if (wcsTask.getExt5()!=null){
+                        // 解锁库位
+                        iBaseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom())
+                                , Long.parseLong(wcsTask.getLocationTo())
+                                , Constant.WAREHOUSE_ID, updateBy);
+                        iWcsTaskService.moveStartingPointToDestinationout(wcsTask);
+                        wmsDocAsnSubService.wmsAgvCallbackOuttask(wcsTask.getExt5());
                     }
                     break;
                 case 4:

+ 51 - 1
warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/service/WcsToWmsApiService.java

@@ -4,6 +4,7 @@ import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
 import com.ruoyi.ams.asn.domain.WmsDocAsnHeader;
 import com.ruoyi.ams.asn.mapper.WmsDocAsnDetailsMapper;
 import com.ruoyi.ams.asn.mapper.WmsDocAsnHeaderMapper;
+import com.ruoyi.ams.asn.service.IWmsDocAsnDetailsService;
 import com.ruoyi.ams.config.domain.dto.AgvCallDTO;
 import com.ruoyi.ams.config.domain.dto.LotattDTO;
 import com.ruoyi.ams.inv.service.IInvLotLocIdService;
@@ -28,7 +29,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -67,6 +67,14 @@ public class WcsToWmsApiService {
     private UnpackingMachineSubClient unpackingMachineSubClient;
     @Autowired
     private WmsToWcsApiService wmsToWcsApiService;
+    @Autowired
+    private IWcsTaskService wcsTaskService;
+    @Autowired
+    private IWmsDocAsnDetailsService wmsDocAsnDetailsService;
+    @Autowired
+    private WmsDocAsnSubService wmsDocAsnSubService;
+    @Autowired
+    private AgvCallProxyService agvCallProxyService;
 
     /**
      * 组盘上报
@@ -687,6 +695,19 @@ public class WcsToWmsApiService {
      * @return
      */
     public AjaxResult secureHandover(CallbackTaskFrom callbackTaskFrom) {
+        if (callbackTaskFrom.getSafeCode().equals("1")){
+            WcsTask wcsTask = new WcsTask();
+            wcsTask.setState(new Long(13));
+            WcsTask wcsTask1 = wcsTaskService.selectWcsTaskByModel(wcsTask);
+            wcsTask1.setState(new Long(9));
+            int i = wcsTaskService.updateWcsTask(wcsTask1);
+            if (i>0){
+                return AjaxResult.success();
+            }
+        }else if (callbackTaskFrom.getSafeCode().equals("0")){
+            log.error(callbackTaskFrom.getMessage());
+            return AjaxResult.success("未执行");
+        }
         return AjaxResult.success();
     }
 
@@ -696,6 +717,35 @@ public class WcsToWmsApiService {
      * @return
      */
     public AjaxResult outboundRequest(OutboundForm outboundForm) {
+        String locationFrom = "100733";
+        String locationTo = "";
+        String palletNo = outboundForm.getPalletNo();
+        String wcsId = outboundForm.getWcsId();
+        AjaxResult ajaxResult = agvCallProxyService.barrelsOutOfStorage(locationFrom, locationTo, palletNo,wcsId);
+        if (ajaxResult.isSuccess()){
+            return AjaxResult.success("任务创建成功");
+        }
+        return AjaxResult.error("任务创建失败");
+    }
+
+    /**
+     * 回调卸货完成前
+     * @return
+     */
+    public AjaxResult agvCallbackWCSBeforeUnloadingIsCompleted() {
+        // 查询出状态为10,包含物料信息为丁铵黑药的入库单
+        WmsDocAsnDetails wmsDocAsnDetails = new WmsDocAsnDetails();
+        wmsDocAsnDetails.setSku("C4H9O2PSSNH4");
+        wmsDocAsnDetails.setLineStatus(Constant.ASN_STS.STS10.getValue());
+        WmsDocAsnDetails wmsDocAsnDetails1 = wmsDocAsnDetailsService.selectWmsDocAsnDetailsByModel(wmsDocAsnDetails);
+        String asnNo = wmsDocAsnDetails1.getAsnNo();
+        // 根据入库单号(Ext1)查询出所对应的任务
+        WcsTask wcsTask = new WcsTask();
+        wcsTask.setExt1(asnNo);
+        WcsTask wcsTask1 = wcsTaskService.selectWcsTaskByModel(wcsTask);
+        // 根据查出来的任务编号反馈wcs卸货完成
+        String taskNo = wcsTask1.getTaskNo();
+        wmsDocAsnSubService.wmsAgvCallbackIntask(taskNo);
         return AjaxResult.success();
     }
 }