From a77530a0e917f8d2dca1bae55a3730471c8e10a2 Mon Sep 17 00:00:00 2001 From: cpT <1@123> Date: 星期三, 02 七月 2025 09:22:32 +0800 Subject: [PATCH] #改造 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 422 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 379 insertions(+), 43 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 91fe3ea..c58511a 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; +import com.core.common.SpringUtils; import com.core.exception.CoolException; import com.zy.asrs.controller.CrnController; import com.zy.asrs.domain.enums.TaskStatusType; @@ -104,6 +105,9 @@ private Long avoidDistance; @Autowired private TaskWrkLogServiceImpl taskWrkLogService; + @Autowired + private BasPlcerrorLogServiceImpl basPlcerrorLogService; + public Long currentTimeMilliConnectCrnAuto= 0L; public void generateStoreWrkFile() { try { @@ -133,31 +137,55 @@ back = true; } if (staProtocol.isFrontErr()) { - errMsg = "鍓嶈秴闄�"; + if (!back){ + errMsg = "鍓嶈秴闄�"; + } else { + errMsg = errMsg+"---"+"鍓嶈秴闄�"; + } back = true; } - if (!back && staProtocol.isBackErr()) { - errMsg = "鍚庤秴闄�"; + if (staProtocol.isBackErr()) { + if (!back){ + errMsg = "鍚庤秴闄�"; + } else { + errMsg = errMsg+"---"+"鍚庤秴闄�"; + } back = true; } - if (!back && staProtocol.isHighErr()) { - errMsg = "楂樿秴闄�"; + if (staProtocol.isHighErr()) { + if (!back){ + errMsg = "楂樿秴闄�"; + } else { + errMsg = errMsg+"---"+"楂樿秴闄�"; + } back = true; } - if (!back && staProtocol.isLeftErr()) { - errMsg = "宸﹁秴闄�"; + if (staProtocol.isLeftErr()) { + if (!back){ + errMsg = "宸﹁秴闄�"; + } else { + errMsg = errMsg+"---"+"宸﹁秴闄�"; + } back = true; } - if (!back && staProtocol.isRightErr()) { - errMsg = "鍙宠秴闄�"; + if (staProtocol.isRightErr()) { + if (!back){ + errMsg = "鍙宠秴闄�"; + } else { + errMsg = errMsg+"---"+"鍙宠秴闄�"; + } back = true; } // if (!back && staProtocol.isWeightErr()) { // errMsg = "瓒呴噸"; // back = true; // } - if (!back && staProtocol.isBarcodeErr()) { - errMsg = "鎵爜澶辫触"; + if (staProtocol.isBarcodeErr()) { + if (!back){ + errMsg = "鎵爜澶辫触"; + } else { + errMsg = errMsg+"---"+"鎵爜澶辫触"; + } back = true; } // 閫�鍥� @@ -176,6 +204,7 @@ staProtocol.setWorkNo(9999); staProtocol.setStaNo(inSta.getBackSta()); devpThread.setPakMk(staProtocol.getSiteId(), false); + devpThread.setPakMkRun(staProtocol.getSiteId(), false); devpThread.setErrorDev(staProtocol.getSiteId(), errMsg); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo)); @@ -225,7 +254,7 @@ TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode)); if (!Cools.isEmpty(taskWrk1)) { log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�"); - if (taskWrk1.getIoType() == 1 && taskWrk1.getStatus() < 3 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) { + if (taskWrk1.getIoType() == 1 && taskWrk1.getStatus() < 3 && (taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString()) || taskWrk1.getStartPoint().equals(String.valueOf((staProtocol.getSiteId()+1))))) { StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() .eq("CRN_NO", taskWrk1.getCrnNo()).eq("TYPE_NO", 1).eq("STN_NO", staProtocol.getSiteId())); @@ -640,6 +669,9 @@ } CrnSlave crnSlave = new CrnSlave(crn); + if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){ + continue; + } if (!crn.getId().equals(crnProtocol.getLaneNo())) { for (CrnSlave crnOther : slaveProperties.getCrn()) { @@ -719,26 +751,61 @@ log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId()); continue; } - - if (crnProtocol.getLaneNo()!=0 && (crnProtocol.getBay()!=1 || crnProtocol.getLevel()!=1)){ - if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.statusType == CrnStatusType.IDLE && crnProtocol.getTaskNo() != 0) { + if (System.currentTimeMillis()-currentTimeMilliConnectCrnAuto<1000*60*10){ + continue; + } + if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.statusType == CrnStatusType.IDLE && crnProtocol.getLoaded().equals((short)0) && crnProtocol.getLaneNo()!=0 && crnProtocol.getTaskNo() == 0 ) { + if (crnProtocol.getBay()!=1 || crnProtocol.getLevel()!=1){ //鑾峰彇宸ヤ綔妗� List<TaskWrk> taskWrks = taskWrkMapper.selectByLaneNo(crnProtocol.getLaneNo()); if (!taskWrks.isEmpty()) { continue; } List<TaskWrkLog> taskWrkLogs = taskWrkLogService.selectList(new EntityWrapper<TaskWrkLog>().eq("CRN_NO",crnProtocol.getLaneNo()).orderBy("COMPLETE_TIME",true)); - if (taskWrkLogs.isEmpty()) { - CrnCommand command = new CrnCommand(); - if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(4, command))) { - log.error("鍫嗗灈鏈鸿嚜鍔ㄥ洖婧愮偣澶辫触锛屽爢鍨涙満鍙�={}", crnProtocol.getCrnNo()); + if (!taskWrkLogs.isEmpty()) { + TaskWrkLog taskWrkLog = taskWrkLogs.get(0); + Date completeTime = taskWrkLog.getCompleteTime(); + if (completeTime==null){ + completeTime = taskWrkLog.getCancelTime(); + if (completeTime==null){ + completeTime = taskWrkLog.getModiTime(); + } + } + long differenceInSeconds = TimeCalculatorUtils.differenceInMilliseconds(completeTime, new Date()); + if (differenceInSeconds <= 60*10*1000) { + return; } } -// long differenceInSeconds = TimeCalculatorUtils.differenceInMilliseconds(taskWrkLogs.get(0).getCompleteTime(), new Date()); -// if (differenceInSeconds <= 1000) { -// return; -// } + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + CrnCommand crnCommand = new CrnCommand(); + crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� + crnCommand.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撶紪鍙� + crnCommand.setTaskNo((short)999); // 宸ヤ綔鍙� + crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡: 搴撲綅绉昏浆 + crnCommand.setSourcePosX((short) 0); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 + crnCommand.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰 + int row = crnProtocol.getLaneNo() * 2; + crnCommand.setDestinationPosX((short) row); // 鐩爣搴撲綅鎺� + crnCommand.setDestinationPosY((short) 1); // 鐩爣搴撲綅灞� + crnCommand.setDestinationPosZ((short) 1); // 鐩爣搴撲綅鍒� + if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) { + log.error("鍫嗗灈鏈鸿嚜鍔ㄥ洖婧愮偣澶辫触锛屽爢鍨涙満鍙�={}", crnProtocol.getCrnNo()); + if (System.currentTimeMillis()-currentTimeMilliConnectCrnAuto>1000*60*10){ + try{ + DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); + deviceErrorService.addDeviceError("CrnErr", crnProtocol.getCrnNo(), "鍫嗗灈鏈鸿嚜鍔ㄥ洖婧愮偣澶辫触"); + } catch (Exception e2){ + } + if (currentTimeMilliConnectCrnAuto == 0){ + currentTimeMilliConnectCrnAuto = System.currentTimeMillis()-1000*60*10-1; + } else { + currentTimeMilliConnectCrnAuto = System.currentTimeMillis(); + } + } + } } } } catch (Exception e){ @@ -765,6 +832,9 @@ } CrnSlave crn = new CrnSlave(crnSlave); + if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){ + continue; + } if (!crnSlave.getId().equals(crnProtocol.getLaneNo())) { for (CrnSlave crnOther : slaveProperties.getCrn()) { @@ -921,7 +991,7 @@ // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� - crnCommand.setCrnNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撶紪鍙� + crnCommand.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撶紪鍙� crnCommand.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙� crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 @@ -1266,6 +1336,9 @@ } CrnSlave crn = new CrnSlave(crnSlave); + if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){ + continue; + } if (!crnSlave.getId().equals(crnProtocol.getLaneNo())) { for (CrnSlave crnOther : slaveProperties.getCrn()) { @@ -1285,11 +1358,14 @@ } // Thread.sleep(300); //纭瀹屾垚淇″彿 - CrnOperatorParam crnOperatorParam = new CrnOperatorParam(); - crnOperatorParam.setCrnNo(crn.getId()); +// CrnOperatorParam crnOperatorParam = new CrnOperatorParam(); +// crnOperatorParam.setCrnNo(crn.getId()); Date now = new Date(); - crnController.crnTaskComplete(crnOperatorParam); +// crnController.crnTaskComplete(crnOperatorParam); +// MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(2, command)) + crnThread.setResetFlag(true); + if (!Cools.isEmpty(taskWrk)) { if (taskWrk.getIoType() == 1 && taskWrk.getWrkSts() == 3) { taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚 @@ -1413,8 +1489,8 @@ null, // 缁撴潫鏃堕棿 taskWrk.getWrkSts().longValue(), // 宸ヤ綔鐘舵�� taskWrk.getIoType(), // 鍏ュ嚭搴撶被鍨� - crn.getId(), // 鍫嗗灈鏈� - null, // plc + taskWrk.getCrnNo(), // 宸烽亾鍙� + crn.getId(), // 鍫嗗灈鏈哄彿 taskWrk.getTargetPoint(), // 鐩爣搴撲綅 0, // 鐩爣绔� 0, // 婧愮珯 @@ -1460,8 +1536,8 @@ null, // 缁撴潫鏃堕棿 null, // 宸ヤ綔鐘舵�� null, // 鍏ュ嚭搴撶被鍨� - crn.getId(), // 鍫嗗灈鏈� - null, // plc + crnProtocol.getLaneNo(), // 鍫嗗灈鏈� + crn.getId(), // plc null, // 鐩爣搴撲綅 null, // 鐩爣绔� null, // 婧愮珯 @@ -1496,6 +1572,132 @@ } } catch (Exception e){ log.error("鍫嗗灈鏈哄紓甯镐俊鎭褰曞け璐� ===>> [id:{}] [error:{}]", crn.getId(), e.getMessage()); + } + } + } + + /** + * 鍫嗗灈鏈哄紓甯镐俊鎭褰� + */ + public void recDevErr() { + Date now = new Date(); + for (DevpSlave devpSlave : slaveProperties.getDevp()) { + try{ + // 鑾峰彇鍫嗗灈鏈轰俊鎭� + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devpSlave.getId()); + Map<Integer, StaProtocol> station = devpThread.getStation(); + for (StaProtocol staProtocol : station.values()){ + try{ + if (staProtocol == null) { + continue; + } +// if (staProtocol.isAutoing()) { +// // 鏈変换鍔� +// if (staProtocol.getWorkNo() != 0) { +//// BasErrLog latest = basPlcerrorLogService.se(crn.getId(), crnProtocol.getTaskNo().intValue()); +// // 鏈夊紓甯� +// if (latest == null) { +// if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) { +// TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(crnProtocol.getTaskNo())); +// if (taskWrk == null) { +// continue; +// } +// BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm().intValue()); +// String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName(); +// BasErrLog basErrLog = new BasErrLog( +// null, // 缂栧彿 +// taskWrk.getWrkNo(), // 宸ヤ綔鍙� +// now, // 鍙戠敓鏃堕棿 +// null, // 缁撴潫鏃堕棿 +// taskWrk.getWrkSts().longValue(), // 宸ヤ綔鐘舵�� +// taskWrk.getIoType(), // 鍏ュ嚭搴撶被鍨� +// crn.getId(), // 鍫嗗灈鏈� +// null, // plc +// taskWrk.getTargetPoint(), // 鐩爣搴撲綅 +// 0, // 鐩爣绔� +// 0, // 婧愮珯 +// taskWrk.getStartPoint(), // 婧愬簱浣� +// taskWrk.getBarcode(), // 鏉$爜 +// (int) crnProtocol.getAlarm(), // 寮傚父鐮� +// errName, // 寮傚父 +// 1, // 寮傚父鎯呭喌 +// taskWrk.getCreateTime(), // 浠诲姟鏃堕棿(鎺ユ敹鏃堕棿) +// null, // 娣诲姞浜哄憳 +// now, // 淇敼鏃堕棿 +// null, // 淇敼浜哄憳 +// "浠诲姟涓紓甯�" // 澶囨敞 +// ); +// if (!basErrLogService.insert(basErrLog)) { +// log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName); +// } +// } +// } else { +// // 寮傚父淇 +// if (crnProtocol.getAlarm() == null || crnProtocol.getAlarm() == 0) { +// latest.setEndTime(now); +// latest.setUpdateTime(now); +// latest.setStatus(2); +// if (!basErrLogService.updateById(latest)) { +// log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId()); +// } +// } +// } +// // 鏃犱换鍔� +// } else { +// BasErrLog latest = basErrLogService.findLatest(crn.getId()); +// // 鏈夊紓甯� +// if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) { +// // 璁板綍鏂板紓甯� +// if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) { +// BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); +// String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName(); +// BasErrLog basErrLog = new BasErrLog( +// null, // 缂栧彿 +// null, // 宸ヤ綔鍙� +// now, // 鍙戠敓鏃堕棿 +// null, // 缁撴潫鏃堕棿 +// null, // 宸ヤ綔鐘舵�� +// null, // 鍏ュ嚭搴撶被鍨� +// crn.getId(), // 鍫嗗灈鏈� +// null, // plc +// null, // 鐩爣搴撲綅 +// null, // 鐩爣绔� +// null, // 婧愮珯 +// null, // 婧愬簱浣� +// null, // 鏉$爜 +// (int) crnProtocol.getAlarm(), // 寮傚父鐮� +// errName, // 寮傚父 +// 1, // 寮傚父鎯呭喌 +// now, // 娣诲姞鏃堕棿 +// null, // 娣诲姞浜哄憳 +// now, // 淇敼鏃堕棿 +// null, // 淇敼浜哄憳 +// "鏃犱换鍔″紓甯�" // 澶囨敞 +// ); +// if (!basErrLogService.insert(basErrLog)) { +// log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName); +// } +// } +// // 鏃犲紓甯� +// } else { +// // 寮傚父淇 +// if (latest != null && latest.getStatus() == 1) { +// latest.setEndTime(now); +// latest.setUpdateTime(now); +// latest.setStatus(2); +// if (!basErrLogService.updateById(latest)) { +// log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId()); +// } +// } +// } +// } +// } + } catch (Exception devErr){ + log.error("杈撻�佺嚎绔欑偣寮傚父淇℃伅璁板綍澶辫触 ===>> [id:{}] [error:{}]", staProtocol.getStaNo(), devErr.getMessage()); + } + } + } catch (Exception e){ + log.error("杈撻�佺嚎寮傚父淇℃伅璁板綍澶辫触 ===>> [id:{}] [error:{}]", devpSlave.getId(), e.getMessage()); } } } @@ -1682,6 +1884,11 @@ return null; } // 鍒ゆ柇鏄惁婊¤冻鍙栬揣鏉′欢 + if (!staProtocol.isPakMkTask()) { + devpThread.setErrorDev(staProtocol.getSiteId(), "浠诲姟宸蹭笅鍙戠瓑寰呭皬杞﹀彇"); + return null; + } + // 鍒ゆ柇鏄惁婊¤冻鍙栬揣鏉′欢 if (staProtocol.isAutoing() // && staProtocol.isLoading() // && staProtocol.isStaOk() @@ -1690,7 +1897,22 @@ if (taskWrk != null) { Integer stano = staProtocol.getStaNo(); if (staProtocol.getSiteId() == 1004 || staProtocol.getSiteId()==1020){ - + if (!staProtocol.isPakMkRun()) { + devpThread.setErrorDev(staProtocol.getSiteId(), "寮傚父鍥為��鏍囪锛岄渶瑕佸洖閫�"); + return null; + } + if (!staProtocol.isLoading()) { + devpThread.setErrorDev(staProtocol.getSiteId(), "鏃犵墿"); + return null; + } + if (!staProtocol.isInEnable()) { + devpThread.setErrorDev(staProtocol.getSiteId(), "绛夊緟鍙叆淇″彿"); + return null; + } + if (!staProtocol.isStaOk()) { + devpThread.setErrorDev(staProtocol.getSiteId(), "绛夊緟閾炬潯灏辩华"); + return null; + } // 灏哄妫�娴嬪紓甯� boolean back = false; String errMsg = "-"; @@ -1699,31 +1921,55 @@ back = true; } if (staProtocol.isFrontErr()) { - errMsg = "鍓嶈秴闄�"; + if (!back){ + errMsg = "鍓嶈秴闄�"; + } else { + errMsg = errMsg+"---"+"鍓嶈秴闄�"; + } back = true; } - if (!back && staProtocol.isBackErr()) { - errMsg = "鍚庤秴闄�"; + if (staProtocol.isBackErr()) { + if (!back){ + errMsg = "鍚庤秴闄�"; + } else { + errMsg = errMsg+"---"+"鍚庤秴闄�"; + } back = true; } - if (!back && staProtocol.isHighErr()) { - errMsg = "楂樿秴闄�"; + if (staProtocol.isHighErr()) { + if (!back){ + errMsg = "楂樿秴闄�"; + } else { + errMsg = errMsg+"---"+"楂樿秴闄�"; + } back = true; } - if (!back && staProtocol.isLeftErr()) { - errMsg = "宸﹁秴闄�"; + if (staProtocol.isLeftErr()) { + if (!back){ + errMsg = "宸﹁秴闄�"; + } else { + errMsg = errMsg+"---"+"宸﹁秴闄�"; + } back = true; } - if (!back && staProtocol.isRightErr()) { - errMsg = "鍙宠秴闄�"; + if (staProtocol.isRightErr()) { + if (!back){ + errMsg = "鍙宠秴闄�"; + } else { + errMsg = errMsg+"---"+"鍙宠秴闄�"; + } back = true; } // if (!back && staProtocol.isWeightErr()) { // errMsg = "瓒呴噸"; // back = true; // } - if (!back && staProtocol.isBarcodeErr()) { - errMsg = "鎵爜澶辫触"; + if (staProtocol.isBarcodeErr()) { + if (!back){ + errMsg = "鎵爜澶辫触"; + } else { + errMsg = errMsg+"---"+"鎵爜澶辫触"; + } back = true; } // 閫�鍥� @@ -1739,6 +1985,8 @@ staProtocol.setWorkNo(9999); staProtocol.setStaNo(staProtocol.getStaNo()+1); devpThread.setPakMk(staProtocol.getSiteId(), false); + devpThread.setPakMkRun(staProtocol.getSiteId(), false); + devpThread.setPakMkTask(staProtocol.getSiteId(), false); devpThread.setErrorDev(staProtocol.getSiteId(), errMsg); MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); try{ @@ -1750,6 +1998,7 @@ } return null; } + return null; } return taskWrk; } @@ -1770,6 +2019,52 @@ } } return null; + } + public boolean deviceDetection(RgvSlave.RgvStn inSta,Integer rgvNo) { + ArrayList<Integer> arrayList = new ArrayList<Integer>() {{ + add(1009); + add(1011); + add(1012); + add(1014); + add(1016); + }}; + try{ + + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, inSta.getDevpPlcId()); + ArrayList<Integer> listW = new ArrayList<Integer>(); + ArrayList<Integer> listL = new ArrayList<Integer>(); + for (Integer staNo : arrayList){ + StaProtocol staProtocol = devpThread.getStation().get(staNo); + if (staProtocol == null) { + RgvErrCache.updateRgvErr(rgvNo,staNo+"绔欑偣鏁版嵁涓㈠け"); + return false; + } + // 鍒ゆ柇鏄惁婊¤冻鍙栬揣鏉′欢 + if (staProtocol.getWorkNo() != 0) { + if (!listW.contains(staProtocol.getWorkNo())) { + listW.add(staProtocol.getWorkNo()); + } + } + // 鍒ゆ柇鏄惁婊¤冻鍙栬揣鏉′欢 + if (staProtocol.isLoading()) { + if (!listL.contains(staProtocol.getStaNo())) { + listL.add(staProtocol.getStaNo()); + } + } + } + if (listW.size()>=3){ + RgvErrCache.updateRgvErr(rgvNo,"绛夊緟1012鎷i�夛紝闃叉鍫靛"); + return false; + } + if (listL.size()>=3){ + RgvErrCache.updateRgvErr(rgvNo,"绛夊緟1012鎷i�夛紝闃叉鍫靛"); + return false; + } + } catch (Exception e){ + RgvErrCache.updateRgvErr(rgvNo,"1012妫�娴嬪紓甯革細"+e.getMessage()); + return false; + } + return true; } public boolean rgvOtherStatusEnable(RgvSlave slave) { @@ -1794,6 +2089,11 @@ boolean itSmall = new TrackRangeUtils().IsItSmall(rgvSlave); if (basDevpPositions.isEmpty()) { log.error("鑾峰彇鎵�鏈夌珯鐐逛俊鎭紓甯�"); + try{ + DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); + deviceErrorService.addDeviceError("rgvErr", rgvSlave.getId(), "鎸囦护鐢熸垚锛氳幏鍙栨墍鏈夌珯鐐逛俊鎭紓甯�"); + } catch (Exception e2){ + } continue; } List<TaskWrk> taskWrkList = new ArrayList<>(); @@ -1833,6 +2133,7 @@ if (rgvOtherIDLEOther(rgvSlave)){ if (!rgvOtherIDLE(rgvSlave,staList.get(0))){ System.out.println("绌洪棽灏辫繎璺宠繃==="+rgvSlave.getId()+"==="); + RgvErrCache.updateRgvErr(rgvSlave.getId(),staList.get(0)+"绌洪棽灏辫繎璺宠繃"); sign=true; } @@ -1913,6 +2214,8 @@ if (rgvOtherIDLEOther2(rgvSlave)){ if (!rgvOtherIDLE2(rgvSlave,staList.get(0))){ System.out.println("杩愯灏辫繎璺宠繃==="+rgvSlave.getId()+"==="); + RgvErrCache.updateRgvErr(rgvSlave.getId(),staList.get(0)+"杩愯灏辫繎璺宠繃"); + sign=true; } } @@ -2075,6 +2378,8 @@ } } + RgvErrCache.updateRgvErr(rgvSlave.getId(),"鏈煡璇㈠埌鍙墽琛屼换鍔�"); + } else { //鍙敤鍖哄煙灏辫繎鍙栬揣 //灏辫繎鎺掑簭 @@ -2105,6 +2410,11 @@ } } catch (Exception e) { log.error("浠诲姟鐢熸垚澶辫触===銆嬪紓甯镐俊鎭細{}", e.getMessage()); + try{ + DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); + deviceErrorService.addDeviceError("rgvErr", rgvSlave.getId(), "鎸囦护鐢熸垚澶辫触"); + } catch (Exception e2){ + } } } } @@ -2144,6 +2454,7 @@ try { RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache(); + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId()); TaskProtocol issuedTake = new TaskProtocol(); TaskProtocol issuedPut = new TaskProtocol(); @@ -2161,6 +2472,17 @@ if (targetPointConvert == null) { return false; } + if (targetPointConvert == 1009){ + if (!deviceDetection(rgvStn, rgvSlave.getId())){ + return false; + } + } + try{ + devpThread.setPakMkTask(rgvStn.getStaNo(), false); + } catch (Exception e2){ + RgvErrCache.updateRgvErr(rgvSlave.getId(),rgvStn.getStaNo()+"灏忚溅浠诲姟涓嬪彂鏍囪鏇存柊澶辫触"); + } + BasDevpPosition basDevpPositionSou = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStn.getStaNo())); BasDevpPosition basDevpPositionEnd = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", targetPointConvert)); @@ -2197,6 +2519,13 @@ } } catch (Exception e) { log.error("浠诲姟鐢熸垚澶辫触issued1===銆嬪紓甯镐俊鎭細{}", e.getMessage()); + RgvErrCache.updateRgvErr(rgvSlave.getId(),rgvStn.getStaNo()+"绔欑偣浠诲姟鐢熸垚澶辫触issued1"); + + try{ + DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); + deviceErrorService.addDeviceError("rgvErr", rgvSlave.getId(), "浠诲姟鐢熸垚澶辫触issued1"); + } catch (Exception e2){ + } return false; } @@ -2214,6 +2543,13 @@ } } catch (Exception e) { log.error("浠诲姟鐢熸垚澶辫触issued2===銆嬪紓甯镐俊鎭細{}", e.getMessage()); + RgvErrCache.updateRgvErr(rgvSlave.getId(),rgvStn.getStaNo()+"绔欑偣浠诲姟鐢熸垚澶辫触issued2"); + + try{ + DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); + deviceErrorService.addDeviceError("rgvErr", rgvSlave.getId(), "绔欑偣浠诲姟鐢熸垚澶辫触issued2"); + } catch (Exception e2){ + } } return true; } -- Gitblit v1.9.1