Browse Source

现场测试bug修改

k 2 years ago
parent
commit
83df601478

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warewms/ams/WcsTaskController.java

@@ -121,7 +121,7 @@ public class WcsTaskController extends BaseController {
             AjaxResult.error("任务查询不存在");
         }
         wcsTaskService.cancelTask(wcsTask);
-        return AjaxResult.success("任务回调完成");
+        return AjaxResult.success("任务取消指令下发成功!");
     }
 
     @Log(title = "库存处置", businessType = BusinessType.INSERT)

+ 15 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warewms/test/WcsTaskResponseController.java

@@ -1,5 +1,6 @@
 package com.ruoyi.web.controller.warewms.test;
 
+import com.ruoyi.ams.agv.ndc.service.StatusUpdateService;
 import com.ruoyi.ams.task.service.IWcsTaskService;
 import com.ruoyi.common.core.domain.AjaxResult;
 import io.swagger.annotations.Api;
@@ -21,6 +22,8 @@ public class WcsTaskResponseController {
 
     @Autowired
     private IWcsTaskService iWcsTaskService;
+    @Autowired
+    private StatusUpdateService statusUpdateService;
 
     /**
      * WcsTask任务反馈
@@ -31,4 +34,16 @@ public class WcsTaskResponseController {
         iWcsTaskService.callBack(taskNo, state, carNo);
         return AjaxResult.success();
     }
+
+
+    /**
+     * 快速门开门反馈
+     * 自动门编号传1和2
+     */
+    @ApiOperation("快速门开门反馈")
+    @PostMapping("/responseDoor")
+    public AjaxResult responseDoor(Integer doorNo) {
+        statusUpdateService.feedbackTS(doorNo);
+        return AjaxResult.success();
+    }
 }

+ 3 - 3
ruoyi-ui/src/views/ams/task/index.vue

@@ -123,7 +123,7 @@
           icon="el-icon-delete"
           size="mini"
           :disabled="multiple"
-          @click="handleDelete"
+          @click="handleCancel"
           v-hasPermi="['ams:wcsTask:remove']"
         >删除</el-button>
       </el-col>
@@ -193,8 +193,8 @@
             @click="handleCancel(scope.row)"
             v-hasPermi="['ams:wcsTask:remove']"
           >取消</el-button>
-          <el-button size="mini" type="text" v-if="scope.row.state === 7" @click="handleDisposition(scope.row, 'disFrom')">归于起点</el-button>
-          <el-button size="mini" type="text" v-if="scope.row.state === 7" @click="handleDisposition(scope.row, 'disTo')">归于终点</el-button>
+<!--          <el-button size="mini" type="text" v-if="scope.row.state === 7" @click="handleDisposition(scope.row, 'disFrom')">归于起点</el-button>-->
+<!--          <el-button size="mini" type="text" v-if="scope.row.state === 7" @click="handleDisposition(scope.row, 'disTo')">归于终点</el-button>-->
         </template>
       </el-table-column>
     </el-table>

+ 3 - 1
warewms-ams/src/main/java/com/ruoyi/ams/agv/ndc/AciService.java

