From 6298f178c71f1eb95d4066ffe88d4becd6fc6bfc Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期四, 11 七月 2024 08:34:42 +0800 Subject: [PATCH] #MES上报 --- src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java | 159 ++++++++++++++++++++++++++++++++++------------------ 1 files changed, 104 insertions(+), 55 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 e7a3b9d..1ee8a64 100644 --- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.beust.jcommander.internal.Lists; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.entity.*; @@ -31,16 +32,29 @@ public class AgvWrkMastHandler extends AbstractHandler<String> { //鍏ュ簱绫诲瀷鏁扮粍 - private static final int[] IN_TYPE_ARRAY = new int[1]; + private static final List<Integer> IN_TYPE_LIST = new ArrayList<Integer>(){{ + add(1); + }}; + //private static final int[] IN_TYPE_ARRAY = {1}; //鍑哄簱绫诲瀷鏁扮粍 - private static final int[] OUT_TYPE_ARRAY = new int[1]; + private static final List<Integer> OUT_TYPE_List = new ArrayList<Integer>(){{ +// add(101); + }}; + //private static final int[] OUT_TYPE_ARRAY = {101}; //绉诲簱绫诲瀷鏁扮粍 - private static final int[] MOVE_TYPE_ARRAY = new int[1]; + private static final List<Integer> MOVE_TYPE_List = new ArrayList<Integer>(){{ + add(11);add(101); add(12); add(53); add(101); add(108); add(111); add(112); + + + }}; + //private static final int[] MOVE_TYPE_ARRAY = {11,12}; @Value("${agvBasDev.maxWorkNum}") private int maxWrokNum; @Value("${mes.url}") private String url; + @Value("${mes.getTokenUrl}") + private String getTokenUrl; @Value("${mes.orderReportPath}") private String orderReportPath; @Value("${mes.pakinReportPath}") @@ -82,6 +96,9 @@ @Transactional public ReturnT<String> completedPutWayWrk(AgvWrkMast agvWrkMast) { + //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏 + List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); + try{ int wrkNo = agvWrkMast.getWrkNo(); String barcode = agvWrkMast.getBarcode(); @@ -92,9 +109,6 @@ } else { agvBasDevp = agvWrkMast.getSourceLocNo(); } - - //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏 - List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚 agvWrkMast.setWrkSts(207L); @@ -253,26 +267,28 @@ } //涓婃姤mes - MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld); - if(!Cools.isEmpty(param)){ - doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1"); - } +// MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld); +// if(!Cools.isEmpty(param)){ +// doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1"); +// } - return SUCCESS; + //return SUCCESS; }catch (Exception e){ log.error(""+e.getMessage()); } - return FAIL; + reportMes(agvWrkMast,agvWrkDetlListOld); + return SUCCESS; } @Transactional public ReturnT<String> completedCarryWrk(AgvWrkMast agvWrkMast) { - try{ + //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏 + List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); - //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏 - List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); + + try{ Date now = new Date(); int wrkNo = agvWrkMast.getWrkNo(); @@ -351,24 +367,24 @@ } //涓婃姤mes - MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld); - if(!Cools.isEmpty(param)){ - doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1"); - } +// MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld); +// if(!Cools.isEmpty(param)){ +// doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1"); +// } - return SUCCESS; }catch (Exception e){ log.error(""+e.getMessage()); } - return FAIL; + reportMes(agvWrkMast,agvWrkDetlListOld); + return SUCCESS; } @Transactional public ReturnT<String> completedCarryWrk2(AgvWrkMast agvWrkMast) { - try{ - //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏 - List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); + //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏 + List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); + try{ int wrkNo = agvWrkMast.getWrkNo(); String orderNo = getOrderNoByWrkNo(wrkNo); String agvBasDevp = ""; @@ -406,15 +422,17 @@ }); } //涓婃姤mes - MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld); - if(!Cools.isEmpty(param)){ - doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1"); - } - return SUCCESS; +// MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld); +// if(!Cools.isEmpty(param)){ +// doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1"); +// } +// reportMes(agvWrkMast,agvWrkDetlListOld); +// return SUCCESS; }catch (Exception e){ log.error(""+e.getMessage()); } - return FAIL; + reportMes(agvWrkMast,agvWrkDetlListOld); + return SUCCESS; } @Transactional @@ -584,23 +602,21 @@ return wrkMast; } - private Object getReportParamByIoType(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){ + private void reportMes(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){ if(Cools.isEmpty(agvWrkDetls)){ - return null; + return ; } //鍖哄垎涓嶅悓浠诲姟绫诲瀷鐨勪笂鎶ユ柟寮� - if(Arrays.asList(IN_TYPE_ARRAY).contains(agvWrkMast.getIoType())){ - + if(IN_TYPE_LIST.contains(agvWrkMast.getIoType())){ + reportMesPakinOrder(agvWrkMast,agvWrkDetls); } - if(Arrays.asList(OUT_TYPE_ARRAY).contains(agvWrkMast.getIoType())){ - + if(OUT_TYPE_List.contains(agvWrkMast.getIoType())){ + reportMesPakoutOrder(agvWrkMast,agvWrkDetls); } - if(Arrays.asList(MOVE_TYPE_ARRAY).contains(agvWrkMast.getIoType())){ - return generateMesParam(agvWrkMast,agvWrkDetls); + if(MOVE_TYPE_List.contains(agvWrkMast.getIoType())){ + generateMesParam(agvWrkMast,agvWrkDetls); } - - return null; } private void reportMesPakinOrder(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){ @@ -609,10 +625,10 @@ MesPakinReportParam mesPakinReportParam = new MesPakinReportParam(); mesPakinReportParam.setInboundOrderCode(agvWrkDetl.getOrderNo()); mesPakinReportParam.setBizType("0"); - mesPakinReportParam.setInventoryAttr(new MesPakinReportParam.InventoryAttr(agvWrkDetl.getThreeCode(),agvWrkDetl.getMatnr(),agvWrkMast.getLocNo())); + mesPakinReportParam.setInventoryAttr(new MesPakinReportParam.InventoryAttr(agvWrkDetl.getThreeCode().trim(),agvWrkDetl.getMatnr(),agvWrkMast.getLocNo())); mesPakinReportParam.setNoQrCodeExecAmount(new MesPakinReportParam.NoQrCodeExecAmount(agvWrkDetl.getAnfme(),agvWrkDetl.getUnit(),null)); - doHttpRequest(mesPakinReportParam,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1"); + doHttpRequest(mesPakinReportParam,getMesTokenInfo(),"涓婃姤mes鍏ュ簱淇℃伅",url,pakinReportPath,null,"127.0.0.1"); } } @@ -624,15 +640,15 @@ AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getLocNo()); mesPakoutReportParam.setWareHouseCode(agvLocMast.getPltType().toString()); mesPakoutReportParam.setMaterialCode(agvWrkDetl.getMatnr()); - mesPakoutReportParam.setBatchNos(Arrays.asList(agvWrkDetl.getBatch())); + mesPakoutReportParam.setBatchNos(Arrays.asList(agvWrkDetl.getThreeCode().trim())); mesPakoutReportParam.setAmount(new MesPakoutReportParam.Amount(agvWrkDetl.getAnfme(),agvWrkDetl.getUnit(),null)); - doHttpRequest(mesPakoutReportParam,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1"); + doHttpRequest(mesPakoutReportParam,getMesTokenInfo(),"涓婃姤mes鍑哄簱淇℃伅",url,pakoutReportPath,null,"127.0.0.1"); } } - private MesOrderReportParam generateMesParam(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){ + private void generateMesParam(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){ if(agvWrkMast.getIoType() == 53){ String locNo = agvWrkMast.getLocNo(); @@ -644,10 +660,23 @@ List<MesOrderReportParam.TransferOrderItem> transferOrderItems = new ArrayList<>(); List<MesOrderReportParam.TransferOrderItem.InventoryDetail> inventoryDetails = new ArrayList<>(); + List<MesOrderReportParam.RecordCustomFieldBaseCO.CustomField> customFields = new ArrayList<>(); + + MesOrderReportParam.RecordCustomFieldBaseCO recordCustomFieldBaseCO = new MesOrderReportParam.RecordCustomFieldBaseCO(); + recordCustomFieldBaseCO.setCustomFields(customFields); + param.setRecordCustomFieldBaseCO(recordCustomFieldBaseCO); + //娣诲姞transferOrderItem灞炴�� MesOrderReportParam.TransferOrderItem transferOrderItem = new MesOrderReportParam.TransferOrderItem(); transferOrderItem.setRemark(agvWrkDetls.get(0).getOrderNo()); - transferOrderItem.setTargetLocationCode(agvWrkMast.getLocNo()); + //璋冩嫧 + if(agvWrkMast.getLocNo().contains("YZ")){ + transferOrderItem.setTargetLocationCode(agvWrkMast.getLocNo()); + }else { + //鍑哄簱榛樿浠撲綅 + String floor = agvWrkMast.getLocNo().split("F")[1]; + transferOrderItem.setTargetLocationCode(getTargetLocationByFloor(floor)); + } transferOrderItems.add(transferOrderItem); transferOrderItem.setInventoryDetails(inventoryDetails); @@ -656,13 +685,10 @@ for (AgvWrkDetl agvWrkDetl : agvWrkDetls){ MesOrderReportParam.TransferOrderItem.InventoryDetail inventoryDetail = new MesOrderReportParam.TransferOrderItem.InventoryDetail(); //娣诲姞amount灞炴�� - MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount amount = new MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount(); - amount.setAmount(agvWrkDetl.getAnfme()); - amount.setUnitName(agvWrkDetl.getUnit()); + MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount amount = new MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount(agvWrkDetl.getAnfme(),agvWrkDetl.getUnit(),null); inventoryDetail.setAmount(amount); //娣诲姞bizKey灞炴�� - MesOrderReportParam.TransferOrderItem.InventoryDetail.BizKey bizKey = new MesOrderReportParam.TransferOrderItem.InventoryDetail.BizKey(); - bizKey.setBatchNo(agvWrkDetl.getThreeCode()); + MesOrderReportParam.TransferOrderItem.InventoryDetail.BizKey bizKey = new MesOrderReportParam.TransferOrderItem.InventoryDetail.BizKey(Cools.isEmpty(agvWrkDetl.getBatch()) ? "" : agvWrkDetl.getBatch().trim()); inventoryDetail.setBizKey(bizKey); //娣诲姞inventoryDetail灞炴�� inventoryDetail.setLocationCode(agvWrkMast.getSourceLocNo()); @@ -670,9 +696,13 @@ inventoryDetail.setQcStatus(1); inventoryDetail.setStorageStatus(1); inventoryDetails.add(inventoryDetail); + //娣诲姞閿�鍞鍗曞彿 + MesOrderReportParam.RecordCustomFieldBaseCO.CustomField customField = new MesOrderReportParam.RecordCustomFieldBaseCO.CustomField("workOrderCode__c",agvWrkDetl.getThreeCode().trim()); + customFields.add(customField); } - return param; + doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes璋冩嫧淇℃伅",url,orderReportPath,null,"127.0.0.1"); + } //鑾峰彇mes token淇℃伅 @@ -681,13 +711,31 @@ param.put("appKey",appKey); param.put("appSecret",appSecret); - JSONObject jsonObject = doHttpRequest(param,null, "鑾峰彇MesToken", url, getTokenPath, null, "127.0.0.1"); + 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; + } + + //鏍规嵁妤煎眰榛樿鍑哄簱浠撲綅 + private String getTargetLocationByFloor(String f){ + int floor = Integer.parseInt(f); + if(floor == 1){ + return "WH-000"; + } + + if(floor == 2){ + return "WH-000"; + } + + if(floor == 3){ + return "WH-000"; + } + + return null; } private JSONObject doHttpRequest(Object requestParam,Map<String,Object> headParam, String namespace, String url, String path, String appkey, String ip){ @@ -706,10 +754,10 @@ .doPost(); JSONObject jsonObject = JSON.parseObject(response); - if(Cools.isEmpty(jsonObject.get("code")) && Integer.parseInt(jsonObject.get("code").toString()) != 200){ + if(Cools.isEmpty(jsonObject.get("code")) || Integer.parseInt(jsonObject.get("code").toString()) != 200){ throw new CoolException(jsonObject.get("dsc").toString()); } - + success = true; return jsonObject; // String succeed = jsonObject.get("succeed").toString(); @@ -736,4 +784,5 @@ } } + } -- Gitblit v1.9.1