From 7112338864ef558d54db0329d75b903322787f6c Mon Sep 17 00:00:00 2001 From: 野心家 <1051256694@qq.com> Date: 星期一, 24 三月 2025 09:33:16 +0800 Subject: [PATCH] #输送线循环,堆垛机暂存数 --- src/main/java/com/zy/asrs/service/WrkMastService.java | 5 + src/main/java/com/zy/asrs/service/impl/BasCrnpServiceImpl.java | 14 ++++ src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 103 ++++++++++++++++++++++++++++++++++ src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java | 7 ++ src/main/java/com/zy/asrs/service/TaskWrkService.java | 4 + src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java | 7 ++ src/main/java/com/zy/core/MainProcess.java | 4 + src/main/java/com/zy/asrs/task/autoReportStartHandler.java | 2 pom.xml | 2 src/main/resources/application.yml | 2 10 files changed, 146 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 7a47d8d..1d02e2c 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,7 @@ <properties> <java.version>1.8</java.version> - <cool.version>3.2.0</cool.version> + <cool.version>3.4.5</cool.version> <mysql-driver.version>5.1.47</mysql-driver.version> <mybatis-plus.version>2.3.2</mybatis-plus.version> <fastjson.version>1.2.58</fastjson.version> diff --git a/src/main/java/com/zy/asrs/service/TaskWrkService.java b/src/main/java/com/zy/asrs/service/TaskWrkService.java index e62ee0b..51d17b2 100644 --- a/src/main/java/com/zy/asrs/service/TaskWrkService.java +++ b/src/main/java/com/zy/asrs/service/TaskWrkService.java @@ -29,5 +29,9 @@ List<TaskWrk> selectToBeHistoryData(); int saveToHistory(String taskNo);//灏嗕换鍔¤浆鍘嗗彶鏃ュ織 + /** + * 鑾峰彇瀵瑰簲鍫嗗灈鏈哄彿宸ヤ綔鐘舵�佷负14锛�12锛�2鐨勫伐浣滄。 + */ + int getStoreCount(Integer crnNo); } diff --git a/src/main/java/com/zy/asrs/service/WrkMastService.java b/src/main/java/com/zy/asrs/service/WrkMastService.java index 67469f8..e2a0c06 100644 --- a/src/main/java/com/zy/asrs/service/WrkMastService.java +++ b/src/main/java/com/zy/asrs/service/WrkMastService.java @@ -15,4 +15,9 @@ int getOutToStn182(Integer devpNo); + /** + * 鑾峰彇瀵瑰簲鍫嗗灈鏈哄彿宸ヤ綔鐘舵�佷负14锛�12锛�2鐨勫伐浣滄。 + */ + int getStoreCount(Integer crnNo); + } diff --git a/src/main/java/com/zy/asrs/service/impl/BasCrnpServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasCrnpServiceImpl.java index 982f348..9735a47 100644 --- a/src/main/java/com/zy/asrs/service/impl/BasCrnpServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/BasCrnpServiceImpl.java @@ -6,13 +6,19 @@ import com.zy.asrs.entity.BasCrnp; import com.zy.asrs.mapper.BasCrnpMapper; import com.zy.asrs.service.BasCrnpService; +import com.zy.asrs.service.WrkMastService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @Slf4j @Service("basCrnpService") public class BasCrnpServiceImpl extends ServiceImpl<BasCrnpMapper, BasCrnp> implements BasCrnpService { - + @Value("${wms.count}") + private Integer maxCount; + @Autowired + private WrkMastService wrkMastService; @Override public BasCrnp checkSiteStatus(Integer crnId) { BasCrnp crnp = this.selectById(crnId); @@ -36,6 +42,11 @@ return false; } if (pakin) { +// int storeCount = wrkMastService.getStoreCount(crnNo); +// if(storeCount >= maxCount){ +// log.error("{}鍙峰爢鍨涙満鏆傚瓨鏁板凡婊�!", crnNo); +// return false; +// } if ("N".equals(crnp.getInEnable())) { log.error("{}鍙峰爢鍨涙満涓嶅彲鍏�", crnNo); return false; @@ -60,4 +71,5 @@ // } return true; } + } 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 d8ab81a..b03a68a 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -42,12 +42,14 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.io.IOException; import java.util.*; +import java.util.concurrent.CompletableFuture; /** * 绔嬩綋浠撳簱WCS绯荤粺涓绘祦绋嬩笟鍔� @@ -94,7 +96,10 @@ private ApiLogService apiLogService; @Autowired private CommonService commonService; - + @Value("${wms.count}") + private Integer maxCount; + @Autowired + private WrkMastService wrkMastService; @Value("${wms.url}") private String wmsUrl; @Value("${wms.inboundTaskApplyPath}") @@ -107,6 +112,95 @@ private CrnController crnController; @Autowired private SiteController siteController; + //鍑哄簱绔欑偣鑷�112寰幆绔欑偣 + public synchronized void shiftTargetToCyclePoint() throws IOException, InterruptedException{ + try{ + for (DevpSlave devp : slaveProperties.getDevp()) { + for (DevpSlave.Sta outSta : devp.getOutSta()) { + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + StaProtocol staProtocol = devpThread.getStation().get(outSta.getStaNo()); + StaProtocol staProtocol1 = devpThread.getStation().get(1001); + StaProtocol staProtocol2 = devpThread.getStation().get(1002); + StaProtocol staProtocol3 = devpThread.getStation().get(1003); + StaProtocol staProtocol4 = devpThread.getStation().get(1004); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + if (staProtocol1 == null) { + continue; + } else { + staProtocol1 = staProtocol1.clone(); + } + if (staProtocol2 == null) { + continue; + } else { + staProtocol2 = staProtocol2.clone(); + } + if (staProtocol3 == null) { + continue; + } else { + staProtocol3 = staProtocol3.clone(); + } + if (staProtocol4 == null) { + continue; + } else { + staProtocol4 = staProtocol4.clone(); + } + boolean result = false; + switch(outSta.getStaNo()){ + case 105: if (staProtocol1.isLoading()){ + result = true; + } + case 107: if (staProtocol2.isLoading()){ + result = true; + } + case 109: if (staProtocol3.isLoading()){ + result = true; + } + case 110: if (staProtocol4.isLoading()){ + result = true; + } + default: break; + + } + if(result){ + staProtocol.setStaNo((short) 112); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + } + } + } + }catch (Exception e) { + log.error("generateStoreWrkFile e", e); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + } + + //112寰幆绔欑偣鑷冲嚭搴撶珯 + public synchronized void shiftCyclePointToTarget() throws IOException, InterruptedException{ + try{ + for (DevpSlave devp : slaveProperties.getDevp()) { + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + StaProtocol staProtocol = devpThread.getStation().get(112); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo()); + if(wrkMast != null && wrkMast.getWrkNo() < 9000 && wrkMast.getWrkNo() > 7000){ + staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + } + } + }catch (Exception e) { + log.error("generateStoreWrkFile e", e); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + } + + public synchronized void generateStoreWrkFile1() throws IOException, InterruptedException { @@ -722,6 +816,7 @@ continue; } + // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。 TaskWrk taskWrk = taskWrkMapper.selectPakIn(slave.getId(), staProtocol.getWorkNo().intValue(), staDesc.getStnNo().toString()); if (null == taskWrk) { @@ -847,6 +942,12 @@ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { break; } + int storeCount = taskWrkService.getStoreCount(taskWrk.getCrnNo()); + if(storeCount >= maxCount){ + log.error("{}鍙峰爢鍨涙満鏆傚瓨鏁板凡婊�!", taskWrk.getCrnNo()); + break; + } + // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) { diff --git a/src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java index 9b24079..7dd6e70 100644 --- a/src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java @@ -2,11 +2,13 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.domain.enums.TaskStatusType; import com.zy.asrs.domain.enums.WorkNoType; import com.zy.asrs.entity.StaDesc; +import com.zy.asrs.entity.WrkMast; import com.zy.asrs.mapper.TaskWrkMapper; import com.zy.asrs.entity.TaskWrk; import com.zy.asrs.service.ApiLogService; @@ -247,4 +249,9 @@ public int saveToHistory(String taskNo) { return this.baseMapper.saveToHistory(taskNo); } + + @Override + public int getStoreCount(Integer crnNo){ + return selectCount(new EntityWrapper<TaskWrk>().eq("crn_no", crnNo).in("wrk_sts",12,14,2)); + } } diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java index 8c0b9e9..99f7296 100644 --- a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java @@ -5,9 +5,11 @@ import com.zy.asrs.entity.WrkMast; import com.zy.asrs.mapper.WrkMastMapper; import com.zy.asrs.service.WrkMastService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.List; + @Service("wrkMastService") public class WrkMastServiceImpl extends ServiceImpl<WrkMastMapper, WrkMast> implements WrkMastService { @@ -31,4 +33,9 @@ public int getOutToStn182(Integer devpNo) { return selectCount(new EntityWrapper<WrkMast>().eq("sta_no", devpNo).in("wrk_sts",11,12)); } + + @Override + public int getStoreCount(Integer crnNo){ + return selectCount(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).in("wrk_sts",12,14,2)); + } } diff --git a/src/main/java/com/zy/asrs/task/autoReportStartHandler.java b/src/main/java/com/zy/asrs/task/autoReportStartHandler.java index f0ee945..8e5d78b 100644 --- a/src/main/java/com/zy/asrs/task/autoReportStartHandler.java +++ b/src/main/java/com/zy/asrs/task/autoReportStartHandler.java @@ -85,7 +85,7 @@ */ @Scheduled(cron = "0/3 * * * * ? ") public synchronized void execute() throws IOException { - List<TaskWrk> taskWrks=taskWrkService.selectList(new EntityWrapper<TaskWrk>().eq("status",1).in("wrk_sts",12,13,3,4)); + List<TaskWrk> taskWrks=taskWrkService.selectList(new EntityWrapper<TaskWrk>().eq("status",1).in("wrk_sts",12,13,2,3,4)); if(taskWrks.size()>0){ for(TaskWrk taskWrk:taskWrks){ if(Cools.isEmpty(taskWrk.getMarkStart())||taskWrk.getMarkStart()==0){ diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index 91070ff..d713dd4 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -62,6 +62,10 @@ // mainService.outOfDevp(); // 鍏朵粬 ===>> // 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁� + + //鐜舰寰幆鍑芥暟 + mainService.shiftTargetToCyclePoint(); + mainService.shiftCyclePointToTarget(); i++; if (i > 1) { // mainService.ioConvert(); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 3f61057..38c4a6a 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -44,6 +44,8 @@ publicKeysStorePath: publicCerts.keystore wms: + #鍫嗗灈鏈轰换鍔℃殏瀛樻暟 + count: 4 # 鏄惁寮�鍚笂鎶� start: true # WMS绯荤粺ip -- Gitblit v1.9.1