@@ -146,7 +146,9 @@ public class AciService {
                             if (t.getBusinessType().equals("m") ||
                                     t.getBusinessType().equals("n") ||
                                     t.getBusinessType().equals("A4") ||
-                                    t.getBusinessType().equals("A5")) {
+                                    t.getBusinessType().equals("A5") ||
+                                    t.getBusinessType().equals("164")
+                            ) {
 
                                 buffer.put(ByteUtil.hexString2ByteArray(order));
                                 buffer.flip();

+ 6 - 1
warewms-ams/src/main/java/com/ruoyi/ams/agv/ndc/service/StatusUpdateService.java

@@ -9,8 +9,13 @@ package com.ruoyi.ams.agv.ndc.service;
 public interface StatusUpdateService {
     /**
      * 任务状态反馈
-     * @param id amstaskid
+     *
+     * @param id    amstaskid
      * @param carNo 车号(只有取货完成后才会有反馈)
      */
     void updateStatus(Long id, Integer carNo);
+
+
+    void feedbackTS(Integer doorNo);
+
 }

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

@@ -119,11 +119,11 @@ public class SocketBufferServiceImpl implements SocketBufferService {
             int eventId = event.getId();
             AmsTask taskBean = new AmsTask();
 
-            log.info("----event:" + eventId);
+//            log.info("----event:" + eventId);
             switch (eventId) {
                 case 85://user event ts cancel                  任务取消
 
-                    log.info("任务回调执行:" + JSON.toJSONString(event));
+                    log.info("任务回调执行取消:" + JSON.toJSONString(event));
                     taskBean.setAciIndex(Integer.parseInt(event.getLp1()));
                     taskBean = amsTaskService.selectAmsTaskByModel(taskBean);
                     taskBean.setEvent(eventId);
@@ -146,6 +146,7 @@ public class SocketBufferServiceImpl implements SocketBufferService {
                 case 93://user event Redirect message for FETCH
                 case 94://user event Redirect message for DELIVER
                 case 113://user event Fetch Empty
+                    log.info("----event:" + eventId + ":" + JSON.toJSONString(event));
 
                     taskBean.setAciIndex(Integer.parseInt(event.getLp1()));
                     taskBean = amsTaskService.selectAmsTaskByModel(taskBean);
@@ -222,6 +223,14 @@ public class SocketBufferServiceImpl implements SocketBufferService {
                         // agvUnloadingConfirmService.confirmEmptyPlate(task130.getTaskNo());
                     }
                     break;
+                case 126: //600
+                    log.info("快速门-请求开启!");
+                    break;
+                case 127: //601
+                    log.info("快速门-请求关闭!");
+                    break;
+                case 134:
+                    break;
                 case 135:
                     //stopword异常
                     Integer index135 = Integer.parseInt(event.getLp2());
@@ -263,6 +272,9 @@ public class SocketBufferServiceImpl implements SocketBufferService {
                     task139 = amsTaskService.selectAmsTaskByModel(task139);
                     // agvUnloadingConfirmService.agvError(event,task139);
                     break;
+                default:
+                    log.info("----event:" + eventId);
+                    break;
             }
         }
     }

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

@@ -4,11 +4,18 @@ import com.ruoyi.ams.agv.ndc.domain.AmsTask;
 import com.ruoyi.ams.agv.ndc.entity.CallbackResult;
 import com.ruoyi.ams.agv.ndc.service.IAmsTaskService;
 import com.ruoyi.ams.agv.ndc.service.StatusUpdateService;
+import com.ruoyi.ams.business.BusinessServiceImpl;
+import com.ruoyi.ams.business.IBusinessService;
+import com.ruoyi.ams.task.form.AddTaskForm;
 import com.ruoyi.ams.task.service.IWcsTaskService;
+import com.ruoyi.base.constant.Constant;
+import com.ruoyi.common.utils.uuid.SnowflakeIdWorker;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 @Slf4j
 @Component
 public class StatusUpdateServiceImpl implements StatusUpdateService {
@@ -17,6 +24,8 @@ public class StatusUpdateServiceImpl implements StatusUpdateService {
     private IAmsTaskService amsTaskService;
     @Autowired
     private IWcsTaskService wcsTaskService;
+    @Autowired
+    private IBusinessService businessService;
 
     @Override
     public void updateStatus(Long id, Integer carNo) {
@@ -60,10 +69,36 @@ public class StatusUpdateServiceImpl implements StatusUpdateService {
                 }
             }
 
-            wcsTaskService.callBack(result.getTaskNo(),result.getState(),result.getCarNo());
+            wcsTaskService.callBack(result.getTaskNo(), result.getState(), result.getCarNo());
 
             amsTask.setSystemStatus(result.getState());
             amsTaskService.updateAmsTask(amsTask);
         }
     }
+
+    @Override
+    public void feedbackTS(Integer doorNo) {
+        AmsTask addTaskForm = new AmsTask();
+        addTaskForm.setTaskNo(SnowflakeIdWorker.generateId().toString());
+        addTaskForm.setIkey((long) BusinessServiceImpl.geniKey(addTaskForm.getTaskNo()));
+        addTaskForm.setBusinessType(Constant.TASK_BUSINESS_TYPE.TASK_164.getValue());
+        addTaskForm.setStFrom(998);
+        addTaskForm.setStTo(999);
+        addTaskForm.setPriority(1);
+        // 固定写法
+        addTaskForm.setExt2(doorNo.toString());
+        addTaskForm.setExt3("0000");
+
+        // 如果ams_task已经有此任务的待接收消息,则不生成新的消息
+        AmsTask amsTaskQuery = new AmsTask();
+        amsTaskQuery.setAciAccept(0);
+        amsTaskQuery.setIsDelete(0);
+        amsTaskQuery.setBusinessType(Constant.TASK_BUSINESS_TYPE.TASK_164.getValue());
+        amsTaskQuery.setExt2(addTaskForm.getExt2());
+        List<AmsTask> undoneList = amsTaskService.selectAmsTaskList(amsTaskQuery);
+        if (undoneList.size() > 0) {
+            return;
+        }
+        amsTaskService.insertAmsTask(addTaskForm);
+    }
 }

+ 1 - 1
warewms-ams/src/main/java/com/ruoyi/ams/business/BusinessServiceImpl.java

@@ -77,7 +77,7 @@ public class BusinessServiceImpl implements IBusinessService {
     @Autowired
     private IFlowConfigHeaderService flowConfigHeaderService;
 
-    private int geniKey(String taskNo) {
+    public static int geniKey(String taskNo) {
         int res = CRC16Util.calcCrc16(ByteUtil.string2byteArray(taskNo));
         if (res == 0) {
             BigDecimal t = new BigDecimal(taskNo);

+ 2 - 1
warewms-ams/src/main/java/com/ruoyi/ams/task/service/IWcsTaskService.java

@@ -5,6 +5,7 @@ import java.util.List;
 import com.ruoyi.ams.agv.ndc.entity.CallbackResult;
 import com.ruoyi.ams.task.domain.WcsTask;
 import com.ruoyi.ams.task.dto.WcsTaskLocationDTO;
+import com.ruoyi.common.core.domain.AjaxResult;
 
 /**
  * AGV任务Service接口
@@ -96,7 +97,7 @@ public interface IWcsTaskService {
      *
      * @param wcsTask
      */
-    void cancelTask(WcsTask wcsTask);
+    AjaxResult cancelTask(WcsTask wcsTask);
 
     /**
      * 库存处理

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

@@ -111,7 +111,11 @@ public class Constant {
         /**
          * 暂停
          */
-        TASK_03("03");
+        TASK_03("03"),
+        /**
+         * 快速门开门成功反馈
+         */
+        TASK_164("164");
 
         private String value;