From c8014054b94e94aa42b319d30f5791fc736a5f55 Mon Sep 17 00:00:00 2001 From: 18516761980 <56479841@qq.com> Date: 星期四, 11 八月 2022 13:26:17 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 174 ++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 140 insertions(+), 34 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 2268ad4..bdb7662 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -533,14 +533,16 @@ continue; } - //鍫嗗灈鏈哄洖鍘熺偣浠诲姟涓� - if(crnThread.isBackHpFlag()){ - continue; - } +// //鍫嗗灈鏈哄洖鍘熺偣浠诲姟涓� +// if(crnThread.isBackHpFlag()){ +// continue; +// } // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛� if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) { + // 搴撲綅绉昏浆 + this.stnToStn(crn, crnProtocol); // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡 if (crnProtocol.getLastIo().equals("I")) { if (basCrnp.getInEnable().equals("Y")) { @@ -1905,52 +1907,156 @@ } /** + * 绔欏埌绔� ===>> 鍫嗗灈鏈�109绔欏埌108绔� + * 109闃茬垎娌欑绔欑偣 鍑哄簱 鍒� 108绔欑偣 + */ + public void stnToStn(CrnSlave slave, CrnProtocol crnProtocol){ + for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) { + if(crnStn.getStaNo()!=109){ continue; } + + boolean flag = false; + // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅 + 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) { + log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); + continue; + } + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable() + && staDetl.getCanining()!=null && staDetl.getCanining().equals("Y")) { + flag = true; + } + + StaProtocol staProtocol1 = devpThread.getStation().get(108); + if (staProtocol1 == null) { + continue; + } else { + staProtocol1 = staProtocol1.clone(); + } + if (!staProtocol1.isAutoing() || staProtocol1.isLoading() || staProtocol1.getWorkNo() != 0 || !staProtocol1.isOutEnable()) { + flag = false; + } + + if (!flag) { + continue; + } + + // 鍫嗗灈鏈烘帶鍒惰繃婊� + if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { + continue; + } + + // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� + if (wrkMastMapper.selectWorking(slave.getId()) != null) { + continue; + } + + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + CrnCommand crnCommand = new CrnCommand(); + crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� + crnCommand.setTaskNo((short)9999); // 宸ヤ綔鍙� + crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 + crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪 + crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰 + crnCommand.setDestinationPosX((short)2); // 鐩爣搴撲綅鎺� + crnCommand.setDestinationPosY((short)19); // 鐩爣搴撲綅鍒� + crnCommand.setDestinationPosZ((short)1); // 鐩爣搴撲綅灞� + if (!MessageQueue.offer(SlaveType.Crn, 1, new Task(2, crnCommand))) { + log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", 1, JSON.toJSON(crnCommand)); + } else { + } + } + } + + /** * 鏍规嵁PLC鎸夐挳娴嬭瘯淇″彿锛屽彂閫佸惎鍔ㄧ敵璇峰埌娴嬭瘯绯荤粺 */ + @Transactional public void startTest() { try { // 鏍规嵁杈撻�佺嚎plc閬嶅巻 for (DevpSlave devp : slaveProperties.getDevp()) { SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); if(null != devpThread){ - if (devpThread.startSignal1 == 1){ - TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>() - .eq("channel",1).eq("status",0)); - if(null != testMast){ - Date now = new Date(); - //http璇锋眰娴嬭瘯 - TestDto testDto = new TestDto(); - testDto.setLocNo(testMast.getLocNo()); - testDto.setBarcode(testMast.getBarcode()); - testDto.setUserId(testMast.getUserId()); - testDto.setRequestTime(DateUtils.convert(now)); - String response = new HttpHandler.Builder() - .setUri(testUrl) - .setPath("/testUrlPath") - .setJson(JSON.toJSONString(testDto)) - .build() - .doPost(); - JSONObject jsonObject = JSON.parseObject(response); - if (jsonObject.getInteger("code").equals(200)) { - //鏇存柊娴嬭瘯琛ㄧ姸鎬� - testMast.setStatus(1); - testMast.setModiTime(now); - testMastService.update(testMast,new EntityWrapper<TestMast>() - .eq("channel",1).eq("status",0)); - //澶嶄綅PLC淇″彿 - boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, 0)); - } else { - log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿},request锛歿},response锛歿}", testUrl+"/rpc/pakin/loc/v1", JSON.toJSONString(testDto), response); - } - + int channel = 0; + for (int i = 0; i < 4; i++){ + switch (i){ + case 0: + channel = devpThread.startSignal1; + break; + case 1: + channel = devpThread.startSignal2; + break; + case 2: + channel = devpThread.startSignal3; + break; + case 3: + channel = devpThread.startSignal4; + break; } + if (channel == 1){ + TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>() + .eq("channel",(i+1)).eq("status",0)); + if(null != testMast){ + Date now = new Date(); + //http璇锋眰娴嬭瘯 + TestDto testDto = new TestDto(); + testDto.setLocNo(testMast.getLocNo()); + testDto.setBarcode(testMast.getBarcode()); + testDto.setUserId(testMast.getUserId()); + testDto.setRequestTime(DateUtils.convert(now)); + String response = new HttpHandler.Builder() + .setUri(testUrl) + .setPath("/testUrlPath") + .setJson(JSON.toJSONString(testDto)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + if (jsonObject.getInteger("code").equals(200)) { + //鏇存柊娴嬭瘯琛ㄧ姸鎬� + testMast.setStatus(1); + testMast.setModiTime(now); + if(!testMastService.update(testMast,new EntityWrapper<TestMast>() + .eq("channel",1).eq("status",0))){ + throw new CoolException("鏇存柊浜у搧娴嬭瘯鐘舵�佸け璐�"); + } +// //鏇存柊搴撲綅鐘舵�侊紝閿佸畾pack鐘舵�侊紝绂佹鍏ュ嚭搴撲綔涓� +// LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",testMast.getLocNo())); +// if(null != locMast){ +// locMast.setPackStatus(2);//娴嬭瘯涓� +// locMast.setModiTime(now); +// if(!locMastService.update(locMast,new EntityWrapper<LocMast>().eq("loc_no",testMast.getLocNo()))){ +// throw new CoolException("浜у搧寮�濮嬫祴璇曪紝鏇存柊鐩爣搴撲綅閿佸畾鐘舵�佸け璐�"); +// } +// } + //澶嶄綅PLC淇″彿 + boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, i*2)); + } else { + log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿},request锛歿},response锛歿}", testUrl+"/rpc/pakin/loc/v1", JSON.toJSONString(testDto), response); + } + + } + } + } + } } } catch (Exception e) { + log.error("鍚姩娴嬭瘯 ===>> 鍚姩娴嬭瘯澶辫触", e); e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } } -- Gitblit v1.9.1