Browse Source

1、agv入库任务下发
2、回调wcs取货,卸货完成

LZH 1 year ago
parent
commit
6d9b3c2ed6

+ 55 - 6
warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/service/WmsDocAsnSubService.java

@@ -2,8 +2,13 @@ package com.ruoyi.ams.xuankuang.service;
 
 
 import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
 import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
 import com.ruoyi.ams.asn.domain.WmsDocAsnHeader;
 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.asn.service.IWmsDocAsnDetailsService;
 import com.ruoyi.ams.asn.service.IWmsDocAsnHeaderService;
 import com.ruoyi.ams.asn.service.IWmsDocAsnHeaderService;
+import com.ruoyi.ams.order.domain.WmsDocOrderDetails;
+import com.ruoyi.ams.order.domain.WmsDocOrderHeader;
+import com.ruoyi.ams.order.mapper.WmsDocOrderDetailsMapper;
 import com.ruoyi.ams.xuankuang.domain.form.AgvInTaskForm;
 import com.ruoyi.ams.xuankuang.domain.form.AgvInTaskForm;
 import com.ruoyi.ams.xuankuang.domain.form.BillTaskForm;
 import com.ruoyi.ams.xuankuang.domain.form.BillTaskForm;
 import com.ruoyi.ams.xuankuang.domain.vo.LocationCoordinateVo;
 import com.ruoyi.ams.xuankuang.domain.vo.LocationCoordinateVo;
@@ -11,6 +16,7 @@ import com.ruoyi.ams.xuankuang.domain.vo.WcsResponseVo;
 import com.ruoyi.base.constant.Constant;
 import com.ruoyi.base.constant.Constant;
 import com.ruoyi.base.domain.BaseSku;
 import com.ruoyi.base.domain.BaseSku;
 import com.ruoyi.base.service.IBaseSkuService;
 import com.ruoyi.base.service.IBaseSkuService;
+import com.ruoyi.base.utils.IdSequenceUtils;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.AjaxResult;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,6 +30,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
 import java.io.Console;
 import java.io.Console;
