From 996926db15b776bc3fd01837f317976e3e74b6cf Mon Sep 17 00:00:00 2001 From: tqs <56479841@qq.com> Date: 星期四, 02 二月 2023 17:33:03 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 214 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 198 insertions(+), 16 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 678debb..4a38951 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,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() @@ -304,10 +330,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()); @@ -489,6 +551,7 @@ LocMast sourceLocMast = locMastService.selectById(sourceLocNo); if (sourceLocMast.getLocSts().equals("P")) { sourceLocMast.setLocSts("O"); + sourceLocMast.setBarcode(""); sourceLocMast.setModiTime(new Date()); if (!locMastService.updateById(sourceLocMast)) { throw new CoolException(wrkMast.getWrkNo() + "淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�"); @@ -775,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 鐨勫叆搴撳伐浣滄。 @@ -986,6 +1049,35 @@ continue; } + // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 + 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; + } + } + } + // 鍒ゆ柇鏄惁宸插瓨鍦ㄥ皬杞︾粦瀹氫换鍔� BasSte basSte = basSteService.findByCrnNo(wrkMast.getCrnNo()); if(basSte == null) continue; @@ -1038,7 +1130,9 @@ if (wrkMastMapper.updateById(waitWrkMast) == 0) { News.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo()); } - flag = true; + if (waitWrkMast.getWrkSts() != 17) { + flag = true; + } break; } } @@ -1086,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) { @@ -1494,8 +1581,11 @@ if(!Cools.isEmpty(deeplocs)){ for(String deepLocNo : deeplocs) { LocMast deepLoc = locMastService.selectById(deepLocNo); -// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(deepLocNo); - if(deepLoc != null && !deepLoc.getLocSts().equals("F") && !deepLoc.getLocSts().equals("D") && !deepLoc.getLocSts().equals("O")){ + WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(deepLocNo); + if(deepLoc != null && !deepLoc.getLocSts().equals("F") + && !deepLoc.getLocSts().equals("D") + && !deepLoc.getLocSts().equals("O") + && (waitWrkMast!=null && waitWrkMast.getWrkSts()<18)){ News.error("绉诲簱鍐嶅洖搴撴椂锛屾繁搴撲綅缁勬繁搴撲綅鐘舵�佷负浣滀笟涓� ===>> deepLoc={},loc_sts={}", deepLoc.getLocNo(), deepLoc.getLocSts()); flag = true; break; @@ -3149,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() @@ -3731,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; + } } } @@ -3809,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