From 0267cc2886bbdce2c9a55755789c10e0dcaff9f0 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期一, 02 二月 2026 14:46:24 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/TaskService.java           |    6 +-
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java              |    4 +-
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/TaskController.java     |    7 +--
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/BusService.java            |    2 +
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/integrate/dto/OpenBusCancelParam.java |   18 +++++++++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/BusController.java      |    3 +
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/BusServiceImpl.java   |    9 ++++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskServiceImpl.java  |   20 +++++++---
 zy-acs-manager/src/main/java/com/zy/acs/manager/common/constant/Constants.java             |    4 ++
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/integrate/wms/OpenController.java     |   45 ++++++++++++++++++++--
 10 files changed, 97 insertions(+), 21 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/constant/Constants.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/constant/Constants.java
index 230bd05..f1e1ee0 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/constant/Constants.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/constant/Constants.java
@@ -6,8 +6,12 @@
  */
 public class Constants {
 
+    public static final String UPLINK = "UPLINK";
+
     public static final String HANDLE = "HANDLE";
 
+    public static final String LIMIT_ONE = "limit 1";
+
     /**
      * 榛樿鎴愬姛鐮�
      */
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/integrate/dto/OpenBusCancelParam.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/integrate/dto/OpenBusCancelParam.java
new file mode 100644
index 0000000..017d151
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/integrate/dto/OpenBusCancelParam.java
@@ -0,0 +1,18 @@
+package com.zy.acs.manager.core.integrate.dto;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by vincent on 2023/6/12
+ */
+@Data
+public class OpenBusCancelParam {
+
+    private String batchNo;
+
+    private List<String> tasks = new ArrayList<>();
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/integrate/wms/OpenController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/integrate/wms/OpenController.java
index b40081f..76e14e1 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/integrate/wms/OpenController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/integrate/wms/OpenController.java
@@ -1,10 +1,17 @@
 package com.zy.acs.manager.core.integrate.wms;
 
-import com.zy.acs.manager.common.annotation.OperationLog;
+import com.zy.acs.framework.common.Cools;
 import com.zy.acs.framework.common.R;
-import com.zy.acs.manager.system.controller.BaseController;
-import com.zy.acs.manager.core.service.MainService;
+import com.zy.acs.manager.common.annotation.OperationLog;
+import com.zy.acs.manager.common.constant.Constants;
+import com.zy.acs.manager.core.integrate.dto.OpenBusCancelParam;
 import com.zy.acs.manager.core.integrate.dto.OpenBusSubmitParam;
+import com.zy.acs.manager.core.service.MainService;
+import com.zy.acs.manager.manager.entity.Bus;
+import com.zy.acs.manager.manager.entity.Task;
+import com.zy.acs.manager.manager.service.BusService;
+import com.zy.acs.manager.manager.service.TaskService;
+import com.zy.acs.manager.system.controller.BaseController;
 import io.swagger.annotations.Api;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -22,13 +29,41 @@
 
     @Autowired
     private MainService mainService;
+    @Autowired
+    private TaskService taskService;
+    @Autowired
+    private BusService busService;
 
-//    @PreAuthorize("hasAuthority('open:bus:submit')")
     @PostMapping("/bus/submit")
     @OperationLog("generate task from open api")
-    public R save(@RequestBody OpenBusSubmitParam param) {
+    public R submit(@RequestBody OpenBusSubmitParam param) {
         mainService.generateBusAndTask(param, null);
         return R.ok("generate tasks success");
     }
 
+    @PostMapping("/bus/cancel")
+    @OperationLog("cancel task from open api")
+    public R cancel(@RequestBody OpenBusCancelParam param) {
+        if (Cools.isEmpty(param.getTasks())) {
+            return R.error("tasks is empty");
+        }
+        Long busId = null;
+        if (!Cools.isEmpty(param.getBatchNo())) {
+            Bus bus = busService.selectByBusNo(param.getBatchNo());
+            if (null != bus) {
+                busId = bus.getId();
+            }
+        } else {
+//            return R.error("batch_no is empty");
+        }
+        for (String taskNo : param.getTasks()) {
+            Task task = taskService.selectBySeqNum(busId, taskNo);
+            if (null == task) {
+                continue;
+            }
+            taskService.cancel(task.getId(), null, Constants.UPLINK);
+        }
+        return R.ok("cancel tasks success");
+    }
+
 }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
index 9652cf1..48267c9 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -107,7 +107,7 @@
         if (!Cools.isEmpty(errorMsg)) {
             throw new BusinessException(errorMsg);
         }
-        String batch = busSubmitParam.getBatchNo();
+        String batchNo = busSubmitParam.getBatchNo();
         List<TaskDto> taskDtoList = busSubmitParam.getTasks();
         if (Cools.isEmpty(taskDtoList)) {
             throw new BusinessException("taskList can't be empty!");
@@ -123,7 +123,7 @@
         Date now = new Date();
         Bus bus = new Bus();
         bus.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3));
-        bus.setBusNo(batch);
+        bus.setBusNo(batchNo);
         bus.setStartTime(now);
         bus.setBusSts(BusStsType.RECEIVE.val());
         bus.setMemo(memo);
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/BusController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/BusController.java
index 9fbbb46..3e01383 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/BusController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/BusController.java
@@ -6,6 +6,7 @@
 import com.zy.acs.framework.common.Cools;
 import com.zy.acs.framework.common.R;
 import com.zy.acs.manager.common.annotation.OperationLog;
+import com.zy.acs.manager.common.constant.Constants;
 import com.zy.acs.manager.common.domain.*;
 import com.zy.acs.manager.common.utils.BusinessSortService;
 import com.zy.acs.manager.common.utils.ExcelUtil;
@@ -176,7 +177,7 @@
                 .in(Task::getTaskSts, TaskStsType.INIT.val(), TaskStsType.WAITING.val()));
         if (!Cools.isEmpty(taskList)) {
             for (Task task : taskList) {
-                taskService.cancel(task.getId(), getLoginUserId());
+                taskService.cancel(task.getId(), getLoginUserId(), Constants.HANDLE);
             }
         }
         if (0 == taskService.count(new LambdaQueryWrapper<Task>().eq(Task::getBusId, bus.getId()).eq(Task::getTaskSts, TaskStsType.COMPLETE.val()))) {
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/TaskController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/TaskController.java
index 77013c1..9469ef4 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/TaskController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/TaskController.java
@@ -1,11 +1,11 @@
 package com.zy.acs.manager.manager.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.acs.framework.common.Cools;
 import com.zy.acs.framework.common.R;
 import com.zy.acs.manager.common.annotation.OperationLog;
+import com.zy.acs.manager.common.constant.Constants;
 import com.zy.acs.manager.common.domain.BaseParam;
 import com.zy.acs.manager.common.domain.KeyValVo;
 import com.zy.acs.manager.common.domain.PageParam;
@@ -15,7 +15,6 @@
 import com.zy.acs.manager.manager.entity.Task;
 import com.zy.acs.manager.manager.service.TaskService;
 import com.zy.acs.manager.system.controller.BaseController;
-import com.zy.acs.manager.system.entity.User;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
@@ -119,14 +118,14 @@
     @OperationLog("Complete Task")
     @GetMapping("/task/complete/{id}")
     public R complete(@PathVariable Long id) {
-        return taskService.complete(id, getLoginUserId()) ? R.ok("Complete Success") : R.error("Complete Fail");
+        return taskService.complete(id, getLoginUserId(), Constants.HANDLE) ? R.ok("Complete Success") : R.error("Complete Fail");
     }
 
     @PreAuthorize("hasAuthority('manager:task:update')")
     @OperationLog("Cancel Task")
     @GetMapping("/task/cancel/{id}")
     public R cancel(@PathVariable Long id) {
-        return taskService.cancel(id, getLoginUserId()) ? R.ok("Cancel Success") : R.error("Cancel Fail");
+        return taskService.cancel(id, getLoginUserId(), Constants.HANDLE) ? R.ok("Cancel Success") : R.error("Cancel Fail");
     }
 
 }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/BusService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/BusService.java
