From afe777a76ae3448a53986aac22b3a667a21c64c7 Mon Sep 17 00:00:00 2001 From: whycq <whycq> Date: 星期五, 18 三月 2022 09:55:41 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/xgmwcs' into xgmwcs --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 308 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 278 insertions(+), 30 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 3aaa8dc..ec51e5d 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -7,7 +7,6 @@ import com.core.common.Cools; import com.core.common.DateUtils; import com.core.exception.CoolException; -import com.zy.asrs.domain.enums.WorkNoType; import com.zy.asrs.entity.*; import com.zy.asrs.mapper.BasCrnErrorMapper; import com.zy.asrs.mapper.WaitPakinMapper; @@ -17,11 +16,11 @@ import com.zy.asrs.utils.VersionUtils; import com.zy.common.model.LocTypeDto; import com.zy.common.model.MatDto; +import com.zy.common.model.SearchLocParam; import com.zy.common.model.StartupDto; import com.zy.common.service.CommonService; import com.zy.common.utils.CollectionUtils; import com.zy.common.utils.HttpHandler; -import com.zy.common.model.SearchLocParam; import com.zy.core.CrnThread; import com.zy.core.DevpThread; import com.zy.core.cache.MessageQueue; @@ -38,6 +37,7 @@ import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.BarcodeThread; import com.zy.core.thread.LedThread; +import com.zy.core.thread.SiemensDevpThread; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -94,7 +94,6 @@ * 缁勬墭 * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2 */ - @Async public void generateStoreWrkFile() { // 鏍规嵁杈撻�佺嚎plc閬嶅巻 for (DevpSlave devp : slaveProperties.getDevp()) { @@ -111,21 +110,40 @@ if("NG".endsWith(barcode) || "NoRead".equals(barcode)) { continue; } + } else { + continue; } // 鑾峰彇鍏ュ簱绔欎俊鎭� - 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; } else { staProtocol = staProtocol.clone(); } + +// // 鍏ュ嚭搴撴ā寮忓垽鏂� +// if ( inSta.getStaNo()==180 && devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; } + // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999) - && staProtocol.isPakMk() && !Cools.isEmpty(barcode)) { + && staProtocol.isPakMk()){// && !Cools.isEmpty(barcode)) { + +// if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) { +// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode); +// //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撳埌172绔欑偣 +// staProtocol.setWorkNo((short)9999); +// staProtocol.setStaNo((short)172); +// devpThread.setPakMk(staProtocol.getSiteId(), false); +// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); +// if (!result) { +// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); +// } +// continue; +// } // 鍒ゆ柇閲嶅宸ヤ綔妗� WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode); @@ -246,20 +264,23 @@ * wms鍏ュ簱 * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 1 ==>> 2 */ - @Async public void generateStoreWrkFile0() { // 鏍规嵁杈撻�佺嚎plc閬嶅巻 for (DevpSlave devp : slaveProperties.getDevp()) { // 閬嶅巻鍏ュ簱鍙� 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; } else { staProtocol = staProtocol.clone(); } + +// // 鍏ュ嚭搴撴ā寮忓垽鏂� +// if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; } + // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999) @@ -297,22 +318,53 @@ /** * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱 */ - @Async - public void stnToCrnStnPick(){ + public synchronized void stnToCrnStnPick(){ for (DevpSlave devp : slaveProperties.getDevp()) { // 閬嶅巻鎷f枡鍏ュ簱鍙� for (DevpSlave.Sta pickSta : devp.getPickSta()) { + // 鑾峰彇鏉$爜鎵弿浠俊鎭� + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode()); + if (barcodeThread == null) { + continue; + } + String barcode = barcodeThread.getBarcode(); + if(!Cools.isEmpty(barcode)) { + log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode); + if("NG".endsWith(barcode) || "NoRead".equals(barcode)) { + continue; + } + } else { + continue; + } + // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭� - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo()); if (staProtocol == null) { continue; } else { staProtocol = staProtocol.clone(); } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() - && staProtocol.getWorkNo() > 0 && staProtocol.isPakMk()){ - WrkMast wrkMast = wrkMastMapper.selectPickStep(staProtocol.getWorkNo().intValue()); + +// // 鍏ュ嚭搴撴ā寮忓垽鏂� +// if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; } + + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()){ + +// if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) { +// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode); +// //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撳埌172绔欑偣 +// staProtocol.setWorkNo((short)9999); +// staProtocol.setStaNo((short)172); +// devpThread.setPakMk(staProtocol.getSiteId(), false); +// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); +// if (!result) { +// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); +// } +// continue; +// } + + WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode); if (wrkMast == null) { // 鏃犳嫞鏂欐暟鎹� continue; @@ -554,12 +606,47 @@ return; } + // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� + if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) { + String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo()); + LocMast shallowLoc = locMastService.selectById(shallowLocNo); + // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒 + if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) { + WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo); + if (null == waitWrkMast) { + log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo); + } else { + waitWrkMast.setIoPri(15D); + waitWrkMast.setModiTime(new Date()); + if (wrkMastMapper.updateById(waitWrkMast) == 0) { + log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo()); + } + } + continue; + } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) { + // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔� + if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) { + wrkMast.setUpdMk("Y"); + wrkMast.setIoPri(14D); + wrkMastMapper.updateById(wrkMast); + // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�) + moveLocForDeepLocPakin(slave, shallowLoc, wrkMast); + } + continue; + } else if (shallowLoc.getLocSts().equals("Q")){ + WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo); + if (null != waitWrkMast && waitWrkMast.getWrkSts()==4) { + continue; + } + } + } + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - crnCommand.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡: 搴撲綅绉昏浆 + crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪 crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰 @@ -616,13 +703,18 @@ continue; } // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); + 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 (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; } + + // 鏌ヨ绔欑偣璇︾粏淇℃伅 BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); if (staDetl == null) { @@ -649,20 +741,24 @@ if (null == waitWrkMast) { log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo); } else { - waitWrkMast.setIoPri(15D); - waitWrkMast.setModiTime(new Date()); - if (wrkMastMapper.updateById(waitWrkMast) == 0) { - log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo()); + if(waitWrkMast.getWrkSts() == 11) { + waitWrkMast.setIoPri(15D); + waitWrkMast.setModiTime(new Date()); + if (wrkMastMapper.updateById(waitWrkMast) == 0) { + log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo()); + } + continue; + } else { + } } - continue; } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) { // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔� if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) { wrkMast.setUpdMk("Y"); wrkMastMapper.updateById(wrkMast); // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�) -// moveLocForDeepLoc(slave, shallowLoc); + moveLocForDeepLoc(slave, shallowLoc); } log.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛�", wrkMast.getWrkNo()); continue; @@ -679,7 +775,7 @@ crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - crnCommand.setTaskMode(CrnTaskModeType.PAKOUT); // 浠诲姟妯″紡: 搴撲綅绉昏浆 + crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓 crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪 crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 婧愬簱浣嶅眰 @@ -739,7 +835,7 @@ } // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� - if (wrkMastMapper.selectLocMoving(slave.getId()) != null) { + if (wrkMastMapper.selectWorking(slave.getId()) != null) { return; } @@ -938,13 +1034,17 @@ // 閬嶅巻绌烘澘鍏ュ簱鍙� 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(); } + +// // 鍏ュ嚭搴撴ā寮忓垽鏂� +// if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; } + // 绔欑偣鏉′欢鍒ゆ柇 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999 || staProtocol.getWorkNo() == 9990 || staProtocol.getWorkNo() == 9997) && staProtocol.isPakMk()) { @@ -1098,7 +1198,7 @@ ledCommand.setStaNo(wrkMast.getStaNo()); if (wrkMast.getIoType() != 110) { List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); - wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme()))); + wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatNo(), wrkDetl.getMatName(), wrkDetl.getQty()))); } commands.add(ledCommand); } @@ -1114,6 +1214,8 @@ if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) { log.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); continue; + } else { + ledThread.setLedMk(false); } } @@ -1143,6 +1245,33 @@ */ @Async public void ledReset() { +// for (LedSlave led : slaveProperties.getLed()) { +// // 鑾峰彇杈撻�佺嚎plc绾跨▼ +// DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); +// // 鍛戒护闆嗗悎 +// boolean reset = true; +// for (Integer staNo : led.getStaArr()) { +// // 鑾峰彇鍙夎溅绔欑偣 +// StaProtocol staProtocol = devpThread.getStation().get(staNo); +// if (staProtocol == null) { +// continue; +// } else { +// staProtocol = staProtocol.clone(); +// } +// if (staProtocol.getWorkNo() != 0) { +// reset = false; +// break; +// } +// } +// // 鑾峰彇led绾跨▼ +// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getDevpPlcId()); +// // led鏄剧ず榛樿鍐呭 +// if (reset) { +// if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) { +// log.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); +// } +// } +// } for (LedSlave led : slaveProperties.getLed()) { // 鑾峰彇杈撻�佺嚎plc绾跨▼ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); @@ -1153,8 +1282,6 @@ StaProtocol staProtocol = devpThread.getStation().get(staNo); if (staProtocol == null) { continue; - } else { - staProtocol = staProtocol.clone(); } if (staProtocol.getWorkNo() != 0) { reset = false; @@ -1164,11 +1291,89 @@ // 鑾峰彇led绾跨▼ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getDevpPlcId()); // led鏄剧ず榛樿鍐呭 - if (reset) { + if (reset && !ledThread.isLedMk()) { + ledThread.setLedMk(true); if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) { log.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); + } else { + } } + } + } + + /** + * 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堝叆搴撶増) + * tip锛氬悓姝� + */ + @Transactional + public synchronized void moveLocForDeepLocPakin(CrnSlave crn, LocMast shallowLoc, WrkMast pakinWrkMast){ + LocMast loc = locMastService.selectById(pakinWrkMast.getLocNo()); + + // 鑾峰彇宸ヤ綔鍙� + int workNo = commonService.getWorkNo(0); + // 淇濆瓨宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID + wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇 + wrkMast.setIoPri(15D); + wrkMast.setCrnNo(crn.getId()); + wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣� + wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅 + wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D")?"Y":"N"); // 绌烘澘 + wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮� + wrkMast.setLinkMis("N"); + wrkMast.setCtnNo("Y"); // 鍏ュ簱闃诲搴撲綅绉昏浆鏍囪 + wrkMast.setAppeTime(new Date()); + wrkMast.setModiTime(new Date()); + int res = wrkMastMapper.insert(wrkMast); + if (res == 0) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 宸ヤ綔妗f槑缁嗕繚瀛� + if (shallowLoc.getLocSts().equals("F")) { + List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo())); + for (LocDetl locDetl : locDetls) { + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.setWrkNo(workNo); + wrkDetl.setIoTime(new Date()); + wrkDetl.setQty(locDetl.getQty()); + VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗 + wrkDetl.setAppeTime(new Date()); + wrkDetl.setModiTime(new Date()); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); + } + } + } + // 淇敼婧愬簱浣嶇姸鎬� + if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) { + shallowLoc.setLocSts("S"); // S.鍏ュ簱棰勭害锛屽叆搴撻樆濉炲簱浣嶇Щ杞� + shallowLoc.setModiTime(new Date()); + if (!locMastService.updateById(shallowLoc)){ + throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�"); + } + } else { + throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�"); + } +// // 淇敼鐩爣搴撲綅鐘舵�� +// if (loc.getLocSts().equals("O")) { +// loc.setLocSts("S"); // S.鍏ュ簱棰勭害 +// loc.setModiTime(new Date()); +// if (!locMastService.updateById(loc)) { +// throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�"); +// } +// } else { +// throw new CoolException("绉昏浆澶辫触"); +// } + wrkMast.setLocNo(shallowLoc.getLocNo()); + if (wrkMastMapper.updateById(wrkMast) == 0) { + throw new CoolException("淇敼闃诲鍏ュ簱浠诲姟澶辫触"); } } @@ -1182,6 +1387,15 @@ for (Integer row : rows) { if (Utils.isDeepLoc(slaveProperties, row)) { loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1()); + + if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())){ + String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo()); + LocMast shallowLoc1 = locMastService.selectById(shallowLocNo); + if(!shallowLoc1.getLocSts().equals("O")){ + loc = null; + } + } + if (null != loc) { break; } } } @@ -1228,7 +1442,7 @@ WrkDetl wrkDetl = new WrkDetl(); wrkDetl.setWrkNo(workNo); wrkDetl.setIoTime(new Date()); - wrkDetl.setAnfme(locDetl.getAnfme()); + wrkDetl.setQty(locDetl.getQty()); VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗 wrkDetl.setAppeTime(new Date()); wrkDetl.setModiTime(new Date()); @@ -1285,7 +1499,7 @@ String locNo = loc.getLocNo(); // 鑾峰彇宸ヤ綔鍙� - int workNo = commonService.getWorkNo(WorkNoType.PICK.type); + int workNo = commonService.getWorkNo(0); // 淇濆瓨宸ヤ綔妗� wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); @@ -1396,5 +1610,39 @@ } } + /** + * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁� + */ + public void ioConvert() { + try { + // 鏍规嵁杈撻�佺嚎plc閬嶅巻 + for (DevpSlave devp : slaveProperties.getDevp()) { + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + + WrkMast pakout = wrkMastMapper.selectWorkingPakout(); + if (pakout != null) { + if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { + // 鍑哄簱鍒囨崲涓� + devpThread.ioMode = IoModeType.PAKOUT_BOOTING; + + WrkMast pakin = wrkMastMapper.selectWorkingPakin(); + if (pakin == null && !devpThread.getStation().get(201).isLoading() && !devpThread.getStation().get(202).isLoading()) { + // 鍑哄簱妯″紡 + devpThread.ioMode = IoModeType.PAKOUT_MODE; + } + } + } else { + // 鍏ュ簱妯″紡 + devpThread.ioMode = IoModeType.PAKIN_MODE; + } + } + + } catch (Exception e) { + e.printStackTrace(); + } + + + } + } -- Gitblit v1.9.1