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"; /** * 默认成功码 */ zy-acs-manager/src/main/java/com/zy/acs/manager/core/integrate/dto/OpenBusCancelParam.java
New file @@ -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<>(); } 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"); } } 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); 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()))) { 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"); } } 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); 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); 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)); } 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); }