From 29e0a8a8f74a7155f7e6c0d854bb7566c655b0c8 Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期三, 13 八月 2025 18:11:54 +0800
Subject: [PATCH] 记录输送线异常日志,手动站点转移,
---
src/main/java/com/zy/service/WrkMastService.java | 1
src/main/java/com/zy/service/impl/WrkMastServiceImpl.java | 5 +
src/main/resources/mapper/WrkMastMapper.xml | 4
src/main/java/com/zy/service/impl/MainServiceImpl.java | 246 ++++++++++++++++++++++++++++++++++++++++++++++++
src/main/java/com/zy/core/MainProcess.java | 6 +
src/main/java/com/zy/mapper/WrkMastMapper.java | 1
6 files changed, 261 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index a0b7d9f..8aaa693 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -88,6 +88,9 @@
// 鍫嗗灈鏈哄紓甯镐俊鎭褰�
mainService.recCrnErr(7);
+ // 杈撻�佺嚎寮傚父淇℃伅璁板綍
+ mainService.recDevpErr();
+
// 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
mainService.ledExecute(9);
@@ -99,6 +102,9 @@
// 鍫嗗灈鏈哄洖鍘熺偣
mainService.originGo();
+ //鎵嬪姩绔欎綅杞Щ
+ mainService.manualStationTransfer();
+
} catch (Exception e) {
e.printStackTrace();
}
diff --git a/src/main/java/com/zy/mapper/WrkMastMapper.java b/src/main/java/com/zy/mapper/WrkMastMapper.java
index bbf7b45..511d6b6 100644
--- a/src/main/java/com/zy/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/mapper/WrkMastMapper.java
@@ -118,6 +118,7 @@
WrkMast selectPickStep2(@Param("barcode")String barcode);
WrkMast selectByWrkNo(@Param("wrkNo")Integer wrkNo);
+ WrkMast selectByIoTypeAndWrkSts(@Param("ioType")Integer ioTyper,@Param("wrkSts")Long wrkSts);
/**
* 鑾峰彇涓�鏉″埌104绔欑偣鐨勫嚭搴撲换鍔�
diff --git a/src/main/java/com/zy/service/WrkMastService.java b/src/main/java/com/zy/service/WrkMastService.java
index 08a7a6e..2f465fc 100644
--- a/src/main/java/com/zy/service/WrkMastService.java
+++ b/src/main/java/com/zy/service/WrkMastService.java
@@ -12,6 +12,7 @@
List<WrkMast> selectToBeCompleteData();
List<WrkMast> selectToBeHistoryData();
+ WrkMast selectByIoTypeAndWrkSts(Integer ioType,Long wrkSts);
int getOutToStn182(Integer devpNo);
diff --git a/src/main/java/com/zy/service/impl/MainServiceImpl.java b/src/main/java/com/zy/service/impl/MainServiceImpl.java
index 7468cd3..e7d7fe8 100644
--- a/src/main/java/com/zy/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/service/impl/MainServiceImpl.java
@@ -77,6 +77,7 @@
// 鎴愬搧搴撳爢鍨涙満鍑哄簱绔欑偣鍒皉gv鎺ラ┏鐐�
public static final Map<Integer,Short> crnOutSiteToRgvSite = new HashMap<>();
+ public static final Map<Integer,Short> crnOutSiteToRgvSite2 = new HashMap<>();
static {
emptyPalletSiteMap.put(1001,"M"); // emptyPalletSiteMap.put(1002,"M");
@@ -104,6 +105,9 @@
outGzxSiteList.add(1081);outGzxSiteList.add(1084);outGzxSiteList.add(1087);
crnOutSiteToRgvSite.put(1093, (short) 1091);crnOutSiteToRgvSite.put(1099, (short) 1097);crnOutSiteToRgvSite.put(1107, (short) 1105);
+
+ crnOutSiteToRgvSite2.put(1087, (short) 1089);crnOutSiteToRgvSite2.put(1084, (short) 1086);crnOutSiteToRgvSite2.put(1081, (short) 1083);
+ crnOutSiteToRgvSite2.put(1043, (short) 1041);crnOutSiteToRgvSite2.put(1016, (short) 1018);
}
@Autowired
@@ -146,6 +150,9 @@
@Resource
private ConfigService configService;
+
+ @Resource
+ private BasDevpErrLogService basDevpErrLogService;
@Value("${wms.url}")
private String wmsUrl;
@@ -1387,6 +1394,174 @@
}
/**
+ * 杈撻�佺嚎寮傚父
+ */
+ public synchronized void recDevpErr() {
+ Date now = new Date();
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ Integer devpId = devp.getId();
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devpId);
+ Map<Integer, StaProtocol> station = devpThread.getStation();
+ for (Map.Entry<Integer, StaProtocol> entry : station.entrySet()) {
+ Integer siteNo = entry.getKey();
+ StaProtocol staProtocol = entry.getValue();
+ Integer workNo = staProtocol.getWorkNo();
+ // 杈撻�佺嚎鎶ヨ
+ String plcErr = staPlcErr(staProtocol);
+ if (staProtocol.isAutoing()) {
+ // 鏈変换鍔�
+ if (staProtocol.getWorkNo() != 0 && staProtocol.getWorkNo() <= 9000) {
+
+ // 鑾峰彇杈撻�佺嚎鎶ヨ淇℃伅
+ BasDevpErrLog latestByTaskNo = basDevpErrLogService.findLatestByTaskNo(siteNo, workNo);
+
+ // 鏈夊紓甯�
+ if (latestByTaskNo == null) {
+ if (!plcErr.equals("")) {
+ WrkMast wrkMast = wrkMastMapper.selectById(workNo);
+ if (wrkMast == null) {
+ continue;
+ }
+
+ BasDevpErrLog basErrLog = new BasDevpErrLog(
+ null, // 缂栧彿
+ wrkMast.getWrkNo(), // 宸ヤ綔鍙�
+ now, // 鍙戠敓鏃堕棿
+ null, // 缁撴潫鏃堕棿
+ wrkMast.getWrkSts(), // 宸ヤ綔鐘舵��
+ wrkMast.getIoType(), // 鍏ュ嚭搴撶被鍨�
+ wrkMast.getCrnNo(), // 鍫嗗灈鏈�
+ devpId, // plc
+ wrkMast.getLocNo(), // 鐩爣搴撲綅
+ wrkMast.getStaNo(), // 鐩爣绔�
+ siteNo, // 婧愮珯
+ wrkMast.getSourceLocNo(), // 婧愬簱浣�
+ wrkMast.getBarcode(), // 鏉$爜
+ 0, // 寮傚父鐮�
+ plcErr, // 寮傚父
+ 1, // 寮傚父鎯呭喌
+ now, // 娣诲姞鏃堕棿
+ null, // 娣诲姞浜哄憳
+ now, // 淇敼鏃堕棿
+ null, // 淇敼浜哄憳
+ "浠诲姟涓紓甯�" // 澶囨敞
+ );
+ if (!basDevpErrLogService.insert(basErrLog)) {
+ log.error("杈撻�佺嚎寮傚父淇℃伅鎻掑叆琛╝sr_bas_devp_err_log寮傚父锛歿}", basErrLog);
+ }
+ }
+ } else {
+ // 寮傚父淇
+ if (plcErr.equals("")) {
+ latestByTaskNo.setEndTime(now);
+ latestByTaskNo.setUpdateTime(now);
+ latestByTaskNo.setStatus(2);
+ if (!basDevpErrLogService.updateById(latestByTaskNo)) {
+ log.error("杈撻�佺嚎寮傚父璁板綍淇澶辫触asr_bas_devp_err_log寮傚父锛歿}", latestByTaskNo);
+ }
+ }
+ }
+ // 鏃犱换鍔�
+ } else {
+ BasDevpErrLog latest = basDevpErrLogService.findLatest(siteNo);
+ // 鏈夊紓甯�
+ if (!plcErr.equals("")) {
+ // 璁板綍鏂板紓甯�
+ if (latest == null || !latest.getError().equals(plcErr) || latest.getStatus() == 2 ) {
+ BasDevpErrLog basErrLog = new BasDevpErrLog(
+ null, // 缂栧彿
+ null, // 宸ヤ綔鍙�
+ now, // 鍙戠敓鏃堕棿
+ null, // 缁撴潫鏃堕棿
+ null, // 宸ヤ綔鐘舵��
+ null, // 鍏ュ嚭搴撶被鍨�
+ 0, // 鍫嗗灈鏈�
+ devpId, // plc
+ null, // 鐩爣搴撲綅
+ null, // 鐩爣绔�
+ siteNo, // 婧愮珯
+ null, // 婧愬簱浣�
+ null, // 鏉$爜
+ 0, // 寮傚父鐮�
+ plcErr, // 寮傚父
+ 1, // 寮傚父鎯呭喌
+ now, // 娣诲姞鏃堕棿
+ null, // 娣诲姞浜哄憳
+ now, // 淇敼鏃堕棿
+ null, // 淇敼浜哄憳
+ "鏃犱换鍔″紓甯�" // 澶囨敞
+ );
+ if (!basDevpErrLogService.insert(basErrLog)) {
+ log.error("杈撻�佺嚎寮傚父璁板綍asr_bas_devp_err_log寮傚父锛歿}", basErrLog);
+ }
+ }
+ // 鏃犲紓甯�
+ } else {
+ // 寮傚父淇
+ if (latest != null && latest.getStatus() == 1) {
+ latest.setEndTime(now);
+ latest.setUpdateTime(now);
+ latest.setStatus(2);
+ if (!basDevpErrLogService.updateById(latest)) {
+ log.error("杈撻�佺嚎寮傚父璁板綍淇澶辫触asr_bas_devp_err_log寮傚父锛歿}", latest);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // 鑾峰彇杈撻�佺嚎鎶ヨ
+ public String staPlcErr(StaProtocol staProtocol){
+ Integer siteId = staProtocol.getSiteId();
+ if (staProtocol.getBreakerErr()){
+ return "鏂矾鍣ㄦ晠闅�";
+ }
+ if (staProtocol.getInfraredErr()){
+ return "鍏夌數寮傚父";
+ }
+ if (staProtocol.getOutTimeErr()){
+ return "杩愯瓒呮椂";
+ }
+ if (staProtocol.getSeizeSeatErr()){
+ return "鍗犱綅瓒呮椂";
+ }
+ if (staProtocol.getWrkYgoodsN()){
+ return "鏈変换鍔℃棤璐ф晠闅�";
+ }
+ if (staProtocol.getInverterErr()){
+ return "鍙橀鍣ㄦ晠闅�";
+ }
+ if (staProtocol.getContactErr()){
+ return "鐢垫満鎺ヨЕ鍣ㄦ晠闅�";
+ }
+ if (staProtocol.getUpcontactErr()){
+ return "椤跺崌鐢垫満鎺ヨЕ鍣ㄦ晠闅�";
+ }
+ if (staProtocol.isFrontErr()){
+ return "鍓嶈秴闄�";
+ }
+ if (staProtocol.isBackErr()){
+ return "鍚庤秴闄�";
+ }
+ if (staProtocol.isHighErr()){
+ return "楂樿秴闄�";
+ }
+ if (staProtocol.isLeftErr()){
+ return "宸﹁秴闄�";
+ }
+ if (staProtocol.isRightErr()){
+ return "鍙宠秴闄�";
+ }
+ if (staProtocol.isBarcodeErr() && siteId != 1083 && siteId != 1086 && siteId != 1089 ){
+ return "鎵爜澶辫触";
+ }
+ return "";
+ }
+
+ /**
* 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
*/
public synchronized void ledExecute(Integer mark) {
@@ -1439,6 +1614,9 @@
case 110:
ledCommand.setTitle("绌烘澘鍑哄簱");
ledCommand.setEmptyMk(true);
+ break;
+ case 120:
+ ledCommand.setTitle("鎵嬪姩杞Щ");
break;
default:
News.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
@@ -1766,7 +1944,7 @@
} else {
staProtocol = staProtocol.clone();
}
- if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.isInEnable() || staProtocol.isOutEnable() && site == 1090) && staProtocol.getWorkNo() != 0 && staProtocol.getWorkNo() <= 9000) {
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.isInEnable() || staProtocol.isOutEnable() && site == 1090) && staProtocol.getWorkNo() != 0 && (staProtocol.getWorkNo() <= 9000 || staProtocol.getWorkNo()>=30000)) {
if (staProtocol.getSiteId() == 1034 && !staProtocol.isHigh()) { // 1034绌烘瘝鎷栧洖娴佷换鍔¢渶瑕侀珮淇″彿
continue;
}
@@ -1808,7 +1986,7 @@
if (staProtocol.getSiteId() == 1090 && wrkMast.getStaNo() == 1090) {
continue;
}
- if ((wrkMast.getWrkSts() == 2 || wrkMast.getWrkSts() == 15) && (wrkMast.getRgvNo() == null || wrkMast.getRgvDstaNo() == 1090)) {
+ if ((wrkMast.getWrkSts() == 2 || wrkMast.getWrkSts() == 15 || (wrkMast.getIoType() == 120 && wrkMast.getWrkSts() == 52)) && (wrkMast.getRgvNo() == null || wrkMast.getRgvDstaNo() == 1090)) {
// 鏈�1090鐨勪换鍔¤烦杩噐gv鍒嗛厤
if(wrkMast.getStaNo() == 1090) {
DevpThread devpThread2 = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
@@ -1882,6 +2060,14 @@
continue;
}
wrkMast.setWrkSts(15L);
+ wrkMast.setModiTime(new Date());
+ wrkMastService.updateById(wrkMast);
+ } else if(wrkMast.getIoType() == 120) {
+ if(wrkMast.getWrkSts() != 53 ){
+ log.warn("rgv鏀捐揣瀹屾垚120锛宺gv鏈浣�:rgv鍙穥}锛屼换鍔″彿锛歿}锛屼换鍔$姸鎬亄}",wrkMast.getRgvNo(),wrkMast.getWrkNo(),wrkMast.getWrkSts());
+ continue;
+ }
+ wrkMast.setWrkSts(54L);
wrkMast.setModiTime(new Date());
wrkMastService.updateById(wrkMast);
}
@@ -2427,4 +2613,60 @@
}
}
}
+
+ /**
+ * 鎵嬪姩绔欎綅杞Щ
+ */
+ public synchronized void manualStationTransfer() {
+ WrkMast wrkMast = wrkMastMapper.selectByIoTypeAndWrkSts(120, 51L);
+
+ if (Cools.isEmpty(wrkMast)) {
+ return;
+ }
+ int devpId;
+ if (wrkMast.getSourceStaNo() < 1044) {
+ devpId = 1;
+ } else if (wrkMast.getSourceStaNo() < 1091) {
+ devpId = 2;
+ } else {
+ devpId = 3;
+ }
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devpId);
+ try {
+ StaProtocol staProtocol = devpThread.getStation().get(wrkMast.getSourceStaNo());
+
+ if (staProtocol == null) {
+ wrkMast.setIoTime(new Date());
+ wrkMastService.updateById(wrkMast);
+ return;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+
+ // 绔欑偣鏉′欢鍒ゆ柇
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk()) {
+ // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+ StaProtocol staProtocolNew = new StaProtocol();
+ staProtocolNew.setSiteId(staProtocol.getSiteId());
+ staProtocolNew.setWorkNo(wrkMast.getWrkNo());
+ staProtocolNew.setStaNo(crnOutSiteToRgvSite2.get(wrkMast.getSourceStaNo()));
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devpId, new Task(2, staProtocolNew));
+ log.info("鎵嬪姩绔欎綅杞Щ杈撻�佺嚎涓嬪彂锛�" + staProtocolNew.getWrkNo() + "," + staProtocolNew.getSiteId());
+ if (!result) {
+ News.errorNoLog("" + " - 1" + " - 鏇存柊plc绔欑偣淇℃伅澶辫触");
+ throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+ }
+
+ wrkMast.setIoTime(new Date());
+ wrkMast.setWrkSts(52L);
+ wrkMastService.updateById(wrkMast);
+ } else {
+ wrkMast.setIoTime(new Date());
+ wrkMastService.updateById(wrkMast);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
}
diff --git a/src/main/java/com/zy/service/impl/WrkMastServiceImpl.java b/src/main/java/com/zy/service/impl/WrkMastServiceImpl.java
index eb591d6..c7ab205 100644
--- a/src/main/java/com/zy/service/impl/WrkMastServiceImpl.java
+++ b/src/main/java/com/zy/service/impl/WrkMastServiceImpl.java
@@ -36,4 +36,9 @@
public WrkMast selectByWrkNo(int wrkNo) {
return this.baseMapper.selectByWrkNo(wrkNo);
}
+
+ @Override
+ public WrkMast selectByIoTypeAndWrkSts(Integer ioType,Long wrkSts) {
+ return this.baseMapper.selectByIoTypeAndWrkSts(ioType,wrkSts);
+ }
}
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 15bf650..ed4f285 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -68,6 +68,10 @@
<result column="work_no_other" property="workNoOther" />
</resultMap>
+ <select id="selectByIoTypeAndWrkSts" resultMap="BaseResultMap">
+ select top 1 * from asr_wrk_mast where io_type = #{ioType} and wrk_sts = #{wrkSts} order by io_time
+ </select>
+
<select id="selectInGzxCount" resultType="java.lang.Integer">
select
count(*)
--
Gitblit v1.9.1