From 246c867095e2029379492b82914a4ff327344b6e Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期四, 29 五月 2025 14:20:40 +0800 Subject: [PATCH] 自动补空板 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 140 +++++++++++++++++++++++++++++++++++----------- src/main/java/com/zy/core/MainProcess.java | 4 2 files changed, 109 insertions(+), 35 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 936b175..bd80c04 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.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.TestMastMapper; @@ -157,7 +158,7 @@ // 閫�鍥� - if (back ||(!Cools.isEmpty(barcode) && barcode.equals("00000000"))) { + if (back || (!Cools.isEmpty(barcode) && barcode.equals("00000000"))) { staProtocol.setWorkNo((short) 9999); staProtocol.setStaNo(inSta.getBackSta().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); @@ -1012,7 +1013,7 @@ WrkMast wrkMast = null; if (Cools.isEmpty(wrkMasts)) { return; - }else { + } else { wrkMast = wrkMasts.get(0); } // //鍚庢煡绛夊緟搴撲綅杞祴璇曞簱浣� @@ -1406,7 +1407,7 @@ if (null == wrkMast) { continue; } - log.info(""+mark+" - 0"+" - 寮�濮嬫墽琛�:鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�"); + log.info("" + mark + " - 0" + " - 寮�濮嬫墽琛�:鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�"); wrkMasts.add(wrkMast); // 缁勮鍛戒护 LedCommand ledCommand = new LedCommand(); @@ -1437,7 +1438,7 @@ ledCommand.setEmptyMk(true); break; default: - News.error(""+mark+" - 1"+" - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType()); + News.error("" + mark + " - 1" + " - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType()); break; } ledCommand.setSourceLocNo(wrkMast.getSourceLocNo()); @@ -1446,7 +1447,7 @@ // ledCommand.setSourceStaNo(wrkMast.getSourceStaNo()); if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) { List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); - wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(),wrkDetl.getSpecs()))); + wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), wrkDetl.getSpecs()))); } commands.add(ledCommand); } @@ -1481,7 +1482,7 @@ if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) { News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); continue; - }else { + } else { ledThread.setLedMk(false); } } @@ -1492,7 +1493,7 @@ wrkMast.setOveMk("Y"); wrkMast.setModiTime(new Date()); if (wrkMastMapper.updateById(wrkMast) == 0) { - log.error(""+mark+" - 4"+" - 鏇存柊宸ヤ綔妗eけ璐�"); + log.error("" + mark + " - 4" + " - 鏇存柊宸ヤ綔妗eけ璐�"); throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�"); } } @@ -1506,7 +1507,7 @@ } } - log.info(""+mark+" - 0"+" - 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣ㄦ墽琛屽畬鎴�"); + log.info("" + mark + " - 0" + " - 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣ㄦ墽琛屽畬鎴�"); } /** @@ -2028,7 +2029,7 @@ // 鏍规嵁杈撻�佺嚎plc閬嶅巻 for (DevpSlave devp : slaveProperties.getDevp()) { SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - if(null != devpThread){ + if (null != devpThread) { //devpThread.startSignal[i][0] //0:绌洪棽,1:寰呮祴,2:娴嬭瘯涓�;3.娴嬭瘯瀹屾垚;4.娴嬭瘯澶辫触; @@ -2037,48 +2038,48 @@ //testMast.setStatus //"鐘舵�� 0: 鏃犺揣 1: 绛夊緟娴嬭瘯 2:娴嬭瘯涓� 3.娴嬭瘯瀹屾垚;4.娴嬭瘯澶辫触; " - for (int i = 0; i < 24; i++){ + for (int i = 0; i < 24; i++) { //鏌ヨ鍦ㄥ簱鍜岄绾﹀嚭搴� - LocMast locMast=locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel",i+1)); - if(!Cools.isEmpty(locMast)){ - if (locMast.getLocSts().equals("F")){ - TestMast testMast=testMastService.selectOne(new EntityWrapper<TestMast>() - .eq("loc_no",locMast.getLocNo()) - .eq("user_id",locMast.getBarcode())); - if(Cools.isEmpty(testMast)){ + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel", i + 1)); + if (!Cools.isEmpty(locMast)) { + if (locMast.getLocSts().equals("F")) { + TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>() + .eq("loc_no", locMast.getLocNo()) + .eq("user_id", locMast.getBarcode())); + if (Cools.isEmpty(testMast)) { // log.info("2377琛岀▼搴忓紑濮嬭繍琛岋紝娴嬭瘯妗d负绌猴紝璺宠繃"); continue; } - HashMap<String,Short> hashMap=new HashMap<>(); - if(devpThread.startSignal[i][0]!=locMast.getPackStatus()){ - hashMap.put("locSts",locMast.getPackStatus().shortValue()); - hashMap.put("channel",(short)(i*2)); - MessageQueue.offer(SlaveType.Devp, 1, new Task(6,hashMap)); + HashMap<String, Short> hashMap = new HashMap<>(); + if (devpThread.startSignal[i][0] != locMast.getPackStatus()) { + hashMap.put("locSts", locMast.getPackStatus().shortValue()); + hashMap.put("channel", (short) (i * 2)); + MessageQueue.offer(SlaveType.Devp, 1, new Task(6, hashMap)); } //鍚屾璁惧鐘舵�� - if(locMast.getPackStatus()!=testMast.getStatus()){ + if (locMast.getPackStatus() != testMast.getStatus()) { testMast.setStatus(locMast.getPackStatus()); testMastService.updateById(testMast); } - if(devpThread.startSignal[i][1]!=locMast.getCtnKind()){ + if (devpThread.startSignal[i][1] != locMast.getCtnKind()) { locMast.setCtnKind(devpThread.startSignal[i][1]); locMastService.updateById(locMast); } - }else if(locMast.getLocSts().equals("O")){ + } else if (locMast.getLocSts().equals("O")) { //褰撳厖鏀剧數搴撲綅涓篛绌哄簱浣嶆椂 //搴撲綅鐘舵�佹敼涓�0绌洪棽 - locMast=locMastService.selectztgx("O",i); - if(!Cools.isEmpty(locMast)){ - HashMap<String,Short> hashMap=new HashMap<>(); - if(devpThread.startSignal[i][0]!=locMast.getPackStatus()){ - hashMap.put("locSts",(short)0); - hashMap.put("channel",(short)(i*2)); - MessageQueue.offer(SlaveType.Devp, 1, new Task(6,hashMap)); + locMast = locMastService.selectztgx("O", i); + if (!Cools.isEmpty(locMast)) { + HashMap<String, Short> hashMap = new HashMap<>(); + if (devpThread.startSignal[i][0] != locMast.getPackStatus()) { + hashMap.put("locSts", (short) 0); + hashMap.put("channel", (short) (i * 2)); + MessageQueue.offer(SlaveType.Devp, 1, new Task(6, hashMap)); locMast.setPackStatus(0); locMastService.updateById(locMast); } - if(devpThread.startSignal[i][1]!=locMast.getChannel()){ + if (devpThread.startSignal[i][1] != locMast.getChannel()) { locMast.setCtnKind(devpThread.startSignal[i][1]); locMastService.updateById(locMast); } @@ -2094,4 +2095,77 @@ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } } + + /** + * 鍑哄簱绔欑偣鏃犺揣鏃惰嚜鍔ㄨˉ绌烘澘鍒板嚭搴撳彛 + */ + public void automaticEmptyBoardOutbound() { + // 鑾峰彇鍏ュ簱绔欎俊鎭� + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); + StaProtocol staProtocol = devpThread.getStation().get(101); + if (staProtocol == null) { + return; + } else { + staProtocol = staProtocol.clone(); + } + if (staProtocol.isAutoing() && !staProtocol.isLoading() + && staProtocol.isOutEnable() && staProtocol.getWorkNo() == 0 + ) { + WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 110)); + if (!Cools.isEmpty(wrkMast1)) { + return; + } + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "D").orderBy("row1")); + if (Cools.isEmpty(locMast)) { + return; + } + //鐢熸垚绌烘澘鍑哄簱浠诲姟 + // 鑾峰彇宸ヤ綔鍙� + int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type); + // 鑾峰彇婧愮珯 + Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() + .eq("type_no", 110) + .eq("stn_no", 101) + .eq("crn_no", locMast.getCrnNo()); + StaDesc staDesc = staDescService.selectOne(wrapper); + Integer sourceStaNo = staDesc.getCrnStn(); + if (Cools.isEmpty(sourceStaNo)) { + throw new CoolException("妫�绱㈡簮绔欏け璐�"); + } + Date now = new Date(); + // 淇濆瓨宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID + wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱 + wrkMast.setIoPri(10D); + wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯 + wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔� + wrkMast.setCrnNo(locMast.getCrnNo()); + wrkMast.setSourceLocNo(locMast.getLocNo()); // 婧愬簱浣� + wrkMast.setFullPlt("N"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("Y"); // 绌烘澘 + wrkMast.setLinkMis("N"); + wrkMast.setAppeUser(9995L); + wrkMast.setAppeTime(now); + wrkMast.setModiUser(9995L); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 鏇存柊搴撲綅鐘舵�� D.绌烘澘 -> R.鍑哄簱棰勭害 + if (locMast.getLocSts().equals("D")){ + locMast.setLocSts("R"); + locMast.setModiUser(9995L); + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)) { + throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�"); + } + } + } + } } diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index 4f1c8b1..cf3409a 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -71,8 +71,8 @@ // //鐏锛岀粰鍫嗗灈鏈哄彂閫佺伀璀﹁鎶� // mainService.fierCrn(); - //103绔欑偣鏈夌墿涓嬪彂pack鐮� -// mainService.packDevp(); + //鑷姩鍑虹┖鏉� + mainService.automaticEmptyBoardOutbound(); } catch (Exception e) { e.printStackTrace(); -- Gitblit v1.9.1