index 16a6f7a..617a696 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/BusService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/BusService.java
@@ -9,6 +9,8 @@
 
 public interface BusService extends IService<Bus> {
 
+    Bus selectByBusNo(String busNo);
+
     Bus selectByUuid(String uuid);
 
     String checkoutValid(OpenBusSubmitParam param);
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/TaskService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/TaskService.java
index 5505d5f..dec3af8 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/TaskService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/TaskService.java
@@ -19,7 +19,7 @@
 
     Task pick(TaskStsType taskStsType);
 
-    Task selectByUuid(String uuid);
+    Task selectBySeqNum(Long busId, String seqNum);
 
     List<Task> selectBySts(TaskStsType taskStsType);
 
@@ -27,9 +27,9 @@
 
     List<Map<String, Object>> selectStatByLastSevenDays();
 
-    Boolean complete(Long taskId, Long userId);
+    Boolean complete(Long taskId, Long userId, String from);
 
-    Boolean cancel(Long taskId, Long userId);
+    Boolean cancel(Long taskId, Long userId, String from);
 
     LaneDto checkoutOriginLane(Task task);
 
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/BusServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/BusServiceImpl.java
index a9586c0..6b49886 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/BusServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/BusServiceImpl.java
@@ -5,6 +5,7 @@
 import com.zy.acs.framework.common.BaseRes;
 import com.zy.acs.framework.common.Cools;
 import com.zy.acs.framework.exception.CoolException;
+import com.zy.acs.manager.common.constant.Constants;
 import com.zy.acs.manager.common.domain.TaskDto;
 import com.zy.acs.manager.core.integrate.dto.OpenBusSubmitParam;
 import com.zy.acs.manager.manager.entity.Bus;
@@ -33,6 +34,14 @@
     private LocService locService;
 
     @Override
+    public Bus selectByBusNo(String busNo) {
+        if (Cools.isEmpty(busNo)) {
+            return null;
+        }
+        return this.getOne(new LambdaQueryWrapper<Bus>().eq(Bus::getBusNo, busNo).last(Constants.LIMIT_ONE));
+    }
+
+    @Override
     public Bus selectByUuid(String uuid) {
         return this.getOne(new LambdaQueryWrapper<Bus>().eq(Bus::getUuid, uuid));
     }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskServiceImpl.java
index 1f0ed1e..5c78488 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskServiceImpl.java
@@ -68,8 +68,16 @@
     }
 
     @Override
