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