From 9145f8a44c6ae733019e43c775cc30243032e502 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 29 四月 2026 16:16:43 +0800
Subject: [PATCH] 拍照触发修改
---
src/main/java/com/zy/common/web/WcsController.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 55 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index eadceac..199f018 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -85,6 +85,7 @@
}
WrkMast wrkMast1 = wrkMastService.selectByBarcode(param.getBarcode());
if (!Cools.isEmpty(wrkMast1) && wrkMast1.getWrkSts() == 2) {
+ triggerInboundCaptureAfterLocAssigned(wrkMast1);
StartupDto dto1 = new StartupDto();
dto1.setBarcode(param.getBarcode());
dto1.setStaNo(Integer.valueOf(wrkMast1.getStaNo()));
@@ -497,6 +498,10 @@
wrkMast.setUserNo(waitPakins.get(0).getOrderNo());
wrkMast.setCubeNumber(waitPakins.get(0).getCubeNumber());
wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
+ // WCS鐢宠鍏ュ簱鏃讹紝WMS鎵惧埌搴撲綅鍚庣珛鍗虫媿鐓э紱瀹氭椂浠诲姟鍙綔涓烘湭澶勭悊鐘舵�佺殑鍏滃簳銆�
+ wrkMast.setMemo(InboundCameraCaptureService.CAPTURE_PENDING);
+ wrkMast.setPlateNo(waitPakins.get(0).getPlateNo());
+ wrkMast.setTrainNo(waitPakins.get(0).getTrainNo());
// 鎿嶄綔浜哄憳鏁版嵁
wrkMast.setAppeTime(now);
wrkMast.setModiTime(now);
@@ -504,7 +509,6 @@
if (!res) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
- String pic = inboundCameraCaptureService.capture(devpNo, dto.getLocNo(), barcode);
// 鐢熸垚宸ヤ綔妗f槑缁�
waitPakins.forEach(waitPakin -> {
WrkDetl wrkDetl = new WrkDetl();
@@ -514,9 +518,6 @@
wrkDetl.setAppeTime(now);
wrkDetl.setModiTime(now);
wrkDetl.setWeight(wrkMast.getScWeight());
- if (!Cools.isEmpty(pic)) {
- wrkDetl.setPic(pic);
- }
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
}
@@ -552,12 +553,62 @@
String wcsLoc = Utils.WMSLocToWCSLoc(dto.getLocNo());
dto.setLocNo(wcsLoc);
dto.setTaskNo(workNo + "");
+ triggerInboundCaptureAfterLocAssigned(wrkMast);
return dto;
} finally {
log.info("startupFullPutStore鑰楁椂:{}ms, sourceStaNo:{}, barcode:{}", System.currentTimeMillis() - startTime, devpNo, barcode);
}
}
+ private void triggerInboundCaptureAfterLocAssigned(WrkMast wrkMast) {
+ if (!shouldTriggerInboundCapture(wrkMast)) {
+ return;
+ }
+ try {
+ ensureInboundCapturePending(wrkMast);
+ inboundCameraCaptureService.processPendingCapture(wrkMast);
+ } catch (Exception e) {
+ log.warn("WCS鐢宠鍏ュ簱鍚庤Е鍙戞媿鐓уけ璐ワ細workNo={}, sourceStaNo={}, locNo={}, barcode={}",
+ wrkMast.getWrkNo(), wrkMast.getSourceStaNo(), wrkMast.getLocNo(), wrkMast.getBarcode(), e);
+ }
+ }
+
+ private boolean shouldTriggerInboundCapture(WrkMast wrkMast) {
+ if (wrkMast == null || wrkMast.getWrkNo() == null) {
+ return false;
+ }
+ if (wrkMast.getIoType() == null || wrkMast.getIoType() != 1) {
+ return false;
+ }
+ if (Cools.isEmpty(wrkMast.getSourceStaNo(), wrkMast.getLocNo(), wrkMast.getBarcode())) {
+ return false;
+ }
+ if (InboundCameraCaptureService.CAPTURE_RUNNING.equals(wrkMast.getMemo())) {
+ return false;
+ }
+ List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+ if (Cools.isEmpty(wrkDetls)) {
+ return true;
+ }
+ for (WrkDetl wrkDetl : wrkDetls) {
+ if (wrkDetl != null && !Cools.isEmpty(wrkDetl.getPic())) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private void ensureInboundCapturePending(WrkMast wrkMast) {
+ if (!Cools.isEmpty(wrkMast.getMemo())) {
+ return;
+ }
+ WrkMast update = new WrkMast();
+ update.setMemo(InboundCameraCaptureService.CAPTURE_PENDING);
+ update.setModiTime(new Date());
+ wrkMastService.update(update, new EntityWrapper<WrkMast>().eq("wrk_no", wrkMast.getWrkNo()));
+ wrkMast.setMemo(InboundCameraCaptureService.CAPTURE_PENDING);
+ }
+
/**
* 鎸囧畾搴撲綅鏆傚瓨鍦ㄥ叆搴撻�氱煡妗� manu 瀛楁锛岀瓑 WCS 鐪熸寤轰换鍔℃椂鍐嶈鍙栥��
*/
--
Gitblit v1.9.1