From f69bc4779fa1abd564fdfea2c99aced36d90b5f8 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期一, 13 五月 2024 19:54:30 +0800 Subject: [PATCH] #二楼 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 464 ++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 375 insertions(+), 89 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 d33e81d..c8e653d 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -92,6 +92,8 @@ private EmptyBarrelInService emptyBarrelInService; @Autowired private WrkMastStaService wrkMastStaService; + @Autowired + private MatnrCodeService matnrCodeService; @Value("${wms.url}") private String wmsUrl; @@ -545,7 +547,7 @@ } - if (crnStn.getStaNo() == 1016 || crnStn.getStaNo() == 1019) { + if (crnStn.getStaNo() > 1013) { // 鏇存柊宸ヤ綔妗g姸鎬佷负13.RGV鎼繍涓� wrkMast.setWrkSts(13L); }else { @@ -1328,8 +1330,9 @@ // 绔欑偣鏉′欢鍒ゆ柇 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() - && staProtocol.isEmptyMk() && (staProtocol.getWorkNo() >= 9990 - && staProtocol.getWorkNo() <= 9999) && staProtocol.isPakMk()) { + && (staProtocol.isEmptyMk() || staProtocol.getStaNo() == 9999) +// && (staProtocol.getWorkNo() >= 9990 && staProtocol.getWorkNo() <= 9999) + && staProtocol.isPakMk()) { List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() .eq("sta_no", emptyInSta.getStaNo()) .eq("io_type", 10) @@ -2489,7 +2492,7 @@ } } - public synchronized void RGVTaskPut(){ + public synchronized void RGVTaskCreate(){ for (RgvSlave rgvSlave:slaveProperties.getRgv()){ ZyRgvThread rgvThread = (ZyRgvThread)SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); @@ -2507,8 +2510,14 @@ short sta1 = 0; short souSta2 = 0; short sta2 = 0; - short matnr = 0; - short matnr2 = 0; + Integer matnr = 0; + Integer matnr2 = 0; + String batch = ""; + String batch2 = ""; + short type = 0; + short type2 = 0; + short anfme = 0; + short anfme2 = 0; //宸ヤ綅涓�浠诲姟 for (RgvSlave.Sta inStn : rgvSlave.getInStn()){ @@ -2520,78 +2529,57 @@ } else { staProtocol = staProtocol.clone(); } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()){ - if (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() <9900){ + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk() && staProtocol.getWorkNo()>0){ + WrkMast wrkMast = wrkMastService.selectByworkNo(staProtocol.getWorkNo()); if (Cools.isEmpty(wrkMast)){ log.error("鏈壘鍒板伐浣滄。"); continue; } workNo1 = wrkMast.getWrkNo(); - souSta1 = Utils.getRgvStaNo(rgvSlave.getId(),wrkMast.getSourceStaNo()); + souSta1 = Utils.getRgvStaNo(rgvSlave.getId(),staProtocol.getSiteId()); sta1 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo()); work1 = true; devpThread.setPakMk(inStn.getSourceStaNo(),false); break; - } - 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 { - sta1 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getStaNo()); - } - work1 = true; - if (inStn.getSourcePlcId() == 4){ - matnr = staProtocol.getMatnr(); - } - devpThread.setPakMk(inStn.getSourceStaNo(),false); - break; + } } - - //宸ヤ綅浜屼换鍔� - for (RgvSlave.Sta inStn : rgvSlave.getInStn()){ - if (souSta1 == inStn.getSourceStaNo()){ - continue; - } - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getSourcePlcId()); - StaProtocol staProtocol = devpThread.getStation().get(inStn.getSourceStaNo()); - if (staProtocol == null) { - break; -// continue; - } else { - staProtocol = staProtocol.clone(); - } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()&& staProtocol.isPakMk()){ - if (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() <9900){ - WrkMast wrkMast = wrkMastService.selectByworkNo(staProtocol.getWorkNo()); - if (Cools.isEmpty(wrkMast)){ - log.error("鏈壘鍒板伐浣滄。"); - continue; - } - workNo2 = wrkMast.getWrkNo(); - souSta2 = inStn.getSourceStaNo().shortValue(); - sta2 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo()); - work2 = true; - devpThread.setPakMk(inStn.getSourceStaNo(),false); + if (rgvSlave.getId() != 3){ + //宸ヤ綅浜屼换鍔� + for (RgvSlave.Sta inStn : rgvSlave.getInStn()){ + if (souSta1 == inStn.getSourceStaNo()){ + continue; + } + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getSourcePlcId()); + StaProtocol staProtocol = devpThread.getStation().get(inStn.getSourceStaNo()); + if (staProtocol == null) { break; +// continue; + } else { + staProtocol = staProtocol.clone(); } - workNo2 = workNo++; - souSta2 = inStn.getSourceStaNo().shortValue(); - sta2 = inStn.getStaNo().shortValue(); - work2 = true; - if (inStn.getSourcePlcId() == 4){ - matnr2 = staProtocol.getMatnr(); - } - devpThread.setPakMk(inStn.getSourceStaNo(),false); - break; + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()&& staProtocol.isPakMk() && staProtocol.getWorkNo()>0){ + + WrkMast wrkMast = wrkMastService.selectByworkNo(staProtocol.getWorkNo()); + if (Cools.isEmpty(wrkMast)){ + log.error("鏈壘鍒板伐浣滄。"); + continue; + } + workNo2 = wrkMast.getWrkNo(); + souSta2 = inStn.getSourceStaNo().shortValue(); + sta2 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo()); + work2 = true; + devpThread.setPakMk(inStn.getSourceStaNo(),false); + break; + } + + } } + if (work1 || work2){ //rgv浠诲姟涓嬪彂-------------------------------------------------------------- @@ -2611,6 +2599,13 @@ command.setMatnr(matnr); command.setMatnr2(matnr2); + command.setBatch(batch); + command.setBatch2(batch2); + command.setAnfme(anfme); + command.setAnfme2(anfme2); + + command.setType(type); + command.setType2(type2); if (workNo1 == 0 && workNo2 !=0){ command.setTaskMode(RgvTaskModeType.FETCH_PUT2); // 浠诲姟妯″紡: 2鍙栨斁璐� @@ -2636,6 +2631,9 @@ public synchronized void RGVTaskOver() { for (RgvSlave rgvSlave:slaveProperties.getRgv()) { + if (rgvSlave.getId() ==2){ + continue; + } ZyRgvThread rgvThread = (ZyRgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); if (Cools.isEmpty(rgvProtocol)){ @@ -2646,12 +2644,84 @@ //宸ヤ綅涓�浠诲姟瀹屾垚 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); + } + } + + }catch (Exception e){ + log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鍑洪敊!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); + continue; + } + + + 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); + } + } + }catch (Exception e){ + log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鍑洪敊!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); + continue; + } + + + + MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4,new RgvCommand())); + log.info("{}鍙穜gv宸ヤ綅浜屽伐浣滃畬鎴愬浣�,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo2()); + } + } + } + + //浜屽彿rgv杈撻�佺嚎鍛戒护涓嬪彂 + public synchronized void RGVTaskput() { + for (RgvSlave rgvSlave:slaveProperties.getRgv()) { + if (rgvSlave.getId() ==2){ + continue; + } + ZyRgvThread rgvThread = (ZyRgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); + RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); + if (Cools.isEmpty(rgvProtocol)){ + continue; + }else { + rgvProtocol = rgvProtocol.clone(); + } + + //宸ヤ綅涓�浠诲姟瀹屾垚 + if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.OUTSTN1 && rgvProtocol.getLoaded1() == 1) { WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo1()); + WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo1()); if (Cools.isEmpty(wrkMastSta)){ log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); 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) { @@ -2659,29 +2729,26 @@ } else { staProtocol = staProtocol.clone(); } - - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk()){ + if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.isPakMk()){ staProtocol.setWorkNo(wrkMastSta.getWrkNo().shortValue()); - staProtocol.setStaNo(wrkMastSta.getWrkEnd().shortValue()); - if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) { - continue; - } + staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); + MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol)); } - } - - MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(3,new RgvCommand())); - log.info("{}鍙穜gv宸ヤ綅涓�宸ヤ綔瀹屾垚澶嶄綅,宸ヤ綔鍙�:{}",rgvSlave.getId(),wrkMastSta.getWrkNo()); } //宸ヤ綅浜屼换鍔″畬鎴� - if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING2 && rgvProtocol.getLoaded1() == 0) { - WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo2(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2()); + if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.OUTSTN8 && rgvProtocol.getLoaded2() == 1) { + WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(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()){ + continue; + } SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getStaPlcId()); StaProtocol staProtocol = devpThread.getStation().get(outStn.getStaNo()); if (staProtocol == null) { @@ -2689,18 +2756,12 @@ } else { staProtocol = staProtocol.clone(); } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk()){ -// staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); -//// staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); -// if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) { -// continue; -// } + if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.isPakMk()){ + staProtocol.setWorkNo(wrkMastSta.getWrkNo2().shortValue()); + staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); + MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol)); } - } - - MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4,new RgvCommand())); - log.info("{}鍙穜gv宸ヤ綅浜屽伐浣滃畬鎴愬浣�,宸ヤ綔鍙�:{}",rgvSlave.getId(),wrkMastSta.getWrkNo2()); } } } @@ -2738,8 +2799,12 @@ if (outStn.getStaPlcId() == 2){ if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.isPakMk()){ staProtocol.setWorkNo(wrkMastSta.getWrkNo().shortValue()); - staProtocol.setStaNo((short) 2106); - staProtocol.setMatnr(wrkMastSta.getMatnr1().shortValue()); + if (wrkMastSta.getType() == 1){ + staProtocol.setStaNo((short) 9999); + }else { + staProtocol.setStaNo((short) 2106); + } + staProtocol.setMatnr(wrkMastSta.getMatnr1()); if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) { continue; @@ -2751,8 +2816,8 @@ } //宸ヤ綅浜屼换鍔″畬鎴� - if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.OUTSTN8 && rgvProtocol.getLoaded1() == 1) { - WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2()); + if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.OUTSTN8 && rgvProtocol.getLoaded2() == 1) { + WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo2(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2()); if (Cools.isEmpty(wrkMastSta)){ log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2()); continue; @@ -2768,8 +2833,13 @@ if (outStn.getStaPlcId() == 2){ if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.isPakMk()){ staProtocol.setWorkNo(wrkMastSta.getWrkNo2().shortValue()); - staProtocol.setStaNo((short) 2106); - staProtocol.setMatnr(wrkMastSta.getMatnr2().shortValue()); + if (wrkMastSta.getType2() == 1){ + staProtocol.setStaNo((short) 9999); + }else { + staProtocol.setStaNo((short) 2106); + } + + staProtocol.setMatnr(wrkMastSta.getMatnr2()); if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) { continue; @@ -2797,12 +2867,50 @@ //宸ヤ綅涓�浠诲姟瀹屾垚 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); + } + } + + }catch (Exception e){ + log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鍑洪敊!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); + continue; + } + + 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.getLoaded1() == 0) { + 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); + } + } + + }catch (Exception e){ + log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鍑洪敊!!!!!!!!!!!!!!!!,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); + continue; + } + MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4,new RgvCommand())); @@ -2832,7 +2940,185 @@ wrkMastSta.setWrkType(command.getTaskMode().intValue()); wrkMastSta.setMatnr1(command.getMatnr().intValue()); wrkMastSta.setMatnr2(command.getMatnr2().intValue()); + 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()); return wrkMastStaService.insert(wrkMastSta); } + //浜屾湡缁勬墭 + public synchronized void generateStoreWrkFile2() { + // 鏍规嵁杈撻�佺嚎plc閬嶅巻 + for (DevpSlave devp : slaveProperties.getDevp()) { + if (devp.getId() != 2){ + continue; + } + // 閬嶅巻鍏ュ簱鍙� + for (DevpSlave.Sta inSta : devp.getInSta()) { + // 鑾峰彇鏉$爜鎵弿浠俊鎭� + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode()); + if (barcodeThread == null) { + continue; + } + String barcode = barcodeThread.getBarcode(); + // 鑾峰彇鍏ュ簱绔欎俊鎭� + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + if (!Cools.isEmpty(barcode)) { + log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode); + if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) { + continue; + } + } else { + // led 寮傚父鏄剧ず +// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); +// if (ledThread != null) { +// String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯"; +// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); +// } + continue; + } + // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 + if (staProtocol.isAutoing() + && staProtocol.isLoading() + && staProtocol.isInEnable() + && !staProtocol.isEmptyMk() + && staProtocol.getStaNo() != 9999 + && staProtocol.isPakMk()) { + + if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) { + log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode); + //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撳埌 + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); + if (ledThread != null) { + String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯"; + MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); + } + continue; + } + + // 鍒ゆ柇閲嶅宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + if (barcode.length() == 8) { + wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode); + if (wrkMast != null) { + log.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo()); + continue; + } + } +// 鑾峰彇鍏ュ簱閫氱煡妗� + List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N")); + if (waitPakins.isEmpty()) { + try { + CreateComb(barcode,staProtocol.getMatnr().intValue(),staProtocol.getWorkNo().intValue()); + }catch (IOException e) { + throw new CoolException(e); + } + }else { + try { + LocTypeDto locTypeDto = new LocTypeDto(staProtocol); + SearchLocParam param = new SearchLocParam(); + param.setBarcode(barcode); + param.setIoType(1); + param.setSourceStaNo(inSta.getStaNo()); + param.setLocType1(locTypeDto.getLocType1()); + String response = new HttpHandler.Builder() + .setUri(wmsUrl) + .setPath("/rpc/pakin/loc/v1") + .setJson(JSON.toJSONString(param)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); + if (jsonObject.getInteger("code").equals(200)) { + StartupDto dto = jsonObject.getObject("data", StartupDto.class); + + barcodeThread.setBarcode(""); + staProtocol.setWorkNo(dto.getWorkNo().shortValue()); + staProtocol.setStaNo(dto.getStaNo().shortValue()); + devpThread.setPakMk(staProtocol.getSiteId(), false); + ledThread.errorReset(); + boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + if (!result) { + throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); + } + } else if(jsonObject.getInteger("code").equals(700)) { + log.error(barcode + "鎵樼洏璇嗗埆寮傚父锛岃鍏堣繘琛岀粍鎵橈紒"); + // led 寮傚父鏄剧ず + ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); + if (ledThread != null) { + String errorMsg = barcode + "鎵樼洏璇嗗埆寮傚父锛岃鍏堣繘琛岀粍鎵橈紒"; + MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); + } + } else { + log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response); + } + + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + } + + + } + + } + } + + } + + public void CreateComb(String barcode,Integer code,Integer wrkNo) throws IOException { + String batch = ""; + Double anfme = 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("鏈壘鍒板搴旂殑浠诲姟淇℃伅"); + } + batch = wrkMastSta.getBatch2(); + anfme = wrkMastSta.getAnfme2().doubleValue(); + code = wrkMastSta.getMatnr2(); + }else { + batch = wrkMastSta.getBatch(); + anfme = wrkMastSta.getAnfme().doubleValue(); + code = wrkMastSta.getMatnr1(); + } + MatnrCode matnrCode = matnrCodeService.selectByCode(code); + if (Cools.isEmpty(matnrCode)){ + throw new CoolException("鏈壘鍒板搴旂殑鐗╂枡淇℃伅"); + } + CombParam combParam = new CombParam(); + ArrayList<CombParam.CombMat> combMats = new ArrayList<>(); + CombParam.CombMat combMat = new CombParam.CombMat(); + combParam.setBarcode(barcode); + combMat.setMatnr(matnrCode.getMatnr()); + combMat.setBatch(batch); + combMat.setAnfme(anfme); + + combMats.add(combMat); + combParam.setCombMats(combMats); + + String response = new HttpHandler.Builder() + .setUri(wmsUrl) + .setPath("/mobile/comb/auth") + .setJson(JSON.toJSONString(combParam)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + if (jsonObject.getInteger("code").equals(200)) { + + } + } + } -- Gitblit v1.9.1