+import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -52,6 +60,12 @@ public class WmsDocAsnSubService {
     private WmsToWcsApiService wmsToWcsApiService;
     private WmsToWcsApiService wmsToWcsApiService;
     @Autowired
     @Autowired
     private WcsTaskSubService wcsTaskSubService;
     private WcsTaskSubService wcsTaskSubService;
+    @Autowired
+    private IdSequenceUtils idSequenceUtils;
+    @Autowired
+    private WmsDocAsnHeaderMapper wmsDocAsnHeaderMapper;
+    @Autowired
+    private WmsDocAsnDetailsMapper wmsDocAsnDetailsMapper;
 
 
 
 
     /**
     /**
@@ -116,14 +130,17 @@ public class WmsDocAsnSubService {
      * @return
      * @return
      */
      */
     @Transactional
     @Transactional
-    public AjaxResult agvInTask(@PathVariable("asnNo") String asnNo) {
+    public AjaxResult agvInTask(String palletNo,Double qty) {
+        // wms物料编码
+        String sku = iBaseSkuService.selectBaseSkuByMaterialType("5").getSku();
+        String asnNo = generateAnOutboundOrder(sku, new BigDecimal(qty));
         //  根据单号,和创建状态为00
         //  根据单号,和创建状态为00
         WmsDocAsnDetails wmsDocAsnDetails = new WmsDocAsnDetails();
         WmsDocAsnDetails wmsDocAsnDetails = new WmsDocAsnDetails();
         wmsDocAsnDetails.setAsnNo(asnNo);
         wmsDocAsnDetails.setAsnNo(asnNo);
         wmsDocAsnDetails.setLineStatus(Constant.ASN_STS.STS00.getValue());
         wmsDocAsnDetails.setLineStatus(Constant.ASN_STS.STS00.getValue());
         List<WmsDocAsnDetails> list = iWmsDocAsnDetailsService.selectWmsDocAsnDetailsList(wmsDocAsnDetails);
         List<WmsDocAsnDetails> list = iWmsDocAsnDetailsService.selectWmsDocAsnDetailsList(wmsDocAsnDetails);
-
         WmsDocAsnHeader wmsDocAsnHeader = iWmsDocAsnHeaderService.selectWmsDocAsnHeaderByAsnNo(asnNo);
         WmsDocAsnHeader wmsDocAsnHeader = iWmsDocAsnHeaderService.selectWmsDocAsnHeaderByAsnNo(asnNo);
+
         boolean con = true;
         boolean con = true;
         for (WmsDocAsnDetails details:list) {
         for (WmsDocAsnDetails details:list) {
             BaseSku baseSku = iBaseSkuService.selectBaseSkuByCustomerId(Constant.CUSTOMER_ID, details.getSku());
             BaseSku baseSku = iBaseSkuService.selectBaseSkuByCustomerId(Constant.CUSTOMER_ID, details.getSku());
@@ -132,10 +149,8 @@ public class WmsDocAsnSubService {
             agvInTaskForm.setMaterial(Integer.valueOf(baseSku.getDesc2()));
             agvInTaskForm.setMaterial(Integer.valueOf(baseSku.getDesc2()));
             agvInTaskForm.setDocNo(asnNo);
             agvInTaskForm.setDocNo(asnNo);
             agvInTaskForm.setNum(details.getExpectedQty().intValue());
             agvInTaskForm.setNum(details.getExpectedQty().intValue());
-            // wms物料编码
-            String sku = iBaseSkuService.selectBaseSkuByMaterialType("5").getSku();
             //托盘码
             //托盘码
-            String pallentNo = "1234567";
+            String pallentNo = palletNo;
             AjaxResult ajaxResult = wcsToWmsApiService.theBucketIsLoadedIntoTheLibrary(sku, asnNo, pallentNo, details.getExpectedQty());
             AjaxResult ajaxResult = wcsToWmsApiService.theBucketIsLoadedIntoTheLibrary(sku, asnNo, pallentNo, details.getExpectedQty());
             LocationCoordinateVo locationCoordinateVo =  ajaxResult.getDataParseObject(LocationCoordinateVo.class);
             LocationCoordinateVo locationCoordinateVo =  ajaxResult.getDataParseObject(LocationCoordinateVo.class);
             String taskNo = locationCoordinateVo.getTaskNo();
             String taskNo = locationCoordinateVo.getTaskNo();
@@ -154,6 +169,7 @@ public class WmsDocAsnSubService {
                 con = false;
                 con = false;
                 wmsDocAsnHeader.setNotes(wcsResponseVo.getMessage());
                 wmsDocAsnHeader.setNotes(wcsResponseVo.getMessage());
                 iWmsDocAsnHeaderService.updateWmsDocAsnHeader(wmsDocAsnHeader);
                 iWmsDocAsnHeaderService.updateWmsDocAsnHeader(wmsDocAsnHeader);
+                wcsTaskSubService.callBack(taskNo,7,null);
                 continue;
                 continue;
             }
             }
             // 修改 明细行状态为10
             // 修改 明细行状态为10
@@ -166,7 +182,7 @@ public class WmsDocAsnSubService {
             wmsDocAsnHeader.setAsnStatus(Constant.ASN_STS.STS10.getValue());
             wmsDocAsnHeader.setAsnStatus(Constant.ASN_STS.STS10.getValue());
             iWmsDocAsnHeaderService.updateWmsDocAsnHeader(wmsDocAsnHeader);
             iWmsDocAsnHeaderService.updateWmsDocAsnHeader(wmsDocAsnHeader);
         }
         }
-        return AjaxResult.success("", list);
+        return AjaxResult.success("",list);
 
 
     }
     }
 
 
@@ -189,4 +205,37 @@ public class WmsDocAsnSubService {
         wmsToWcsApiService.wmsAgvCallbackOuttask(wcsId);
         wmsToWcsApiService.wmsAgvCallbackOuttask(wcsId);
         return AjaxResult.success();
         return AjaxResult.success();
     }
     }
+
+    /**
+     * 生成入库单方法
+     *
+     * @return
+     */
+    public String generateAnOutboundOrder(String sku, BigDecimal qty) {
+        // 生成单头
+        WmsDocAsnHeader wmsDocAsnHeader = new WmsDocAsnHeader();
+        String asnNo = idSequenceUtils.generateId("ASNNO");
+        wmsDocAsnHeader.setAsnNo(asnNo);
+        wmsDocAsnHeader.setEdiSendFlag("N");
+        wmsDocAsnHeader.setAsnType(Constant.ASN_TYP.TZ.getValue());
+        wmsDocAsnHeader.setCreateTime(new Date());
+        wmsDocAsnHeader.setCreateBy("PDA");
+        wmsDocAsnHeader.setAsnStatus(Constant.ASN_STS.STS00.getValue());
+        wmsDocAsnHeaderMapper.insertWmsDocAsnHeader(wmsDocAsnHeader);
+        //生成明细
+        WmsDocAsnDetails wmsDocAsnDetails = new WmsDocAsnDetails();
+        wmsDocAsnDetails.setAsnNo(asnNo);
+        wmsDocAsnDetails.setAsnLineNo(new Long(1));
+        wmsDocAsnDetails.setLineStatus(Constant.ASN_STS.STS00.getValue());
+        wmsDocAsnDetails.setSku(sku);
+        wmsDocAsnDetails.setExpectedQty(qty);
+        wmsDocAsnDetails.setExpectedQtyEach(qty);
+        wmsDocAsnDetails.setReceivedQty(new BigDecimal(0));
+        wmsDocAsnDetails.setReceivedQtyEach(new BigDecimal(0));
+        wmsDocAsnDetails.setCreateTime(new Date());
+        wmsDocAsnDetails.setCreateBy("PDA");
+        wmsDocAsnDetailsMapper.insertWmsDocAsnDetails(wmsDocAsnDetails);
+        return asnNo;
+    }
+
 }
 }