| | |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.common.service.AgvCommonService; |
| | | import lombok.Synchronized; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | //移库类型数组 |
| | | 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); |
| | |
| | | @Autowired |
| | | private ReportDataService reportDataService; |
| | | |
| | | @Autowired |
| | | private AgvCommonService agvCommonService; |
| | | |
| | | |
| | | @Transactional |
| | | public ReturnT<String> completedPutWayWrk(AgvWrkMast agvWrkMast) { |
| | |
| | | } |
| | | |
| | | |
| | | 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()); |
| | | //修改工作档状态为207.库存更新完成 |
| | | agvWrkMast.setWrkSts(207L); |
| | |
| | | |
| | | switch (agvWrkMast.getIoType()) { |
| | | case 1: |
| | | agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); |
| | | agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue(), agvWrkMast.getCtnNo()); |
| | | //更新目标库位明细 |
| | | log.info("更新目标库位明细 agvWrkMast.getLocNo(): " + agvWrkMast.getLocNo() + ", wrkNo: " + wrkNo); |
| | | agvLocDetlService.addLocDetlInfo(agvWrkMast.getLocNo(), wrkNo); |
| | |
| | | //更新库存明细 |
| | | agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(), agvWrkMast.getLocNo()); |
| | | //修改源库位状态为O |
| | | agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", null); |
| | | agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", null, ""); |
| | | break; |
| | | case 53: |
| | | //修改工作党明细 |
| | |
| | | }); |
| | | // 更新站点 + 库位状态 源库位是站点 |
| | | agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue()); |
| | | agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); |
| | | agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue(), agvWrkMast.getCtnNo()); |
| | | break; |
| | | case 58: |
| | | agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); |
| | |
| | | // } |
| | | // agvWrkMastService.updateById(agvWrkMast); |
| | | // } |
| | | Integer pltType = agvWrkMast.getPltType(); |
| | | if (Cools.isEmpty(pltType) && !Cools.isEmpty(agvWrkMast.getLocNo())) { |
| | | AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getLocNo()); |
| | | if (agvLocMast != null) { |
| | | pltType = agvLocMast.getPltType(); |
| | | } |
| | | } |
| | | |
| | | if (!isJSON(orderNo)) { |
| | | //检查订单是否已完成 |
| | | orderService.checkComplete(orderNo, pltType); |
| | |
| | | wrkMast.setIoTime(now); |
| | | //优先级 |
| | | wrkMast.setIoPri(300.0); |
| | | |
| | | //源站点 |
| | | wrkMast.setSourceLocNo(agvWrkMast.getLocNo()); |
| | | |
| | | //目标站点 |
| | | wrkMast.setLocNo(agvWrkMast.getSourceLocNo()); |
| | | if (agvWrkMast.getLocNo().startsWith("QO") && agvWrkMast.getLocNo().endsWith("F4") && Integer.valueOf(agvWrkMast.getBarcode().substring(0, 2)) == 30) { |
| | | if (!agvWrkMast.getSourceLocNo().endsWith("02F1")) { |
| | | AgvLocMast locByFloor = agvCommonService.getLocByFloor(3, 1); |
| | | if (locByFloor != null) { |
| | | wrkMast.setLocNo(locByFloor.getLocNo()); |
| | | } else { |
| | | wrkMast.setLocNo(agvWrkMast.getSourceLocNo()); |
| | | } |
| | | } else { |
| | | wrkMast.setLocNo(agvWrkMast.getSourceLocNo()); |
| | | } |
| | | } else { |
| | | wrkMast.setLocNo(agvWrkMast.getSourceLocNo()); |
| | | } |
| | | |
| | | |
| | | //货架编码 |
| | | wrkMast.setBarcode(agvWrkMast.getBarcode()); |
| | | //货架类型 |
| | | wrkMast.setWhsType(Integer.valueOf(agvWrkMast.getBarcode().substring(0, 2))); |
| | | |
| | | wrkMast.setAppeUser(9527L); |
| | | wrkMast.setAppeUser(agvWrkMast.getAppeUser()); |
| | | wrkMast.setAppeTime(now); |
| | | wrkMast.setModiUser(9527L); |
| | | wrkMast.setModiTime(now); |
| | |
| | | return SUCCESS; |
| | | } catch (Exception e) { |
| | | //TODO |
| | | log.error("修改AGV入库通知档状态入出状态为Y,{}", e.getMessage()); |
| | | //log.error("修改AGV入库通知档状态入出状态为Y,{}", e.getMessage()); |
| | | } |
| | | return FAIL; |
| | | } |
| | |
| | | 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 (OUT_TYPE_List.contains(agvWrkMast.getIoType())) { |
| | | // reportMesPakoutOrder(agvWrkMast, data); |
| | | // } |
| | | // if (MOVE_TYPE_List.contains(agvWrkMast.getIoType())) { |
| | | // generateMesParam(agvWrkMast, data); |
| | | // } |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | private void reportMesPakinOrder(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls) { |
| | |
| | | iteam.setLineNo(orderDetl.getItemNum()); |
| | | iteam.setSupplierCode(order.getSalesman()); |
| | | iteam.setUnit(agvWrkDetl.getUnit()); |
| | | |
| | | iteam.setRemark(agvWrkDetl.getThreeCode()); |
| | | iteams.add(iteam); |
| | | |
| | | mesBuyPakinReportParam.setCode(orderNo); |
| | |
| | | MesOrderReportParam param = new MesOrderReportParam(); |
| | | |
| | | List<MesOrderReportParam.TransferOrderItem> transferOrderItems = new ArrayList<>(); |
| | | List<MesOrderReportParam.TransferOrderItem.InventoryDetail> inventoryDetails = new ArrayList<>(); |
| | | List<MesOrderReportParam.RecordCustomFieldBaseCO.CustomField> customFields = new ArrayList<>(); |
| | | |
| | | //MesOrderReportParam.RecordCustomFieldBaseCO.CustomField customFields = new MesOrderReportParam.RecordCustomFieldBaseCO.CustomField(); |
| | | |
| | | MesOrderReportParam.RecordCustomFieldBaseCO recordCustomFieldBaseCO = new MesOrderReportParam.RecordCustomFieldBaseCO(); |
| | | recordCustomFieldBaseCO.setCustomFields(customFields); |
| | | //recordCustomFieldBaseCO.setCustomFields(customFields); |
| | | param.setRecordCustomFieldBaseCO(recordCustomFieldBaseCO); |
| | | |
| | | //添加transferOrderItem属性 |
| | |
| | | transferOrderItem.setTargetLocationCode(getTargetLocationByFloor(floor)); |
| | | } |
| | | transferOrderItems.add(transferOrderItem); |
| | | transferOrderItem.setInventoryDetails(inventoryDetails); |
| | | |
| | | |
| | | param.setTransferOrderItems(transferOrderItems); |
| | | |
| | | for (AgvWrkDetl agvWrkDetl : agvWrkDetls) { |
| | | List<MesOrderReportParam.TransferOrderItem.InventoryDetail> inventoryDetails = new ArrayList<>(); |
| | | MesOrderReportParam.TransferOrderItem.InventoryDetail inventoryDetail = new MesOrderReportParam.TransferOrderItem.InventoryDetail(); |
| | | //添加amount属性 |
| | | MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount amount = new MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount(agvWrkDetl.getAnfme(), agvWrkDetl.getUnit(), null); |
| | |
| | | inventoryDetail.setQcStatus(1); |
| | | inventoryDetail.setStorageStatus(1); |
| | | inventoryDetails.add(inventoryDetail); |
| | | transferOrderItem.setInventoryDetails(inventoryDetails); |
| | | //添加销售订单号 |
| | | MesOrderReportParam.RecordCustomFieldBaseCO.CustomField customField = new MesOrderReportParam.RecordCustomFieldBaseCO.CustomField("workOrderCode__c", agvWrkDetl.getThreeCode().trim()); |
| | | customFields.add(customField); |
| | | //customFields.add(customField); |
| | | recordCustomFieldBaseCO.setCustomFields(customField); |
| | | doHttpRequest(param, getMesTokenInfo(), "上报mes调拨信息", url, orderReportPath, null, "127.0.0.1"); |
| | | } |
| | | |
| | | doHttpRequest(param, getMesTokenInfo(), "上报mes调拨信息", url, orderReportPath, null, "127.0.0.1"); |
| | | |
| | | } |
| | | |