From e4e76d2c4bdb815a198ec5e7a3da40ed19c48157 Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期三, 03 四月 2024 08:36:40 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java | 102 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 99 insertions(+), 3 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java index 488dd34..0b8e774 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java @@ -1,11 +1,21 @@ package com.zy.asrs.wcs.core.service.impl; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; +import com.zy.asrs.framework.common.Cools; +import com.zy.asrs.wcs.core.entity.Task; +import com.zy.asrs.wcs.core.kernel.AnalyzeService; +import com.zy.asrs.wcs.core.model.enums.TaskStsType; +import com.zy.asrs.wcs.core.service.TaskService; +import com.zy.asrs.wcs.rcs.News; +import com.zy.asrs.wcs.core.entity.Motion; +import com.zy.asrs.wcs.core.service.MotionService; +import com.zy.asrs.wcs.rcs.cache.SlaveConnection; +import com.zy.asrs.wcs.rcs.model.enums.SlaveType; +import com.zy.asrs.wcs.rcs.model.protocol.StaProtocol; +import com.zy.asrs.wcs.rcs.thread.DevpThread; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.util.Date; import java.util.List; @@ -19,6 +29,13 @@ @Transactional public class MainServiceImpl { + @Autowired + private TaskService taskService; + @Autowired + private AnalyzeService analyzeService; + @Autowired + private MotionService motionService; + /** * 缁勬墭 * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2 @@ -27,4 +44,83 @@ } + // 瑙f瀽鍏ュ簱宸ヤ綔妗� + public synchronized void analyzeInBoundTask() { + for (Task task : taskService.selectWaitAnalyzeInBoundTask()) { + // generate motion list + List<Motion> motionList = analyzeService.generateMotion(task); + if (motionList.isEmpty()) { + continue; + } + motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo())); + + // 鏇存柊宸ヤ綔涓绘。 + task.setTaskSts(TaskStsType.ANALYZE_INBOUND.sts); // 宸ヤ綔鐘舵�� + task.setUpdateTime(new Date()); + if (!taskService.updateById(task)) { + News.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", task.getTaskNo()); + } + } + } + + /** + * 鍑哄簱 ====>> 鍚屼竴鏃堕棿涓�鍙扮┛姊溅鍙兘鏈変竴涓嚭搴撲换鍔� + */ + public synchronized void generateOutboundWrkMast() { + List<Task> tasks = taskService.selectPakOut(); + if (tasks.isEmpty()) { + return; + } + + for (Task task : tasks) { + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); + StaProtocol staProtocol = devpThread.getStation().get(Integer.parseInt(task.getOriginSite()));//婧愮珯 + StaProtocol staProtocol1 = devpThread.getStation().get(Integer.parseInt(task.getDestSite()));//鐩爣绔� + if (staProtocol == null || staProtocol1 == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + staProtocol1 = staProtocol1.clone(); + } + +// // 鏌ヨ绔欑偣璇︾粏淇℃伅 +// BasDevp staDetl = basDevpService.selectById(outSta.getStaNo()); +// if (staDetl == null) { +// log.error("鍑哄簱 ===>> 绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", outSta.getStaNo()); +// continue; +// } + // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵�� + if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { + + if (!(staProtocol1.isAutoing() && !staProtocol1.isLoading() && staProtocol1.getWorkNo() == 0 && staProtocol1.isOutEnable())) { + continue; + } + +// //鍚屽簱浣嶇粍鏍¢獙 +// List<String> outerLoc = Utils.getGroupOuterLoc(wrkMast.getSourceLocNo()); +// List<LocMast> outerLocMasts = locMastService.selectNotEmptyLocNos(outerLoc); +// if (!outerLocMasts.isEmpty()) { +// News.info("{}浠诲姟锛屾祬搴撲綅瀛樺湪璐х墿锛岀郴缁熺瓑寰呬腑", wrkMast.getWrkNo()); +// continue;//娴呭簱浣嶅瓨鍦ㄦ湭鎵ц浠诲姟 +// } + + // generate motion list + List<Motion> motionList = analyzeService.generateMotion(task); + if (Cools.isEmpty(motionList)) { + log.error("鍑哄簱 ===>> 鏆傛椂娌℃湁绌洪棽灏忚溅, 浠诲姟鍙�={}", task.getTaskNo()); + continue; + } + motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo())); + + // 鏇存柊宸ヤ綔涓绘。 + task.setTaskSts(TaskStsType.ANALYZE_OUTBOUND.sts); // 宸ヤ綔鐘舵�� + task.setUpdateTime(new Date()); + if (!taskService.updateById(task)) { + News.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", task.getTaskNo()); + } + + } + } + } + } -- Gitblit v1.9.1