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