From 6cfcb307f01b9550b6cd67321f2c1db345b4da19 Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期一, 13 一月 2025 16:07:21 +0800 Subject: [PATCH] 优化自动移库逻辑及调拨信息上报 --- src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java | 308 +++++++++++++++++++++++++++++--------------------- 1 files changed, 177 insertions(+), 131 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java index 9b0d1aa..22b7f22 100644 --- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java @@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; -import com.core.common.R; import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; import com.zy.asrs.entity.*; @@ -16,7 +15,6 @@ import com.zy.asrs.service.*; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; -import com.zy.common.utils.HttpHandler; import lombok.Synchronized; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -45,10 +43,10 @@ //绉诲簱绫诲瀷鏁扮粍 private static final List<Integer> MOVE_TYPE_List = new ArrayList<Integer>() {{ add(11); - add(101); add(12); add(53); add(101); + add(103); add(108); add(111); add(112); @@ -59,6 +57,8 @@ @Value("${agvBasDev.maxWorkNum}") private int maxWrokNum; + @Value("${mes.report}") + private Boolean flag; @Value("${mes.url}") private String url; @Value("${mes.getTokenUrl}") @@ -108,21 +108,22 @@ @Autowired private OrderDetlService orderDetlService; @Autowired - private OrderDetlService orderDetlService; - @Autowired private SnowflakeIdWorker snowflakeIdWorker; @Autowired private FlowLogService flowLogService; + + @Autowired + private ReportDataService reportDataService; + @Transactional public ReturnT<String> completedPutWayWrk(AgvWrkMast agvWrkMast) { //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏 List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); - try { long flowId = snowflakeIdWorker.nextId(); Date now = new Date(); - try{ + try { int wrkNo = agvWrkMast.getWrkNo(); String barcode = agvWrkMast.getBarcode(); String orderNo = getOrderNoByWrkNo(wrkNo); @@ -134,6 +135,26 @@ } + Integer pltType = agvWrkMast.getPltType(); + if (Cools.isEmpty(pltType)) { + AgvLocMast agvLocMast; + if (!Cools.isEmpty(agvWrkMast.getLocNo())) { + agvLocMast = agvLocMastService.selectById(agvWrkMast.getLocNo()); + if (agvLocMast != null) { + pltType = agvLocMast.getPltType(); + } + } + if (!Cools.isEmpty(agvWrkMast.getSourceLocNo())) { + agvLocMast = agvLocMastService.selectById(agvWrkMast.getSourceLocNo()); + if (agvLocMast != null) { + pltType = agvLocMast.getPltType(); + } + } + if (pltType != null) { + agvWrkMast.setPltType(pltType); + } + log.info("宸ヤ綔鍙�--{},浠撳簱缂栫爜锛歿}", agvWrkMast.getWrkNo(), agvWrkMast.getPltType()); + } agvWrkMast.setModiTime(new Date()); //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚 agvWrkMast.setWrkSts(207L); @@ -208,7 +229,8 @@ // if (!flowLogService.insert(flowLog)) { // throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); // } - agvLocDetlService.updateAnfme(updateAnfme,agvLocDetl.getLocNo(),agvLocDetl.getMatnr(),agvLocDetl.getBatch(),agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime()); + log.info("53娣诲姞搴撳瓨鏃ュ織:{},{}", updateAnfme, JSON.toJSON(agvLocDetl)); + agvLocDetlService.updateAnfme(updateAnfme, agvLocDetl.getLocNo(), agvLocDetl.getMatnr(), agvLocDetl.getBatch(), agvLocDetl.getThreeCode(), agvLocDetl.getDeadTime()); } //AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime()); @@ -225,95 +247,97 @@ agvLocDetl.sync(agvWrkDetl); agvLocDetl.setModiTime(now); agvLocDetl.setAppeTime(now); + log.info("57娣诲姞搴撳瓨鏃ュ織:{}", JSON.toJSON(agvLocDetl)); if (!agvLocDetlService.insert(agvLocDetl)) { throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); } }); // 鏇存柊绔欑偣 + 搴撲綅鐘舵�� 婧愬簱浣嶆槸绔欑偣 - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue()); - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); break; case 58: - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue()); break; case 108: case 114: - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); //鏇存柊搴撳瓨鏄庣粏 - agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo()); + agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(), agvWrkMast.getLocNo()); //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue(), "", (short) 0); break; case 109: // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅 - if (agvWrkMast.getLocNo().substring(0,2).equals("DB")) { - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + if (agvWrkMast.getLocNo().substring(0, 2).equals("DB")) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); // 鎺ラ┏浣� -- 搴撲綅 } else { - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "D", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); } // 鎺ラ┏浣� -- 搴撲綅 - if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) { - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0); + if (agvWrkMast.getSourceLocNo().substring(0, 2).equals("DB")) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", (short) 0); // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅 } else { //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue(), "", (short) 0); } break; case 111: // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅 - if (agvWrkMast.getLocNo().substring(0,2).equals("DB")) { - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + if (agvWrkMast.getLocNo().substring(0, 2).equals("DB")) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); // 鎺ラ┏浣� -- 搴撲綅 } else { - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "D", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); } // 鎺ラ┏浣� -- 搴撲綅 - if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) { - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0); + if (agvWrkMast.getSourceLocNo().substring(0, 2).equals("DB")) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", (short) 0); // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅 } else { //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue(), "", (short) 0); //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁� - agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo())); + agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvWrkMast.getSourceLocNo())); } break; case 112: - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); for (AgvWrkDetl agvWrkDetl : agvWrkDetls) { AgvLocDetl locDetl = new AgvLocDetl(); locDetl.setLocNo(agvWrkMast.getLocNo()); locDetl.sync(agvWrkDetl); locDetl.setModiTime(new Date()); + log.info("112娣诲姞搴撳瓨鏃ュ織:{}", JSON.toJSON(locDetl)); agvLocDetlService.insert(locDetl); } // 鎺ラ┏浣� -- 搴撲綅 - if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) { - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0); + if (agvWrkMast.getSourceLocNo().substring(0, 2).equals("DB")) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", (short) 0); // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅 } else { //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue(), "", (short) 0); } break; case 113: - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "D", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); // 鎺ラ┏浣� -- 搴撲綅 - if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) { - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0); + if (agvWrkMast.getSourceLocNo().substring(0, 2).equals("DB")) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", (short) 0); } break; case 121: - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); //鏇存柊搴撳瓨鏄庣粏 - agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo()); + agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(), agvWrkMast.getLocNo()); //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue(), "", (short) 0); break; default: @@ -323,7 +347,7 @@ //鍒犻櫎AGV宸ヤ綔妗� agvWrkMastService.deleteById(wrkNo); //鍒犻櫎AGV宸ヤ綔鏄庣粏妗� - agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo)); + agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkNo)); } // else { // agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"O","",agvWrkMast.getWhsType().shortValue()); @@ -333,14 +357,15 @@ // agvWrkMastService.updateById(agvWrkMast); // } - if(!isJSON(orderNo)){ + if (!isJSON(orderNo)) { //妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚 - orderService.checkComplete(orderNo, agvWrkMast.getPltType()); + orderService.checkComplete(orderNo, pltType); } else { List<Map> maps = JSONArray.parseArray(orderNo, Map.class); + Integer finalPltType = pltType; maps.forEach(map -> { String o = map.get("orderNo").toString(); - orderService.checkComplete(o, agvWrkMast.getPltType()); + orderService.checkComplete(o, finalPltType); }); } @@ -356,11 +381,7 @@ } //TODO //鏆傛椂鍔犱笂trycatch - try { - reportMes(agvWrkMast, agvWrkDetlListOld); - } catch (Exception e) { - e.printStackTrace(); - } + reportMes(agvWrkMast, agvWrkDetlListOld); return SUCCESS; } @@ -383,11 +404,11 @@ agvWrkMastService.updateById(agvWrkMast); //淇敼婧愬簱浣嶇姸鎬佷负O if (agvWrkMast.getIoType() == 110) { - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", null); } - if(agvWrkMast.getIoType() == 101){ + if (agvWrkMast.getIoType() == 101) { //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁� - agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo())); + agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvWrkMast.getSourceLocNo())); //鐢熸垚绌烘澘鍏ュ簱浠诲姟 Short containerType = Short.valueOf(agvWrkMast.getBarcode().substring(0, 2)); try { @@ -427,7 +448,7 @@ agvBasDevp.setLocSts("R"); agvBasDevp.setLocType2(Short.valueOf(agvWrkMast.getBarcode().substring(0, 2))); agvBasDevpService.updateById(agvBasDevp); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); log.error(e.getMessage()); } @@ -440,11 +461,11 @@ //鍒犻櫎AGV宸ヤ綔妗� agvWrkMastService.deleteById(wrkNo); //鍒犻櫎AGV宸ヤ綔鏄庣粏妗� - agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo)); - if(!isJSON(orderNo)){ + agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkNo)); + if (!isJSON(orderNo)) { //妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚 - orderService.checkComplete(orderNo); - }else{ + orderService.checkComplete(orderNo, agvWrkMast.getPltType()); + } else { List<Map> maps = JSONArray.parseArray(orderNo, Map.class); maps.forEach(map -> { String o = map.get("orderNo").toString(); @@ -485,10 +506,10 @@ agvWrkMast.setModiTime(new Date()); agvWrkMastService.updateById(agvWrkMast); //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null); - if(agvWrkMast.getIoType() == 101){ + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", null); + if (agvWrkMast.getIoType() == 101) { //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁� - agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo())); + agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvWrkMast.getSourceLocNo())); } //鐢熸垚AGV宸ヤ綔鍘嗗彶妗� @@ -498,15 +519,15 @@ //鍒犻櫎AGV宸ヤ綔妗� agvWrkMastService.deleteById(wrkNo); //鍒犻櫎AGV宸ヤ綔鏄庣粏妗� - agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo)); - if(!isJSON(orderNo)){ + agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkNo)); + if (!isJSON(orderNo)) { //妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚 - orderService.checkComplete(orderNo); - }else{ + orderService.checkComplete(orderNo, agvWrkMast.getPltType()); + } else { List<Map> maps = JSONArray.parseArray(orderNo, Map.class); maps.forEach(map -> { String o = map.get("orderNo").toString(); - orderService.checkComplete(o); + orderService.checkComplete(o, agvWrkMast.getPltType()); }); } //涓婃姤mes @@ -520,7 +541,7 @@ log.error("" + e.getMessage()); } //TODO 寮犺秴 - //reportMes(agvWrkMast, agvWrkDetlListOld); + reportMes(agvWrkMast, agvWrkDetlListOld); return SUCCESS; } @@ -528,24 +549,31 @@ @Synchronized public ReturnT<String> startPutWayWrk(AgvWrkMast agvWrkMast) throws IOException { - try{ + try { //涓嬪彂浠诲姟 int startWrkCode = agvWrkMastService.startWrk(agvWrkMast); - if(startWrkCode != 0){ + if (startWrkCode != 0) { throw new CoolException("浠诲姟涓嬪彂澶辫触"); } - agvWrkMast.setWrkSts(202L); - agvWrkMast.setModiTime(new Date()); - agvWrkMastService.updateById(agvWrkMast); - if(agvWrkMast.getIoType() == 1){ + //agvWrkMast.setWrkSts(202L); + //agvWrkMast.setModiTime(new Date()); + //boolean b = agvWrkMastService.updateById(agvWrkMast); + boolean b = agvWrkMastService.updateWrkStsByWrkNo(Math.abs(agvWrkMast.getWrkNo()), 202L); + if (!b) { + log.info("鏇存柊浠诲姟鐘舵�佸け璐�,{}", agvWrkMast.getWrkNo()); + throw new CoolException("鏇存柊浠诲姟鐘舵�佸け璐�"); + } else { + log.info("鏇存柊浠诲姟鐘舵�佹垚鍔�,{}", agvWrkMast.getWrkNo()); + } + if (agvWrkMast.getIoType() == 1) { //淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y - agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y"); + agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(), "Y"); } return SUCCESS; } catch (Exception e) { //TODO - //log.error("淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y" + e.getMessage()); + log.error("淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y,{}", e.getMessage()); } return FAIL; } @@ -553,16 +581,16 @@ @Transactional @Synchronized public ReturnT<String> startAllcationIn(AgvWrkMast agvWrkMast) throws IOException { - + //涓嬪彂浠诲姟 - try{ + try { int startWrkCode = agvWrkMastService.startAllcationIn(agvWrkMast); - if(startWrkCode != 0){ + if (startWrkCode != 0) { throw new CoolException("浠诲姟涓嬪彂澶辫触"); } return SUCCESS; - }catch (Exception e){ - log.error("浠诲姟涓嬪彂澶辫触"+e.getMessage()); + } catch (Exception e) { + log.error("浠诲姟涓嬪彂澶辫触" + e.getMessage()); } return FAIL; @@ -601,11 +629,11 @@ List<Map<String, Object>> devNoMaps = agvBasDevpService.selectDevNoAndNumBystationCode(agvWrkMast.getLocNo()); //鍙栫涓�涓殏瀛樹綅锛屽苟鏌ヨ鍏舵鏁颁笌閰嶇疆鐨勬鏁板仛姣旇緝 Map<String, Object> devNoMap = devNoMaps.get(0); - if((int)devNoMap.get("num") < maxWrokNum){ + if ((int) devNoMap.get("num") < maxWrokNum) { agvWrkMast.setLocNo(devNoMap.get("dev_no").toString()); agvWrkMast.setModiTime(new Date()); agvWrkMastService.updateById(agvWrkMast); - log.info("after锛�" + devNoMap.toString() + ", wrkNo:" + agvWrkMast.getWrkNo() + ", locNo: " + agvWrkMast.getLocNo()); + log.info("after锛�" + devNoMap.toString() + ", wrkNo:" + agvWrkMast.getWrkNo() + ", locNo: " + agvWrkMast.getLocNo()); } }); @@ -644,10 +672,10 @@ } } - private List<AgvWrkMast> filter(List<AgvWrkMast> agvWrkMastList){ + private List<AgvWrkMast> filter(List<AgvWrkMast> agvWrkMastList) { return agvWrkMastList.stream().filter(agvWrkMast -> { AgvWrkMast agvWrkMastWroking = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", agvWrkMast.getLocNo())); - if(!Cools.isEmpty(agvWrkMastWroking) && agvWrkMastWroking.getWrkSts()<=202){ + if (!Cools.isEmpty(agvWrkMastWroking) && agvWrkMastWroking.getWrkSts() <= 202) { System.out.println("source_loc_no > 1"); return false; } @@ -660,7 +688,7 @@ /* 鐢熸垚宸ヤ綔妗� */ - private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode, Date now, Long userId, int containerType, int floor){ + private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode, Date now, Long userId, int containerType, int floor) { AgvWrkMast wrkMast = new AgvWrkMast(); //宸ヤ綔鐘舵�� wrkMast.setWrkSts(wrkSts); @@ -689,27 +717,37 @@ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); } - wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no",sourceLocNo).eq("barcode",barcode).orderBy("modi_time",false)); + wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no", sourceLocNo).eq("barcode", barcode).orderBy("modi_time", false)); return wrkMast; } private void reportMes(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls) { + if (Cools.isEmpty(agvWrkDetls)) { return; } + List<AgvWrkDetl> data = new ArrayList<>(); //鍖哄垎涓嶅悓浠诲姟绫诲瀷鐨勪笂鎶ユ柟寮� + for (AgvWrkDetl agvWrkDetl : agvWrkDetls) { + if (agvWrkDetl.getMatnr().compareTo("39") <= 0) { + data.add(agvWrkDetl); + } + } + if (!data.isEmpty()) { + if (IN_TYPE_LIST.contains(agvWrkMast.getIoType())) { + reportMesPakinOrder(agvWrkMast, data); + } + if (OUT_TYPE_List.contains(agvWrkMast.getIoType())) { + reportMesPakoutOrder(agvWrkMast, data); + } + if (MOVE_TYPE_List.contains(agvWrkMast.getIoType())) { + generateMesParam(agvWrkMast, data); + } + } - if (IN_TYPE_LIST.contains(agvWrkMast.getIoType())) { - reportMesPakinOrder(agvWrkMast, agvWrkDetls); - } - if (OUT_TYPE_List.contains(agvWrkMast.getIoType())) { - reportMesPakoutOrder(agvWrkMast, agvWrkDetls); - } - if (MOVE_TYPE_List.contains(agvWrkMast.getIoType())) { - generateMesParam(agvWrkMast, agvWrkDetls); - } } + private void reportMesPakinOrder(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls) { @@ -735,7 +773,7 @@ iteam.setLineNo(orderDetl.getItemNum()); iteam.setSupplierCode(order.getSalesman()); iteam.setUnit(agvWrkDetl.getUnit()); - + iteam.setRemark(agvWrkDetl.getThreeCode()); iteams.add(iteam); mesBuyPakinReportParam.setCode(orderNo); @@ -745,9 +783,9 @@ } else { MesPakinReportParam mesPakinReportParam = new MesPakinReportParam(); - mesPakinReportParam.setInboundOrderCode(agvWrkDetl.getOrderNo()); + //mesPakinReportParam.setInboundOrderCode(agvWrkDetl.getOrderNo()); mesPakinReportParam.setBizType("0"); - mesPakinReportParam.setInventoryAttr(new MesPakinReportParam.InventoryAttr(agvWrkDetl.getThreeCode().trim(), agvWrkDetl.getMatnr(), agvWrkMast.getLocNo())); + mesPakinReportParam.setInventoryAttr(new MesPakinReportParam.InventoryAttr(null, agvWrkDetl.getMatnr(), agvWrkMast.getLocNo())); mesPakinReportParam.setNoQrCodeExecAmount(new MesPakinReportParam.NoQrCodeExecAmount(agvWrkDetl.getAnfme(), agvWrkDetl.getUnit(), null)); doHttpRequest(mesPakinReportParam, getMesTokenInfo(), "涓婃姤mes鍏ュ簱淇℃伅", url, pakinReportPath, null, "127.0.0.1"); @@ -830,17 +868,17 @@ //鑾峰彇mes token淇℃伅 private Map<String, Object> getMesTokenInfo() { - Map<String, String> param = new HashMap<>(); - param.put("appKey", appKey); - param.put("appSecret", appSecret); +// Map<String, String> param = new HashMap<>(); +// param.put("appKey", appKey); +// param.put("appSecret", appSecret); +// +// JSONObject jsonObject = doHttpRequest(param, null, "鑾峰彇MesToken", getTokenUrl, getTokenPath, null, "127.0.0.1"); +// +// Map<String, Object> headParam = new HashMap<>(); +// headParam.put("X-AUTH", JSON.parseObject(jsonObject.get("data").toString()).get("appAccessToken").toString()); - JSONObject jsonObject = doHttpRequest(param, null, "鑾峰彇MesToken", getTokenUrl, getTokenPath, null, "127.0.0.1"); - - Map<String, Object> headParam = new HashMap<>(); - headParam.put("X-AUTH", JSON.parseObject(jsonObject.get("data").toString()).get("appAccessToken").toString()); - - return headParam; - + // return headParam; + return null; } //鏍规嵁妤煎眰榛樿鍑哄簱浠撲綅 @@ -861,37 +899,45 @@ return null; } - private JSONObject doHttpRequest(Object requestParam, Map<String, Object> headParam, String namespace, String url, String path, String appkey, String ip) { + private void doHttpRequest(Object requestParam, Map<String, Object> headParam, String namespace, String url, String path, String appkey, String ip) { + //淇濊瘉涓婃姤琛� + ReportData reportData = new ReportData(); + reportData.setReportJson(JSONObject.toJSONString(requestParam)); + reportData.setMemo(namespace); + reportData.setCreateTime(new Date()); + reportData.setReportType("MES"); + reportDataService.insert(reportData); - String response = ""; - boolean success = false; - try { - response = new HttpHandler.Builder().setUri(url).setPath(path).setHeaders(headParam).setJson(JSONObject.toJSONString(requestParam)).setHttps(true).build().doPost(); - JSONObject jsonObject = JSON.parseObject(response); - - if (Cools.isEmpty(jsonObject.get("code")) || Integer.parseInt(jsonObject.get("code").toString()) != 200) { - log.info("mes鎺ュ彛璋冪敤澶辫触锛岃繑鍥炰俊鎭細" + jsonObject); - //TODO 寮犺秴 - //throw new CoolException("mes鎺ュ彛璋冪敤澶辫触锛岃繑鍥炰俊鎭�:" + jsonObject); - } - success = true; - return jsonObject; - -// String succeed = jsonObject.get("succeed").toString(); +// String response = ""; +// boolean success = false; // -// int code = Cools.eq("0",succeed) ? 0 : 1; -// if(code != 200){ -// throw new CoolException(jsonObject.get("dsc").toString()); +// try { +// response = new HttpHandler.Builder().setUri(url).setPath(path).setTimeout(30, TimeUnit.SECONDS).setHeaders(headParam).setJson(JSONObject.toJSONString(requestParam)).setHttps(true).build().doPost(); +// JSONObject jsonObject = JSON.parseObject(response); +// +// if (Cools.isEmpty(jsonObject.get("code")) || Integer.parseInt(jsonObject.get("code").toString()) != 200) { +// log.info("mes鎺ュ彛璋冪敤澶辫触锛岃繑鍥炰俊鎭細" + jsonObject); +// //TODO 寮犺秴 +// throw new CoolException("mes鎺ュ彛璋冪敤澶辫触锛岃繑鍥炰俊鎭�:" + jsonObject); // } // success = true; - - } catch (Exception e) { - log.error(e.getMessage()); - throw new CoolException(e.getMessage()); - } finally { - apiLogService.save(namespace, url + path, appkey, ip, JSON.toJSONString(JSONObject.toJSONString(requestParam)), response, success); - } +// return jsonObject; +// +//// String succeed = jsonObject.get("succeed").toString(); +//// +//// int code = Cools.eq("0",succeed) ? 0 : 1; +//// if(code != 200){ +//// throw new CoolException(jsonObject.get("dsc").toString()); +//// } +//// success = true; +// +// } catch (Exception e) { +// log.error(e.getMessage()); +// throw new CoolException(e.getMessage()); +// } finally { +// apiLogService.save(namespace, url + path, appkey, ip, JSON.toJSONString(JSONObject.toJSONString(requestParam)), response, success); +// } } -- Gitblit v1.9.1