From 348cb1901f202eec59d9c5200186f2aa03773569 Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期二, 20 一月 2026 15:57:43 +0800
Subject: [PATCH] 重复工作档验证
---
src/main/java/com/zy/service/impl/MainServiceImpl.java | 70 +++++++++++++++++++++++++++-------
1 files changed, 55 insertions(+), 15 deletions(-)
diff --git a/src/main/java/com/zy/service/impl/MainServiceImpl.java b/src/main/java/com/zy/service/impl/MainServiceImpl.java
index 5e13bfe..140986d 100644
--- a/src/main/java/com/zy/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/service/impl/MainServiceImpl.java
@@ -161,13 +161,12 @@
// 閫�鍥�
if (back && staProtocol.isInEnable() && staProtocol.isLoading() && staProtocol.isPakMk() && !staProtocol.isEmptyMk() ) {
MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
- staProtocol.setWorkNo(wrkNo);
- wrkNo++;
- News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
+ News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg, staProtocol.getWorkNo());
+ staProtocol.setWorkNo(9999);
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta());
+ log.error("杈撻�佺嚎涓嬪彂1锛�"+staProtocol.getWorkNo()+","+inSta.getBackSta());
return;
}
@@ -222,13 +221,12 @@
ledThread.errorReset();
}
} else {
- staProtocol.setWorkNo(wrkNo);
- wrkNo++;
+ staProtocol.setWorkNo(9999);
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
String errorMsg = jsonObject.getString("msg");
- log.error("鍏ㄧ増鍏ュ簱鍥為��,"+wrkNo+","+errorMsg);
+ log.error("鍏ㄧ増鍏ュ簱鍥為��,"+staProtocol.getWorkNo()+","+errorMsg);
if (!Cools.isEmpty(errorMsg)) {
MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
}
@@ -296,12 +294,11 @@
StaDesc staDesc = staDescService.selectOne(wrapper);
if (Cools.isEmpty(staDesc)) {
News.error(""+mark+" - 2"+" - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
- staProtocol.setWorkNo(wrkNo);
- wrkNo++;
+ staProtocol.setWorkNo(9999);
staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1));
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂4锛�"+wrkNo+","+(pickSta.getStaNo().shortValue()-(short)1));
+ log.error("杈撻�佺嚎涓嬪彂4锛�"+staProtocol.getWorkNo()+","+(pickSta.getStaNo().shortValue()-(short)1));
//LED
LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
// led 寮傚父鏄剧ず
@@ -1044,6 +1041,12 @@
for (DevpSlave devp : slaveProperties.getDevp()) {
// 閬嶅巻绌烘澘鍏ュ簱鍙�
for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
+ // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+ BarcodeThread barcodeThread = null;
+ if (!Cools.isEmpty(emptyInSta.getBarcode())) {
+ barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, emptyInSta.getBarcode());
+ }
+
// 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo());
@@ -1062,6 +1065,16 @@
continue;
}
+ // 妫�鏌ユ潯鐮佹壂鎻忥細濡傛灉鎵弿鍒版潯鐮侊紝鍒欏瓨鍏ワ紝鎵弿涓嶅埌锛屽垯涓嶅瓨
+ String barcode = null;
+ if (barcodeThread != null) {
+ barcode = barcodeThread.getBarcode();
+ // 濡傛灉鏉$爜涓虹┖銆丯G銆丯oRead鎴�00000000
+ if (Cools.isEmpty(barcode) || barcode.endsWith("NG") || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
+ barcode=null;
+ }
+ }
+
// 绔欑偣鏉′欢鍒ゆ柇
if (staProtocol.isAutoing() //鑷姩
&& staProtocol.isLoading() //鏈夌墿
@@ -1070,7 +1083,24 @@
&& staProtocol.isPakMk() //闃叉閲嶅涓嬪彂淇″彿 绔欑偣鏃犵墿 鏃犱换鍔″彿浼氳嚜鍔ㄥ彉鎴恡rue
) {
- News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛岋細绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�");
+ // 鍒ゆ柇閲嶅宸ヤ綔妗�
+ WrkMast wrkMast = null;
+ if (!Cools.isEmpty(barcode)) {
+ // 鏈夋潯鐮佹椂锛屾鏌ユ槸鍚︽湁鐩稿悓绔欑偣鍜屾潯鐮佺殑绌烘澘鍏ュ簱宸ヤ綔妗�
+ wrkMast = wrkMastMapper.selectPakInStep1(emptyInSta.getStaNo(), barcode);
+ } else {
+ // 鏃犳潯鐮佹椂锛屾鏌ユ槸鍚︽湁鐩稿悓绔欑偣涓斿伐浣滅姸鎬佷负2鐨勭┖鏉垮叆搴撳伐浣滄。
+ wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("source_sta_no", emptyInSta.getStaNo())
+ .eq("wrk_sts", 2)
+ .eq("io_type", 10));
+ }
+ if (wrkMast != null) {
+ News.info("{}绌烘澘鍏ュ簱閲嶅宸ヤ綔妗f鏌ワ細宸插瓨鍦ㄥ伐浣滄。锛屽伐浣滃彿锛歿}锛屾潯鐮侊細{}", emptyInSta.getStaNo(), wrkMast.getWrkNo(), barcode);
+ continue;
+ }
+
+ News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛岋細绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐э紝鏉$爜锛歿}", barcode);
try {
LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
@@ -1079,6 +1109,7 @@
param.setIoType(10);
param.setSourceStaNo(emptyInSta.getStaNo());
param.setLocType1(locTypeDto.getLocType1());
+ param.setBarcode(barcode); // 璁剧疆鎵弿鍒扮殑鏉$爜
String response = new HttpHandler.Builder()
.setUri(wmsUrl)
.setPath("/rpc/pakin/loc/v1")
@@ -1088,6 +1119,11 @@
JSONObject jsonObject = JSON.parseObject(response);
if (jsonObject.getInteger("code").equals(200)) {
StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+
+ // 娓呯┖鏉$爜
+ if (barcodeThread != null) {
+ barcodeThread.setBarcode("");
+ }
// 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
staProtocol.setWorkNo(dto.getWorkNo());
@@ -1115,13 +1151,17 @@
// ledThread.errorReset();
}
} else {
- staProtocol.setWorkNo(wrkNo);
- wrkNo++;
+ String errorMsg = jsonObject.getString("msg");
+ // 濡傛灉浠诲姟鍥為��锛屽苟涓旂珯鐐逛笉鏄嚜鍔ㄧ姸鎬侊紝鍒欎笉瑙﹀彂鍥為��
+ if (!staProtocol.isAutoing()) {
+ log.error("绌烘澘鍏ュ簱鍥為��"+staProtocol.getWorkNo()+","+errorMsg+"锛岀珯鐐逛笉鏄嚜鍔ㄧ姸鎬侊紝涓嶈Е鍙戝洖閫�");
+ continue;
+ }
+ log.error("绌烘澘鍏ュ簱鍥為��"+staProtocol.getWorkNo()+","+errorMsg);
+ staProtocol.setWorkNo(9999);
staProtocol.setStaNo(emptyInSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- String errorMsg = jsonObject.getString("msg");
- log.error("绌烘澘鍏ュ簱鍥為��"+wrkNo+","+errorMsg);
if (!result) {
News.errorNoLog(""+mark+" - 2"+" - 鏇存柊plc绔欑偣淇℃伅澶辫触");
throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
--
Gitblit v1.9.1