From 1053f15fecff14e486b734d83426fe6f26f9b7cf Mon Sep 17 00:00:00 2001
From: lsh <lsh>
Date: 星期一, 20 五月 2024 16:21:44 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java | 113 +++++++++++++++++++++-
src/main/java/com/zy/asrs/task/BareBoardScheduler.java | 92 +++++++++++-------
src/main/java/com/zy/common/properties/SlaveWmsParameterProperties.java | 27 +++++
src/main/resources/application.yml | 13 ++
4 files changed, 201 insertions(+), 44 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/BareBoardScheduler.java b/src/main/java/com/zy/asrs/task/BareBoardScheduler.java
index 1ed97c3..65c7de9 100644
--- a/src/main/java/com/zy/asrs/task/BareBoardScheduler.java
+++ b/src/main/java/com/zy/asrs/task/BareBoardScheduler.java
@@ -6,6 +6,7 @@
import com.zy.asrs.service.*;
import com.zy.asrs.task.handler.BareBoardHandler;
import com.zy.asrs.task.handler.WorkMastHandler;
+import com.zy.common.properties.SlaveWmsParameterProperties;
import com.zy.system.entity.Config;
import com.zy.system.service.ConfigService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -34,49 +35,66 @@
private RgvOneSignService rgvOneSignService;
@Autowired
private WrkMastStaService wrkMastStaService;
+ @Autowired
+ private SlaveWmsParameterProperties slaveWmsParameterProperties;
// @Scheduled(cron = "0/3 * * * * ? ")
- private void execute(){//鑷姩璋冪┖鏉垮嚭搴� 2妤肩爜鍨涗綅缃�
- Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","bareBoard"));
- if (!Cools.isEmpty(config) && !Cools.isEmpty(config.getValue()) && config.getValue().equals("Y")){
- BasDevp basDevp = basDevpService.selectById(213);
- if (!Cools.isEmpty(basDevp) && basDevp.getWrkNo()==0 && basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("N")){
- bareBoardHandler.start(213);
- }
- }
- }
+// private void execute(){//鑷姩璋冪┖鏉垮嚭搴� 2妤肩爜鍨涗綅缃�
+// if (slaveWmsParameterProperties.isAutomaticFillingBoardStaNosBoolean()){
+// Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","bareBoard"));
+// if (!Cools.isEmpty(config) && !Cools.isEmpty(config.getValue()) && config.getValue().equals("Y")){
+// BasDevp basDevp = basDevpService.selectById(213);
+// if (!Cools.isEmpty(basDevp) && basDevp.getWrkNo()==0 && basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("N")){
+// bareBoardHandler.start(213);
+// }
+// }
+// }
+// }
// @Scheduled(cron = "0/3 * * * * ? ")
- private void executeOne(){//鑷姩璋冪┖鏉垮嚭搴� 1妤肩爜鍨涗綅缃�
- Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","bareBoard"));
- if (!Cools.isEmpty(config) && !Cools.isEmpty(config.getValue()) && config.getValue().equals("Y")){
- boolean sign = true;
- WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>()
- .eq("type", 2).eq("wrk_sts", 0).eq("wrk_type", 2));
- WrkMastSta wrkMastSta2 = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>()
- .eq("type", 2).eq("wrk_sts", 0).eq("wrk_type", 1));
- if (Cools.isEmpty(wrkMastSta) || !Cools.isEmpty(wrkMastSta2)){
- sign=false;
- }
- RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","oneSign"));
- if (rgvOneSign.getRgvOneSign()!=1 || !sign){
- sign = false;
- }else {
- List<BasRgv> basRgvs = basRgvService.selectList(new EntityWrapper<BasRgv>());
- for (BasRgv basRgv : basRgvs){
- if (basRgv.getLoaded2()!=0 && basRgv.getRgvSts()==3){
- sign = false;
- break;
- }
+// private void executeOne() {//鑷姩璋冪┖鏉垮嚭搴� 1妤肩爜鍨涗綅缃�
+// if (slaveWmsParameterProperties.isAutomaticFillingBoardStaNosBoolean()){
+// Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","bareBoard"));
+// if (!Cools.isEmpty(config) && !Cools.isEmpty(config.getValue()) && config.getValue().equals("Y")){
+// boolean sign = true;
+// WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>()
+// .eq("type", 2).eq("wrk_sts", 0).eq("wrk_type", 2));
+// WrkMastSta wrkMastSta2 = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>()
+// .eq("type", 2).eq("wrk_sts", 0).eq("wrk_type", 1));
+// if (Cools.isEmpty(wrkMastSta) || !Cools.isEmpty(wrkMastSta2)){
+// sign=false;
+// }
+// RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","oneSign"));
+// if (rgvOneSign.getRgvOneSign()!=1 || !sign){
+// sign = false;
+// }else {
+// List<BasRgv> basRgvs = basRgvService.selectList(new EntityWrapper<BasRgv>());
+// for (BasRgv basRgv : basRgvs){
+// if (basRgv.getLoaded2()!=0 && basRgv.getRgvSts()==3){
+// sign = false;
+// break;
+// }
+// }
+// }
+//
+// if (sign){
+// bareBoardHandler.start(122);
+// }
+//// }
+// }
+// }
+// }
+
+ @Scheduled(cron = "0/3 * * * * ? ")
+ private void execute(){//鑷姩璋冪┖鏉垮嚭搴� 鐓滄槦浜屾ゼ灏忔枡绠� 172
+ if (slaveWmsParameterProperties.isAutomaticFillingBoardStaNosBoolean()){
+ Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","bareBoard172"));
+ if (!Cools.isEmpty(config) && !Cools.isEmpty(config.getValue()) && config.getValue().equals("Y")){
+ int loadIngCount = basDevpService.selectCount(new EntityWrapper<BasDevp>().ge("dev_no", 160).le("dev_no", 172).eq("loading", "Y"));
+ if (loadIngCount<=10){
+ bareBoardHandler.startYx(172);
}
}
-
- if (sign){
- bareBoardHandler.start(122);
- }
-// BasDevp basDevp = basDevpService.selectById(213);
-// if (!Cools.isEmpty(basDevp) && basDevp.getWrkNo()==0 && basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("N")){
-// }
}
}
diff --git a/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java b/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java
index 4b9c022..1b64e5e 100644
--- a/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java
@@ -8,12 +8,11 @@
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.StaDesc;
import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.service.BasCrnpService;
-import com.zy.asrs.service.LocMastService;
-import com.zy.asrs.service.StaDescService;
-import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.entity.param.EmptyPlateOutParam;
+import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.utils.Utils;
import com.zy.common.model.enums.WorkNoType;
import com.zy.common.service.CommonService;
import lombok.extern.slf4j.Slf4j;
@@ -44,8 +43,10 @@
private StaDescService staDescService;
@Autowired
private BasCrnpService basCrnpService;
+ @Autowired
+ private WorkService workService;
- public ReturnT<String> start(Integer staNo) {
+ public ReturnT<String> start(Integer staNo) {
try {
if (!Cools.isEmpty(wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 110).eq("sta_no", staNo)))){
return null;
@@ -143,4 +144,106 @@
}
return SUCCESS;
}
+
+ public ReturnT<String> startYx(Integer staNo) {
+ try {
+// if (!Cools.isEmpty(wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 110).eq("sta_no", staNo)))){
+// return null;
+// }
+ int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 110).eq("sta_no", staNo));
+ if (wrkCount>10){
+ return null;
+ }
+ ArrayList<Integer> crns =new ArrayList<>();
+ crns.add(1);
+ crns.add(2);
+ boolean sign = true;
+ for (Integer crnNo : crns){
+ List<String> locNoList = new ArrayList<>();
+
+ BasCrnp basCrnp = basCrnpService.selectById(crnNo);
+ if (basCrnp.getCrnSts()!=3 || !basCrnp.getOutEnable().equals("Y")){
+ continue;
+ }
+ sign = true;
+ // 鑾峰彇搴撲綅
+ LocMast locMastS = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts","D").eq("crn_no",crnNo));
+
+ if (Cools.isEmpty(locMastS)) {
+// throw new CoolException("搴撲腑鏃犵┖鏉匡紒锛侊紒");
+ log.error(crnNo+"鍙峰爢鍨涙満鏃犵┖鏉匡紒");
+ sign=false;
+ }
+ if (sign && !locMastS.getLocSts().equals("D")){
+// throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
+ log.error(crnNo+"鍙峰爢鍨涙満"+"鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMastS.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMastS.getLocSts()+"-"+locMastS.getLocSts$());
+ sign=false;
+ }
+ locNoList.add(locMastS.getLocNo());
+
+ //灏忔枡绠变即鐢熷嚭搴�
+ if (Utils.getRow(locMastS.getLocNo())<=8){
+ String locNoOther = staNoOther(locMastS.getLocNo());
+ LocMast locMastOther = locMastService.selectById(locNoOther);
+ if (locMastOther.getLocSts().equals("D")){
+ locNoList.add(locNoOther);
+ }
+ }
+ if (sign) {
+ EmptyPlateOutParam param = new EmptyPlateOutParam();
+ param.setOutSite(172);
+ param.setLocNos(locNoList);
+ try{
+ workService.emptyPlateOut(param, 9999L);
+ }catch (Exception e){
+ log.error("浜屾ゼ灏忔枡绠辫嚜鍔ㄨˉ绌烘澘澶辫触锛侊紒寮傚父鍘熷洜锛�"+e);
+ }
+ return SUCCESS;
+ }
+ }
+ if (!sign){
+ log.error("鏈煡鍒板彲鍑哄簱鐨勭┖鏉匡紒锛侊紒");
+ return null;
+ }
+ }catch (Exception e){
+ log.error("寮傚父锛侊紒锛�"+e);
+ return null;
+ }
+ return SUCCESS;
+ }
+
+ public String staNoOther(String locNo){
+ int row = Utils.getRow(locNo);
+ if (row%4==0 || row%4==1){
+ return getDeepLoc2(locNo,row);
+ }else {
+ return getDeepLoc(locNo,row);
+ }
+ }
+
+ /**
+ * 鑾峰彇 娣卞簱浣嶅搴旂殑娴呭簱浣嶅彿
+ */
+ public static String getDeepLoc2(String shallowLoc,int row) {
+ if (row == 1 || row == 5) {
+ return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2);
+ } else if (row == 4 || row == 8) {
+ return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2);
+ }else {
+ return null;
+ }
+ }
+
+ /**
+ * 鑾峰彇 娴呭簱浣嶅搴旂殑娣卞簱浣嶅彿
+ */
+ public static String getDeepLoc(String shallowLoc,int row) {
+ if (row == 2 || row == 6) {
+ return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2);
+ } else if (row == 3 || row == 7) {
+ return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2);
+ }else {
+ return shallowLoc;
+ }
+ }
}
diff --git a/src/main/java/com/zy/common/properties/SlaveWmsParameterProperties.java b/src/main/java/com/zy/common/properties/SlaveWmsParameterProperties.java
new file mode 100644
index 0000000..01a8d60
--- /dev/null
+++ b/src/main/java/com/zy/common/properties/SlaveWmsParameterProperties.java
@@ -0,0 +1,27 @@
+package com.zy.common.properties;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by vincent on 2023/10/25
+ */
+@Data
+@Configuration
+@ConfigurationProperties(prefix = "wms-parameter")
+public class SlaveWmsParameterProperties {
+
+ // 鑷姩琛ョ┖鏉垮姛鑳藉紑鍏�
+ private boolean automaticFillingBoardStaNosBoolean;
+ // 鑷姩绉诲簱鍔熻兘寮�鍏�
+ private boolean autoLocMoveBoolean;
+ // 鑷姩绉诲簱鍔熻兘寮�鍏� 111
+ private boolean autoLocMoveUnilateralBoolean;
+ // 鑷姩琛ョ┖鏉跨珯鐐�
+ private List<Integer> automaticFillingBoardStaNos = new ArrayList<>();
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 8dd08d5..b0405ec 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -10,7 +10,7 @@
enabled: false
datasource:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
- url: jdbc:sqlserver://127.0.0.1:1433;databasename=ahyxasrs
+ url: jdbc:sqlserver://10.10.10.254:1433;databasename=ahyxasrs
username: sa
password: sa@123
mvc:
@@ -61,7 +61,16 @@
doubleLocsLeft : 1,5,9,13,17,21
# 鍙虫繁搴撲綅鎺掑彿
doubleLocsRight : 4,8,12,16,20,24
-
+# wms鍙傛暟閰嶇疆
+wms-parameter:
+ # 鑷姩琛ョ┖鏉垮姛鑳藉紑鍏�
+ automaticFillingBoardStaNosBoolean: true
+ # 鑷姩琛ョ┖鏉跨珯鐐�
+ automaticFillingBoardStaNos: 112,101
+ # 鑷姩绉诲簱鍔熻兘寮�鍏�
+ autoLocMoveBoolean: false
+ # 鑷姩绉诲簱鍔熻兘寮�鍏� 绌挎
+ autoLocMoveUnilateralBoolean: false
comb:
limit: 5000
--
Gitblit v1.9.1