From cac27c083bacfcb1fe602d722729676f87ee7023 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期五, 24 四月 2026 15:20:25 +0800
Subject: [PATCH] 完善电视机出库托数延时高的问题
---
src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java | 33 ++++++++++++++++++++++++++++++---
1 files changed, 30 insertions(+), 3 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 603ded6..4fc62b5 100644
--- a/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
@@ -51,6 +51,7 @@
private static final long OUT_LOCK_REPORT_SUCCESS_WRK_STS = 21L;
private static final long OUT_LOCK_REPORT_FAIL_WRK_STS = 22L;
private static final long OUTBOUND_CRN_COMPLETE_WRK_STS = 25L;
+ private static final long OUTBOUND_STATION_COMPLETE_WRK_STS = 26L;
private static final String OUT_LOCK_REPORT_PENDING_FLAG = "P";
/** 鍚屼竴 WCS 璺緞銆佸悓涓�鍗曞彿涓嬩竴缁勪笅鍙戠殑浠诲姟鏉℃暟涓婇檺 */
@@ -701,9 +702,18 @@
throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
}
}
- } else if (params.getNotifyType().equals("task")) {
+ } else if (isOutboundStationTaskRunComplete(params)) {
+ // WCS杈撻�佺珯鐐瑰嚭搴撲换鍔¤繍琛屽畬鎴愶細鎵樼洏宸插埌鐩殑鍦帮紝宸ヤ綔鐘舵�� -> 26銆�
+ if (isOutboundTask(mast) && canMarkOutboundStationComplete(mast)) {
+ mast.setWrkSts(OUTBOUND_STATION_COMPLETE_WRK_STS);
+ mast.setModiTime(new Date());
+ if (!wrkMastService.updateById(mast)) {
+ throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ }
+ } else if ("task".equalsIgnoreCase(params.getNotifyType())) {
//浠诲姟
- if (params.getMsgType().equals("task_complete")) {
+ if ("task_complete".equalsIgnoreCase(params.getMsgType())) {
if (mast.getIoType() == 1 || mast.getIoType() == 2 ||mast.getIoType() == 10) {
mast.setWrkSts(4L);
@@ -717,7 +727,7 @@
throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
}
//wcs浠诲姟鍙栨秷鎺ュ彛
- } else if (params.getMsgType().equals("task_cancel")) {
+ } else if ("task_cancel".equalsIgnoreCase(params.getMsgType())) {
workService.cancelWrkMast(String.valueOf(mast.getWrkNo()), 9955L);
}
}
@@ -736,6 +746,12 @@
&& "crn_out_task_complete".equalsIgnoreCase(params.getMsgType());
}
+ private boolean isOutboundStationTaskRunComplete(ReceviceTaskParams params) {
+ return params != null
+ && "Devp".equalsIgnoreCase(params.getNotifyType())
+ && "station_out_task_run_complete".equalsIgnoreCase(params.getMsgType());
+ }
+
private boolean isOutboundTask(WrkMast mast) {
return mast != null && mast.getIoType() != null && (mast.getIoType() == 101 || mast.getIoType() == 110);
}
@@ -756,6 +772,17 @@
return mast.getWrkSts() < 14
|| mast.getWrkSts().equals(OUT_LOCK_REPORT_SUCCESS_WRK_STS)
|| mast.getWrkSts().equals(OUT_LOCK_REPORT_FAIL_WRK_STS)
+ || mast.getWrkSts().equals(OUTBOUND_CRN_COMPLETE_WRK_STS)
+ || mast.getWrkSts().equals(OUTBOUND_STATION_COMPLETE_WRK_STS);
+ }
+
+ private boolean canMarkOutboundStationComplete(WrkMast mast) {
+ if (mast == null || mast.getWrkSts() == null) {
+ return false;
+ }
+ return mast.getWrkSts() < 14
+ || mast.getWrkSts().equals(OUT_LOCK_REPORT_SUCCESS_WRK_STS)
+ || mast.getWrkSts().equals(OUT_LOCK_REPORT_FAIL_WRK_STS)
|| mast.getWrkSts().equals(OUTBOUND_CRN_COMPLETE_WRK_STS);
}
--
Gitblit v1.9.1