Browse Source

WcsToWmsService 空托仓位请求接口

LZH 1 year ago
parent
commit
856691f8f3

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/xuankuang/controller/WcsToWmsApiController.java

@@ -71,7 +71,7 @@ public class WcsToWmsApiController {
     @ApiOperation("空托仓位请求")
     @PostMapping("/emptyPalletLocRequest")
     public AjaxResult emptyPalletLocRequest(@RequestBody EmptyPalletLocForm emptyPalletLocForm) {
-        return AjaxResult.success("仓位获取成功");
+        return wcsToWmsApiService.EmptyPalletLoc(emptyPalletLocForm);
     }
 
     /**

+ 15 - 1
warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/domain/form/EmptyPalletLocForm.java

@@ -9,11 +9,25 @@ public class EmptyPalletLocForm {
      */
     private int taskType;
 
+    /**
+     * Wcs任务号 唯一标识
+     */
+    private String wcsNo;
+
     public EmptyPalletLocForm() {
     }
 
-    public EmptyPalletLocForm(int taskType) {
+    public EmptyPalletLocForm(int taskType, String wcsNo) {
         this.taskType = taskType;
+        this.wcsNo = wcsNo;
+    }
+
+    public String getWcsNo() {
+        return wcsNo;
+    }
+
+    public void setWcsNo(String wcsNo) {
+        this.wcsNo = wcsNo;
     }
 
     public int getTaskType() {

+ 4 - 3
warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/service/StirringTankClientService.java

@@ -44,6 +44,7 @@ public class StirringTankClientService {
             b = b.add(bigDecimal);
         }
         if (number.intValue() <= b.intValue()) {
+            outbound_1();
             return true;
         } else {
             return false;
@@ -59,9 +60,9 @@ public class StirringTankClientService {
         Number number = stirringTankClient.readTank07();
         BigDecimal qty = new BigDecimal(number.toString());
         String orderNo = wmsDocOrderSubService.generateAnOutboundOrder(sku, qty);
-        if (matchInventory_1()){
-            wmsDocOrderSubService.initOrderDetails(orderNo);
-        }
+        wmsDocOrderSubService.initOrderDetails(orderNo);
         return AjaxResult.success();
     }
+
+
 }

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

@@ -190,6 +190,9 @@ public class WcsTaskSubService {
                         invLotLocIdService.adjLocationIsEmpty(wcsTask.getLocationFrom(), Constant.WAREHOUSE_ID, "Wcs");
                         //  修改出库单收货数量
                         completeTheCallbackOut(wcsTask);
+                    }else {
+                        iWcsTaskService.moveStartingPointToDestinationout(wcsTask);
+                        invLotLocIdService.adjLocationIsEmpty(wcsTask.getLocationFrom(), Constant.WAREHOUSE_ID, "Wcs");
                     }
                     break;
                 case 4:
@@ -305,7 +308,15 @@ public class WcsTaskSubService {
         for (InvLotLocId invLotLocId : invLotLocIds) {
             BigDecimal qty = invLotLocId.getQty();
             if (qty.compareTo(canQty) == 1) {
-                continue;
+                list.get(0).setQtyAllocated(qtyOrderedEach);
+                int i = iWmsDocOrderDetailsService.updateWmsDocOrderDetails(list.get(0));
+                if (i > 0) {
+                    list.get(0).setLineStatus(Constant.ASN_STS.STS40.getValue());
+                    iWmsDocOrderDetailsService.updateWmsDocOrderDetails(list.get(0));
+                } else {
+                    con = false;
+                    continue;
+                }
             } else if (qty.compareTo(canQty) == 0) {
                 list.get(0).setQtyAllocated(qtyOrderedEach);
                 int i = iWmsDocOrderDetailsService.updateWmsDocOrderDetails(list.get(0));

+ 73 - 0
warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/service/WcsToWmsApiService.java

@@ -4,6 +4,7 @@ import com.ruoyi.ams.config.domain.dto.AgvCallDTO;
 import com.ruoyi.ams.inv.service.IInvLotLocIdService;
 import com.ruoyi.ams.task.domain.WcsTask;
 import com.ruoyi.ams.task.service.IWcsTaskService;
+import com.ruoyi.ams.xuankuang.domain.form.EmptyPalletLocForm;
 import com.ruoyi.ams.xuankuang.domain.form.StackingCompletionForm;
 import com.ruoyi.ams.xuankuang.domain.form.TaskStatusForm;
 import com.ruoyi.ams.xuankuang.domain.vo.LocationCoordinateVo;
@@ -110,6 +111,78 @@ public class WcsToWmsApiService {
         return AjaxResult.success("仓位获取成功!", locationCoordinateVo);
     }
 
+    /**
+     * 空托仓位请求
+     *
+     * @param emptyPalletLocForm
+     * @return
+     */
+    @Transactional
+    public synchronized AjaxResult EmptyPalletLoc(EmptyPalletLocForm emptyPalletLocForm) {
+        // 空托仓位请求类型
+        int taskType = emptyPalletLocForm.getTaskType();
+        // 任务号
+        String wcsNo = emptyPalletLocForm.getWcsNo();
+
+        // 判重
+        WcsTask wcsTaskQuery = new WcsTask();
+        wcsTaskQuery.setExt1("");
+        wcsTaskQuery.setExt2("");
+        wcsTaskQuery.setExt3(wcsNo);
+        WcsTask wcsTask = iWcsTaskService.selectWcsTaskByModel(wcsTaskQuery);
+        if (wcsTask != null) {
+            String locationTo = wcsTask.getLocationTo();
+            BaseLocationInfo baseLocationInfo = iBaseLocationInfoService.selectBaseLocationInfoByIdOrNo(locationTo, Constant.WAREHOUSE_ID);
+            LocationCoordinateVo locationCoordinateVo = new LocationCoordinateVo();
+            locationCoordinateVo.setTaskNo(wcsTask.getTaskNo());
+            locationCoordinateVo.setLocationId(baseLocationInfo.getLocationNo());
+            locationCoordinateVo.setFloor(Integer.valueOf(baseLocationInfo.getShiftNo()));
+            locationCoordinateVo.setCol(Integer.valueOf(baseLocationInfo.getRowNo()));
+            locationCoordinateVo.setRow(Integer.valueOf(baseLocationInfo.getRowIndex()));
+            return AjaxResult.success("仓位获取成功!", locationCoordinateVo);
+        }
+        BaseLocationLotattVO baseLocationLotattVO = new BaseLocationLotattVO();
+        if (taskType == 1) {
+            // 推荐目标库位
+             baseLocationLotattVO = baseLocationInfoSubService.recommendAReceiptLocation(Constant.PALLET_TYPE);
+            if (baseLocationLotattVO == null) {
+                AjaxResult.error("没有可以推荐的目标库位!");
+            }
+        } else {
+             baseLocationLotattVO = baseLocationInfoSubService.recommendAReceiptLocation(Constant.PALLET_TYPE1);
+            if (baseLocationLotattVO == null) {
+                AjaxResult.error("没有可以推荐的目标库位!");
+            }
+        }
+
+        // 生成任务
+        String taskNo = "";
+        AjaxResult ajaxResult = wcsTaskSubService.addWcsTask(Constant.LOC_STAGE_CACHE.toString()
+                , baseLocationLotattVO.getId().toString()
+                , ""
+                , ""
+                , wcsNo);
+        if (!ajaxResult.isSuccess()) {
+            return ajaxResult;
+        }
+        taskNo = ajaxResult.get("data").toString();
+        if (taskType ==1){
+            // 入库缓存位生成库存
+            InvLotLocIdSubService.initInv(Constant.LOC_STAGE_CACHE.toString(), Constant.PALLET_TYPE, "", "", taskNo, 1.0);
+        }else {
+            // 入库缓存位生成库存
+            InvLotLocIdSubService.initInv(Constant.LOC_STAGE_CACHE.toString(), Constant.PALLET_TYPE1, "", "", taskNo, 1.0);
+        }
+        // 反馈
+        LocationCoordinateVo locationCoordinateVo = new LocationCoordinateVo();
+        locationCoordinateVo.setTaskNo(taskNo);
+        locationCoordinateVo.setLocationId(baseLocationLotattVO.getLocationNo());
+        locationCoordinateVo.setFloor(Integer.valueOf(baseLocationLotattVO.getShiftNo()));
+        locationCoordinateVo.setCol(Integer.valueOf(baseLocationLotattVO.getRowNo()));
+        locationCoordinateVo.setRow(Integer.valueOf(baseLocationLotattVO.getRowIndex()));
+        return AjaxResult.success("仓位获取成功!", locationCoordinateVo);
+    }
+
 
     /**
      * 任务状态反馈

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

@@ -291,6 +291,7 @@ public class WmsDocOrderSubService {
         wmsDocOrderDetails.setQtyOrderedEach(qty);
         wmsDocOrderDetails.setCreateTime(new Date());
         wmsDocOrderDetails.setQtyAllocatedEach(new BigDecimal(0));
+        wmsDocOrderDetails.setQtyAllocated(new BigDecimal(0));
         iWmsDocOrderHeaderService.insertWmsDocOrderDetails(wmsDocOrderDetails);
         return orderNo;
     }

+ 12 - 0
warewms-base/src/main/java/com/ruoyi/base/constant/Constant.java

@@ -13,6 +13,18 @@ public class Constant {
      */
     public static final Long LOC_STAGE_CACHE = 99997l;
 
+    /**
+     * 入库空托盘
+     *
+     */
+    public static final String PALLET_TYPE = "EMP_TRAY_BAG";
+
+    /**
+     * 出库空托盘
+     *
+     */
+    public static final String PALLET_TYPE1 = "EMP_TRAY_BUC";
+
     /**
      * 出库缓存位
      */