From 97ce028a76028488aa0027154a36698c0602b775 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期四, 02 二月 2023 16:57:25 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 195 ++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 177 insertions(+), 18 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 a8d56f2..fa59273 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -105,7 +105,7 @@
// 閬嶅巻鍏ュ簱鍙�
for (DevpSlave.Sta inSta : devp.getInSta()) {
// 鑾峰彇鍏ュ簱绔欎俊鎭�
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
if (staProtocol == null) {
continue;
@@ -113,6 +113,29 @@
staProtocol = staProtocol.clone();
}
Short workNo = staProtocol.getWorkNo();
+
+ //20230201. 2鍙峰爢鍨涙満鏈夊嚭搴撲换鍔℃椂锛岀姝㈡柊鏉垮叆搴�
+ if (staProtocol.isLoading() && staProtocol.getWorkNo() == 9995) {
+ if ( inSta.getStaNo()==103 && devpThread.ioModeOf1F == IoModeType.PAKOUT_MODE) {
+ //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+ staProtocol.setWorkNo((short) 9999);
+ staProtocol.setStaNo((short)100);
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ News.error("MainServiceImpl generateStoreWrkFile"+"103涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
+ continue;
+ }
+ if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
+ //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+ staProtocol.setWorkNo((short) 9999);
+ staProtocol.setStaNo((short)200);
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ News.error("MainServiceImpl generateStoreWrkFile"+"203涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
+ continue;
+ }
+ }
+
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (staProtocol.isAutoing() && staProtocol.isLoading()
&& staProtocol.isInEnable()
@@ -311,6 +334,20 @@
if (basDevps1.size()!=0){
continue;
}
+ List<WrkMast> wrkMasts1 = wrkMastMapper.selectWrkStsAndIoType(103);
+ if (wrkMasts1.size()!=0){
+ boolean flag = false;
+ for (WrkMast wrkMast1:wrkMasts1){
+ if (!wrkMast1.getWrkNo().equals(wrkMast.getWrkNo())){
+ flag = true;
+ break;
+ }
+ }
+ if (flag) {
+ News.error("MainServiceImpl 324琛�"+"104绔欑偣瀛樺湪璐х墿锛屾崱鏂欑洏鐐硅揣鐗╂殏鏃朵笉閲嶆柊鍏ュ簱锛侊紒锛�");
+ continue;
+ }
+ }
break;
case 204:
case 208:
@@ -318,6 +355,20 @@
List<BasDevp> basDevps2 = basDevpMapper.getLoading(203);
if (basDevps2.size()!=0){
continue;
+ }
+ List<WrkMast> wrkMasts2 = wrkMastMapper.selectWrkStsAndIoType(203);
+ if (wrkMasts2.size()!=0){
+ boolean flag = false;
+ for (WrkMast wrkMast1:wrkMasts2){
+ if (!wrkMast1.getWrkNo().equals(wrkMast.getWrkNo())){
+ flag = true;
+ break;
+ }
+ }
+ if (flag) {
+ News.error("MainServiceImpl 346琛�"+"204绔欑偣瀛樺湪璐х墿锛屾崱鏂欑洏鐐硅揣鐗╂殏鏃朵笉閲嶆柊鍏ュ簱锛侊紒锛�");
+ continue;
+ }
}
break;
default:
@@ -787,7 +838,7 @@
WrkMast one = wrkMastMapper.selectLocMoveData(slave.getId());
if(!Cools.isEmpty(one)){
News.error("鍏ュ簱 ===>> 瀛樺湪绉诲簱鏈畬鎴愪换鍔★紝涓嶈兘鍏ュ簱銆傜Щ搴撲换鍔″彿={},鍫嗗灈鏈哄彿={}", one.getWrkNo(), slave.getId());
- continue;
+// continue;
}
// 鑾峰彇宸ヤ綔鐘舵�佷负 2,3,4,5,6 鐨勫叆搴撳伐浣滄。
@@ -998,11 +1049,32 @@
continue;
}
- if (wrkMast.getWrkSts() == 11 && (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107)){
- Integer sour = wrkMast.getStaNo();
- List<WrkMast> wrkMasts = wrkMastMapper.selectWrkStsAndIoType(sour);
- if (wrkMasts.size() > 0){
+ // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+
+ if (wrkMast.getCrnNo().equals(2)){
+ if (wrkMast.getStaNo() == 103 && devpThread.ioModeOf1F != IoModeType.PAKOUT_MODE) {
+ News.error("MainServiceImpl locToCrnStn"+"103闈炲嚭搴撴ā寮忥紝绂佹鍑哄簱銆備换鍔″彿:{}锛侊紒锛�",wrkMast.getWrkNo());
continue;
+ }
+ if (wrkMast.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
+ News.error("MainServiceImpl locToCrnStn"+"203闈炲嚭搴撴ā寮忥紝绂佹鍑哄簱銆備换鍔″彿:{}锛侊紒锛�",wrkMast.getWrkNo());
+ continue;
+ }
+
+ if (wrkMast.getWrkSts() == 11 && (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107)){
+ Integer sour = wrkMast.getSourceStaNo();
+ List<WrkMast> wrkMasts = wrkMastMapper.selectWrkStsAndIoType0(sour);
+ if (wrkMasts.size() > 0){
+ News.error("MainServiceImpl 1028琛�"+"瀛樺湪鎹℃枡銆佺洏鐐规湭鍏ュ簱璐х墿锛�2鍙峰爢鍨涙満鏆傛椂绂佹鍑哄簱锛侊紒锛�");
+ continue;
+ }
}
}
@@ -1058,7 +1130,9 @@
if (wrkMastMapper.updateById(waitWrkMast) == 0) {
News.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
}
- flag = true;
+ if (waitWrkMast.getWrkSts() != 17) {
+ flag = true;
+ }
break;
}
}
@@ -1106,14 +1180,7 @@
News.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts());
continue;
}
- // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
- StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
+
// 鏌ヨ绔欑偣璇︾粏淇℃伅
BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
if (staDetl == null) {
@@ -3172,13 +3239,36 @@
// 閬嶅巻绌烘澘鍏ュ簱鍙�
for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
// 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo());
if (staProtocol == null) {
continue;
} else {
staProtocol = staProtocol.clone();
}
+
+ //20230201. 2鍙峰爢鍨涙満鏈夊嚭搴撲换鍔℃椂锛岀姝㈡柊鏉垮叆搴�
+ if (staProtocol.isLoading() && staProtocol.getWorkNo() == 9995) {
+ if ( emptyInSta.getStaNo()==103 && devpThread.ioModeOf1F == IoModeType.PAKOUT_MODE) {
+ //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+ staProtocol.setWorkNo((short) 9999);
+ staProtocol.setStaNo((short)100);
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ News.error("MainServiceImpl storeEmptyPlt"+"103涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
+ continue;
+ }
+ if ( emptyInSta.getStaNo()==203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
+ //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+ staProtocol.setWorkNo((short) 9999);
+ staProtocol.setStaNo((short)200);
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ News.error("MainServiceImpl storeEmptyPlt"+"203涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
+ continue;
+ }
+ }
+
// 绔欑偣鏉′欢鍒ゆ柇
if (staProtocol.isAutoing()
&& staProtocol.isLoading()
@@ -3754,8 +3844,18 @@
if(Utils.getGroupRow(one.getLocNo()) != Utils.getGroupRow(shallowLoc.getLocNo())
|| Utils.getBay(one.getLocNo()) != Utils.getBay(shallowLoc.getLocNo())
|| Utils.getLev(one.getLocNo()) != Utils.getLev(shallowLoc.getLocNo())){
- loc = one;
- break;
+
+ boolean success = true;
+ List<String> insideLoc = Utils.getGroupInsideLoc(one.getLocNo());
+ for (String inside : insideLoc) {
+ if (!locMastService.selectById(inside).getLocSts().equals("O")) {
+ success = false; break;
+ }
+ }
+ if (success) {
+ loc = one;
+ break;
+ }
}
}
@@ -3832,4 +3932,63 @@
}
}
+ /**
+ * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
+ */
+ public synchronized void ioConvert() {
+ try {
+ // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+
+ for (DevpSlave.Sta inSta : devp.getInSta()) {
+ Integer sourceStaNo = inSta.getStaNo()==103 ? 104 : 204;
+ WrkMast pakout = wrkMastMapper.selectWorkingPakout(sourceStaNo);
+ switch (inSta.getStaNo()) {
+ case 103://1F
+ if (pakout != null) {
+ if (devpThread.ioModeOf1F != IoModeType.PAKOUT_MODE) {
+ // 鍑哄簱鍒囨崲涓�
+// devpThread.ioModeOf1F = IoModeType.PAKOUT_BOOTING;
+// WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+// if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
+// && !devpThread.getStation().get(inSta.getStaNo()+1).isLoading()
+// && devpThread.getStation().get(inSta.getStaNo()+1).getWorkNo()==0) {
+// // 鍑哄簱妯″紡
+ devpThread.ioModeOf1F = IoModeType.PAKOUT_MODE;
+// }
+ }
+ } else {
+ // 鍏ュ簱妯″紡
+ devpThread.ioModeOf1F = IoModeType.PAKIN_MODE;
+ }
+ break;
+ case 203://2F
+ if (pakout != null) {
+ if (devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
+ // 鍑哄簱鍒囨崲涓�
+// devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING;
+// WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+// if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
+// && !devpThread.getStation().get(inSta.getStaNo()-1).isLoading()
+// && devpThread.getStation().get(inSta.getStaNo()-1).getWorkNo()==0) {
+// // 鍑哄簱妯″紡
+ devpThread.ioModeOf2F = IoModeType.PAKOUT_MODE;
+// }
+ }
+ } else {
+ // 鍏ュ簱妯″紡
+ devpThread.ioModeOf2F = IoModeType.PAKIN_MODE;
+ }
+ break;
+ }
+ }
+
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
}
--
Gitblit v1.9.1