From 7deaef70a6d20a7f1fb86b3af3d58ad76135bc20 Mon Sep 17 00:00:00 2001 From: zhangchao <zc857179121@qq.com> Date: 星期三, 28 八月 2024 10:27:42 +0800 Subject: [PATCH] 配置 --- src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java | 205 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 145 insertions(+), 60 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..cb738c8 100644 --- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java @@ -7,6 +7,7 @@ import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.entity.*; +import com.zy.asrs.entity.param.MesBuyPakinReportParam; import com.zy.asrs.entity.param.MesOrderReportParam; import com.zy.asrs.entity.param.MesPakinReportParam; import com.zy.asrs.entity.param.MesPakoutReportParam; @@ -14,7 +15,6 @@ import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; import com.zy.common.utils.HttpHandler; -import io.swagger.models.auth.In; import lombok.Synchronized; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -31,20 +31,35 @@ 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}") private String pakinReportPath; + @Value("${mes.buyPakinReportPath}") + private String buyPakinReportPath; @Value("${mes.pakoutReportPath}") private String pakoutReportPath; @Value("${mes.getTokenPath}") @@ -79,9 +94,16 @@ private AgvWorkService agvWorkService; @Autowired private ApiLogService apiLogService; + @Autowired + private DocTypeService docTypeService; + @Autowired + private OrderDetlService orderDetlService; @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 +114,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 +272,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 +372,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 +427,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,35 +607,64 @@ 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){ for (AgvWrkDetl agvWrkDetl : agvWrkDetls){ - MesPakinReportParam mesPakinReportParam = new MesPakinReportParam(); - mesPakinReportParam.setInboundOrderCode(agvWrkDetl.getOrderNo()); - mesPakinReportParam.setBizType("0"); - mesPakinReportParam.setInventoryAttr(new MesPakinReportParam.InventoryAttr(agvWrkDetl.getThreeCode(),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"); + String orderNo = agvWrkDetl.getOrderNo(); + Order order = orderService.selectByNo(orderNo); + + DocType docType = docTypeService.selectById(order.getDocType()); + + if (docType.getDocName().contains("閲囪喘")){ + + OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(orderNo, agvWrkDetl.getMatnr(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime()); + + MesBuyPakinReportParam mesBuyPakinReportParam = new MesBuyPakinReportParam(); + List<MesBuyPakinReportParam.Iteam> iteams = new ArrayList<>(); + MesBuyPakinReportParam.Iteam iteam = new MesBuyPakinReportParam.Iteam(); + iteam.setMaterialCode(agvWrkDetl.getMatnr()); + iteam.setBatchNo(agvWrkDetl.getBatch()); + iteam.setAmount(agvWrkDetl.getAnfme()); + iteam.setStorageLocationCode(agvWrkMast.getLocNo()); + iteam.setLineNo(orderDetl.getItemNum()); + iteam.setSupplierCode(order.getSalesman()); + iteam.setUnit(agvWrkDetl.getUnit()); + + iteams.add(iteam); + + mesBuyPakinReportParam.setCode(orderNo); + mesBuyPakinReportParam.setIteam(iteams); + + doHttpRequest(mesBuyPakinReportParam,getMesTokenInfo(),"涓婃姤mes閲囪喘鍏ュ簱淇℃伅",url,buyPakinReportPath,null,"127.0.0.1"); + + }else { + MesPakinReportParam mesPakinReportParam = new MesPakinReportParam(); + mesPakinReportParam.setInboundOrderCode(agvWrkDetl.getOrderNo()); + mesPakinReportParam.setBizType("0"); + 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,pakinReportPath,null,"127.0.0.1"); + } } } @@ -624,15 +676,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 +696,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 +721,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 +732,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 +747,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 +790,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 +820,5 @@ } } + } -- Gitblit v1.9.1