From d60e84cbedb554555578f071de95c4a8049183db Mon Sep 17 00:00:00 2001 From: yxFwq <1> Date: 星期五, 13 六月 2025 15:16:43 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java | 187 +++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 181 insertions(+), 6 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 4b9c022..35f9a89 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,12 @@ 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.CodeDetectionUtil; +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,10 +44,16 @@ private StaDescService staDescService; @Autowired private BasCrnpService basCrnpService; + @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; } // 鑾峰彇宸ヤ綔鍙� @@ -63,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); @@ -143,4 +150,172 @@ } return SUCCESS; } + + 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>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){ + 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)-3)[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; + } + if (!basCrnpService.checkSiteError(crnNo, false)){ + continue; + } + // 鑾峰彇搴撲綅 + 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)) { +// throw new CoolException("搴撲腑鏃犵┖鏉匡紒锛侊紒"); + 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()); + + //灏忔枡绠变即鐢熷嚭搴� + 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; + } + } + ArrayList<String> locArrayList = new ArrayList<>(); + for (String locNo : locNoList){ + if (!locArrayList.contains(locNo)){ + locArrayList.add(locNo); + } + } + 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){ + 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<=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 locNo; + } + } + + /** + * 鑾峰彇 娣卞簱浣嶅搴旂殑娴呭簱浣嶅彿 + */ + public static String getDeepLoc2(String shallowLoc,int row) { + if (row == 1 || row == 5 || row==21) { + return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2); + } else if (row == 4 || row == 8 || row == 24 || row == 27) { + 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; + } + } } -- Gitblit v1.9.1