From 95a193eef12a217076be6ba280190b3104daf967 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 20 三月 2026 20:42:12 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/common/service/CommonService.java | 93 ++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 89 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index c5283be..259ab2b 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
+import com.zy.asrs.domain.Result.CancelTaskBatchResult;
import com.zy.asrs.domain.param.*;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
@@ -12,6 +13,7 @@
import com.zy.common.utils.NavigateUtils;
import com.zy.common.utils.RedisUtil;
import com.zy.core.News;
+import com.zy.core.service.WrkCommandRollbackService;
import com.zy.core.enums.*;
import com.zy.core.model.StationObjModel;
import lombok.extern.slf4j.Slf4j;
@@ -43,6 +45,8 @@
private RedisUtil redisUtil;
@Autowired
private BasOutStationAreaService basOutStationAreaService;
+ @Autowired
+ private WrkCommandRollbackService wrkCommandRollbackService;
/**
* 鐢熸垚宸ヤ綔鍙�
@@ -55,8 +59,8 @@
}
int workNo = wrkLastno.getWrkNo();
- int sNo = wrkLastno.getSNo();
- int eNo = wrkLastno.getENo();
+ int sNo = wrkLastno.getsNo();
+ int eNo = wrkLastno.geteNo();
workNo = workNo>=eNo ? sNo : workNo+1;
while (true) {
WrkMast wrkMast = wrkMastService.selectByWorkNo(workNo);
@@ -129,10 +133,91 @@
throw new CoolException("浠诲姟涓嶅瓨鍦�");
}
+ boolean cancelSuccess = false;
+ if (wrkMast.getIoType().equals(WrkIoType.IN.id) && !wrkMast.getWrkSts().equals(WrkStsType.NEW_INBOUND.sts)) {
+ cancelSuccess = true;
+ } else if (wrkMast.getIoType().equals(WrkIoType.OUT.id) && !wrkMast.getWrkSts().equals(WrkStsType.NEW_OUTBOUND.sts)) {
+ cancelSuccess = true;
+ } else if (wrkMast.getIoType().equals(WrkIoType.LOC_MOVE.id) && !wrkMast.getWrkSts().equals(WrkStsType.NEW_LOC_MOVE.sts)) {
+ cancelSuccess = true;
+ }
+
+ if (cancelSuccess) {
+ throw new CoolException("浠诲姟宸叉墽琛岋紝鍙栨秷澶辫触");
+ }
+
wrkMast.setMk("taskCancel");
wrkMast.setModiTime(new Date());
wrkMastService.updateById(wrkMast);
return true;
+ }
+
+ public boolean updateTaskPriorityAndBatchSeq(UpdateTaskPriorityAndBatchSeqParam param) {
+ if (param == null) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
+ }
+ if (Cools.isEmpty(param.getTaskNo())) {
+ throw new CoolException("WMS浠诲姟鍙蜂笉鑳戒负绌�");
+ }
+ if (param.getTaskPri() == null && param.getBatchSeq() == null) {
+ throw new CoolException("浠诲姟浼樺厛绾у拰鎵规搴忓彿涓嶈兘鍚屾椂涓虹┖");
+ }
+
+ WrkMast wrkMast = wrkMastService.getOne(new QueryWrapper<WrkMast>().eq("wms_wrk_no", param.getTaskNo()));
+ if (wrkMast == null) {
+ throw new CoolException("浠诲姟涓嶅瓨鍦�");
+ }
+
+ if (param.getTaskPri() != null) {
+ wrkMast.setIoPri(param.getTaskPri().doubleValue());
+ }
+ if (param.getBatchSeq() != null) {
+ wrkMast.setBatchSeq(param.getBatchSeq());
+ }
+ wrkMast.setModiTime(new Date());
+ wrkMastService.updateById(wrkMast);
+ return true;
+ }
+
+ public CancelTaskBatchResult cancelTaskBatch(CancelTaskBatchParam param) {
+ if (param == null) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
+ }
+
+ List<CancelTaskParam> taskList = param.getTaskList();
+ if (taskList == null || taskList.isEmpty()) {
+ throw new CoolException("浠诲姟鍙傛暟鍒楄〃涓虹┖");
+ }
+
+ List<String> successList = new ArrayList<>();
+ List<String> failList = new ArrayList<>();
+
+ for (CancelTaskParam cancelTaskParam : taskList) {
+ if (cancelTaskParam == null) {
+ throw new CoolException("浠诲姟鍙傛暟涓嶈兘涓虹┖");
+ }
+
+ boolean cancelStatus = false;
+ try {
+ cancelStatus = cancelTask(cancelTaskParam);
+ } catch (Exception e) {
+ }
+
+ if (cancelStatus) {
+ successList.add(cancelTaskParam.getTaskNo());
+ }else {
+ failList.add(cancelTaskParam.getTaskNo());
+ }
+ }
+
+ CancelTaskBatchResult result = new CancelTaskBatchResult();
+ result.setSuccessList(successList);
+ result.setFailList(failList);
+ return result;
+ }
+
+ public boolean manualRollbackTask(ManualRollbackTaskParam param) {
+ return wrkCommandRollbackService.manualRollbackTask(param);
}
//绉诲簱浠诲姟
@@ -445,7 +530,7 @@
Integer targetStationId = null;
for (StationObjModel stationObjModel : stationList) {
try {
- List<NavigateNode> navigateNodes = navigateUtils.calcByStationId(sourceStationId, stationObjModel.getStationId());
+ List<NavigateNode> navigateNodes = navigateUtils.calcReachablePathByStationId(sourceStationId, stationObjModel.getStationId());
if(!navigateNodes.isEmpty()) {
targetStationId = stationObjModel.getStationId();
break;
@@ -477,7 +562,7 @@
Integer finalSourceStationId = null;
for (StationObjModel stationObjModel : stationList) {
try {
- List<NavigateNode> navigateNodes = navigateUtils.calcByStationId(stationObjModel.getStationId(), targetStationId);
+ List<NavigateNode> navigateNodes = navigateUtils.calcReachablePathByStationId(stationObjModel.getStationId(), targetStationId);
if(!navigateNodes.isEmpty()) {
finalSourceStationId = stationObjModel.getStationId();
break;
--
Gitblit v1.9.1