From e246d51d8a38b0a9d4ac6204e4b953d973929f71 Mon Sep 17 00:00:00 2001 From: tqs <56479841@qq.com> Date: 星期三, 01 二月 2023 12:54:23 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 154 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 146 insertions(+), 8 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 2a294f6..2f671c0 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -7,6 +7,7 @@ import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.mapper.BasCrnErrorMapper; +import com.zy.asrs.mapper.BasDevpMapper; import com.zy.asrs.mapper.WrkChargeMapper; import com.zy.asrs.mapper.WrkMastMapper; import com.zy.asrs.service.*; @@ -91,6 +92,8 @@ private CommonService commonService; @Autowired private WrkChargeMapper wrkChargeMapper; + @Autowired + private BasDevpMapper basDevpMapper; /** * 缁勬墭 @@ -102,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; @@ -110,6 +113,25 @@ staProtocol = staProtocol.clone(); } Short workNo = staProtocol.getWorkNo(); + + //20230201. 2鍙峰爢鍨涙満鏈夊嚭搴撲换鍔℃椂锛岀姝㈡柊鏉垮叆搴� + 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)); + 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)); + continue; + } + // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() @@ -304,11 +326,46 @@ case 104: case 108: staNo = 103; - + List<BasDevp> basDevps1 = basDevpMapper.getLoading(103); + 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: staNo = 203; + 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: News.error("{}浠诲姟鍐嶅叆搴撳け璐ワ紝绯荤粺鏁版嵁寮傚父锛�", wrkMast.getWrkNo()); @@ -988,11 +1045,14 @@ 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){ - continue; + if (wrkMast.getCrnNo().equals(2)){ + 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; + } } } @@ -3162,13 +3222,32 @@ // 閬嶅巻绌烘澘鍏ュ簱鍙� 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 ( 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)); + 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)); + continue; + } + // 绔欑偣鏉′欢鍒ゆ柇 if (staProtocol.isAutoing() && staProtocol.isLoading() @@ -3822,4 +3901,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