From a6f6f82ccb56c168ecd564eca377b41f25a901bb Mon Sep 17 00:00:00 2001 From: ZY <zc857179121@qq.com> Date: 星期一, 07 四月 2025 17:20:44 +0800 Subject: [PATCH] 还没有写完 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 198 +++++++++++++++++++++++++++++++----------------- 1 files changed, 127 insertions(+), 71 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 8c4b9f1..aa40e13 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -7,19 +7,12 @@ import com.core.exception.CoolException; import com.zy.asrs.controller.CrnController; import com.zy.asrs.domain.enums.TaskStatusType; -import com.zy.asrs.domain.enums.WorkNoType; import com.zy.asrs.domain.param.CrnOperatorParam; import com.zy.asrs.entity.*; import com.zy.asrs.entity.wms.StorageEscalationParam; -import com.zy.asrs.entity.wms.WmsResult; -import com.zy.asrs.mapper.BasCrnErrorMapper; -import com.zy.asrs.mapper.StaDescMapper; -import com.zy.asrs.mapper.TaskWrkMapper; -import com.zy.asrs.mapper.WrkMastMapper; +import com.zy.asrs.mapper.*; import com.zy.asrs.service.*; -import com.zy.asrs.utils.CommandUtils; import com.zy.asrs.utils.Utils; -import com.zy.common.service.CommonService; import com.zy.core.CrnThread; import com.zy.core.DevpThread; import com.zy.core.cache.MessageQueue; @@ -34,7 +27,6 @@ import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.BarcodeThread; import com.zy.core.thread.SiemensDevpThread; -import com.zy.system.service.ConfigService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -72,6 +64,9 @@ private BasCrnErrorMapper basCrnErrorMapper; @Autowired private TaskWrkMapper taskWrkMapper; + + @Autowired + private DevpTaskMapper devpTaskMapper; @Autowired private TaskWrkService taskWrkService; @@ -84,9 +79,6 @@ @Autowired - private CommonService commonService; - - @Autowired private ToWmsService toWmsService; @@ -94,9 +86,9 @@ private CrnController crnController; @Autowired - private ConfigService configService; + private TransferTaskService transferTaskService; - public void generateStoreWrkFile1() throws IOException, InterruptedException { + public void generateStoreWrkFile() throws IOException, InterruptedException { try { // 鏍规嵁杈撻�佺嚎plc閬嶅巻 for (DevpSlave devp : slaveProperties.getDevp()) { @@ -172,43 +164,32 @@ storageEscalationParam.setWCSStatus(1); storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg); } - log.info("缁勬墭鍏ュ簱={}", storageEscalationParam); storageEscalationParam.setBarcode(BoxNo); - - WmsResult result = toWmsService.getLocNoFromWms(storageEscalationParam); + log.info("缁勬墭鍏ュ簱={}", storageEscalationParam); + TaskWrk taskWrk = toWmsService.getLocNoFromWms(storageEscalationParam); if (back) { log.info("鎵樼洏閫�鍥�==>{}锛寋}", BoxNo, errMsg); staProtocol.setStaNo(inSta.getBackSta().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); } else { - if (result != null) { - // 鍒涙柊涓�涓叆搴撳伐浣滄。 - TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo()); - if (Cools.isEmpty(taskWrk)) { - taskWrk = createInTask(result, BoxNo, inSta.getStaNo()); - taskWrkService.insert(taskWrk); - StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() - .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId())); - staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); - staProtocol.setStaNo(staDesc.getCrnStn().shortValue()); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - //娣诲姞涓婃姤鏃ュ織 - toWmsService.addReportLog(taskWrk); - } else { - log.info("鍒涘缓宸ヤ綔妗eけ璐�==>{}", taskWrk.getTaskNo()); - staProtocol.setStaNo(inSta.getBackSta().shortValue()); - devpThread.setPakMk(staProtocol.getSiteId(), false); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - } + if (!Cools.isEmpty(taskWrk)) { + StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() + .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId())); + staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); + staProtocol.setStaNo(staDesc.getCrnStn().shortValue()); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + //娣诲姞涓婃姤鏃ュ織 + toWmsService.addReportLog(taskWrk); } else { - log.info("璇锋眰wms鑾峰彇搴撲綅澶辫触==>{}", BoxNo); + log.info("鍒涘缓宸ヤ綔妗eけ璐�==>{}", taskWrk.getTaskNo()); staProtocol.setStaNo(inSta.getBackSta().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); } + } - log.info("鍏ュ簱璇锋眰杩斿洖鍙傛暟=" + JSON.toJSONString(result)); + } } } @@ -388,7 +369,7 @@ crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺� crnCommand.setCommand((short) 1); log.info("鍫嗗灈鏈哄叆搴撲换鍔′笅鍙�={}", crnCommand); - if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand), false)) { + if (!MessageQueue.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand))) { log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); } else { @@ -438,6 +419,15 @@ if (flag) { LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>() .eq("row1", (locMast.getRow1() - 1)) + .eq("bay1", locMast.getBay1()) + .eq("lev1", locMast.getLev1()).eq("loc_sts", "F")); + if (!Cools.isEmpty(locMast1)) { + log.info(locMast.getLocNo() + "鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣"); + continue; + } + } else { + LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>() + .eq("row1", (locMast.getRow1() + 1)) .eq("bay1", locMast.getBay1()) .eq("lev1", locMast.getLev1()).eq("loc_sts", "F")); if (!Cools.isEmpty(locMast1)) { @@ -495,7 +485,7 @@ taskWrk.setMarkStart(1); } - if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, command), false)) { + if (!MessageQueue.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, command))) { log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(command)); throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); } else { @@ -568,7 +558,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, taskWrk.getCrnNo(), new Task(2, crnCommand))) { log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); } else { // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� @@ -841,36 +831,6 @@ } - private TaskWrk createInTask(WmsResult result, String barcode, Integer startPoint) { - //String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn()); - - String locNo = result.getLocNo(); - Date now = new Date(); - TaskWrk taskWrk = new TaskWrk(); - int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙� - taskWrk.setTaskNo(result.getTaskNo());//浠诲姟鍙� - taskWrk.setWrkNo(workNo1); - taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//浠诲姟鐘舵�侊細娲惧彂 - taskWrk.setCreateTime(now); - taskWrk.setIoType(1);//浠诲姟绫诲瀷 - taskWrk.setIoPri(13);//浼樺厛绾� - taskWrk.setBarcode(barcode);//鏉$爜 - LocMast locMast = locMastService.selectByLocNo(locNo); - taskWrk.setCrnNo(locMast.getCrnNo()); - taskWrk.setTargetPoint(locNo); - taskWrk.setStartPoint(startPoint + ""); - taskWrk.setCrnNo(result.getCrnNo()); - - if (taskWrk.getIoType() == 1) { - taskWrk.setWrkSts(2); - if (!Cools.isEmpty(taskWrk.getTargetPoint())) { - taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint()); - } - } - return taskWrk; - } - - /** * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁� */ @@ -878,6 +838,9 @@ try { // 鏍规嵁杈撻�佺嚎plc閬嶅巻 for (DevpSlave devp : slaveProperties.getDevp()) { + if (devp.getId() == 2){ + continue; + } SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); for (DevpSlave.Sta inSta : devp.getInSta()) { WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getBackSta()); @@ -1036,4 +999,97 @@ } } + + /** + * 璺戝簱绋嬪簭 + */ + public void debug() { + //棣栧厛搴撲綅鏈変竴涓湪搴撶殑搴撲綅 + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "F")); + if (locMast != null) { + // 鍐嶇敓鎴愪竴涓Щ搴撲换鍔� + LocMast mk = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O").ne("mk", 1)); + + } + + } + + + /** + * 杞Щ浠诲姟涓嬪彂 + */ + public void transferTaskStart() { + + for (DevpSlave.Sta sta : slaveProperties.getDevp().get(1).getInSta()) { + try { + // 鑾峰彇鍏ュ簱绔欎俊鎭� + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2); + StaProtocol staProtocol = devpThread.getStation().get(sta.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) { + // 鏌ヨ宸ヤ綔妗� + TransferTask transferTask = transferTaskService.selectByStartPoint(sta.getStaNo()); + if (transferTask == null) { + continue; + } + log.info("涓嬪彂杈撻�佺嚎杞Щ浠诲姟锛歵askWrk:" + JSON.toJSONString(transferTask)); + staProtocol.setWorkNo(transferTask.getWrkNo().shortValue()); + staProtocol.setStaNo(transferTask.getTargetPoint().shortValue()); + boolean offer = false; + try { + offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); + } catch (Exception e) { + log.error("涓嬪彂杈撻�佺嚎杞Щ浠诲姟锛氬紓甯�:" + e); + log.error("涓嬪彂杈撻�佺嚎杞Щ浠诲姟锛氬紓甯�:offer:" + offer); + } + if (offer) { + log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(transferTask)); + transferTask.setStatus(2); + transferTaskService.updateById(transferTask); + } else { + log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(transferTask)); + } + } + } catch (Exception e) { + log.error("杞Щ浠诲姟寮傚父:寮傚父淇℃伅锛�" + e); + } + } + + } + + /** + * 杞Щ浠诲姟瀹屾垚 + */ + public void transferTaskEnd() { + for (DevpSlave.Sta sta : slaveProperties.getDevp().get(1).getInSta()) { + try { + // 鑾峰彇缁堢偣绔� + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2); + StaProtocol staProtocol = devpThread.getStation().get(sta.getOverSta()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) { + // 鏌ヨ宸ヤ綔妗� + TransferTask transferTask = transferTaskService.selectByEndPoint(sta.getStaNo()); + if (transferTask == null) { + continue; + } + log.info("杞Щ浠诲姟瀹屾垚锛歵ransferTask:" + JSON.toJSONString(transferTask)); + transferTask.setStatus(5); + transferTaskService.updateById(transferTask); + } + } catch (Exception e) { + log.error("杞Щ浠诲姟寮傚父:寮傚父淇℃伅锛�" + e); + } + } + + } + } -- Gitblit v1.9.1