From 08b68c503f12a28399f0c70e460ee6af8b7185ea Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期一, 10 二月 2025 12:46:13 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 246 ++----------------------------------------------- 1 files changed, 10 insertions(+), 236 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 dc1bfb5..3760f91 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -1,9 +1,11 @@ package com.zy.asrs.service.impl; import com.alibaba.fastjson.JSON; +import com.zy.asrs.domain.enums.NotifyMsgType; import com.zy.asrs.entity.*; import com.zy.asrs.mapper.*; import com.zy.asrs.service.*; +import com.zy.asrs.utils.NotifyUtils; import com.zy.asrs.utils.Utils; import com.zy.common.model.*; import com.zy.common.model.enums.NavigationMapType; @@ -82,6 +84,8 @@ private ShuttleAction shuttleAction; @Autowired private ForkLiftAction forkLiftAction; + @Autowired + private NotifyUtils notifyUtils; // /** @@ -851,10 +855,12 @@ //310.灏忚溅绉诲姩涓� ==> 311.灏忚溅绉诲姩瀹屾垚 wrkMast.setWrkSts(WrkStsType.COMPLETE_MOVE.sts); shuttleThread.setSyncTaskNo(0); + notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.SHUTTLE_MOVE_COMPLETE);//瑙﹀彂閫氱煡 } else if (wrkMast.getWrkSts() == WrkStsType.CHARGE_SHUTTLE_WORKING.sts) { //204.灏忚溅鍏呯數涓� ==> 205.灏忚溅鍏呯數瀹屾垚 wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_COMPLETE.sts); shuttleThread.setSyncTaskNo(0); + notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//瑙﹀彂閫氱煡 }else { continue; } @@ -1561,206 +1567,6 @@ // } /** - * 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣� - */ - public void ledExecute() { -// try { -// for (LedSlave led : slaveProperties.getLed()) { -// // 鑾峰彇杈撻�佺嚎plc绾跨▼ -// DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); -// // 鍛戒护闆嗗悎 -// List<LedCommand> commands = new ArrayList<>(); -// // 宸ヤ綔妗i泦鍚� -// List<WrkMast> wrkMasts = new ArrayList<>(); -// List<WrkMastLog> wrkMastLogs = new ArrayList<>(); -// for (Integer staNo : led.getStaArr()) { -// // 鑾峰彇鍙夎溅绔欑偣 -// StaProtocol staProtocol = devpThread.getStation().get(staNo); -// if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) { -// continue; -// } else { -// staProtocol = staProtocol.clone(); -// } -// // 鑾峰彇宸ヤ綔妗f暟鎹� -// WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo()); -// Integer wrkNo = staProtocol.getWorkNo().intValue(); -// Integer ioType = null; -// String sourceLocNo = null; -// String locNo = null; -// Integer wrkStaNo = null; -// String barcode = null; -// if (wrkMast == null) { -// //鏌ヨ鍘嗗彶妗� -// WrkMastLog wrkMastLog = wrkMastLogMapper.selectLatestByWorkNo(staProtocol.getWorkNo().intValue()); -// if (wrkMastLog == null) { -// continue; -// } -// ioType = wrkMastLog.getIoType(); -// sourceLocNo = wrkMastLog.getSourceLocNo(); -// locNo = wrkMastLog.getLocNo(); -// wrkStaNo = wrkMastLog.getStaNo(); -// barcode = wrkMastLog.getBarcode(); -// wrkMastLogs.add(wrkMastLog); -// }else { -// if (wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { -// continue; -// } -// ioType = wrkMast.getIoType(); -// sourceLocNo = wrkMast.getSourceLocNo(); -// locNo = wrkMast.getLocNo(); -// wrkStaNo = wrkMast.getStaNo(); -// barcode = wrkMast.getBarcode(); -// wrkMasts.add(wrkMast); -// } -// // 缁勮鍛戒护 -// LedCommand ledCommand = new LedCommand(); -// ledCommand.setWorkNo(wrkNo); -// ledCommand.setIoType(ioType); -// // 鍑哄簱妯″紡 -// switch (ioType) { -// case 101: -// ledCommand.setTitle("鍏ㄦ澘鍑哄簱"); -// break; -// case 103: -// ledCommand.setTitle("鎷f枡鍑哄簱"); -// break; -// case 104: -// ledCommand.setTitle("骞舵澘鍑哄簱"); -// break; -// case 107: -// ledCommand.setTitle("鐩樼偣鍑哄簱"); -// break; -// case 110: -// ledCommand.setTitle("绌烘澘鍑哄簱"); -// ledCommand.setEmptyMk(true); -// break; -// default: -// News.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkNo, ioType); -// break; -// } -// ledCommand.setSourceLocNo(sourceLocNo); -// ledCommand.setLocNo(locNo); -// ledCommand.setStaNo(wrkStaNo); -// ledCommand.setBarcode(barcode); -// if (ioType != 110 && ioType != 10) { -// List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo)); -// if (!wrkDetls.isEmpty()) { -// wrkDetls.forEach(wrkDetl -> { -// double remainNum = wrkDetl.getStock() - wrkDetl.getAnfme();//鍓╀綑鏁伴噺 -// if (remainNum < 0) { -// remainNum = 0; -// } -// String matnr = wrkDetl.getMatnr(); -// Mat mat = matService.selectByMatnr(wrkDetl.getMatnr()); -// if (mat != null) { -// if (!mat.getMatnr().equals(mat.getMatnr2())) { -// matnr += " - " + mat.getMatnr2(); -// } -// } -// ledCommand.getMatDtos().add(new MatDto(matnr, wrkDetl.getMaktx(), wrkDetl.getAnfme(), remainNum, wrkDetl.getSpecs(), wrkDetl.getSuppCode(), wrkDetl.getOrderNo())); -// }); -// }else { -// List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectLatestByWorkNo(wrkNo, barcode); -// for (WrkDetlLog wrkDetlLog : wrkDetlLogs) { -// double remainNum = wrkDetlLog.getStock() - wrkDetlLog.getAnfme();//鍓╀綑鏁伴噺 -// if (remainNum < 0) { -// remainNum = 0; -// } -// String matnr = wrkDetlLog.getMatnr(); -// Mat mat = matService.selectByMatnr(wrkDetlLog.getMatnr()); -// if (mat != null) { -// if (!mat.getMatnr().equals(mat.getMatnr2())) { -// matnr += " - " + mat.getMatnr2(); -// } -// } -// ledCommand.getMatDtos().add(new MatDto(matnr, wrkDetlLog.getMaktx(), wrkDetlLog.getAnfme(), remainNum, wrkDetlLog.getSpecs(), wrkDetlLog.getSuppCode())); -// } -// } -// commands.add(ledCommand); -// } -// Set<Integer> workNos = null; -// if (!wrkMasts.isEmpty()) { -// workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet()); -// }else { -// workNos = wrkMastLogs.stream().map(WrkMastLog::getWrkNo).collect(Collectors.toSet()); -// } -// // 鑾峰彇LED绾跨▼ -// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId()); -// // 鐩稿悓宸ヤ綔鍙烽泦鍚堝垯杩囨护 -// if (CollectionUtils.equals(ledThread.getWorkNos(), workNos)) { -// continue; -// } -// // 鍛戒护涓嬪彂 ------------------------------------------------------------------------------- -// if (!commands.isEmpty()) { -// 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); -// } -// } -// -// try { -// // 淇敼涓绘。led鏍囪 -// for (WrkMast wrkMast : wrkMasts) { -// wrkMast.setOveMk("Y"); -// wrkMast.setModiTime(new Date()); -// if (wrkMastMapper.updateById(wrkMast) == 0) { -// throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�"); -// } -// } -// -// // 鏇存柊绾跨▼褰撳墠宸ヤ綔鍙烽泦鍚� -// ledThread.setWorkNos(workNos); -// -// } catch (Exception e) { -// e.printStackTrace(); -// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); -// } -// -// } -// } catch (Exception e) { -// e.printStackTrace(); -// } - } - - /** - * 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅 - */ - public void ledReset() { -// try { -// 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; -// } -// if (staProtocol.isLoading()) { -// reset = false; -// break; -// } -// } -// // 鑾峰彇led绾跨▼ -// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId()); -// // led鏄剧ず榛樿鍐呭 -// if (reset) { -// 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()); -// } -// } -// } -// } catch (Exception e) { -// e.printStackTrace(); -// } - } - - /** * 鍥涘悜绌挎杞︾數閲忔娴� ===>> 鍙戣捣鍏呯數 */ public synchronized void loopShuttleCharge() { @@ -1988,6 +1794,8 @@ //涓嬪彂浠诲姟 shuttleAction.assignWork(shuttleProtocol.getShuttleNo(), assignCommand); + + notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.SHUTTLE_POWER_START);//瑙﹀彂閫氱煡 return false; } return true; @@ -2188,6 +1996,8 @@ if (wrkMastService.updateById(wrkMast)) { //涓嬪彂浠诲姟 shuttleAction.assignWork(shuttleProtocol.getShuttleNo(), assignCommand); + //瑙﹀彂閫氱煡 + notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.SHUTTLE_MOVING); return false; } return false; @@ -2402,41 +2212,5 @@ } return true; } - -// //鎵弿璁惧PakMk鏍囪鏄惁瓒呮椂 -// public synchronized void scanDevicePakMk() { -// try { -// //鎵弿灏忚溅 -// for (ShuttleSlave slave : slaveProperties.getShuttle()) { -// NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, slave.getId()); -// NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol(); -// if (shuttleProtocol == null) { -// continue; -// } -// -// if ((System.currentTimeMillis() - shuttleProtocol.getSendTime() > (1000 * 60 * 5)) && shuttleProtocol.getPakMk()) { -// //璁惧瓒呰繃5鍒嗛挓杩樻病澶嶄綅鏍囪 -// shuttleProtocol.setPakMk(false);//澶嶄綅鏍囪 -// } -// } -// -// //鎵弿鎻愬崌鏈� -// for (LiftSlave slave : slaveProperties.getLift()) { -// LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, slave.getId()); -// LiftProtocol liftProtocol = liftThread.getLiftProtocol(); -// if (liftProtocol == null) { -// continue; -// } -// -// if ((System.currentTimeMillis() - liftProtocol.getSendTime() > (1000 * 60 * 5)) && liftProtocol.getPakMk()) { -// //璁惧瓒呰繃5鍒嗛挓杩樻病澶嶄綅鏍囪 -// liftProtocol.setPakMk(false);//澶嶄綅鏍囪 -// } -// } -// } catch (Exception e) { -// e.printStackTrace(); -// } -// -// } } -- Gitblit v1.9.1