From 7603004d9eed2904a823861e7cd6f5c2f0016500 Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期一, 04 三月 2024 16:19:03 +0800 Subject: [PATCH] #条码显示 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 325 ++++++++++++++++++++++++++++++++++------------------- 1 files changed, 209 insertions(+), 116 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 a3cc3b7..cdb274c 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -44,7 +44,6 @@ */ @Slf4j @Service("mainService") -@Transactional public class MainServiceImpl { @Value("${wms.url}") @@ -2576,7 +2575,7 @@ } } } catch (Exception e) { - e.printStackTrace(); +// e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } @@ -2601,7 +2600,7 @@ } } } catch (Exception e) { - e.printStackTrace(); +// e.printStackTrace(); } } @@ -2633,9 +2632,10 @@ } if (wrkMast.getInvWh() == null) { - wrkMast.setInvWh("Y");//鏍囪宸茬粡涓嬪彂鏈烘鑷備换鍔� - if (wrkMastMapper.updateById(wrkMast) > 0) { - RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), wrkDetls.size(), "303"); + boolean result = RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), wrkDetls.size(), "303"); + if (result) { + wrkMast.setInvWh("Y");//鏍囪宸茬粡涓嬪彂鏈烘鑷備换鍔� + wrkMastMapper.updateById(wrkMast); } } } @@ -2652,9 +2652,10 @@ continue; } if (wrkMast.getInvWh() == null) { - wrkMast.setInvWh("Y");//鏍囪宸茬粡涓嬪彂鏈烘鑷備换鍔� - if (wrkMastMapper.updateById(wrkMast) > 0) { - RobotUtils.sendTask(staProtocol317.getWorkNo().toString(), wrkDetls.size(), "317"); + boolean result = RobotUtils.sendTask(staProtocol317.getWorkNo().toString(), wrkDetls.size(), "317"); + if (result) { + wrkMast.setInvWh("Y");//鏍囪宸茬粡涓嬪彂鏈烘鑷備换鍔� + wrkMastMapper.updateById(wrkMast); } } } @@ -2737,13 +2738,38 @@ return false; } + //閫氱煡WMS褰撳墠鎷f枡绔欑偣淇℃伅 + private boolean agvCureentCall(String staNo, String barcode) { + try { + HashMap<String, Object> param = new HashMap<>(); + param.put("devNo", staNo); + param.put("containerCode", barcode); + String response = new HttpHandler.Builder() + .setUri(wmsUrl) + .setPath("/rpc/current/containerCode") + .setJson(JSON.toJSONString(param)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + News.info("鎮寕绾匡紝WMS杩斿洖缁撴灉锛�" + jsonObject); + Integer code = jsonObject.getInteger("code"); + if (code.equals(200)) {//鍛煎彨AGV + return true; + } + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + return false; + } + /** * AGV琛ヨ揣(鎮寕绾块�氱煡AGV鍙栬揣) */ public void agvRestockIntoByHangingWire() { try { //妫�娴�350鍜�351鎵爜鍣� - int[] barcodeStaNo = {11, 12};//11 => 350绔欐壂鐮佸櫒,12 => 351绔欐壂鐮佸櫒 + int[] barcodeStaNo = {11, 12,14,16,18,20};//11 => 350绔欐壂鐮佸櫒,12 => 351绔欐壂鐮佸櫒 for (int staNo : barcodeStaNo) { // 鑾峰彇鏉$爜鎵弿浠俊鎭� BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, staNo); @@ -2759,11 +2785,61 @@ String agvStaNo = null; if (staNo == 11) { agvStaNo = "303-1"; - } else { + } else if(staNo == 12){ agvStaNo = "304-1"; + } else if(staNo == 14){ + agvStaNo = "311-1"; + } else if(staNo == 16){ + agvStaNo = "313-1"; + } else if(staNo == 18){ + agvStaNo = "315-1"; + } else if(staNo == 20){ + agvStaNo = "317-1"; } //閫氱煡AGV鍙栬揣 boolean result = agvRestockCall(agvStaNo, barcode); + if (result) { + barcodeThread.setBarcode(""); + } + log.info(barcodeThread.getSlave().getId() + "鍙锋壂鐮佸櫒锛岄�氱煡AGV鍙栬揣锛屾潯鐮佸彿锛�" + barcode); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * AGV鎷f枡绔欑偣淇℃伅 + */ + public void agvCurrentContainerCodeInfoWire() { + try { + //妫�娴�350鍜�351鎵爜鍣� + int[] barcodeStaNo = {13, 15,17,19};//11 => 350绔欐壂鐮佸櫒,12 => 351绔欐壂鐮佸櫒 + for (int staNo : barcodeStaNo) { + // 鑾峰彇鏉$爜鎵弿浠俊鎭� + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, staNo); + if (barcodeThread == null) { + continue; + } + String barcode = barcodeThread.getBarcode(); + if (!Cools.isEmpty(barcode)) { + if (barcode.contains("NoRead")) { + continue; + } + + String agvStaNo = null; + if (staNo == 13) { + agvStaNo = "CS-310"; + } else if(staNo == 15){ + agvStaNo = "CS-311"; + } else if(staNo == 17){ + agvStaNo = "CS-312"; + } else if(staNo == 19){ + agvStaNo = "CS-313"; + } + //閫氱煡WMS褰撳墠瀹瑰櫒鐮� + boolean result = agvCureentCall(agvStaNo, barcode); if (result) { barcodeThread.setBarcode(""); } @@ -2906,90 +2982,103 @@ ledCommand.setStaNo(wrkStaNo); ledCommand.setBarcode(barcode); if (ioType != 110 && ioType != 10) { - List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo)); - if (ioType == 101) { - locDetls.forEach(locDetl -> { - Wrapper<WrkDetl> wrapper = new EntityWrapper<WrkDetl>().eq("matnr", locDetl.getMatnr()).eq("wrk_no", wrkNo); - Utils.wapperSetCondition(wrapper, "batch", locDetl.getBatch()); - Utils.wapperSetCondition(wrapper, "three_code", locDetl.getThreeCode()); - Utils.wapperSetCondition(wrapper, "dead_time", locDetl.getDeadTime()); - Utils.wapperSetCondition(wrapper, "supp_code", locDetl.getSuppCode());//鏂欑鐮� - List<WrkDetl> detl = wrkDetlService.selectList(wrapper); - if (Cools.isEmpty(detl)) { - String suppCode = ""; - if (locDetl.getSuppCode() != null) { - suppCode = locDetl.getSuppCode(); - } - ledCommand.getMatDtos().add(new MatDto(locDetl.getMatnr(), locDetl.getMaktx(), 0D, locDetl.getAnfme(), locDetl.getSpecs(), suppCode)); - } else { - //鍑哄簱鏁伴噺绱 - Double conut = 0.0; - for (WrkDetl wrkDetl : detl) { - conut = conut + wrkDetl.getAnfme(); - } + List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo)); + wrkDetls.forEach(wrkDetl -> { + ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), (wrkDetl.getStock() - wrkDetl.getAnfme()), wrkDetl.getSpecs(), wrkDetl.getSuppCode(), wrkDetl.getOrderNo())); + }); - for (WrkDetl wrkDetl : detl) { - String suppCode = ""; - if (wrkDetl.getSuppCode() != null) { - suppCode = wrkDetl.getSuppCode(); - } - ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), (locDetl.getAnfme() - conut), wrkDetl.getSpecs(), suppCode, wrkDetl.getOrderNo())); - } - } - - }); - } else { - locDetls.forEach(locDetl -> { - Wrapper<WrkDetl> wrapper = new EntityWrapper<WrkDetl>().eq("matnr", locDetl.getMatnr()).eq("wrk_no", wrkNo); - Utils.wapperSetCondition(wrapper, "batch", locDetl.getBatch()); - Utils.wapperSetCondition(wrapper, "three_code", locDetl.getThreeCode()); - Utils.wapperSetCondition(wrapper, "dead_time", locDetl.getDeadTime()); - Utils.wapperSetCondition(wrapper, "supp_code", locDetl.getSuppCode());//鏂欑鐮� - List<WrkDetl> detl = wrkDetlService.selectList(wrapper); - if (Cools.isEmpty(detl)) { - String suppCode = ""; - if (locDetl.getSuppCode() != null) { - suppCode = locDetl.getSuppCode(); - } - ledCommand.getMatDtos().add(new MatDto(locDetl.getMatnr(), locDetl.getMaktx(), 0D, locDetl.getAnfme(), locDetl.getSpecs(), suppCode)); - } else { - //鍑哄簱鏁伴噺绱 - Double conut = 0.0; - for (WrkDetl wrkDetl : detl) { - conut = conut + wrkDetl.getAnfme(); - } - - for (WrkDetl wrkDetl : detl) { - String suppCode = ""; - if (wrkDetl.getSuppCode() != null) { - suppCode = wrkDetl.getSuppCode(); - } - ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), 0D, wrkDetl.getSpecs(), suppCode, wrkDetl.getOrderNo())); - } - } - - }); - } - - - if (ioType == 107) { - locDetls = new ArrayList<>(); - ledCommand.setMatDtos(new ArrayList<>()); - } - - if (locDetls.isEmpty()) { - List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo)); - wrkDetls.forEach(wrkDetl -> { - ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), wrkDetl.getAnfme(), wrkDetl.getSpecs(), wrkDetl.getSuppCode())); - }); - - if (wrkDetls.isEmpty()) {//浠庡巻鍙叉。鏌ヨ - List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectLatestByWorkNo(wrkNo, barcode); - for (WrkDetlLog wrkDetlLog : wrkDetlLogs) { - ledCommand.getMatDtos().add(new MatDto(wrkDetlLog.getMatnr(), wrkDetlLog.getMaktx(), wrkDetlLog.getAnfme(), wrkDetlLog.getAnfme(), wrkDetlLog.getSpecs(), wrkDetlLog.getSuppCode())); - } - } - } +// List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo)); +// if (ioType == 101) { +// List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo)); +// wrkDetls.forEach(wrkDetl -> { +// ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), 0D, wrkDetl.getSpecs(), wrkDetl.getSuppCode())); +// }); +//// locDetls.forEach(locDetl -> { +//// Wrapper<WrkDetl> wrapper = new EntityWrapper<WrkDetl>().eq("matnr", locDetl.getMatnr()).eq("wrk_no", wrkNo); +//// Utils.wapperSetCondition(wrapper, "batch", locDetl.getBatch()); +//// Utils.wapperSetCondition(wrapper, "three_code", locDetl.getThreeCode()); +//// Utils.wapperSetCondition(wrapper, "dead_time", locDetl.getDeadTime()); +//// Utils.wapperSetCondition(wrapper, "supp_code", locDetl.getSuppCode());//鏂欑鐮� +//// List<WrkDetl> detl = wrkDetlService.selectList(wrapper); +//// if (Cools.isEmpty(detl)) { +//// String suppCode = ""; +//// if (locDetl.getSuppCode() != null) { +//// suppCode = locDetl.getSuppCode(); +//// } +//// ledCommand.getMatDtos().add(new MatDto(locDetl.getMatnr(), locDetl.getMaktx(), 0D, locDetl.getAnfme(), locDetl.getSpecs(), suppCode)); +//// } else { +//// //鍑哄簱鏁伴噺绱 +//// Double conut = 0.0; +//// for (WrkDetl wrkDetl : detl) { +//// conut = conut + wrkDetl.getAnfme(); +//// } +//// +//// for (WrkDetl wrkDetl : detl) { +//// String suppCode = ""; +//// if (wrkDetl.getSuppCode() != null) { +//// suppCode = wrkDetl.getSuppCode(); +//// } +//// ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), (locDetl.getAnfme() - conut), wrkDetl.getSpecs(), suppCode, wrkDetl.getOrderNo())); +//// } +//// } +//// +//// }); +// } else { +// locDetls.forEach(locDetl -> { +// Wrapper<WrkDetl> wrapper = new EntityWrapper<WrkDetl>().eq("matnr", locDetl.getMatnr()).eq("wrk_no", wrkNo); +// Utils.wapperSetCondition(wrapper, "batch", locDetl.getBatch()); +// Utils.wapperSetCondition(wrapper, "three_code", locDetl.getThreeCode()); +// Utils.wapperSetCondition(wrapper, "dead_time", locDetl.getDeadTime()); +// Utils.wapperSetCondition(wrapper, "supp_code", locDetl.getSuppCode());//鏂欑鐮� +// List<WrkDetl> detl = wrkDetlService.selectList(wrapper); +// if (Cools.isEmpty(detl)) { +// String suppCode = ""; +// if (locDetl.getSuppCode() != null) { +// suppCode = locDetl.getSuppCode(); +// } +// ledCommand.getMatDtos().add(new MatDto(locDetl.getMatnr(), locDetl.getMaktx(), 0D, locDetl.getAnfme(), locDetl.getSpecs(), suppCode)); +// } else { +// //鍑哄簱鏁伴噺绱 +// Double conut = 0.0; +// for (WrkDetl wrkDetl : detl) { +// conut = conut + wrkDetl.getAnfme(); +// } +// +// for (WrkDetl wrkDetl : detl) { +// String suppCode = ""; +// if (wrkDetl.getSuppCode() != null) { +// suppCode = wrkDetl.getSuppCode(); +// } +// ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), (wrkDetl.getStock() - conut), wrkDetl.getSpecs(), suppCode, wrkDetl.getOrderNo())); +// } +// } +// +// }); +// } +// +// +// if (ioType == 107) { +// locDetls = new ArrayList<>(); +// ledCommand.setMatDtos(new ArrayList<>()); +// } +// +// if (locDetls.isEmpty() && ioType != 101) { +// List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo)); +// wrkDetls.forEach(wrkDetl -> { +// if (wrkDetl.getAnfme() > 0D) { +// ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), wrkDetl.getAnfme(), wrkDetl.getSpecs(), wrkDetl.getSuppCode())); +// } +// }); +// +// if (wrkDetls.isEmpty()) {//浠庡巻鍙叉。鏌ヨ +// List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectLatestByWorkNo(wrkNo, barcode); +// for (WrkDetlLog wrkDetlLog : wrkDetlLogs) { +// if (wrkDetlLog.getAnfme() > 0D) { +// ledCommand.getMatDtos().add(new MatDto(wrkDetlLog.getMatnr(), wrkDetlLog.getMaktx(), wrkDetlLog.getAnfme(), wrkDetlLog.getAnfme(), wrkDetlLog.getSpecs(), wrkDetlLog.getSuppCode())); +// } +// } +// } +// } } commands.add(ledCommand); @@ -4011,32 +4100,36 @@ //鎵弿璁惧PakMk鏍囪鏄惁瓒呮椂 public synchronized void scanDevicePakMk() { - //鎵弿灏忚溅 - for (ShuttleSlave slave : slaveProperties.getShuttle()) { - NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, slave.getId()); - NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol(); - if (shuttleProtocol == null) { - continue; + 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);//澶嶄綅鏍囪 + } } - 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; + } - //鎵弿鎻愬崌鏈� - 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);//澶嶄綅鏍囪 + } } - - if ((System.currentTimeMillis() - liftProtocol.getSendTime() > (1000*60*5)) && liftProtocol.getPakMk()) { - //璁惧瓒呰繃5鍒嗛挓杩樻病澶嶄綅鏍囪 - liftProtocol.setPakMk(false);//澶嶄綅鏍囪 - } + } catch (Exception e) { + e.printStackTrace(); } } -- Gitblit v1.9.1