From dcdfc93b50febf61301832d91dfcddcfa1ca5403 Mon Sep 17 00:00:00 2001 From: 1 <1@123> Date: 星期三, 14 五月 2025 14:06:36 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 248 +++++++++++++++++++++++++++++++++++++------------ 1 files changed, 187 insertions(+), 61 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 fa6d1e3..df46146 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -12,10 +12,7 @@ import com.zy.asrs.entity.*; import com.zy.asrs.mapper.*; import com.zy.asrs.service.*; -import com.zy.asrs.utils.CommandUtils; -import com.zy.asrs.utils.RouteUtils; -import com.zy.asrs.utils.TrackRangeUtils; -import com.zy.asrs.utils.Utils; +import com.zy.asrs.utils.*; import com.zy.common.model.MatDto; import com.zy.common.service.CommonService; import com.zy.common.utils.CollectionUtils; @@ -41,6 +38,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.io.IOException; +import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; @@ -465,7 +463,8 @@ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (staProtocol.isAutoing() && staProtocol.isLoading() - && staProtocol.isInEnable() && (workNo == 0 || (workNo>9000 && workNo<10000)) +// && staProtocol.isInEnable() +// && (workNo == 0 || (workNo>9000 && workNo<10000)) && staProtocol.isPakMkWalk() ) { if (inSta.isBarcodeSign()){ @@ -510,6 +509,7 @@ } else { staProtocol.setWorkNo(taskWrk1.getWrkNo()); staProtocol.setStaNo(staDesc.getCrnStn()); + devpThread.setPakMkWalk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); } } @@ -528,8 +528,21 @@ return; } else { staProtocol.setWorkNo(taskWrk1.getWrkNo()); - staProtocol.setStaNo(staDesc.getCrnStn()); + staProtocol.setStaNo(BarcodeUtils.getStaNo(staProtocol.getSiteId())); + devpThread.setPakMkWalk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + + Date now = new Date(); +// taskWrk1.setStatus(TaskStatusType.DISTRIBUTE.id);//娲惧彂鐘舵�� +// taskWrk.setAssignTime(now);//娲惧彂鏃堕棿 + taskWrk1.setExecuteTime(now); + taskWrk1.setWrkSts(2);//宸ヤ綔鐘舵�� 3.鍚婅溅鍏ュ簱 + taskWrk1.setCrnNo(staDesc.getCrnNo());//鍫嗗灈鏈哄彿 + taskWrk1.setModiTime(now); + taskWrk1.setModiUser(9988L); + taskWrkService.updateById(taskWrk1); + + } } return; @@ -550,20 +563,23 @@ * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯 */ public void crnStnToOutStn() { - for (CrnSlave crnSlave : slaveProperties.getCrn()) { + for (CrnSlave crn : slaveProperties.getCrn()) { // 鑾峰彇鍫嗗灈鏈轰俊鎭� - CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId()); + CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); CrnProtocol crnProtocol = crnThread.getCrnProtocol(); if (crnProtocol == null) { continue; } - BasCrnp basCrnp = basCrnpService.selectById(crnSlave.getId()); + BasCrnp basCrnp = basCrnpService.selectById(crn.getId()); if (basCrnp == null) { - log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crnSlave.getId()); + log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId()); continue; } - if (!crnSlave.getId().equals(crnProtocol.getLaneNo())) { + + CrnSlave crnSlave = new CrnSlave(crn); + + if (!crn.getId().equals(crnProtocol.getLaneNo())) { for (CrnSlave crnOther : slaveProperties.getCrn()) { if (crnOther.getId().equals(crnProtocol.getLaneNo())) { crnSlave.updateCrnInStn(crnOther); @@ -593,7 +609,7 @@ log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk)); // R r = siteController.siteDetlUpdate(Integer.valueOf(taskWrk.getTargetPoint()), taskWrk.getWrkNo().shortValue(), (short) 0, "Y", false, false); staProtocol.setWorkNo(taskWrk.getWrkNo()); - staProtocol.setStaNo(staDesc.getCrnStn()); + staProtocol.setStaNo(BarcodeUtils.getStaNo(staProtocol.getSiteId())); boolean offer = false; try { offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); @@ -628,20 +644,22 @@ * 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 */ public synchronized void crnIoExecute() throws IOException { - for (CrnSlave crn : slaveProperties.getCrn()) { + for (CrnSlave crnSlave : slaveProperties.getCrn()) { // 鑾峰彇鍫嗗灈鏈轰俊鎭� - CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); + CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId()); CrnProtocol crnProtocol = crnThread.getCrnProtocol(); if (crnProtocol == null) { continue; } - BasCrnp basCrnp = basCrnpService.selectById(crn.getId()); + BasCrnp basCrnp = basCrnpService.selectById(crnSlave.getId()); if (basCrnp == null) { - log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId()); + log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crnSlave.getId()); continue; } - if (!crn.getId().equals(crnProtocol.getLaneNo())) { + CrnSlave crn = new CrnSlave(crnSlave); + + if (!crnSlave.getId().equals(crnProtocol.getLaneNo())) { for (CrnSlave crnOther : slaveProperties.getCrn()) { if (crnOther.getId().equals(crnProtocol.getLaneNo())) { crn.updateCrnInStn(crnOther); @@ -783,7 +801,7 @@ crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞� crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺� crnCommand.setCommand((short) 1); - if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand), false)) { + if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) { log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); } else { @@ -795,10 +813,13 @@ } try { HashMap<String, Object> headParam = new HashMap<>(); - headParam.put("taskNo", taskWrk.getTaskNo()); - headParam.put("status", taskWrk.getStatus()); - headParam.put("ioType", taskWrk.getIoTypeWms()); - headParam.put("barcode", taskWrk.getBarcode()); + headParam.put("taskNo",taskWrk.getTaskNo()); + headParam.put("taskStatus",taskWrk.getStatusWms()); + headParam.put("ioType",taskWrk.getIoTypeWms()); + headParam.put("barCode",taskWrk.getBarcode()); + headParam.put("reportTime", LocalDateTime.now()); + headParam.put("weight",taskWrk.getScWeight().doubleValue()); + String response; response = new HttpHandler.Builder() // .setHeaders(headParam) @@ -895,7 +916,7 @@ command.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒� command.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞� command.setCommand((short) 1); - if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, command), false)) { + if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command))) { log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屽贩閬�={}锛屼换鍔℃暟鎹�={}", slave.getId(), taskWrk.getCrnNo(), JSON.toJSON(command)); throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); } else { @@ -915,10 +936,13 @@ } try { HashMap<String, Object> headParam = new HashMap<>(); - headParam.put("taskNo", taskWrk.getTaskNo()); - headParam.put("status", taskWrk.getStatus()); - headParam.put("ioType", taskWrk.getIoTypeWms()); - headParam.put("barcode", taskWrk.getBarcode()); + headParam.put("taskNo",taskWrk.getTaskNo()); + headParam.put("taskStatus",taskWrk.getStatusWms()); + headParam.put("ioType",taskWrk.getIoTypeWms()); + headParam.put("barCode",taskWrk.getBarcode()); + headParam.put("reportTime", LocalDateTime.now()); + headParam.put("weight",taskWrk.getScWeight().doubleValue()); + String response; response = new HttpHandler.Builder() // .setHeaders(headParam) @@ -1005,7 +1029,7 @@ crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒� crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞� crnCommand.setCommand((short) 1); - if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand), false)) { + if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) { log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); } else { // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� @@ -1019,10 +1043,13 @@ } try { HashMap<String, Object> headParam = new HashMap<>(); - headParam.put("taskNo", taskWrk.getTaskNo()); - headParam.put("status", taskWrk.getStatus()); - headParam.put("ioType", taskWrk.getIoTypeWms()); - headParam.put("barcode", taskWrk.getBarcode()); + headParam.put("taskNo",taskWrk.getTaskNo()); + headParam.put("taskStatus",taskWrk.getStatusWms()); + headParam.put("ioType",taskWrk.getIoTypeWms()); + headParam.put("barCode",taskWrk.getBarcode()); + headParam.put("reportTime", LocalDateTime.now()); + headParam.put("weight",taskWrk.getScWeight().doubleValue()); + String response; response = new HttpHandler.Builder() // .setHeaders(headParam) @@ -1056,15 +1083,17 @@ * 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣� */ public void storeFinished() throws InterruptedException { - for (CrnSlave crn : slaveProperties.getCrn()) { + for (CrnSlave crnSlave : slaveProperties.getCrn()) { // 鑾峰彇鍫嗗灈鏈轰俊鎭� - CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); + CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId()); CrnProtocol crnProtocol = crnThread.getCrnProtocol(); if (crnProtocol == null) { continue; } - if (!crn.getId().equals(crnProtocol.getLaneNo())) { + CrnSlave crn = new CrnSlave(crnSlave); + + if (!crnSlave.getId().equals(crnProtocol.getLaneNo())) { for (CrnSlave crnOther : slaveProperties.getCrn()) { if (crnOther.getId().equals(crnProtocol.getLaneNo())) { crn.updateCrnInStn(crnOther); @@ -1073,14 +1102,14 @@ } // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1 - if (!Cools.isEmpty(crnProtocol.getTaskFinish()) && crnProtocol.getTaskFinish() == 0 && crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) { + if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) { //鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。 TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crnProtocol.getLaneNo(), crnProtocol.getTaskNo().intValue()); if (Cools.isEmpty(taskWrk) && crnProtocol.getTaskNo() != 999) { log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽贩閬撳彿={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getLaneNo(), crnProtocol.getTaskNo()); continue; } - Thread.sleep(300); +// Thread.sleep(300); //纭瀹屾垚淇″彿 CrnOperatorParam crnOperatorParam = new CrnOperatorParam(); crnOperatorParam.setCrnNo(crn.getId()); @@ -1133,10 +1162,13 @@ try { HashMap<String, Object> headParam = new HashMap<>(); - headParam.put("taskNo", taskWrk.getTaskNo()); - headParam.put("status", taskWrk.getStatus()); - headParam.put("ioType", taskWrk.getIoTypeWms()); - headParam.put("barcode", taskWrk.getBarcode()); + headParam.put("taskNo",taskWrk.getTaskNo()); + headParam.put("taskStatus",taskWrk.getStatusWms()); + headParam.put("ioType",taskWrk.getIoTypeWms()); + headParam.put("barCode",taskWrk.getBarcode()); + headParam.put("reportTime", LocalDateTime.now()); + headParam.put("weight",taskWrk.getScWeight().doubleValue()); + String response; log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", headParam); @@ -1343,7 +1375,7 @@ if (rgvProtocol == null || rgvTaskProtocol == null) { return false; } - if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1 || rgvProtocol.getRgvPosDestination() == 0L + if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1 || (!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) { return false; } @@ -1360,6 +1392,49 @@ } return true; } + public boolean rgvOtherIDLEOther(RgvSlave slave) { + RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getOtherId()); + RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getOtherId()); + + if (rgvProtocol == null || rgvTaskProtocol == null) { + return false; + } + if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1 + || (!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) { + return false; + } + + if (rgvProtocol.getLoaded()!=0) { + return false; + } + return true; + } + public boolean rgvOtherIDLE(RgvSlave slave,Integer staNo) { + RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); + RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId()); + + if (rgvProtocol == null || rgvTaskProtocol == null) { + return false; + } + if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1 + || (!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) { + return false; + } + RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId()); + + if (rgvProtocolOther == null) { + return true; + } + if (rgvProtocolOther.statusEnable) { + BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", staNo)); + if (Math.abs(basDevpPosition.getPlcPosition()-rgvProtocol.getRgvPos()) + >= + Math.abs(basDevpPosition.getPlcPosition()-rgvProtocolOther.getRgvPos())){ + return false; + } + } + return true; + } public TaskWrk deviceDetection(RgvSlave.RgvStn inSta) { @@ -1371,8 +1446,9 @@ // 鍒ゆ柇鏄惁婊¤冻鍙栬揣鏉′欢 if (staProtocol.isAutoing() // && staProtocol.isLoading() + && staProtocol.isStaOk() && staProtocol.getWorkNo() != 0) { - TaskWrk taskWrk = taskWrkService.selectByTaskNo(staProtocol.getWorkNo().toString()); + TaskWrk taskWrk = taskWrkService.selectByWrkNo(staProtocol.getWorkNo()); if (taskWrk != null) { return taskWrk; } @@ -1409,7 +1485,7 @@ for (RgvSlave.RgvStn inSta : rgvSlave.getRgvInSta()) { TaskWrk taskWrk = deviceDetection(inSta); if (taskWrk != null) { - if (taskWrk.getTaskNo().equals(taskNoNow)) continue; + if (taskWrk.getWrkNo().toString().equals(taskNoNow)) continue; taskWrkList.add(taskWrk); staList.add(inSta.getStaNo()); } @@ -1442,7 +1518,7 @@ if (rgvStn.getStaNo().equals(staNoNow)) { TaskWrk taskWrk = deviceDetection(rgvStn); if (taskWrk != null) { - BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", taskWrk.getTargetPointConvert())); + BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()))); if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { sign = taskGenerate(rgvSlave, rgvStn, 0); } @@ -1459,12 +1535,47 @@ for (Integer staNoNow : belongToRange) { for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { if (rgvStn.getStaNo().equals(staNoNow)) { - sign = taskGenerate(rgvSlave, rgvStn, 0); + TaskWrk taskWrk = deviceDetection(rgvStn); + if (taskWrk != null) { + Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); + for (RgvSlave.RgvStn rgvStnOut : rgvSlave.getRgvOutSta()) { + if (rgvStnOut.getStaNo().equals(outStaNo)) { + sign = taskGenerate(rgvSlave, rgvStn, 0); + break; + } + } + } break; } } if (sign) { break; + } + } + } + if (!sign && staList.size()==1){ + if (rgvOtherIDLEOther(rgvSlave)){ + if (!rgvOtherIDLE(rgvSlave,staList.get(0))){ + sign=true; + } + } + if (sign){ + for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { + if (rgvStn.getStaNo().equals(staList.get(0))) { + TaskWrk taskWrk = deviceDetection(rgvStn); + if (taskWrk != null) { + Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); + for (RgvSlave.RgvStn rgvSuper : rgvSlave.getRgvSuperSta()){ + if (rgvSuper.getStaNo().equals(outStaNo)){ + sign=false; + break; + } + } + } else { + return; + } + break; + } } } } @@ -1475,7 +1586,7 @@ if (rgvStn.getStaNo().equals(staNoNow)) { TaskWrk taskWrk = deviceDetection(rgvStn); if (taskWrk != null) { - BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", taskWrk.getTargetPointConvert())); + BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()))); if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { sign = taskGenerate(rgvSlave, rgvStn, 0); } @@ -1493,7 +1604,16 @@ for (Integer staNoNow : rangeList) { for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { if (rgvStn.getStaNo().equals(staNoNow)) { - sign = taskGenerate(rgvSlave, rgvStn, 0); + TaskWrk taskWrk = deviceDetection(rgvStn); + if (taskWrk != null) { + Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); + for (RgvSlave.RgvStn rgvStnOut : rgvSlave.getRgvOutSta()) { + if (rgvStnOut.getStaNo().equals(outStaNo)) { + sign = taskGenerate(rgvSlave, rgvStn, 0); + break; + } + } + } break; } } @@ -1509,7 +1629,7 @@ if (rgvStn.getStaNo().equals(staNoNow)) { TaskWrk taskWrk = deviceDetection(rgvStn); if (taskWrk != null) { - BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", taskWrk.getTargetPointConvert())); + BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()))); if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { sign = taskGenerate(rgvSlave, rgvStn, 0); } @@ -1531,7 +1651,16 @@ for (Integer staNoNow : rangeList) { for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { if (rgvStn.getStaNo().equals(staNoNow)) { - sign = taskGenerate(rgvSlave, rgvStn, 0); + TaskWrk taskWrk = deviceDetection(rgvStn); + if (taskWrk != null) { + Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); + for (RgvSlave.RgvStn rgvStnOut : rgvSlave.getRgvOutSta()) { + if (rgvStnOut.getStaNo().equals(outStaNo)) { + sign = taskGenerate(rgvSlave, rgvStn, 0); + break; + } + } + } break; } } @@ -1594,32 +1723,29 @@ if (taskWrk == null) { return false; } - Integer targetPointConvert = taskWrk.getTargetPointConvert(); +// Integer targetPointConvert = taskWrk.getTargetPointConvert(); + Integer targetPointConvert = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); if (targetPointConvert == null) { - return false; - } - RgvSlave.RgvStn rgvStnEnd = getRgvStnNow(rgvSlave, targetPointConvert); - if (rgvStnEnd == null) { return false; } BasDevpPosition basDevpPositionSou = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStn.getStaNo())); BasDevpPosition basDevpPositionEnd = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", targetPointConvert)); //鎵ц - issuedTake.setTaskNo(Long.valueOf(taskWrk.getTaskNo())); - issuedTake.setTaskStatus(1); + issuedTake.setTaskNo(Long.valueOf(taskWrk.getWrkNo())); + issuedTake.setTaskStatus(2); issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus())); issuedTake.setTargetPosition(basDevpPositionSou.getPlcPosition()); issuedTake.setIsRunning(1); - issuedTake.setDirection(rgvStn.isDirection()); + issuedTake.setDirection(basDevpPositionSou.getRgvSign()==1); - issuedPut.setTaskNo(Long.valueOf(taskWrk.getTaskNo())); - issuedPut.setTaskStatus(2); + issuedPut.setTaskNo(Long.valueOf(taskWrk.getWrkNo())); + issuedPut.setTaskStatus(3); issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus())); issuedPut.setTargetPosition(basDevpPositionEnd.getPlcPosition()); issuedPut.setIsRunning(1); - issuedPut.setDirection(rgvStnEnd.isDirection()); + issuedPut.setDirection(basDevpPositionEnd.getRgvSign()==1); } catch (Exception e) { log.error("浠诲姟鐢熸垚澶辫触issued1===銆嬪紓甯镐俊鎭細{}", e.getMessage()); return false; -- Gitblit v1.9.1