From 35c26fb50cc90b85a8cf924f7b47e3ab412cabb5 Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期六, 10 一月 2026 19:41:14 +0800
Subject: [PATCH] 事务粒度调整
---
src/main/java/com/zy/service/impl/MainServiceImpl.java | 294 +++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 186 insertions(+), 108 deletions(-)
diff --git a/src/main/java/com/zy/service/impl/MainServiceImpl.java b/src/main/java/com/zy/service/impl/MainServiceImpl.java
index 83a4e94..6beaae6 100644
--- a/src/main/java/com/zy/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/service/impl/MainServiceImpl.java
@@ -50,7 +50,6 @@
*/
@Slf4j
@Service("mainService")
-@Transactional
public class MainServiceImpl {
@Autowired
@@ -106,6 +105,7 @@
* 缁勬墭
* 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
*/
+ @Transactional(rollbackFor = Exception.class)
public synchronized void generateStoreWrkFile() {
String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
// 鏍规嵁杈撻�佺嚎plc閬嶅巻
@@ -249,6 +249,7 @@
/**
* 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
*/
+ @Transactional(rollbackFor = Exception.class)
public synchronized void stnToCrnStnPick(Integer mark) {
for (DevpSlave devp : slaveProperties.getDevp()) {
// 閬嶅巻鎷f枡鍏ュ簱鍙�
@@ -379,118 +380,161 @@
public synchronized void crnStnToOutStn(Integer mark) {
for (CrnSlave crnSlave : slaveProperties.getCrn()) {
- // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
- for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
- // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
- StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
- // 鏌ヨ宸ヤ綔妗�
- WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId());
- if (wrkMast == null) {
- continue;
- }
- // 鍒ゆ柇宸ヤ綔妗f潯浠�
- if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
- continue;
- }
- // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast.getCrnNo());
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
- // 绉诲姩涓�
- continue;
- }
- // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
- if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue())
- && crnProtocol.statusType == CrnStatusType.WAITING
- && crnProtocol.forkPosType == CrnForkPosType.HOME) {
-
- // 鍛戒护涓嬪彂鍖�.鏇存柊宸ヤ綔妗g姸鎬佷负14 涓嬪彂绔欑偣淇℃伅--------------------------------------------------------------------------
- staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
- wrkMast.setWrkSts(14L);
- staProtocol.setWorkNo(wrkMast.getWrkNo());
-
- if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
- continue;
- }
- wrkMast.setCrnEndTime(new Date());
- if (wrkMastMapper.updateById(wrkMast) != 0) {
- // 澶嶄綅鍫嗗灈鏈�
- News.info("鍑哄簱浠诲姟瀹屾垚涓嬪彂鍫嗗灈鏈哄浣�,浠诲姟鍙凤細{}",wrkMast.getWrkNo());
- crnThread.setResetFlag(true);
- } else {
- News.error(""+mark+" - 1"+" - 鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
- }
-
- }else {
- News.errorNoLog(""+mark+" - 6"+" - 鍫嗗灈鏈轰俊鎭笉绗﹀悎鍏ュ簱鏉′欢锛侊紒锛�"
- +" 鍫嗗灈鏈虹姸鎬侊細"+crnProtocol.modeType+"==鑷姩AUTO锛�" + CrnModeType.AUTO
- +"銆佸爢鍨涙満浠诲姟鍙凤細"+crnProtocol.getTaskNo()+"==宸ヤ綔妗d换鍔″彿锛�" + wrkMast.getWrkNo().shortValue()
- +"銆佺姸鎬佹灇涓撅細"+crnProtocol.statusType+"==WAITING锛�10 //浠诲姟瀹屾垚绛夊緟WCS纭)锛�" + CrnStatusType.WAITING
- +"銆佽揣鍙変綅缃細"+crnProtocol.forkPosType+"==HOME锛�0 // 璐у弶鍘熶綅锛�" + CrnForkPosType.HOME);
- }
-
- }
+ try {
+ // 姣忓彴鍫嗗灈鏈虹殑鎵�鏈夊嚭搴撶珯澶勭悊鍦ㄥ悓涓�涓簨鍔′腑鎵ц锛屽揩閫熸彁浜ら噴鏀鹃攣
+ processCrnStnToOutStnForCrn(crnSlave, mark);
+ } catch (Exception e) {
+ News.error(""+mark+" - crnStnToOutStn"+" - 澶勭悊鍫嗗灈鏈簕}鏃跺彂鐢熷紓甯�", crnSlave.getId(), e);
+ // 缁х画澶勭悊涓嬩竴鍙板爢鍨涙満锛屼笉涓柇鏁翠釜娴佺▼
}
}
}
/**
- * 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
+ * 澶勭悊鍗曞彴鍫嗗灈鏈虹殑鎵�鏈夊嚭搴撶珯鎿嶄綔锛堜娇鐢ㄧ嫭绔嬩簨鍔★紝蹇�熸彁浜ら噴鏀鹃攣锛�
+ * 娉ㄦ剰锛氬繀椤绘槸public鏂规硶锛孲pring AOP鎵嶈兘浠g悊浜嬪姟
*/
- public synchronized void crnIoExecute(Integer mark) {
+ @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
+ public void processCrnStnToOutStnForCrn(CrnSlave crnSlave, Integer mark) {
+ // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
+ for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
+ processCrnStnToOutStn(crnStn, mark);
+ }
+ }
- for (CrnSlave crn : slaveProperties.getCrn()) {
- // 鑾峰彇鍫嗗灈鏈轰俊鎭�
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+ /**
+ * 澶勭悊鍗曚釜鍫嗗灈鏈哄嚭搴撶珯鐨勫嚭搴撴搷浣滐紙鏃犱簨鍔★紝浜嬪姟鐢变笂灞傛柟娉曠鐞嗭級
+ */
+ private void processCrnStnToOutStn(CrnSlave.CrnStn crnStn, Integer mark) {
+ // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+ if (staProtocol == null) {
+ return;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
+ // 鏌ヨ宸ヤ綔妗�
+ WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId());
+ if (wrkMast == null) {
+ return;
+ }
+ // 鍒ゆ柇宸ヤ綔妗f潯浠�
+ if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
+ return;
+ }
+ // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast.getCrnNo());
CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol == null) {
- continue;
+ if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
+ // 绉诲姩涓�
+ return;
}
- BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
- if (basCrnp == null) {
- News.error(""+mark+" - 1"+" - {}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
- continue;
- }
+ // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
+ if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue())
+ && crnProtocol.statusType == CrnStatusType.WAITING
+ && crnProtocol.forkPosType == CrnForkPosType.HOME) {
- // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
- if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO
- && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) {
- News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛屽爢鍨涙満鍏ュ嚭搴撲綔涓氫笅鍙�");
- // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
- if (crnProtocol.getLastIo().equals("I")) {
- if (basCrnp.getInEnable().equals("Y")) {
- //mark - 1 - ....
- this.crnStnToLoc(crn, crnProtocol,mark); // 鍏ュ簱
- crnProtocol.setLastIo("O");
- } else if (basCrnp.getOutEnable().equals("Y")) {
- //mark - 2 - ....
- this.locToCrnStn(crn, crnProtocol,mark); // 鍑哄簱
- crnProtocol.setLastIo("I");
- }
+ // 鍛戒护涓嬪彂鍖�.鏇存柊宸ヤ綔妗g姸鎬佷负14 涓嬪彂绔欑偣淇℃伅--------------------------------------------------------------------------
+ staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+ wrkMast.setWrkSts(14L);
+ staProtocol.setWorkNo(wrkMast.getWrkNo());
+
+ if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
+ return;
}
- // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
- else if (crnProtocol.getLastIo().equals("O")) {
- if (basCrnp.getOutEnable().equals("Y")) {
- this.locToCrnStn(crn, crnProtocol,mark); // 鍑哄簱
- crnProtocol.setLastIo("I");
- } else if (basCrnp.getInEnable().equals("Y")) {
- this.crnStnToLoc(crn, crnProtocol,mark); // 鍏ュ簱
- crnProtocol.setLastIo("O");
- }
+ wrkMast.setCrnEndTime(new Date());
+ if (wrkMastMapper.updateById(wrkMast) != 0) {
+ // 澶嶄綅鍫嗗灈鏈�
+ News.info("鍑哄簱浠诲姟瀹屾垚涓嬪彂鍫嗗灈鏈哄浣�,浠诲姟鍙凤細{}",wrkMast.getWrkNo());
+ crnThread.setResetFlag(true);
+ } else {
+ News.error(""+mark+" - 1"+" - 鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
+ throw new CoolException("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触");
}
+
+ }else {
+ News.errorNoLog(""+mark+" - 6"+" - 鍫嗗灈鏈轰俊鎭笉绗﹀悎鍏ュ簱鏉′欢锛侊紒锛�"
+ +" 鍫嗗灈鏈虹姸鎬侊細"+crnProtocol.modeType+"==鑷姩AUTO锛�" + CrnModeType.AUTO
+ +"銆佸爢鍨涙満浠诲姟鍙凤細"+crnProtocol.getTaskNo()+"==宸ヤ綔妗d换鍔″彿锛�" + wrkMast.getWrkNo().shortValue()
+ +"銆佺姸鎬佹灇涓撅細"+crnProtocol.statusType+"==WAITING锛�10 //浠诲姟瀹屾垚绛夊緟WCS纭)锛�" + CrnStatusType.WAITING
+ +"銆佽揣鍙変綅缃細"+crnProtocol.forkPosType+"==HOME锛�0 // 璐у弶鍘熶綅锛�" + CrnForkPosType.HOME);
}
- // 搴撲綅绉昏浆
- //mark - 3 - ....
- this.locToLoc(crn, crnProtocol,mark);
}
+ }
+
+ /**
+ * 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
+ * 娉ㄦ剰锛氫娇鐢� REQUIRES_NEW 璁╂瘡涓爢鍨涙満鐨勫鐞嗗湪鐙珛浜嬪姟涓墽琛岋紝閬垮厤闀挎椂闂存寔鏈夐攣瀵艰嚧姝婚攣
+ */
+ public synchronized void crnIoExecute(Integer mark) {
+ try {
+ for (CrnSlave crn : slaveProperties.getCrn()) {
+ try {
+ // 姣忎釜鍫嗗灈鏈虹殑澶勭悊鍦ㄧ嫭绔嬩簨鍔′腑鎵ц锛屽揩閫熸彁浜ら噴鏀鹃攣
+ processCrnIo(crn, mark);
+ } catch (Exception e) {
+ News.error(""+mark+" - crnIoExecute"+" - 澶勭悊鍫嗗灈鏈簕}鏃跺彂鐢熷紓甯�", crn.getId(), e);
+ // 缁х画澶勭悊涓嬩竴涓爢鍨涙満锛屼笉涓柇鏁翠釜娴佺▼
+ }
+ }
+ } catch (Exception e) {
+ News.error(""+mark+" - crnIoExecute"+" - 鎵ц鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂鏃跺彂鐢熷紓甯�", e);
+ }
+ }
+
+ /**
+ * 澶勭悊鍗曚釜鍫嗗灈鏈虹殑鍏ュ嚭搴撲綔涓氾紙浣跨敤鐙珛浜嬪姟锛屽揩閫熸彁浜ら噴鏀鹃攣锛�
+ */
+ @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
+ public void processCrnIo(CrnSlave crn, Integer mark) {
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+ if (crnThread == null) {
+ return;
+ }
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol == null) {
+ return;
+ }
+ BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
+ if (basCrnp == null) {
+ News.error(""+mark+" - 1"+" - {}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
+ return;
+ }
+
+ // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
+ if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO
+ && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) {
+ News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛屽爢鍨涙満鍏ュ嚭搴撲綔涓氫笅鍙�");
+ // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
+ if (crnProtocol.getLastIo().equals("I")) {
+ if (basCrnp.getInEnable().equals("Y")) {
+ //mark - 1 - ....
+ this.crnStnToLoc(crn, crnProtocol,mark); // 鍏ュ簱
+ crnProtocol.setLastIo("O");
+ } else if (basCrnp.getOutEnable().equals("Y")) {
+ //mark - 2 - ....
+ this.locToCrnStn(crn, crnProtocol,mark); // 鍑哄簱
+ crnProtocol.setLastIo("I");
+ }
+ }
+ // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
+ else if (crnProtocol.getLastIo().equals("O")) {
+ if (basCrnp.getOutEnable().equals("Y")) {
+ this.locToCrnStn(crn, crnProtocol,mark); // 鍑哄簱
+ crnProtocol.setLastIo("I");
+ } else if (basCrnp.getInEnable().equals("Y")) {
+ this.crnStnToLoc(crn, crnProtocol,mark); // 鍏ュ簱
+ crnProtocol.setLastIo("O");
+ }
+ }
+ }
+ // 搴撲綅绉昏浆
+ //mark - 3 - ....
+ this.locToLoc(crn, crnProtocol,mark);
}
/**
@@ -577,15 +621,22 @@
} else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
News.warnNoLog(""+mark+" - 1"+" - 12"+" - // F銆丏 搴撲綅鐘舵��={}",shallowLoc.getLocSts());
+ // 妫�鏌ユ槸鍚﹀凡瀛樺湪绉诲簱浠诲姟
+ WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
// 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
- if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
+ if (Cools.isEmpty(waitWrkMast) && (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);
+ try {
+ moveLocForDeepLoc(slave, shallowLoc,mark);
+ News.warnNoLog("{}浠诲姟宸茬敓鎴愭祬搴撲綅绉昏浆浠诲姟锛屾祬搴撲綅鍙�:{}锛岀户缁鐞嗕笅涓�涓换鍔�", wrkMast.getWrkNo(), shallowLocNo);
+ } catch (Exception e) {
+ News.error("{}浠诲姟鐢熸垚娴呭簱浣嶇Щ杞换鍔″け璐ワ紝娴呭簱浣嶅彿:{}", wrkMast.getWrkNo(), shallowLocNo, e);
+ }
+ } else if (!Cools.isEmpty(waitWrkMast)) {
+ News.warnNoLog("{}浠诲姟鍏ュ簱绛夊緟涓紝娴呭簱浣嶅凡鏈夌Щ搴撲换鍔★紝娴呭簱浣嶅彿:{}锛岀Щ搴撲换鍔″彿:{}", wrkMast.getWrkNo(), shallowLocNo, waitWrkMast.getWrkNo());
}
continue;
} else if (shallowLoc.getLocSts().equals("Q")) {
@@ -678,9 +729,25 @@
// continue;
}
- // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
- if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
- && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
+ boolean outStationAvailable = true;
+ // 鏄惁妫�鏌ュ爢鍨涙満鍑哄簱绔欑姸鎬侊紙true: 妫�鏌ワ紝false: 涓嶆鏌ワ級
+ if (slaveProperties.isCheckOutStationStatus()) {
+ // 妫�鏌ュ嚭搴撶珯鐘舵��
+ outStationAvailable =
+ //鑷姩
+ staProtocol.isAutoing()
+ //!鏈夌墿
+ && !staProtocol.isLoading()
+ //鑳藉嚭
+ && staDetl.getCanouting() != null
+ && staDetl.getCanouting().equals("Y")
+ //宸ヤ綔鍙�
+ && staProtocol.getWorkNo() == 0
+ //鍙嚭
+ && staProtocol.isOutEnable();
+ }
+ // 鍑哄簱绔欏彲鐢ㄦ椂缁х画鎵ц
+ if (outStationAvailable) {
// 鍫嗗灈鏈烘帶鍒惰繃婊�
if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
// continue;
@@ -722,10 +789,19 @@
wrkMast.setUpdMk("Y");
wrkMastMapper.updateById(wrkMast);
// 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
- moveLocForDeepLoc(slave, shallowLoc,mark);
+ try {
+ moveLocForDeepLoc(slave, shallowLoc,mark);
+ News.warnNoLog("{}浠诲姟宸茬敓鎴愭祬搴撲綅绉昏浆浠诲姟锛屾祬搴撲綅鍙�:{}锛岀户缁鐞嗕笅涓�涓换鍔�", wrkMast.getWrkNo(), shallowLocNo);
+ continue; // 宸茬敓鎴愮Щ搴撲换鍔★紝缁х画澶勭悊涓嬩竴涓换鍔�
+ } catch (Exception e) {
+ News.error("{}浠诲姟鐢熸垚娴呭簱浣嶇Щ杞换鍔″け璐ワ紝娴呭簱浣嶅彿:{}", wrkMast.getWrkNo(), shallowLocNo, e);
+ continue; // 鐢熸垚澶辫触锛岀户缁鐞嗕笅涓�涓换鍔�
+ }
+ } else {
+ // 宸插瓨鍦ㄧЩ搴撲换鍔★紝绛夊緟绉诲簱瀹屾垚
+ News.warnNoLog("{}浠诲姟鍑哄簱绛夊緟涓紝娴呭簱浣嶅凡鏈夌Щ搴撲换鍔★紝娴呭簱浣嶅彿:{}锛岀Щ搴撲换鍔″彿:{}", wrkMast.getWrkNo(), shallowLocNo, waitWrkMast.getWrkNo());
+ continue; // 缁х画澶勭悊涓嬩竴涓换鍔★紝涓嶉樆濉炲綋鍓嶅惊鐜�
}
- News.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(), shallowLocNo);
- break;
} else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) {
News.warnNoLog(""+mark+" - 2"+" - 10"+" - // Q銆丼 搴撲綅鐘舵��={}",shallowLoc.getLocSts());
WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
@@ -1025,6 +1101,7 @@
/**
* 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
*/
+ @Transactional(rollbackFor = Exception.class)
public synchronized void storeEmptyPlt(Integer mark) {
for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -1306,6 +1383,7 @@
/**
* 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
*/
+ @Transactional(rollbackFor = Exception.class)
public synchronized void ledExecute() {
for (LedSlave led : slaveProperties.getLed()) {
// 鑾峰彇杈撻�佺嚎plc绾跨▼
--
Gitblit v1.9.1