From 47d6f53823c21d1382364f051eb4fd14607ba624 Mon Sep 17 00:00:00 2001 From: yxFwq <1> Date: 星期六, 23 十一月 2024 17:23:58 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java | 148 ++++++++++++++++++++++++++++++++++++------------ 1 files changed, 110 insertions(+), 38 deletions(-) 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 1b64e5e..a4e411b 100644 --- a/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java @@ -12,6 +12,7 @@ import com.zy.asrs.service.*; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; +import com.zy.asrs.utils.CodeDetectionUtil; import com.zy.asrs.utils.Utils; import com.zy.common.model.enums.WorkNoType; import com.zy.common.service.CommonService; @@ -46,9 +47,13 @@ @Autowired private WorkService workService; - public ReturnT<String> start(Integer staNo) { + public ReturnT<String> start(Integer staNo,Integer count) { try { - if (!Cools.isEmpty(wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 110).eq("sta_no", staNo)))){ +// 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>count){ return null; } // 鑾峰彇宸ヤ綔鍙� @@ -64,6 +69,7 @@ crns.add(4); crns.add(5); crns.add(6); + crns.add(7); boolean sign = true; for (Integer crnNo : crns){ BasCrnp basCrnp = basCrnpService.selectById(crnNo); @@ -145,60 +151,116 @@ return SUCCESS; } - public ReturnT<String> startYx(Integer staNo) { + public ReturnT<String> startYx(Integer staNo,Integer count) { 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){ + if (wrkCount>count){ return null; } ArrayList<Integer> crns =new ArrayList<>(); + ArrayList<Integer> crnList =new ArrayList<>(); + int[] crnCount = new int[7]; crns.add(1); crns.add(2); + crns.add(3); + crns.add(4); + crns.add(5); + crns.add(6); + crns.add(7); boolean sign = true; for (Integer crnNo : crns){ - List<String> locNoList = new ArrayList<>(); - + int crnCountD = locMastService.selectCount(new EntityWrapper<LocMast>().eq("loc_sts", "D").eq("crn_no", crnNo)); + crnCount[crnNo-1] = crnCountD; + } + crnList.add(CodeDetectionUtil.crnCodeDetectionMax(new int[]{crnCount[0],crnCount[1]})[0]+1); + crnList.add(CodeDetectionUtil.crnCodeDetectionMax(new int[]{crnCount[2],crnCount[3],crnCount[4]})[0]+3); + crnList.add(CodeDetectionUtil.crnCodeDetectionMaxT(new int[]{crnCount[2],crnCount[3],crnCount[4]},crnList.get(1))[0]+3); + crnList.add(CodeDetectionUtil.crnCodeDetectionMax(new int[]{crnCount[5],crnCount[6]})[0]+6); + crnList.add(1); + crnList.add(2); + crnList.add(3); + crnList.add(4); + crnList.add(5); + crnList.add(6); + crnList.add(7); + for (Integer crnNo : crnList){ + // 妫�娴嬭矾寰� + Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() + .eq("type_no", 110) + .eq("stn_no", staNo) + .eq("crn_no", crnNo); + StaDesc staDesc = staDescService.selectOne(wrapper); + if (Cools.isEmpty(staDesc)){ + continue; + } BasCrnp basCrnp = basCrnpService.selectById(crnNo); if (basCrnp.getCrnSts()!=3 || !basCrnp.getOutEnable().equals("Y")){ continue; } - sign = true; + if (!basCrnpService.checkSiteError(crnNo, false)){ + continue; + } // 鑾峰彇搴撲綅 - LocMast locMastS = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts","D").eq("crn_no",crnNo)); + List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").eq("crn_no", crnNo).orderBy("lev1",true).orderBy("bay1",true)); + for (LocMast locMastS : locMasts){ + List<String> locNoList = new ArrayList<>(); + sign = true; - if (Cools.isEmpty(locMastS)) { + if (Cools.isEmpty(locMastS)) { // throw new CoolException("搴撲腑鏃犵┖鏉匡紒锛侊紒"); - log.error(crnNo+"鍙峰爢鍨涙満鏃犵┖鏉匡紒"); - sign=false; - } - if (sign && !locMastS.getLocSts().equals("D")){ + log.error(crnNo+"鍙峰爢鍨涙満鏃犵┖鏉匡紒"); + sign=false; + break; + } + 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()); + 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 && Utils.getRow(locMastS.getLocNo())<=8){ + String locNoOther = staNoOther(locMastS.getLocNo()); + LocMast locMastOther = locMastService.selectById(locNoOther); + if (locMastOther.getLocSts().equals("D") || locMastOther.getLocSts().equals("F") || locMastOther.getLocSts().equals("R")){ + if (locMastOther.getLocSts().equals("D")){ + locNoList.add(locNoOther); + } + }else { + sign=false; + } + }else if (sign && Utils.getRow(locMastS.getLocNo())>=21 && Utils.getRow(locMastS.getLocNo())<=27){ + String locNoOther = staNoOther(locMastS.getLocNo()); + LocMast locMastOther = locMastService.selectById(locNoOther); + if (locMastOther.getLocSts().equals("D") || locMastOther.getLocSts().equals("F") || locMastOther.getLocSts().equals("R")){ + if (locMastOther.getLocSts().equals("D")){ + locNoList.add(locNoOther); + } + }else { + sign=false; + } } - } - if (sign) { - EmptyPlateOutParam param = new EmptyPlateOutParam(); - param.setOutSite(172); - param.setLocNos(locNoList); - try{ - workService.emptyPlateOut(param, 9999L); - }catch (Exception e){ - log.error("浜屾ゼ灏忔枡绠辫嚜鍔ㄨˉ绌烘澘澶辫触锛侊紒寮傚父鍘熷洜锛�"+e); + ArrayList<String> locArrayList = new ArrayList<>(); + for (String locNo : locNoList){ + if (!locArrayList.contains(locNo)){ + locArrayList.add(locNo); + } } - return SUCCESS; + if (sign) { + EmptyPlateOutParam param = new EmptyPlateOutParam(); + param.setOutSite(staNo); + param.setLocNos(locArrayList); + try{ + workService.emptyPlateOut(param, 9999L); + }catch (Exception e){ + log.error(staNo+"鑷姩琛ョ┖鏉垮け璐ワ紒锛佸紓甯稿師鍥狅細"+e); + } + return SUCCESS; + } } } if (!sign){ @@ -214,10 +276,20 @@ public String staNoOther(String locNo){ int row = Utils.getRow(locNo); - if (row%4==0 || row%4==1){ - return getDeepLoc2(locNo,row); + if (row<=8){ + if (row%4==0 || row%4==1){ + return getDeepLoc2(locNo,row); + }else { + return getDeepLoc(locNo,row); + } + }else if (row>=21 && row<=27){ + if (row==21 || row==24 || row==27){ + return getDeepLoc2(locNo,row); + }else { + return locNo; + } }else { - return getDeepLoc(locNo,row); + return locNo; } } @@ -225,9 +297,9 @@ * 鑾峰彇 娣卞簱浣嶅搴旂殑娴呭簱浣嶅彿 */ public static String getDeepLoc2(String shallowLoc,int row) { - if (row == 1 || row == 5) { + if (row == 1 || row == 5 || row==21) { return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2); - } else if (row == 4 || row == 8) { + } else if (row == 4 || row == 8 || row == 24 || row == 27) { return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2); }else { return null; -- Gitblit v1.9.1