Kaynağa Gözat

选矿空托出入库优化&RGV出入库逻辑测试

ChenYang 1 yıl önce
ebeveyn
işleme
58fdd7667e

+ 6 - 10
warewms-ams/src/main/java/com/ruoyi/ams/agv/ndc/service/impl/AmsHexdefineDetailServiceImpl.java

@@ -1,7 +1,5 @@
 package com.ruoyi.ams.agv.ndc.service.impl;
 
-import java.util.List;
-
 import com.ruoyi.ams.agv.ndc.common.ValType;
 import com.ruoyi.ams.agv.ndc.domain.AmsHexdefineDetail;
 import com.ruoyi.ams.agv.ndc.domain.AmsTask;
@@ -11,6 +9,8 @@ import com.ruoyi.common.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * 任务定义(lp0-lp30)Service业务层处理
  *
@@ -30,8 +30,7 @@ public class AmsHexdefineDetailServiceImpl implements IAmsHexdefineDetailService
      * @return 任务定义(lp0-lp30)
      */
     @Override
-    public AmsHexdefineDetail selectAmsHexdefineDetailById(Long id)
-    {
+    public AmsHexdefineDetail selectAmsHexdefineDetailById(Long id) {
         return amsHexdefineDetailMapper.selectAmsHexdefineDetailById(id);
     }
 
@@ -47,8 +46,7 @@ public class AmsHexdefineDetailServiceImpl implements IAmsHexdefineDetailService
      * @return 任务定义(lp0-lp30)
      */
     @Override
-    public List<AmsHexdefineDetail> selectAmsHexdefineDetailList(AmsHexdefineDetail amsHexdefineDetail)
-    {
+    public List<AmsHexdefineDetail> selectAmsHexdefineDetailList(AmsHexdefineDetail amsHexdefineDetail) {
         return amsHexdefineDetailMapper.selectAmsHexdefineDetailList(amsHexdefineDetail);
     }
 
@@ -59,8 +57,7 @@ public class AmsHexdefineDetailServiceImpl implements IAmsHexdefineDetailService
      * @return 任务定义(lp0-lp30)
      */
     @Override
-    public AmsHexdefineDetail selectAmsHexdefineDetailByModel(AmsHexdefineDetail amsHexdefineDetail)
-    {
+    public AmsHexdefineDetail selectAmsHexdefineDetailByModel(AmsHexdefineDetail amsHexdefineDetail) {
         List<AmsHexdefineDetail> list = amsHexdefineDetailMapper.selectAmsHexdefineDetailList(amsHexdefineDetail);
         if (list!=null && list.size()>0) {
             return list.get(0);
@@ -76,8 +73,7 @@ public class AmsHexdefineDetailServiceImpl implements IAmsHexdefineDetailService
      * @return 结果
      */
     @Override
-    public int insertAmsHexdefineDetail(AmsHexdefineDetail amsHexdefineDetail)
-    {
+    public int insertAmsHexdefineDetail(AmsHexdefineDetail amsHexdefineDetail) {
         return amsHexdefineDetailMapper.insertAmsHexdefineDetail(amsHexdefineDetail);
     }
 

+ 11 - 14
warewms-ams/src/main/java/com/ruoyi/ams/agv/ndc/service/impl/StatusUpdateServiceImpl.java

@@ -193,22 +193,8 @@ public class StatusUpdateServiceImpl implements StatusUpdateService {
     }
 
 
-
-
-
     @Override
     public void feedbackTS(AmsNdcEvent event) {
-        AmsTask addTaskForm = new AmsTask();
-        addTaskForm.setTaskNo(SnowflakeIdWorker.generateId().toString());
-        addTaskForm.setIkey((long) BusinessServiceImpl.geniKey(addTaskForm.getTaskNo()));
-        addTaskForm.setStFrom(998);
-        addTaskForm.setStTo(999);
-        addTaskForm.setPriority(1);
-        addTaskForm.setBusinessType(Constant.TASK_BUSINESS_TYPE.TASK_164.getValue());
-        addTaskForm.setExt1(event.getLp1());
-        addTaskForm.setExt2(event.getLp2());
-        addTaskForm.setExt3(event.getLp3());
-
         // 如果ams_task已经有此任务的待接收消息,则不生成新的消息
         AmsTask amsTaskQuery = new AmsTask();
         amsTaskQuery.setAciAccept(0);
@@ -221,6 +207,17 @@ public class StatusUpdateServiceImpl implements StatusUpdateService {
         if (undoneList.size() > 0) {
             return;
         }
+
+        AmsTask addTaskForm = new AmsTask();
+        addTaskForm.setTaskNo(SnowflakeIdWorker.generateId().toString());
+        addTaskForm.setIkey((long) BusinessServiceImpl.geniKey(addTaskForm.getTaskNo()));
+        addTaskForm.setStFrom(998);
+        addTaskForm.setStTo(999);
+        addTaskForm.setPriority(1);
+        addTaskForm.setBusinessType(Constant.TASK_BUSINESS_TYPE.TASK_164.getValue());
+        addTaskForm.setExt1(event.getLp1());
+        addTaskForm.setExt2(event.getLp2());
+        addTaskForm.setExt3(event.getLp3());
         amsTaskService.insertAmsTask(addTaskForm);
     }
 

+ 1 - 1
warewms-ams/src/main/java/com/ruoyi/ams/inv/service/impl/InvLotLocIdServiceImpl.java

@@ -245,7 +245,7 @@ public class InvLotLocIdServiceImpl implements IInvLotLocIdService {
         wcsTask.setCreateDate(new Date());
         wcsTask.setBusinessType("01");
         wcsTask.setTaskType(Constant.TASK_TYPE.FORWARD.getValue());
-        wcsTask.setExt8(Constant.TaskType.MOVE_INV.getDesc());
+        wcsTask.setWhTypeFrom(Constant.TaskType.MOVE_INV.getDesc());
         iBusinessService.addTask(wcsTask);
 
         // 锁定起始和目标库位任务状态

+ 5 - 4
warewms-ams/src/main/java/com/ruoyi/ams/task/domain/WcsTask.java

@@ -1,11 +1,12 @@
 package com.ruoyi.ams.task.domain;
 
-import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
 
 /**
  * AGV任务对象 wcs_task
@@ -23,7 +24,7 @@ public class WcsTask extends BaseEntity
     /** AGV任务类型 */
     private String businessType;
 
-    /** 任务关联单号类型1 */
+    /** 任务类型,历史原因需要存任务类型的字段 */
     private String whTypeFrom;
 
     /** 任务关联单号1 */

+ 1 - 1
warewms-ams/src/main/java/com/ruoyi/ams/task/service/impl/WcsTaskServiceImpl.java

@@ -564,7 +564,7 @@ public class WcsTaskServiceImpl implements IWcsTaskService {
     @Override
     public Boolean updateTaskStatus(String billNo, String taskType, Integer sourceStatus, Integer targetStatus) {
         LambdaUpdateWrapper<WcsTask> updateWrapper = Wrappers.<WcsTask>lambdaUpdate().set(WcsTask::getState, targetStatus)
-                .eq(WcsTask::getExt1, billNo).eq(WcsTask::getExt8, taskType).eq(WcsTask::getState, sourceStatus);
+                .eq(WcsTask::getExt1, billNo).eq(WcsTask::getWhTypeFrom, taskType).eq(WcsTask::getState, sourceStatus);
         return wcsTaskMapper.update(null, updateWrapper) == 1;
     }
 

+ 2 - 2
warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/service/AgvCallProxyService.java

@@ -240,7 +240,7 @@ public class AgvCallProxyService {
         Assert.isTrue(ObjectUtil.isNotNull(baseSku), "baseSku is null");
         //1.生成一个wcs任务
         String locationInfoId = String.valueOf(baseLocationInfo.getId());
-        addWcsOutTask(taskNo, locationInfoId, bucketCacheLocationId, orderNo, 10L, "桶装料出库任务", Constant.TaskType.GENERAL_INV.getDesc());
+        addWcsOutTask(taskNo, locationInfoId, bucketCacheLocationId, orderNo, 10L, "桶装料出库任务", Constant.TaskType.RGV.getDesc());
         //修改出库出库存的traceId
         invLotLocIdService.operateTraceIdByLocationId(bucketCacheLocationId, taskNo);
         //4.组装wcs任务请求参数并同步当前的wcs任务
@@ -274,7 +274,7 @@ public class AgvCallProxyService {
         addWcsTask(taskNo, bucketCacheLocationId
                 , String.valueOf(baseLocationInfo.getId()), asnNo, palletNo,
                 Constant.TASK_STS.TASK_PUBILSH.getLongValue(), "四向车入库任务",
-                Constant.TaskType.GENERAL_INV.getDesc());
+                Constant.TaskType.RGV.getDesc());
         //4.同步当前的wcs任务
         AgvInTaskForm agvInTaskForm = assemblyAgvInTaskForm(taskNo, asnNo, materialType, quantity, palletNo, baseLocationInfo);
         return wmsToWcsApiService.wmsAgvInTask(agvInTaskForm);

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

@@ -87,7 +87,7 @@ public class WcsTaskSubService {
         wcsTask.setExt2(palletNo);
         wcsTask.setExt3(wcsNo);
         wcsTask.setRemark(remake);
-        wcsTask.setExt8(taskType);
+        wcsTask.setWhTypeFrom(taskType);
         if (iWcsTaskService.insertWcsTask(wcsTask) > 0) {
             iBaseLocationInfoService.lockLocationStockStatus(Long.valueOf(wcsTask.getLocationFrom())
                     , Long.valueOf(wcsTask.getLocationTo())
@@ -237,7 +237,7 @@ public class WcsTaskSubService {
                         completeTheCallbackOut(wcsTask);
                     }//空托任务反馈和移库反馈
                     else if (CollectionUtil.contains(
-                            Lists.newArrayList(Constant.TaskType.EMPTY_PALLET.getDesc(), Constant.TaskType.MOVE_INV.getDesc()), wcsTask.getExt8())) {
+                            Lists.newArrayList(Constant.TaskType.EMPTY_PALLET.getDesc(), Constant.TaskType.MOVE_INV.getDesc()), wcsTask.getWhTypeFrom())) {
                         invLotLocIdService.adjLocationIsEmpty(wcsTask.getLocationFrom(), Constant.WAREHOUSE_ID, "Wcs");
                     }//agv出库完成后反馈回调取货完成
                     else if (wcsTask.getExt5() != null) {

+ 1 - 2
warewms-base/src/main/java/com/ruoyi/base/constant/Constant.java

@@ -67,11 +67,10 @@ public class Constant {
 
 
     public enum TaskType{
-        //
         EMPTY_PALLET("emptyPallet"),
         MOVE_INV("moveInv"),
         AGV("agv"),
-        GENERAL_INV("general");
+        RGV("rgv");
 
         private String desc;