From e89d0cdf971ecb56d4d323f17afff2e3e139a58d Mon Sep 17 00:00:00 2001 From: L <L@132> Date: 星期二, 15 七月 2025 13:00:00 +0800 Subject: [PATCH] * --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 224 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 191 insertions(+), 33 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 fdcb0d3..6f9f172 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -137,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; } // 閫�鍥� @@ -180,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)); @@ -644,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()) { @@ -751,7 +779,7 @@ // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� - crnCommand.setCrnNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撶紪鍙� + crnCommand.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撶紪鍙� crnCommand.setTaskNo((short)999); // 宸ヤ綔鍙� crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡: 搴撲綅绉昏浆 @@ -804,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()) { @@ -910,6 +941,41 @@ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� if (taskWrkMapper.selectCrnWorking(crnProtocol.getLaneNo()) != null) { + TaskWrk taskWrkNow3 = taskWrkMapper.selectCrnWorking(crnProtocol.getLaneNo()); + if (taskWrkNow3.getWrkSts() == 3){ + try{ + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + CrnCommand crnCommand = new CrnCommand(); + crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� + crnCommand.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撶紪鍙� + crnCommand.setTaskNo(taskWrkNow3.getWrkNo().shortValue()); // 宸ヤ綔鍙� + 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(Utils.getRowShort(taskWrkNow3.getTargetPoint())); // 鐩爣搴撲綅鍒� + int bay1 = Utils.getBayShort(taskWrkNow3.getTargetPoint()) + 1; + crnCommand.setDestinationPosY((short)bay1); // 鐩爣搴撲綅灞� + crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrkNow3.getTargetPoint())); // 鐩爣搴撲綅鎺� +// crnCommand.setCommand((short) 1); + try{ + DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); + deviceErrorService.addDeviceError("CrnErr", slave.getId(), "宸烽亾鍙�"+crnCommand.getLaneNo()+";鍫嗗灈鏈哄懡浠ゅ湴鍧�琛ヤ竵閲嶆柊鍐欏叆:"+JSON.toJSONString(crnCommand.getNowTask())); + } catch (Exception e2){ + } + if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) { + log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); + devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); + CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "杩愯鍛戒护涓嬪彂澶辫触"); + + throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); + } + } catch (Exception eNow3){ + + } + } + devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄瓨鍦ㄥ悐杞︿换鍔�"); CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄瓨鍦ㄦ墽琛屼腑鍚婅溅浠诲姟"); continue; @@ -960,7 +1026,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); // 浠诲姟妯″紡: 搴撲綅绉昏浆 @@ -1066,11 +1132,11 @@ } // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵�� - if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) { +// if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) { // // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵�� -// if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") -// && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { + if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") + && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- // 鍫嗗灈鏈烘帶鍒惰繃婊� @@ -1087,6 +1153,39 @@ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� if (taskWrkMapper.selectCrnWorking(crnProtocol.getLaneNo()) != null) { + + TaskWrk taskWrkNow3 = taskWrkMapper.selectCrnWorking(crnProtocol.getLaneNo()); + if (taskWrkNow3.getWrkSts() == 12){ + try{ + CrnCommand command = new CrnCommand(); + command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� + command.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈虹紪鍙� + command.setTaskNo(taskWrkNow3.getWrkNo().shortValue()); // 宸ヤ綔鍙� + command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡 + command.setSourcePosX(Utils.getRowShort(taskWrkNow3.getStartPoint())); // 婧愬簱浣嶆帓 + int bayS = Utils.getBayShort(taskWrkNow3.getStartPoint()) + 1; + command.setSourcePosY((short)bayS); // 婧愬簱浣嶅垪 + command.setSourcePosZ(Utils.getLevShort(taskWrkNow3.getStartPoint())); // 婧愬簱浣嶅眰 + command.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺� + command.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒� + command.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞� +// command.setCommand((short) 1); + try{ + DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); + deviceErrorService.addDeviceError("CrnErr", slave.getId(), "宸烽亾鍙�"+command.getLaneNo()+";鍫嗗灈鏈哄懡浠ゅ湴鍧�琛ヤ竵閲嶆柊鍐欏叆:"+JSON.toJSONString(command.getNowTask())); + } catch (Exception e2){ + } + if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command))) { + log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屽贩閬�={}锛屼换鍔℃暟鎹�={}", slave.getId(), taskWrk.getCrnNo(), JSON.toJSON(command)); + devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); + CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "杩愯鍛戒护涓嬪彂澶辫触"); + throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); + } + } catch (Exception eNow3){ + + } + } devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄瓨鍦ㄥ悐杞︿换鍔�"); CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄瓨鍦ㄦ墽琛屼腑鍚婅溅浠诲姟"); break; @@ -1171,6 +1270,9 @@ } if (staProtocol.isOutEnable()){ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "娌℃湁鍙嚭"); + } + if (staProtocol.isLoading()){ + CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍑哄簱绔欐湁鐗�"); } } else { CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍑哄簱绔欑偣锛氶潪鑷姩"); @@ -1305,6 +1407,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()) { @@ -1324,11 +1429,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);//鍏ュ簱瀹屾垚 @@ -1499,8 +1607,8 @@ null, // 缁撴潫鏃堕棿 null, // 宸ヤ綔鐘舵�� null, // 鍏ュ嚭搴撶被鍨� - crn.getId(), // 鍫嗗灈鏈� - null, // plc + crnProtocol.getLaneNo(), // 鍫嗗灈鏈� + crn.getId(), // plc null, // 鐩爣搴撲綅 null, // 鐩爣绔� null, // 婧愮珯 @@ -1847,6 +1955,11 @@ return null; } // 鍒ゆ柇鏄惁婊¤冻鍙栬揣鏉′欢 + if (!staProtocol.isPakMkTask()) { + devpThread.setErrorDev(staProtocol.getSiteId(), "浠诲姟宸蹭笅鍙戠瓑寰呭皬杞﹀彇"); + return null; + } + // 鍒ゆ柇鏄惁婊¤冻鍙栬揣鏉′欢 if (staProtocol.isAutoing() // && staProtocol.isLoading() // && staProtocol.isStaOk() @@ -1855,8 +1968,20 @@ 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; } // 灏哄妫�娴嬪紓甯� @@ -1867,31 +1992,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; } // 閫�鍥� @@ -1907,6 +2056,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{ @@ -2373,6 +2524,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(); @@ -2395,6 +2547,12 @@ 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)); -- Gitblit v1.9.1