From 94ebec210cd402267366c2241a7be3ef4601f67e Mon Sep 17 00:00:00 2001 From: zjj <zjj123456> Date: 星期日, 19 五月 2024 15:28:20 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 384 +++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 302 insertions(+), 82 deletions(-) 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 c8e653d..8d43987 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -94,6 +94,8 @@ private WrkMastStaService wrkMastStaService; @Autowired private MatnrCodeService matnrCodeService; + @Autowired + private WaitPakinService waitPakinService; @Value("${wms.url}") private String wmsUrl; @@ -2065,10 +2067,14 @@ List<StaDesc> staDescs = staDescService.selectList(new EntityWrapper<StaDesc>().eq("type_no", 10).eq("stn_no", sta.getStaNo())); for (StaDesc staDesc:staDescs){ - BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", staDesc.getCrnStn())); + BasDevp basDevp = new BasDevp(); - WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("crn_no", staDesc.getCrnNo()).gt("io_type", 100)); - if (!Cools.isEmpty(wrkMast)){ + if (staDesc.getCrnNo() == 1){ + basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 1004)); + } else if (staDesc.getCrnNo() == 2) { + basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 1008)); + } + if (Cools.isEmpty(basDevp)){ continue; } @@ -2146,11 +2152,19 @@ // && staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 0 ) { - WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(sta.getStaNo()); + Integer staNo = sta.getStaNo(); + switch (staProtocol.getSiteId()){ + case 4007: + staNo = 4002;break; + case 4016: + staNo = 4011;break; + } + WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(staNo); if (null != pakoutEmpty) { return; } - List<StaDesc> staDescs = staDescService.selectList(new EntityWrapper<StaDesc>().eq("stn_no", sta.getStaNo())); + + List<StaDesc> staDescs = staDescService.selectList(new EntityWrapper<StaDesc>().eq("stn_no", staNo)); for (StaDesc staDesc: staDescs){ BasCrnp basCrnp = basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no", staDesc.getCrnNo())); if (!basCrnp.getCrnSts().equals(3) || basCrnp.getCrnErr() != 0){ @@ -2159,6 +2173,7 @@ try { HashMap<String, Object> map = new HashMap<>(); map.put("crnNo", staDesc.getCrnNo());//鐩爣绔� + map.put("staNo",staDesc.getStnNo()); String response = new HttpHandler.Builder() .setUri(wmsUrl) .setParams(map) @@ -2265,7 +2280,7 @@ crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪 crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰 - crnCommand.setDestinationPosX(locMast.getRow1()==9?(short)4:(short)5); // 鐩爣搴撲綅鎺� + crnCommand.setDestinationPosX(locMast.getRow1().shortValue()); // 鐩爣搴撲綅鎺� crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒� crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞� crnCommand.setLocType1(locMast.getLocType1().shortValue()); // 璐х墿绫诲瀷 @@ -2410,7 +2425,7 @@ crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 - crnCommand.setSourcePosX(locMast.getRow1()==9?(short)4:(short)5); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosX(locMast.getRow1().shortValue()); // 婧愬簱浣嶆帓 crnCommand.setSourcePosY(locMast.getBay1().shortValue()); // 婧愬簱浣嶅垪 crnCommand.setSourcePosZ(locMast.getLev1().shortValue()); // 婧愬簱浣嶅眰 crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺� @@ -2501,6 +2516,10 @@ }else { rgvProtocol = rgvProtocol.clone(); } + List<WrkMastSta> wrkMastStas = wrkMastStaService.selectRGVTask1(rgvSlave.getId()); + if (!Cools.isEmpty(wrkMastStas)){ + continue; + } if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.IDLE && rgvProtocol.getLoaded1() == 0){ boolean work1 = false; boolean work2 = false; @@ -2518,18 +2537,23 @@ short type2 = 0; short anfme = 0; short anfme2 = 0; + Double weight = 0d; + Double weight2 = 0d; //宸ヤ綅涓�浠诲姟 for (RgvSlave.Sta inStn : rgvSlave.getInStn()){ + if (rgvSlave.getId() == 1 && inStn.getSourceStaNo() == 2114){ + continue; + } SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getSourcePlcId()); StaProtocol staProtocol = devpThread.getStation().get(inStn.getSourceStaNo()); if (staProtocol == null) { - break; -// continue; +// break; + continue; } else { staProtocol = staProtocol.clone(); } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk() && staProtocol.getWorkNo()>0){ + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk() && (staProtocol.getWorkNo()>0 && staProtocol.getWorkNo()<9900)){ WrkMast wrkMast = wrkMastService.selectByworkNo(staProtocol.getWorkNo()); if (Cools.isEmpty(wrkMast)){ @@ -2544,6 +2568,36 @@ break; + } else if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk() && (staProtocol.getWorkNo()>=9900 || staProtocol.getWorkNo()==0)) { + if (rgvSlave.getId() != 2 ){ + continue; + } + workNo1 = workNo++; + souSta1 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getSourceStaNo()); + if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 1){ + sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2103); + } else if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 2) { + sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2002); + } else if (inStn.getSourceStaNo() == 2102 && staProtocol.isFullPlt()) { + sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2301); + } else { + sta1 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getStaNo()); + } + + if (inStn.getSourceStaNo() == 2102 && staProtocol.isEmptyMk()){ //鍖哄垎绌烘澘 + type = 1; + } + if(inStn.getSourceStaNo() == 2102){ + weight = staProtocol.getWeight().doubleValue(); + } + + work1 = true; + if (inStn.getSourcePlcId() == 4 || inStn.getSourcePlcId() ==5){ //鐏岃绔欓渶瑕佽幏鍙栬緭閫佺嚎鐗╂枡浠g爜 + matnr = staProtocol.getMatnr(); + } + + devpThread.setPakMk(inStn.getSourceStaNo(),false); + break; } } @@ -2553,15 +2607,18 @@ if (souSta1 == inStn.getSourceStaNo()){ continue; } + if (rgvSlave.getId() == 1 && inStn.getSourceStaNo() == 1014){ + continue; + } SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getSourcePlcId()); StaProtocol staProtocol = devpThread.getStation().get(inStn.getSourceStaNo()); if (staProtocol == null) { - break; -// continue; +// break; + continue; } else { staProtocol = staProtocol.clone(); } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()&& staProtocol.isPakMk() && staProtocol.getWorkNo()>0){ + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()&& staProtocol.isPakMk() && (staProtocol.getWorkNo()>0 && staProtocol.getWorkNo()<9900)){ WrkMast wrkMast = wrkMastService.selectByworkNo(staProtocol.getWorkNo()); if (Cools.isEmpty(wrkMast)){ @@ -2569,12 +2626,42 @@ continue; } workNo2 = wrkMast.getWrkNo(); - souSta2 = inStn.getSourceStaNo().shortValue(); + souSta2 = Utils.getRgvStaNo(rgvSlave.getId(),staProtocol.getSiteId()); sta2 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo()); work2 = true; devpThread.setPakMk(inStn.getSourceStaNo(),false); break; + } else if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk() && (staProtocol.getWorkNo()>=9900 || staProtocol.getWorkNo()==0)) { + if (rgvSlave.getId() != 2 ){ + continue; } + workNo2 = workNo++; + souSta2 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getSourceStaNo()); + if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 1){ + sta2 = Utils.getRgvStaNo(rgvSlave.getId(),2103); + } else if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 2) { + sta2 = Utils.getRgvStaNo(rgvSlave.getId(),2002); + }else if (inStn.getSourceStaNo() == 2102 && staProtocol.isFullPlt()) { + sta2 = Utils.getRgvStaNo(rgvSlave.getId(),2301); + } else { + sta2 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getStaNo()); + } + + if (inStn.getSourceStaNo() == 2102 && staProtocol.isEmptyMk()){ //鍖哄垎绌烘澘 + type2 = 1; + } + + if(inStn.getSourceStaNo() == 2102){ + weight2 = staProtocol.getWeight().doubleValue(); + } + + work2 = true; + if (inStn.getSourcePlcId() == 4){ + matnr2 = staProtocol.getMatnr(); + } + devpThread.setPakMk(inStn.getSourceStaNo(),false); + break; + } } @@ -2606,6 +2693,9 @@ command.setType(type); command.setType2(type2); + + command.setWeight(weight); + command.setWeight2(weight2); if (workNo1 == 0 && workNo2 !=0){ command.setTaskMode(RgvTaskModeType.FETCH_PUT2); // 浠诲姟妯″紡: 2鍙栨斁璐� @@ -2646,16 +2736,37 @@ if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING && rgvProtocol.getLoaded1() == 0) { try { - Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo1()); - WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper); - if (Cools.isEmpty(wrkMastSta1)){ - log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); - }else { - if (wrkMastSta1.getWrkType() == 8 ){ - wrkMastSta1.setWrkSts(3); - wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper); + boolean offer = MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(3, new RgvCommand())); + log.info("{}鍙穜gv宸ヤ綅涓�宸ヤ綔瀹屾垚澶嶄綅,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo1()); + if (offer){ + //瀹屾垚rgv浠诲姟 + Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo1()); + WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper); + if (Cools.isEmpty(wrkMastSta1)){ + log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); + }else { + if (wrkMastSta1.getWrkType() == 8 ){ + wrkMastSta1.setWrkSts(3); + wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper); + } + } + + //瀹屾垚宸ヤ綔妗d换鍔� + if (rgvSlave.getId() != 1){ + WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo1()); + if (Cools.isEmpty(wrkMast)){ + log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); + }else { + if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 101){ + Date date = new Date(); + wrkMast.setWrkSts(14L); + wrkMast.setModiTime(date); + wrkMastService.updateById(wrkMast); + } + } } } + }catch (Exception e){ log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鍑洪敊!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); @@ -2663,26 +2774,47 @@ } - MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(3,new RgvCommand())); - log.info("{}鍙穜gv宸ヤ綅涓�宸ヤ綔瀹屾垚澶嶄綅,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo1()); + } //宸ヤ綅浜屼换鍔″畬鎴� if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING2 && rgvProtocol.getLoaded2() == 0) { try { - Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo2()); - WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper); - if (Cools.isEmpty(wrkMastSta1)){ - log.error("瀹屾垚{}鍙疯溅宸ヤ綅浜屼换鍔℃湭鎵惧埌瀵瑰簲宸ヤ綔浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2()); - }else { - if (wrkMastSta1.getWrkType() == 9 ){ - wrkMastSta1.setWrkSts(3); - wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper); - }else if (wrkMastSta1.getWrkType() == 1){ - wrkMastSta1.setWrkSts(3); - wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper); + boolean offer = MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4, new RgvCommand())); + log.info("{}鍙穜gv宸ヤ綅浜屽伐浣滃畬鎴愬浣�,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo2()); + if (offer){ + //瀹屾垚rgv浠诲姟 + Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no2", rgvProtocol.getTaskNo2()); + WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper); + if (Cools.isEmpty(wrkMastSta1)){ + log.error("瀹屾垚{}鍙疯溅宸ヤ綅浜屼换鍔℃湭鎵惧埌瀵瑰簲宸ヤ綔浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2()); + }else { + if (wrkMastSta1.getWrkType() == 9 ){ + wrkMastSta1.setWrkSts(3); + wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper); + }else if (wrkMastSta1.getWrkType() == 1){ + wrkMastSta1.setWrkSts(3); + wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper); + } } + + //瀹屾垚宸ヤ綔妗d换鍔� + if (rgvSlave.getId() != 1){ + WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo2()); + if (Cools.isEmpty(wrkMast)){ + log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2()); + }else { + if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 101){ + Date date = new Date(); + wrkMast.setWrkSts(14L); + wrkMast.setModiTime(date); + wrkMastService.updateById(wrkMast); + } + } + } + } + }catch (Exception e){ log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鍑洪敊!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); continue; @@ -2690,8 +2822,7 @@ - MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4,new RgvCommand())); - log.info("{}鍙穜gv宸ヤ綅浜屽伐浣滃畬鎴愬浣�,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo2()); + } } } @@ -2712,7 +2843,7 @@ //宸ヤ綅涓�浠诲姟瀹屾垚 if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.OUTSTN1 && rgvProtocol.getLoaded1() == 1) { - WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo1()); + WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvSlave.getId(), rgvProtocol.getTaskNo1()); WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo1()); if (Cools.isEmpty(wrkMastSta)){ log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); @@ -2731,7 +2862,12 @@ } if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.isPakMk()){ staProtocol.setWorkNo(wrkMastSta.getWrkNo().shortValue()); - staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); + if (rgvSlave.getId() == 3 && outStn.getStaPlcId() == 6){ + staProtocol.setStaNo((short)2401); + }else { + staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); + } + MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol)); } } @@ -2739,16 +2875,16 @@ //宸ヤ綅浜屼换鍔″畬鎴� if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.OUTSTN8 && rgvProtocol.getLoaded2() == 1) { - WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2()); + WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo2(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2()); WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo2()); if (Cools.isEmpty(wrkMastSta)){ log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2()); continue; } for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){ - if (wrkMastSta.getStaEnd() != outStn.getStaNo()){ + if (!Objects.equals(Utils.getStaNo(rgvSlave.getId(), wrkMastSta.getStaEnd()), outStn.getStaNo())){ continue; - } + }//鍒ゆ柇鏄惁涓哄伐浣滄。绔欑偣 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getStaPlcId()); StaProtocol staProtocol = devpThread.getStation().get(outStn.getStaNo()); if (staProtocol == null) { @@ -2788,6 +2924,9 @@ continue; } for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){ + if (!Objects.equals(Utils.getStaNo(rgvSlave.getId(), wrkMastSta.getWrkEnd()), outStn.getStaNo())){ + continue; + } SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getStaPlcId()); StaProtocol staProtocol = devpThread.getStation().get(outStn.getStaNo()); if (staProtocol == null) { @@ -2823,6 +2962,9 @@ continue; } for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){ + if (!Objects.equals(Utils.getStaNo(rgvSlave.getId(), wrkMastSta.getStaEnd()), outStn.getStaNo())){ + continue; + } SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getStaPlcId()); StaProtocol staProtocol = devpThread.getStation().get(outStn.getStaNo()); if (staProtocol == null) { @@ -2868,16 +3010,37 @@ if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING && rgvProtocol.getLoaded1() == 0) { try { - Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo1()); - WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper); - if (Cools.isEmpty(wrkMastSta1)){ - log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); - }else { - if (wrkMastSta1.getWrkType() == 8 ){ - wrkMastSta1.setWrkSts(3); - wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper); + boolean offer = MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(3, new RgvCommand())); + log.info("{}鍙穜gv宸ヤ綅涓�宸ヤ綔瀹屾垚澶嶄綅,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo1()); + if (offer){ + + Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo1()); + WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper); + if (Cools.isEmpty(wrkMastSta1)){ + log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); + }else { + if (wrkMastSta1.getWrkType() == 8 ){ + wrkMastSta1.setWrkSts(3); + wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper); + } } + + //瀹屾垚宸ヤ綔妗d换鍔� + WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo1()); + if (Cools.isEmpty(wrkMast)){ + log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); + }else { + if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 101){ + Date date = new Date(); + wrkMast.setWrkSts(14L); + wrkMast.setModiTime(date); + wrkMastService.updateById(wrkMast); + } + } + + } + }catch (Exception e){ log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鍑洪敊!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); @@ -2885,26 +3048,44 @@ } - MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(3,new RgvCommand())); - log.info("{}鍙穜gv宸ヤ綅涓�宸ヤ綔瀹屾垚澶嶄綅,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo1()); + } //宸ヤ綅浜屼换鍔″畬鎴� if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING2 && rgvProtocol.getLoaded2() == 0) { try { - Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo2()); - WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper); - if (Cools.isEmpty(wrkMastSta1)){ - log.error("瀹屾垚{}鍙疯溅宸ヤ綅浜屼换鍔℃湭鎵惧埌瀵瑰簲宸ヤ綔浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2()); - }else { - if (wrkMastSta1.getWrkType() == 9 ){ - wrkMastSta1.setWrkSts(3); - wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper); - }else if (wrkMastSta1.getWrkType() == 1){ - wrkMastSta1.setWrkSts(3); - wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper); + boolean offer = MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4, new RgvCommand())); + log.info("{}鍙穜gv宸ヤ綅浜屽伐浣滃畬鎴愬浣�,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo2()); + if (offer){ + Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no2", rgvProtocol.getTaskNo2()); + WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper); + if (Cools.isEmpty(wrkMastSta1)){ + log.error("瀹屾垚{}鍙疯溅宸ヤ綅浜屼换鍔℃湭鎵惧埌瀵瑰簲宸ヤ綔浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2()); + }else { + if (wrkMastSta1.getWrkType() == 9 ){ + wrkMastSta1.setWrkSts(3); + wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper); + }else if (wrkMastSta1.getWrkType() == 1){ + wrkMastSta1.setWrkSts(3); + wrkMastStaService.update(wrkMastSta1,wrkMastStaWrapper); + } } + + //瀹屾垚宸ヤ綔妗d换鍔� + WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo2()); + if (Cools.isEmpty(wrkMast)){ + log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2()); + }else { + if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 101){ + Date date = new Date(); + wrkMast.setWrkSts(14L); + wrkMast.setModiTime(date); + wrkMastService.updateById(wrkMast); + } + } + } + }catch (Exception e){ log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鍑洪敊!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); @@ -2913,18 +3094,33 @@ - MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4,new RgvCommand())); - log.info("{}鍙穜gv宸ヤ綅浜屽伐浣滃畬鎴愬浣�,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo2()); + } } } public boolean rgvTaskSave(RgvCommand command){ - Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", command.getRgvNo()).eq("wrk_no", command.getTaskNo1()); - WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper); - if (!Cools.isEmpty(wrkMastSta1)){ - wrkMastStaService.delete(wrkMastStaWrapper); +// Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", command.getRgvNo()).eq("wrk_no", command.getTaskNo1()); + if (command.getTaskNo1() > 0){ + List<WrkMastSta> wrkMastSta1 = wrkMastStaService.selectBywrkNoHistoricalTasks(command.getRgvNo(),command.getTaskNo1()); + if (!Cools.isEmpty(wrkMastSta1)){ + for (WrkMastSta wrkMastSta :wrkMastSta1){ + wrkMastStaService.deleteById(wrkMastSta); + } + + } } + if (command.getTaskNo2() > 0){ + List<WrkMastSta> wrkMastSta1 = wrkMastStaService.selectBywrkNoHistoricalTasks2(command.getRgvNo(),command.getTaskNo2()); + if (!Cools.isEmpty(wrkMastSta1)){ + for (WrkMastSta wrkMastSta :wrkMastSta1){ + wrkMastStaService.deleteById(wrkMastSta); + } + + } + } + + WrkMastSta wrkMastSta = new WrkMastSta(); wrkMastSta.setWrkNo(Long.valueOf(command.getTaskNo1())); wrkMastSta.setWrkNo2(Long.valueOf(command.getTaskNo2())); @@ -2938,14 +3134,17 @@ wrkMastSta.setUpdateTime(now); wrkMastSta.setWrkCrn(command.getRgvNo()); wrkMastSta.setWrkType(command.getTaskMode().intValue()); - wrkMastSta.setMatnr1(command.getMatnr().intValue()); - wrkMastSta.setMatnr2(command.getMatnr2().intValue()); + wrkMastSta.setMatnr1(command.getMatnr()); + wrkMastSta.setMatnr2(command.getMatnr2()); wrkMastSta.setType(command.getType().intValue()); wrkMastSta.setType2(command.getType2().intValue()); wrkMastSta.setBatch(command.getBatch()); wrkMastSta.setBatch2(command.getBatch2()); wrkMastSta.setAnfme(command.getAnfme().intValue()); wrkMastSta.setAnfme2(command.getAnfme2().intValue()); + wrkMastSta.setWeight(command.getWeight()); + wrkMastSta.setWeight2(command.getWeight2()); + return wrkMastStaService.insert(wrkMastSta); } @@ -3015,14 +3214,26 @@ } } // 鑾峰彇鍏ュ簱閫氱煡妗� - List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N")); - if (waitPakins.isEmpty()) { + WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N")); + if (Cools.isEmpty(waitPakin)) { try { - CreateComb(barcode,staProtocol.getMatnr().intValue(),staProtocol.getWorkNo().intValue()); + CreateComb(barcode, staProtocol.getMatnr(),staProtocol.getWorkNo().intValue(),staProtocol.getBatch()); }catch (IOException e) { throw new CoolException(e); } - }else { + } else if (waitPakin.getWeight() == null) { + WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>().eq("wrk_no", staProtocol.getWorkNo().intValue())); + if (Cools.isEmpty(wrkMastSta)){ + wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>().eq("wrk_no2", staProtocol.getWorkNo().intValue())); + if (Cools.isEmpty(wrkMastSta)){ + throw new CoolException("鏈壘鍒板搴旂殑浠诲姟淇℃伅"); + } + waitPakin.setWeight(wrkMastSta.getWeight2()); + }else { + waitPakin.setWeight(wrkMastSta.getWeight()); + } + waitPakinService.update(waitPakin,new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N")); + } else { try { LocTypeDto locTypeDto = new LocTypeDto(staProtocol); SearchLocParam param = new SearchLocParam(); @@ -3076,23 +3287,30 @@ } - public void CreateComb(String barcode,Integer code,Integer wrkNo) throws IOException { - String batch = ""; - Double anfme = 0D; + public void CreateComb(String barcode,Integer code,Integer wrkNo,String batch) throws IOException { + Double anfme = 0d; + Double weight = 0d; WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>().eq("wrk_no", wrkNo)); if (Cools.isEmpty(wrkMastSta)){ wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>().eq("wrk_no2", wrkNo)); if (Cools.isEmpty(wrkMastSta)){ - throw new CoolException("鏈壘鍒板搴旂殑浠诲姟淇℃伅"); + if (code >0 && !Cools.isEmpty(batch)){ + anfme = 1d; + }else { + throw new CoolException("鏈壘鍒板搴旂殑浠诲姟淇℃伅"); + } + }else { + batch = wrkMastSta.getBatch2(); + anfme = wrkMastSta.getAnfme2().doubleValue(); + code = wrkMastSta.getMatnr2(); + weight = wrkMastSta.getWeight2(); } - batch = wrkMastSta.getBatch2(); - anfme = wrkMastSta.getAnfme2().doubleValue(); - code = wrkMastSta.getMatnr2(); }else { batch = wrkMastSta.getBatch(); anfme = wrkMastSta.getAnfme().doubleValue(); code = wrkMastSta.getMatnr1(); + weight = wrkMastSta.getWeight(); } MatnrCode matnrCode = matnrCodeService.selectByCode(code); if (Cools.isEmpty(matnrCode)){ @@ -3118,6 +3336,8 @@ JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code").equals(200)) { + }else { + log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/mobile/comb/auth", JSON.toJSONString(combParam), response); } } -- Gitblit v1.9.1