From 725d7512b15a1e303d89e409f3f6a11cbcd0f5e9 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期三, 03 九月 2025 08:54:23 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 800 +++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 630 insertions(+), 170 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index e064d65..8fea465 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -10,6 +10,7 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.*;
import com.zy.asrs.service.*;
+import com.zy.system.service.*;
import com.zy.asrs.utils.RouteUtils;
import com.zy.asrs.utils.Utils;
import com.zy.asrs.utils.VersionUtils;
@@ -38,6 +39,9 @@
import com.zy.core.thread.LedThread;
import com.zy.core.thread.RgvThread;
import com.zy.core.thread.SiemensDevpThread;
+import com.zy.system.entity.Config;
+import com.zy.system.mapper.ConfigMapper;
+import com.zy.system.service.ConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -45,7 +49,10 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -94,6 +101,8 @@
private WrkMastService wrkMastService;
@Autowired
private BasRgvMapService basRgvMapService;
+ @Autowired
+ private ConfigService configService;
@Value("${wms.url}")
private String wmsUrl;
@@ -101,12 +110,9 @@
private boolean isToOrigin;
public Integer wrkNo = 10000;
-
- /**
- * 缁勬墭
- * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
- */
- public synchronized void generateStoreWrkFile(Integer mark) {
+ @Autowired
+ private ConfigMapper configMapper;
+ public synchronized void generateStoreWrkFile3(Integer mark) {
String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
// 鏍规嵁杈撻�佺嚎plc閬嶅巻
for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -117,16 +123,23 @@
LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+ StaProtocol staProtocolIn = devpThread.getStation().get(inSta.getStaNo() -1);
+ if (staProtocolIn == null) {
+ continue;
+ } else {
+ staProtocolIn = staProtocolIn.clone();
+ }
+ if (barcodeThread == null) {
+ continue;
+ }
+ String barcode = barcodeThread.getBarcode();
+
if (staProtocol == null) {
continue;
} else {
staProtocol = staProtocol.clone();
}
- if (barcodeThread == null) {
- continue;
- }
- String barcode = barcodeThread.getBarcode();
// 灏哄妫�娴嬪紓甯�
boolean back = false;
String errMsg = "";
@@ -150,19 +163,23 @@
errMsg = "鍙宠秴闄�";
back = true;
}
- if (!back && staProtocol.isWeightErr()) {
- errMsg = "瓒呴噸";
+ if (!back && staProtocol.getWeight() > 1000) {
+ errMsg = "瓒呴噸鎴栨湭璇诲彇";
back = true;
}
if (!back && staProtocol.isBarcodeErr()) {
errMsg = "鎵爜澶辫触";
back = true;
}
+// if(staProtocol.getWeight() <= 0 ){
+// continue;
+// }
// if (!back && staProtocol.getWeight() == 0.0) {
// errMsg = "閲嶉噺鑾峰彇澶辫触";
// back = true;
// }
+// News.info("{}閲嶉噺", staProtocol.getWeight());
// 閫�鍥�
if (back) {
@@ -214,7 +231,7 @@
//
// }
News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,璇锋煡鐪媁CS杈撻�佺嚎鐣岄潰,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
- MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑浠诲姟,宸ヤ綔鍙�=" + wrkMast.getWrkNo()));
+// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑浠诲姟,宸ヤ綔鍙�=" + wrkMast.getWrkNo()));
continue;
// barcodeThread.setBarcode("");
// staProtocol.setWorkNo(wrkMast.getWrkNo());
@@ -279,27 +296,6 @@
}
} else {
if (jsonObject.getString("msg").equals("宸ヤ綔妗e凡瀛樺湪")) {
-
- //宸ヤ綔妗e凡瀛樺湪 鍐嶆杩涘幓
-// wrkMast = wrkMastMapper.selectPakInStepBarcode(barcode);
-// if (wrkMast != null) {
-// barcodeThread.setBarcode("");
-// staProtocol.setWorkNo(9999);
-// //staProtocol.setWorkNo(wrkMast.getWrkNo());
-// //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
-// staProtocol.setStaNo(inSta.getBackSta().shortValue());
-// devpThread.setPakMk(staProtocol.getSiteId(), false);
-// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-// log.error("杈撻�佺嚎涓嬪彂2锛�" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
-// ledThread.errorReset();
-// log.error("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
-// if (!result) {
-// News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
-//
-// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-// }
-// }
-
continue;
}
staProtocol.setWorkNo(wrkNo);
@@ -307,7 +303,8 @@
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//
+ log.error("杈撻�佺嚎涓嬪彂2锛�" + staProtocol.getWorkNo() + "," + staProtocol.getStaNo());
+
// if (ledThread != null) {
String errorMsg = jsonObject.getString("msg");
if (!Cools.isEmpty(errorMsg)) {
@@ -331,6 +328,432 @@
// News.infoNoLog(""+mark+" - 0"+" - 缁勬墭 ===銆嬫墽琛屽畬鎴�");
}
+ /**
+ * 缁勬墭
+ * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
+ */
+// public synchronized void generateStoreWrkFile(Integer mark) {
+// String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+// // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+// for (DevpSlave devp : slaveProperties.getDevp()) {
+// // 閬嶅巻鍏ュ簱鍙�
+// for (DevpSlave.Sta inSta : devp.getInSta()) {
+// // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
+// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+// StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+// StaProtocol staProtocolIn = devpThread.getStation().get(inSta.getStaNo() -1);
+// if (staProtocolIn == null) {
+// continue;
+// } else {
+// staProtocolIn = staProtocolIn.clone();
+// }
+// if (barcodeThread == null) {
+// continue;
+// }
+// String barcode = barcodeThread.getBarcode();
+// if(staProtocolIn.getStamp() == 1 && barcode!=null && !barcode.isEmpty()) {
+// log.error("鐢熸垚浠诲姟涓�");
+//
+// WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+// .eq("barcode", barcode)
+// .in("io_type", 107, 103, 57));
+// if (!Cools.isEmpty(checkPick)) {
+// continue;
+// }
+// try {
+// LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+//
+// SearchLocParam param = new SearchLocParam();
+// locTypeDto.setLocType1((short) 1);
+// param.setBarcode(barcode);
+// param.setIoType(1);
+// param.setSourceStaNo(inSta.getStaNo());
+// param.setLocType1(locTypeDto.getLocType1());
+// param.setWeight(staProtocol.getWeight());
+// String response = new HttpHandler.Builder()
+// .setTimeout(30, TimeUnit.SECONDS)
+// .setUri(wmsUrl)
+// .setPath("/rpc/pakin/loc/v1")
+// .setJson(JSON.toJSONString(param))
+// .build()
+// .doPost();
+// JSONObject jsonObject = JSON.parseObject(response);
+// if (jsonObject.getInteger("code").equals(200)) {
+// StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+// barcodeThread.setBarcode("");
+// staProtocolIn.setWorkNo(dto.getWorkNo());
+//// //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
+//// staProtocol.setStaNo(dto.getStaNo().shortValue());
+// devpThread.setPakMk(staProtocolIn.getSiteId(), false);
+// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocolIn));
+// log.error("宸ヤ綔鍙蜂笅鍙�2锛�" + dto.getWorkNo() + "," + dto.getStaNo());
+// ledThread.errorReset();
+// log.error("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
+// if (!result) {
+// News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
+//
+// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+// }
+// }
+// } catch (Exception e) {
+// e.printStackTrace();
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// }
+// }else{
+// if (staProtocol == null) {
+// continue;
+// } else {
+// staProtocol = staProtocol.clone();
+// }
+//
+// // 灏哄妫�娴嬪紓甯�
+// boolean back = false;
+// String errMsg = "";
+// if (staProtocol.isFrontErr()) {
+// errMsg = "鍓嶈秴闄�";
+// back = true;
+// }
+// if (!back && staProtocol.isBackErr()) {
+// errMsg = "鍚庤秴闄�";
+// back = true;
+// }
+// if (!back && staProtocol.isHighErr()) {
+// errMsg = "楂樿秴闄�";
+// back = true;
+// }
+// if (!back && staProtocol.isLeftErr()) {
+// errMsg = "宸﹁秴闄�";
+// back = true;
+// }
+// if (!back && staProtocol.isRightErr()) {
+// errMsg = "鍙宠秴闄�";
+// back = true;
+// }
+// if (!back && staProtocol.getWeight() > 1000) {
+// errMsg = "瓒呴噸鎴栨湭璇诲彇";
+// back = true;
+// }
+// if (!back && staProtocol.isBarcodeErr()) {
+// errMsg = "鎵爜澶辫触";
+// back = true;
+// }
+//
+// // 閫�鍥�
+// if (back) {
+// log.info("errmsg: " + errMsg);
+//// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
+// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
+//
+// if (!staProtocol.isLoading()) {
+// continue;
+// }
+// if (!staProtocol.isPakMk()) {
+// continue;
+// }
+// staProtocol.setWorkNo(wrkNo);
+// News.info("{}PLC鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg, wrkNo);
+// wrkNo++;
+// 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());
+// }
+//
+// // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+// if (staProtocol.isAutoing()
+// && staProtocol.isLoading()
+// && staProtocol.isInEnable()
+// && !staProtocol.isEmptyMk()
+// && staProtocol.isPakMk()) {
+// if (Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
+// News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+//
+// staProtocol.setWorkNo(wrkNo);
+// News.info("{}barcode鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg, wrkNo);
+// wrkNo++;
+// 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());
+// continue;
+// }
+// // 鍒ゆ柇閲嶅宸ヤ綔妗�
+// WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
+// if (wrkMast != null) {
+// News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,璇锋煡鐪媁CS杈撻�佺嚎鐣岄潰,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
+// continue;
+// }
+// WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+// .eq("barcode", barcode)
+// .in("io_type", 107, 103, 57));
+// if (!Cools.isEmpty(checkPick)) {
+// continue;
+// }
+// try {
+// LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+//
+// SearchLocParam param = new SearchLocParam();
+// locTypeDto.setLocType1((short) 1);
+// param.setBarcode(barcode);
+// param.setIoType(1);
+// param.setSourceStaNo(inSta.getStaNo());
+// param.setLocType1(locTypeDto.getLocType1());
+// param.setWeight(staProtocol.getWeight());
+// String response = new HttpHandler.Builder()
+// .setTimeout(30,TimeUnit.SECONDS)
+// .setUri(wmsUrl)
+// .setPath("/rpc/pakin/loc/v1")
+// .setJson(JSON.toJSONString(param))
+// .build()
+// .doPost();
+// JSONObject jsonObject = JSON.parseObject(response);
+// if (jsonObject.getInteger("code").equals(200)) {
+// StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+// barcodeThread.setBarcode("");
+// staProtocol.setWorkNo(dto.getWorkNo());
+// //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
+// staProtocol.setStaNo(dto.getStaNo().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// log.error("杈撻�佺嚎涓嬪彂2锛�" + dto.getWorkNo() + "," + dto.getStaNo());
+//
+// ledThread.errorReset();
+// log.error("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
+//
+// if (!result) {
+// News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
+//
+// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+// }
+// } else {
+// if (jsonObject.getString("msg").equals("宸ヤ綔妗e凡瀛樺湪")) {
+// continue;
+// }
+// staProtocol.setWorkNo(wrkNo);
+// wrkNo++;
+// staProtocol.setStaNo(inSta.getBackSta().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// log.error("杈撻�佺嚎涓嬪彂2锛�" + staProtocol.getWorkNo() + "," + staProtocol.getStaNo());
+//
+// String errorMsg = jsonObject.getString("msg");
+// if (!Cools.isEmpty(errorMsg)) {
+// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
+// }
+// }
+//
+// } catch (Exception e) {
+// e.printStackTrace();
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// }
+//
+// }
+// }
+// }
+// }
+//
+// }
+
+ // 闈欐�佺嚎绋嬪畨鍏⊿et锛岀敤浜庡瓨鍌ㄦ鍦ㄨ皟鐢ㄦ帴鍙g殑宸ヤ綅鍙�
+ private static final Set<Integer> callingStations = ConcurrentHashMap.newKeySet();
+
+ public synchronized void generateStoreWrkFile(Integer mark) {
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ for (DevpSlave.Sta inSta : devp.getInSta()) {
+
+ // 銆愬垽鏂伐浣嶆槸鍚︽鍦ㄨ皟鐢ㄦ帴鍙o紝璺宠繃姝e湪璋冪敤鐨勩��
+ int staNo = inSta.getStaNo();
+ if (!callingStations.add(staNo)) {
+ // 濡傛灉宸插瓨鍦ㄨ皟鐢ㄤ腑锛岃烦杩�
+ log.info("宸ヤ綅{}鎺ュ彛璋冪敤涓紝璺宠繃鏈", staNo);
+ continue;
+ }
+
+ try {
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+
+ StaProtocol staProtocol = devpThread.getStation().get(staNo);
+ StaProtocol staProtocolIn = devpThread.getStation().get(staNo - 1);
+
+ if (staProtocolIn == null || barcodeThread == null) continue;
+ staProtocolIn = staProtocolIn.clone();
+ String barcode = barcodeThread.getBarcode();
+
+ // 濡傛灉鍓嶅伐浣嶆湁璐� + 鎵爜鍣ㄦ湁鏉$爜
+ if (staProtocolIn.getStamp() == 1 && !barcode.equals("00000000") && !barcode.isEmpty()) {
+ log.info("鐢熸垚淇″彿鏃堕棿: {}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date()));
+ if (wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("barcode", barcode)
+ .in("io_type", 107, 103, 57)) != null) {
+ continue;
+ }
+
+ try {
+
+
+ SearchLocParam param = new SearchLocParam();
+ param.setBarcode(barcode);
+ param.setIoType(1);
+ param.setSourceStaNo(staNo);
+ param.setLocType1((short) 1);
+ param.setWeight(staProtocol.getWeight());
+
+ String response = new HttpHandler.Builder()
+ .setTimeout(30, TimeUnit.SECONDS)
+ .setUri(wmsUrl)
+ .setPath("/rpc/pakin/loc/v1")
+ .setJson(JSON.toJSONString(param))
+ .build()
+ .doPost();
+
+ JSONObject json = JSON.parseObject(response);
+ if (json.getInteger("code").equals(200)) {
+ StartupDto dto = json.getObject("data", StartupDto.class);
+ barcodeThread.setBarcode("");
+ staProtocolIn.setWorkNo(dto.getWorkNo());
+ devpThread.setPakMk(staProtocolIn.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocolIn));
+ log.info("鐢熸垚浠诲姟鏃堕棿: {}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date()));
+
+ ledThread.errorReset();
+ log.error("宸ヤ綔鍙蜂笅鍙�2锛�" + dto.getWorkNo() + "," + dto.getStaNo());
+
+ if (!result) {
+ News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
+ throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+ }
+ } else {
+ String msg = json.getString("msg");
+ if (!"宸ヤ綔妗e凡瀛樺湪".equals(msg) && staProtocol.getWorkNo()<9999) {
+ staProtocol.setWorkNo(wrkNo++);
+ staProtocol.setStaNo(inSta.getBackSta().shortValue());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ log.error("杈撻�佺嚎涓嬪彂2锛�" + staProtocol.getWorkNo() + "," + staProtocol.getStaNo());
+ if (!Cools.isEmpty(msg)) {
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, msg));
+ }
+ }
+ }
+ } catch (Exception e) {
+ log.error("缁勬墭浠诲姟寮傚父锛�", e);
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+
+ } else {
+ // 灏哄/閲嶉噺/鎵爜寮傚父妫�娴�
+ if (staProtocol == null) continue;
+ staProtocol = staProtocol.clone();
+ boolean back = false;
+ String errMsg = "";
+
+ if (staProtocol.isFrontErr()) { errMsg = "鍓嶈秴闄�"; back = true; }
+ else if (staProtocol.isBackErr()) { errMsg = "鍚庤秴闄�"; back = true; }
+ else if (staProtocol.isHighErr()) { errMsg = "楂樿秴闄�"; back = true; }
+ else if (staProtocol.isLeftErr()) { errMsg = "宸﹁秴闄�"; back = true; }
+ else if (staProtocol.isRightErr()) { errMsg = "鍙宠秴闄�"; back = true; }
+ else if (staProtocol.getWeight() > 1000) { errMsg = "瓒呴噸鎴栨湭璇诲彇"; back = true; }
+ else if (staProtocol.isBarcodeErr()) { errMsg = "鎵爜澶辫触"; back = true; }
+
+ // 灏哄寮傚父鍥為��
+ if (back && staProtocol.getWorkNo() == 9998) {
+// log.info("errmsg: " + errMsg);
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
+
+ if (!staProtocol.isLoading() || !staProtocol.isPakMk()) continue;
+ staProtocol.setWorkNo(wrkNo++);
+ 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());
+ }
+
+// // 鍏ュ簱鏉′欢婊¤冻锛屽紑濮嬭姹傚叆搴撳湴鍧�
+// if (staProtocol.isAutoing() && staProtocol.isLoading()
+// && staProtocol.isInEnable() && !staProtocol.isEmptyMk() && staProtocol.isPakMk()) {
+//
+// if (Cools.isEmpty(barcode) || INVALID_BARCODES.contains(barcode)) {
+// News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+// staProtocol.setWorkNo(wrkNo++);
+// 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());
+// continue;
+// }
+//
+// if (wrkMastMapper.selectPakInStep1(staNo, barcode) != null ||
+// wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+// .eq("barcode", barcode)
+// .in("io_type", 107, 103, 57)) != null) {
+// News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛�2.璁惧涓婅蛋锛夌殑鏁版嵁锛岃鏌ョ湅WCS杈撻�佺嚎鐣岄潰");
+// continue;
+// }
+//
+// try {
+// SearchLocParam param = new SearchLocParam();
+// param.setBarcode(barcode);
+// param.setIoType(1);
+// param.setSourceStaNo(staNo);
+// param.setLocType1((short) 1);
+// param.setWeight(staProtocol.getWeight());
+//
+// String response = new HttpHandler.Builder()
+// .setTimeout(30, TimeUnit.SECONDS)
+// .setUri(wmsUrl)
+// .setPath("/rpc/pakin/loc/v1")
+// .setJson(JSON.toJSONString(param))
+// .build()
+// .doPost();
+//
+// JSONObject json = JSON.parseObject(response);
+// if (json.getInteger("code").equals(200)) {
+// StartupDto dto = json.getObject("data", StartupDto.class);
+// barcodeThread.setBarcode("");
+// staProtocol.setWorkNo(dto.getWorkNo());
+// staProtocol.setStaNo(dto.getStaNo().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// ledThread.errorReset();
+// log.error("杈撻�佺嚎涓嬪彂2锛�" + dto.getWorkNo() + "," + dto.getStaNo());
+//
+// if (!result) {
+// News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
+// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+// }
+// } else {
+// String msg = json.getString("msg");
+// if (!"宸ヤ綔妗e凡瀛樺湪".equals(msg)) {
+// staProtocol.setWorkNo(wrkNo++);
+// staProtocol.setStaNo(inSta.getBackSta().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// log.error("杈撻�佺嚎涓嬪彂2锛�" + staProtocol.getWorkNo() + "," + staProtocol.getStaNo());
+// if (!Cools.isEmpty(msg)) {
+// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, msg));
+// }
+// }
+// }
+// } catch (Exception e) {
+// log.error("缁勬墭浠诲姟寮傚父锛�", e);
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// }
+// }
+ }
+ } finally {
+ // 銆愭棤璁烘帴鍙h皟鐢ㄦ槸鍚︽垚鍔燂紝鏈�鍚庨兘閲婃斁璋冪敤鏍囪銆�
+ callingStations.remove(staNo);
+ log.debug("宸ヤ綅{}鎺ュ彛璋冪敤瀹屾垚锛岄噴鏀捐皟鐢ㄦ爣璁�", staNo);
+ }
+ }
+ }
+ }
+
/**
* wms鍏ュ簱
@@ -917,7 +1340,7 @@
if (crnProtocol.getLastIo().equals("I")) {
if (basCrnp.getInEnable().equals("Y")) {
//mark - 1 - ....
- this.crnStnToLoc(crn, crnProtocol, mark); // 鍏ュ簱
+ this.crnStnToLoc(crn, crnProtocol, mark, crnThread); // 鍏ュ簱
crnProtocol.setLastIo("O");
} else if (basCrnp.getOutEnable().equals("Y")) {
//mark - 2 - ....
@@ -931,15 +1354,15 @@
this.locToCrnStn(crn, crnProtocol, mark); // 鍑哄簱
crnProtocol.setLastIo("I");
} else if (basCrnp.getInEnable().equals("Y")) {
- this.crnStnToLoc(crn, crnProtocol, mark); // 鍏ュ簱
+ this.crnStnToLoc(crn, crnProtocol, mark, crnThread); // 鍏ュ簱
crnProtocol.setLastIo("O");
}
}
}
// 搴撲綅绉昏浆
//mark - 3 - ....
-// this.locToLoc(crn, crnProtocol, mark);
-// this.crnRebackHp(crnProtocol, crnThread);
+ this.locToLoc(crn, crnProtocol, mark);
+ this.crnRebackHp(crnProtocol, crnThread,null);
}
// News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂鎵ц瀹屾垚");
@@ -948,55 +1371,103 @@
/**
* 鍥炲師鐐癸紝鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃澶囧瓨鍦ㄥ叆搴撲换鍔℃椂鍙洖鍘熺偣
*/
- public synchronized void crnRebackHp(CrnProtocol crnProtocol, CrnThread crnThread) {
-// for (CrnSlave crn : slaveProperties.getCrn()) {
-// // 鑾峰彇鍫嗗灈鏈轰俊鎭�
-// CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
-// CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-// if (crnProtocol == null) {
-// continue;
-// }
-// BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
-// if (basCrnp == null) {
-// log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
-// continue;
-// }
- if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
- if (crnProtocol.getBay() == 1 && crnProtocol.getLevel() == 1) {
- return;
+ public synchronized void crnRebackHp(CrnProtocol crnProtocol, CrnThread crnThread,String staNo) {
+ if(staNo == null){
+ if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
+ if (crnProtocol.getBay() == 121 || crnProtocol.getBay() == 1) {
+ return;
+ }
+ int x=1;
+ switch (crnProtocol.getCrnNo()){
+ case 1: x =1; break;
+ case 2: x =3; break;
+ case 3: x =5; break;
+ case 4: x =7; break;
+ }
+
+ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�3,12
+ if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) {
+ return;
+ }
+
+ //鍫嗗灈鏈烘湁鎵ц涓换鍔★紝杩囨护3,4,11,12
+ if (wrkMastMapper.selectCrnWorking(crnProtocol.getCrnNo()) != null) {
+ return;
+ }
+
+ //杈撻�佺嚎娌℃湁鍏ュ簱浠诲姟锛岃繃婊�2
+ if (wrkMastMapper.selectDevWorking(crnProtocol.getCrnNo()) != null) {
+ return;
+ }
+ News.info("鍫嗗灈鏈哄彫鍥炲師鐐�==>>" + crnProtocol.getCrnNo() + "鍙峰爢鍨涙満鏈夊叆搴撲换鍔�,鍙洖鍘熺偣");
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo((short) 9999); // 宸ヤ綔鍙�
+ crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.X_MOVE); // 浠诲姟妯″紡: 鍥炲師鐐�
+ crnCommand.setSourcePosX((short) x); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY((short) 121); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ((short) 2); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞�
+ if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
+ News.error("鍫嗗灈鏈哄洖鍘熺偣鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand));
+ }
+ crnThread.setBackHpFlag(true);
+ }
+ } else {
+ int y = 1; // 榛樿鍒�
+ int x=1;
+ switch (crnProtocol.getCrnNo()){
+ case 1: x =1; break;
+ case 2: x =3; break;
+ case 3: x =5; break;
+ case 4: x =7; break;
+ }
+ int staNoInt = Integer.parseInt(staNo);
+
+ int z = staNoInt / 100; // 灞�
+
+ if ((staNoInt >= 121 && staNoInt <= 126) || (staNoInt >= 221 && staNoInt <= 231) || (staNoInt >= 411 && staNoInt <= 414)) {
+ y = 121;
}
- // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�3,12
- if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) {
- return;
- }
+ if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
+ if (crnProtocol.getBay() == y) {
+ return;
+ }
- //鍫嗗灈鏈烘湁鎵ц涓换鍔★紝杩囨护3,4,11,12
- if (wrkMastMapper.selectCrnWorking(crnProtocol.getCrnNo()) != null) {
- return;
- }
+ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+ if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) {
+ return;
+ }
- //杈撻�佺嚎娌℃湁鍏ュ簱浠诲姟锛岃繃婊�2
- if (wrkMastMapper.selectDevWorking(crnProtocol.getCrnNo()) == null) {
- return;
+ // 鍫嗗灈鏈烘湁鎵ц涓换鍔�
+ if (wrkMastMapper.selectCrnWorking(crnProtocol.getCrnNo()) != null) {
+ return;
+ }
+
+
+ News.info("鍫嗗灈鏈哄彫鍥炲師鐐�==>>" + crnProtocol.getCrnNo() + "鍙峰爢鍨涙満鏈夊叆搴撲换鍔�,鍙洖鍘熺偣");
+ // 鍛戒护涓嬪彂
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(crnProtocol.getCrnNo());
+ crnCommand.setTaskNo((short) 9999);
+ crnCommand.setAckFinish((short) 0);
+ crnCommand.setTaskMode(CrnTaskModeType.X_MOVE);
+ crnCommand.setSourcePosX((short) x); // 榛樿鎺掑缁堜负1
+ crnCommand.setSourcePosY((short) y); // 鍔ㄦ�佸垪
+ crnCommand.setSourcePosZ((short) z); // 鍔ㄦ�佸眰
+ crnCommand.setDestinationPosX((short) 0);
+ crnCommand.setDestinationPosY((short) 0);
+ crnCommand.setDestinationPosZ((short) 0);
+ if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
+ News.error("鍫嗗灈鏈哄洖鍘熺偣鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand));
+ }
+ crnThread.setBackHpFlag(true);
}
- News.info("鍫嗗灈鏈哄彫鍥炲師鐐�==>>" + crnProtocol.getCrnNo() + "鍙峰爢鍨涙満鏈夊叆搴撲换鍔�,鍙洖鍘熺偣");
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
- crnCommand.setTaskNo((short) 9999); // 宸ヤ綔鍙�
- crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
- crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡: 鍥炲師鐐�
- crnCommand.setSourcePosX((short) 0); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY((short) 0); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰
- crnCommand.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞�
- if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
- News.error("鍫嗗灈鏈哄洖鍘熺偣鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand));
- }
- crnThread.setBackHpFlag(true);
}
// }
}
@@ -1004,7 +1475,7 @@
/**
* 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣�
*/
- public synchronized void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol, Integer mark) {
+ public synchronized void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol, Integer mark,CrnThread crnThread) {
News.warnNoLog("" + mark + " - 1" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氭墽琛屽叆搴�");
for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
boolean flag = false;
@@ -1023,11 +1494,23 @@
News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
continue;
}
-// if(staProtocol.getWorkNo() == 9998){
-// continue;
+ WrkMast wrkMast1 = wrkMastMapper.selectPakInOne(slave.getId());
+ if(wrkMast1 != null){
+ crnRebackHp(crnProtocol,crnThread,wrkMast1.getStaNo().toString());
+ }
+// if(staProtocol.getSiteId() == 225){
+// News.info("鍏ュ簱绔欑偣淇℃伅{}",staProtocol);
+// staProtocol.isLoading() &&
// }
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
+ if(staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() <9998){
+ log.info("璇诲彇鍒板伐浣滃彿鏃堕棿: {}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date()));
+
+ }
+// && staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() <9998
+ if (staProtocol.isAutoing() && staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() <9998
&& staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
+ log.info("浠诲姟婊¤冻涓嬪彂鏃堕棿: {}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date()));
+
flag = true;
}
if (!flag) {
@@ -1038,8 +1521,10 @@
continue;
}
// 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
- WrkMast wrkMast = wrkMastMapper.selectPakInStep2(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo());
+ WrkMast wrkMast = wrkMastMapper.selectPakInStep2(slave.getId(), staProtocol.getWorkNo(), crnStn.getStaNo());
+// wrkMast = wrkMast1;
if (null == wrkMast) {
+ log.info("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts=2, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts=2, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
// log.error("鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts=2, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
continue;
@@ -1066,48 +1551,6 @@
continue;
}
-// // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
-// if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
-// News.warnNoLog("" + mark + " - 1" + " - 8" + " - 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� : 寮�濮嬫墽琛� 浠诲姟鍙�={}", wrkMast.getWrkNo());
-// String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo());
-// LocMast shallowLoc = locMastService.selectById(shallowLocNo);
-// // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
-// if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
-// News.warnNoLog("" + mark + " - 1" + " - 9" + " - // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒搴撲綅鐘舵��={}", shallowLoc.getLocSts());
-// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
-// if (null == waitWrkMast) {
-// News.error("" + mark + " - 1" + " - 10" + " - {}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
-// } else {
-// waitWrkMast.setIoPri(15D);
-// waitWrkMast.setModiTime(new Date());
-// if (wrkMastMapper.updateById(waitWrkMast) == 0) {
-// News.error("" + mark + " - 1" + " - 11" + " - 璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
-// }
-// continue;
-// }
-//
-// } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
-// News.warnNoLog("" + mark + " - 1" + " - 12" + " - // F銆丏 搴撲綅鐘舵��={}", shallowLoc.getLocSts());
-// // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
-// if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
-// wrkMast.setUpdMk("Y");
-// wrkMast.setIoPri(14D);
-// wrkMastMapper.updateById(wrkMast);
-// // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
-// moveLocForDeepLoc(slave, shallowLoc, mark);
-// // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
-//// moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
-// }
-// continue;
-// } else if (shallowLoc.getLocSts().equals("Q")) {
-// News.warnNoLog("" + mark + " - 1" + " - 13" + " - // Q 搴撲綅鐘舵��={}", shallowLoc.getLocSts());
-// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
-// if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
-// News.infoNoLog("" + mark + " - 1" + " - 14" + " - // F銆丏 宸ヤ綔鐘舵��(鍒ゆ柇鏉′欢涓�==4)={}", waitWrkMast.getWrkSts());
-// continue;
-// }
-// }
-// }
News.warnNoLog("" + mark + " - 1" + " - 15" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue()
, crnStn.getRow().shortValue(), crnStn.getBay().shortValue(), crnStn.getLev().shortValue()
, locMast.getRow1().shortValue(), locMast.getBay1().shortValue(), locMast.getLev1().shortValue());
@@ -1125,21 +1568,12 @@
crnCommand.setDestinationPosY((short) (locMast.getBay1() + slave.getOffset())); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ((short) (locMast.getLev1() + slave.getOffset())); // 鐩爣搴撲綅灞�
// crnCommand.setTraySize(locMast.getLocType1() == 2);
+ log.info("鍫嗗灈鏈轰换鍔′笅鍙戞椂闂�: {}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date()));
+
if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
News.error("" + mark + " - 1" + " - 16" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
} else {
-// long startTime = System.currentTimeMillis();
-// while ((System.currentTimeMillis() - startTime) < COMMAND_TIMEOUT) {
-//
-// if (true) {
-// break;
-// }
-//
-// try{
-// Thread.sleep(500);
-// }catch(Exception ignore){}
-// }
// 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
Date now = new Date();
@@ -1165,7 +1599,7 @@
// WrkMast wrkMast = wrkMastMapper.selectPakOutStep1(slave.getId(), crnStn.getStaNo());
List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep11(slave.getId(), crnStn.getStaNo());
for (WrkMast wrkMast : wrkMasts) {
- if (wrkMast == null) {
+ if (wrkMast == null) {
continue;
}
// 宸ヤ綔妗g姸鎬佸垽鏂�
@@ -1204,9 +1638,21 @@
break;
// continue;
}
+ boolean canOut;
+ Config config = configService.selectConfigByCode("C-OUT-OP");
+
+ if (Cools.isEmpty(config) || config.getValue().equals("false") ){
+ canOut = staProtocol.isAutoing()
+ && !staProtocol.isLoading()
+ && "Y".equals(staDetl.getCanouting())
+ && staProtocol.getWorkNo() == 0
+ && staProtocol.isOutEnable();
+ } else {
+ canOut = staProtocol.isAutoing();
+ }
+
// 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
- if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
- && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
+ if (canOut) {
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
// 鍫嗗灈鏈烘帶鍒惰繃婊�
@@ -1514,33 +1960,47 @@
if (crnProtocol == null) {
continue;
}
- // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
- if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
- News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔锛屼换鍔″彿:" + crnProtocol.getTaskNo());
+ if(crnProtocol.getTaskNo() == 9999){
+ // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
+ if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
+ News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔锛屼换鍔″彿:" + crnProtocol.getTaskNo());
- // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
- WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
- if (wrkMast == null) {
- News.error("" + mark + " - 1" + " - 鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
- continue;
- }
- // 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚
- if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) {
- wrkMast.setWrkSts(4L);
- } else {
- continue;
- }
- Date now = new Date();
- wrkMast.setCrnEndTime(now);
- wrkMast.setModiTime(now);
- // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
- if (wrkMastMapper.updateById(wrkMast) > 0) {
+
+
// 鍫嗗灈鏈哄浣�
- log.error(wrkMast.getWrkNo() + "浠诲姟淇敼鐘舵��4鎴愬姛锛屽浣嶅爢鍨涙満={}", crnThread.getCrnProtocol().getCrnNo());
News.warnNoLog("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}", crnThread.getCrnProtocol().getCrnNo());
crnThread.setResetFlag(true);
}
+ }else{
+ // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
+ if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
+ News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔锛屼换鍔″彿:" + crnProtocol.getTaskNo());
+
+ // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
+ WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
+ if (wrkMast == null ) {
+ News.error("" + mark + " - 1" + " - 鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
+ continue;
+ }
+ // 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚
+ if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) {
+ wrkMast.setWrkSts(4L);
+ } else {
+ continue;
+ }
+ Date now = new Date();
+ wrkMast.setCrnEndTime(now);
+ wrkMast.setModiTime(now);
+ // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+ if (wrkMastMapper.updateById(wrkMast) > 0) {
+ // 鍫嗗灈鏈哄浣�
+ log.error(wrkMast.getWrkNo() + "浠诲姟淇敼鐘舵��4鎴愬姛锛屽浣嶅爢鍨涙満={}", crnThread.getCrnProtocol().getCrnNo());
+ News.warnNoLog("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}", crnThread.getCrnProtocol().getCrnNo());
+ crnThread.setResetFlag(true);
+ }
+ }
}
+
}
@@ -1862,14 +2322,14 @@
} else {
total = locDetl.getAnfme();
}
- if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) {
- ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(), total));
+ if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1 || wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57) {
+ ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getOrderNo(),wrkDetl.getOutOrderNo(),wrkDetl.getUnit(),wrkDetl.getWeight(),wrkDetl.getSupp(),wrkDetl.getLength() ,wrkDetl.getTemp1(), wrkDetl.getProType(),wrkDetl.getAnfme(),wrkDetl.getTemp2(),wrkDetl.getLuHao(), total));
}
- if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
- ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(), total));
+ if (wrkMast.getIoType() == 103 ) {
+ ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getOrderNo(),wrkDetl.getOutOrderNo(),wrkDetl.getUnit(),wrkDetl.getWeight(),wrkDetl.getSupp(),wrkDetl.getLength() ,wrkDetl.getTemp1(), wrkDetl.getProType(),wrkDetl.getAnfme(),wrkDetl.getTemp2(),wrkDetl.getLuHao(), total));
}
if (wrkMast.getIoType() == 107) {
- ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(), total));
+ ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getOrderNo(),wrkDetl.getOutOrderNo(),wrkDetl.getUnit(),wrkDetl.getWeight(),wrkDetl.getSupp(),wrkDetl.getLength() ,wrkDetl.getTemp1(), wrkDetl.getProType(),wrkDetl.getAnfme(),wrkDetl.getTemp2(),wrkDetl.getLuHao(), total));
}
});
}
--
Gitblit v1.9.1