From 898c06ef86ea9f0c2ed0e196415487359a7e4055 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 29 四月 2026 15:11:12 +0800
Subject: [PATCH] 创建出库任务时修改任务优先级
---
src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java | 66 +++++++++++++++++++++++----------
1 files changed, 46 insertions(+), 20 deletions(-)
diff --git a/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java b/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
index 1315844..4adb768 100644
--- a/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
@@ -687,6 +687,11 @@
}
WrkMast mast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", params.getSuperTaskNo()));
if (Objects.isNull(mast)) {
+ // pakoutOrderPause 涓鏃讹紝WMS 鍦� WCS 纭鍙栨秷鍚庝細绔嬪嵆鏈湴鍙栨秷骞跺綊妗d换鍔°��
+ // 濡傛灉 WCS 鍚庣画鍙堣ˉ鍙� task_cancel 鍥炶皟锛屾鏃跺綋鍓嶅伐浣滄。宸蹭笉瀛樺湪锛屾寜骞傜瓑鎴愬姛澶勭悊銆�
+ if (isTaskCancelCallback(params)) {
+ return R.ok();
+ }
throw new CoolException("浠诲姟妗d笉瀛樺湪锛侊紒");
}
@@ -722,27 +727,43 @@
throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
}
}
- } else if ("task".equalsIgnoreCase(params.getNotifyType())) {
+ } else if (isTaskCompleteCallback(params)) {
//浠诲姟
- if ("task_complete".equalsIgnoreCase(params.getMsgType())) {
-
- if (mast.getIoType() == 1 || mast.getIoType() == 2 || mast.getIoType() == 10 || mast.getIoType() == CHANGE_LOC_IO_TYPE) {
- mast.setWrkSts(4L);
- } else if (isOutboundTask(mast) && canMarkOutboundTaskComplete(mast)) {
- mast.setWrkSts(14L);
- if(Cools.isEmpty(mast.getStaNo())){
- mast.setOveMk("Y");
- }
+ if (isInboundOrMoveTask(mast)) {
+ mast.setWrkSts(4L);
+ } else if (isOutboundTask(mast) && canMarkOutboundTaskComplete(mast)) {
+ mast.setWrkSts(14L);
+ if(Cools.isEmpty(mast.getStaNo())){
+ mast.setOveMk("Y");
}
- if (!wrkMastService.updateById(mast)) {
- throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
- }
- //wcs浠诲姟鍙栨秷鎺ュ彛
- } else if ("task_cancel".equalsIgnoreCase(params.getMsgType())) {
- workService.cancelWrkMast(String.valueOf(mast.getWrkNo()), 9955L);
}
+ if (!wrkMastService.updateById(mast)) {
+ throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ } else if (isTaskCancelCallback(params)) {
+ //wcs浠诲姟鍙栨秷鎺ュ彛
+ workService.cancelWrkMast(String.valueOf(mast.getWrkNo()), 9955L);
}
return R.ok();
+ }
+
+ private boolean isTaskCompleteCallback(ReceviceTaskParams params) {
+ return params != null && "task_complete".equalsIgnoreCase(params.getMsgType());
+ }
+
+ private boolean isTaskCancelCallback(ReceviceTaskParams params) {
+ return params != null && "task_cancel".equalsIgnoreCase(params.getMsgType());
+ }
+
+ private boolean isInboundOrMoveTask(WrkMast mast) {
+ if (mast == null || mast.getIoType() == null) {
+ return false;
+ }
+ Integer ioType = mast.getIoType();
+ return Objects.equals(ioType, 1)
+ || Objects.equals(ioType, 2)
+ || Objects.equals(ioType, 11)
+ || Objects.equals(ioType, CHANGE_LOC_IO_TYPE);
}
private boolean isOutboundCrnTaskRun(ReceviceTaskParams params) {
@@ -912,6 +933,11 @@
if (params == null || Cools.isEmpty(params.getLocNo())) {
return R.error("locNo涓嶈兘涓虹┖");
}
+ String s = Utils.WCSLocToWMSLoc(params.getLocNo());
+ if (Cools.isEmpty(params.getLocNo())) {
+ return R.error("locNo<UNK>");
+ }
+ params.setLocNo(s);
LocMast sourceLoc = locMastService.selectById(params.getLocNo());
if (sourceLoc == null) {
return R.error("褰撳墠搴撲綅涓嶅瓨鍦�");
@@ -938,7 +964,7 @@
}
private CrnDepthRuleProfile resolveChangeLocProfile(LocMast sourceLoc) {
- RowLastno rowLastno = rowLastnoService.selectById(sourceLoc.getWhsType());
+ RowLastno rowLastno = rowLastnoService.selectById(3);
return basCrnDepthRuleService.resolveProfile(rowLastno, sourceLoc.getCrnNo(), sourceLoc.getRow1());
}
@@ -1056,8 +1082,8 @@
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
wrkMast.setIoTime(now);
- wrkMast.setWrkSts(11L);
- wrkMast.setIoType(CHANGE_LOC_IO_TYPE);
+ wrkMast.setWrkSts(1L);
+ wrkMast.setIoType(11);
wrkMast.setIoPri(10D);
wrkMast.setCrnNo(sourceLoc.getCrnNo());
wrkMast.setSourceLocNo(sourceLoc.getLocNo());
@@ -1365,7 +1391,7 @@
if (Objects.isNull(wrkMast)) {
return;
}
- if (wrkMast.getIoType()==1 || wrkMast.getIoType()==10) {
+ if (wrkMast.getIoType()==1 || wrkMast.getIoType()==11) {
wrkMast.setWrkSts(2L);
wrkMast.setModiTime(new Date());
wrkMastService.updateById(wrkMast);
--
Gitblit v1.9.1