-    public Task selectByUuid(String uuid) {
-        return this.getOne(new LambdaQueryWrapper<Task>().eq(Task::getUuid, uuid));
+    public Task selectBySeqNum(Long busId, String seqNum) {
+        if (Cools.isEmpty(seqNum)) {
+            return null;
+        }
+        LambdaQueryWrapper<Task> wrapper = new LambdaQueryWrapper<>();
+        if (null != busId) {
+            wrapper.eq(Task::getBusId, busId);
+        }
+        wrapper.eq(Task::getSeqNum, seqNum);
+        return this.getOne(wrapper.last(Constants.LIMIT_ONE));
     }
 
     @Override
@@ -100,7 +108,7 @@
 
     @Override
     @Transactional
-    public Boolean complete(Long taskId, Long userId) {
+    public Boolean complete(Long taskId, Long userId, String from) {
         Task task = this.getById(taskId);
         if (null == task) {
             return Boolean.FALSE;
@@ -112,7 +120,7 @@
         task.setTaskSts(TaskStsType.COMPLETE.val());
         task.setUpdateTime(now);
         task.setUpdateBy(userId);
-        task.setMemo(Constants.HANDLE + " " + TaskStsType.COMPLETE);
+        task.setMemo(from + " " + TaskStsType.COMPLETE);
         if (!this.updateById(task)) {
             throw new CoolException(BaseRes.ERROR);
         }
@@ -141,7 +149,7 @@
 
     @Override
     @Transactional
-    public Boolean cancel(Long taskId, Long userId) {
+    public Boolean cancel(Long taskId, Long userId, String from) {
         Task task = this.getById(taskId);
         if (null == task) {
             return Boolean.FALSE;
@@ -153,7 +161,7 @@
         task.setTaskSts(TaskStsType.CANCEL.val());
         task.setUpdateTime(now);
         task.setUpdateBy(userId);
-        task.setMemo(Constants.HANDLE + " " + TaskStsType.CANCEL);
+        task.setMemo(from + " " + TaskStsType.CANCEL);
         if (!this.updateById(task)) {
             throw new CoolException(BaseRes.ERROR);
         }

--
Gitblit v1.9.1