From 19989117481c46da41c59e3fe724f0d65e4f19e9 Mon Sep 17 00:00:00 2001 From: jun Date: Wed, 23 Oct 2024 16:05:18 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E6=B2=A1=E5=8A=A0=E5=B7=A5=E5=8E=82=E4=BB=A3=E7=A0=81=E6=8E=92?= =?UTF-8?q?=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MesToPiscesMesLoadingListDetail.groovy | 4 +++- .../Mes2Pisces/MesToPiscesMesShippingDetail.groovy | 4 +++- .../schedulejob/MesDefectAlarmConfigJob.java | 18 +------------- .../MesSendOutTimeReworkOrderEmailJob.java | 3 +-- .../base/MesLabelTemplateServiceImpl.java | 2 +- .../serviceimpl/base/MesPartService.java | 2 +- .../serviceimpl/base/MesProductVersionService.java | 2 +- .../serviceimpl/base/MesQmsSuspiciousService.java | 4 +++- .../serviceimpl/base/MesWorkOrderCutService.java | 24 ++++--------------- .../serviceimpl/busi/ProdExtOrgService.java | 5 +++- .../strategy/CutWorkOrderNoPrintStrategy.java | 28 ++++++++++------------ 11 files changed, 34 insertions(+), 62 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesLoadingListDetail.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesLoadingListDetail.groovy index 6b0c7b7..ec1d06f 100644 --- a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesLoadingListDetail.groovy +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesLoadingListDetail.groovy @@ -53,7 +53,9 @@ class MesToPiscesMesLoadingListDetail { if (!StringUtils.isEmpty(rowMap.get("pid"))) { long id = Long.parseLong(String.valueOf(rowMap.get("pid"))); if (Objects.isNull(mesLoadingListMap) || !mesLoadingListMap.containsKey(id)) { - mesLoadingListMap.put(id, mesLoadingListRepository.getById(id)) + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode) + DdlPreparedPack.getNumEqualPack(id,"id",packBean) + mesLoadingListMap.put(id, mesLoadingListRepository.getByProperty(packBean)) } MesLoadingList mesLoadingList = mesLoadingListMap.get(id) if (!Objects.isNull(mesLoadingList)) { diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesShippingDetail.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesShippingDetail.groovy index 7c6a304..fa4269e 100644 --- a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesShippingDetail.groovy +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesShippingDetail.groovy @@ -51,7 +51,9 @@ class MesToPiscesMesShippingDetail { if (!StringUtils.isEmpty(rowMap.get("pid"))) { long id = Long.parseLong(String.valueOf(rowMap.get("pid"))); if (Objects.isNull(mesProductionRecordMap) || !mesProductionRecordMap.containsKey(id)) { - mesProductionRecordMap.put(id, mesShippingRepository.getById(id)) + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode) + DdlPreparedPack.getNumEqualPack(id,"id",packBean) + mesProductionRecordMap.put(id, mesShippingRepository.getByProperty(packBean)) } MesShippingOrderManagement mesProductionRecord = mesProductionRecordMap.get(id) if (!Objects.isNull(mesProductionRecord)) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesDefectAlarmConfigJob.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesDefectAlarmConfigJob.java index a3a9b67..e8de73e 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesDefectAlarmConfigJob.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesDefectAlarmConfigJob.java @@ -58,22 +58,7 @@ public class MesDefectAlarmConfigJob extends BaseMesScheduleJob { throw new IllegalArgumentException("jobc参数为空,请检查参数"); } - Map paramMap = new HashMap<>(); - - try { - paramMap = (Map) JSONObject.parse(jobParam); - } catch (Exception e) { - LOGGER.error("参数格式不是JSON"); - return; - - } - - if (CollectionUtils.isEmpty(paramMap)) { - LOGGER.error("检测数据同步定时任务,没有配置参数"); - return; - } - - List organizeCodeList = (List) paramMap.get("org"); + String[] organizeCodeList = jobParam.split(","); for (String organizeCode : organizeCodeList) { @@ -83,7 +68,6 @@ public class MesDefectAlarmConfigJob extends BaseMesScheduleJob { } catch (Exception e) { LOGGER.error("SAP接口表数据同步作业任务结束e:{}", e.toString()); - //sendErrorMessage(e.toString()); } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesSendOutTimeReworkOrderEmailJob.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesSendOutTimeReworkOrderEmailJob.java index 44aba01..79432b2 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesSendOutTimeReworkOrderEmailJob.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesSendOutTimeReworkOrderEmailJob.java @@ -92,8 +92,7 @@ public class MesSendOutTimeReworkOrderEmailJob extends BaseMesScheduleJob { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.REWORK_TASK_STATUS.CREATE.getValue(), "status", packBean); packBean.setWhereAppend(packBean.getWhereAppend() + " and model.createDatetime <= '" + TimeTool.pareDateToString(DateUtil.addMinutes(new Date(), -minutes)) + "'"); - List mesReworkTaskList = mesReworkTaskRepository.findByHqlWhere(packBean); - return mesReworkTaskList; + return mesReworkTaskRepository.findByHqlWhere(packBean); } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLabelTemplateServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLabelTemplateServiceImpl.java index 309eddc..706961f 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLabelTemplateServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLabelTemplateServiceImpl.java @@ -72,7 +72,7 @@ public class MesLabelTemplateServiceImpl extends BaseMesService params = mesLabelTemplateParamRDao.findByHqlWhere(templateParamPackBean); mesLabelTemplate.setLabelTemplateParamList(params); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartService.java index fd0b691..ff14373 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartService.java @@ -83,7 +83,7 @@ public class MesPartService extends BaseMesService implements IMesPartS @Override public ListPager queryMesPartByPagerExt(MesPart mesPart, Pager pager) { - DdlPackBean partQueryPackBean = DdlPackBean.getDdlPackBean(); + DdlPackBean partQueryPackBean = DdlPackBean.getDdlPackBean(mesPart.getOrganizeCode()); DdlPreparedPack.getNumEqualPack(mesPart.getIsValid(), "isValid", partQueryPackBean); DdlPreparedPack.getStringLikerPack(mesPart.getPartNo(), "partNo", partQueryPackBean); DdlPreparedPack.getStringLikerPack(mesPart.getPartName(), "partName", partQueryPackBean); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductVersionService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductVersionService.java index 26e518a..d72dc67 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductVersionService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductVersionService.java @@ -33,7 +33,7 @@ public class MesProductVersionService extends BaseMesService @Override public ListPager queryMesProductVersionByPagerExt(MesProductVersion mesProductVersion, Pager pager) { - DdlPackBean productVersionQueryPackBean = DdlPackBean.getDdlPackBean(); + DdlPackBean productVersionQueryPackBean = DdlPackBean.getDdlPackBean(mesProductVersion.getOrganizeCode()); DdlPreparedPack.getNumEqualPack(mesProductVersion.getIsValid(), "isValid", productVersionQueryPackBean); DdlPreparedPack.getStringLikerPack(mesProductVersion.getProductVersion(), "productVersion", productVersionQueryPackBean); DdlPreparedPack.getStringLikerPack(mesProductVersion.getPartNo(), "partNo", productVersionQueryPackBean); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesQmsSuspiciousService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesQmsSuspiciousService.java index b067db4..d2018a6 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesQmsSuspiciousService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesQmsSuspiciousService.java @@ -182,7 +182,9 @@ public class MesQmsSuspiciousService extends BaseMesService im } //计算返工数量 if (mesPartInspection.getNcStatus() == MesExtEnumUtil.PART_INSPECTION_NC_STATUS.REWORK.getValue()) { - MesReworkTask reworkTask = mesReworkTaskRepository.getById(mesPartInspection.getReworkTaskId()); + packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(mesPartInspection.getReworkTaskId(),"id",packBean); + MesReworkTask reworkTask = mesReworkTaskRepository.getByProperty(packBean); if (!StringUtil.isEmpty(reworkTask)) { //返工是否完成 if (reworkTask.getStatus() == MesExtEnumUtil.REWORK_TASK_STATUS.FINISH.getValue()) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderCutService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderCutService.java index 554dcbd..c5462d3 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderCutService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderCutService.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; +import cn.estsh.i3plus.ext.mes.api.base.IMesLabelTemplateService; import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderCutService; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.print.IPrintTemplateStrategyService; import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; @@ -60,13 +61,10 @@ public class MesWorkOrderCutService extends BaseMesService impl private MesWorkOrderCutDetailRepository workOrderCutDetailRepository; @Autowired - private MesLabelTemplateRepository labelTemplateRepository; - - @Autowired - private MesLabelTemplateParamRepository labelTemplateParamRepository; + private IMesPrintedSnLogRepository printedSnLogRepository; @Autowired - private IMesPrintedSnLogRepository printedSnLogRepository; + private IMesLabelTemplateService mesLabelTemplateService; protected void setPackQueryBean(MesWorkOrderCut bean, DdlPackBean packBean) { DdlPreparedPack.getStringLikerPack(bean.getCutWorkOrderNo(), MesExtConstWords.CUT_WORK_ORDER_NO, packBean); @@ -370,7 +368,7 @@ public class MesWorkOrderCutService extends BaseMesService impl MesCutScheme cutScheme = entry.getValue(); List workOrderCutList = workOrderCutMapByCutCode.get(cutScheme.getCutCode()); - MesLabelTemplate labelTemplate = getLabelTemplate(cutScheme.getTemplateCode(), organizeCode); + MesLabelTemplate labelTemplate = mesLabelTemplateService.getLabelTemplate(cutScheme.getTemplateCode(), organizeCode); //模板信息丢失抛出异常 if (labelTemplate == null) @@ -421,20 +419,6 @@ public class MesWorkOrderCutService extends BaseMesService impl } - private MesLabelTemplate getLabelTemplate(String templateCode, String organizeCode) { - DdlPackBean templatePackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(templateCode, MesExtConstWords.TEMPLATE_CODE, templatePackBean); - MesLabelTemplate mesLabelTemplate = labelTemplateRepository.getByProperty(templatePackBean); - if (mesLabelTemplate != null) { - //级联获取labelTemplateParam - DdlPackBean templateParamPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getNumEqualPack(mesLabelTemplate.getId(), "templateId", templateParamPackBean); - List params = labelTemplateParamRepository.findByHqlWhere(templateParamPackBean); - mesLabelTemplate.setLabelTemplateParamList(params); - } - return mesLabelTemplate; - } - @Override public void doUpdatePrintStatus(List cutWorkOrderIds, String organizeCode, String userName) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/ProdExtOrgService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/ProdExtOrgService.java index 21e8694..9711233 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/ProdExtOrgService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/ProdExtOrgService.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.busi; import cn.estsh.i3plus.ext.mes.api.busi.IProdExtOrgService; +import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; import cn.estsh.i3plus.ext.mes.apiservice.dao.IEquipmentExtDao; import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.mes.api.iservice.base.IEnumService; @@ -222,7 +223,9 @@ public class ProdExtOrgService implements IProdExtOrgService { public MesArea updateMesArea(MesArea mesArea) { //对id做有效性校验 - MesArea mesAreaDb = areaRepository.getById(mesArea.getId()); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(AuthUtilExt.getOrganizeCode()); + DdlPreparedPack.getNumEqualPack(mesArea.getId(),"id",packBean); + MesArea mesAreaDb = areaRepository.getByProperty(packBean); if (mesAreaDb == null) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/CutWorkOrderNoPrintStrategy.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/CutWorkOrderNoPrintStrategy.java index 2a2ec06..38147d2 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/CutWorkOrderNoPrintStrategy.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/CutWorkOrderNoPrintStrategy.java @@ -58,9 +58,9 @@ public class CutWorkOrderNoPrintStrategy implements IPrintTemplateStrategyServic - Map> cutSchemeFgMapByCutCode = getCutSchemeFgMapByCutCode(cutCodeList); + Map> cutSchemeFgMapByCutCode = getCutSchemeFgMapByCutCode(cutCodeList,model.getOrganizeCode()); - List cutSchemeMaterialList = getMesCutSchemeMaterials(cutCodeList); + List cutSchemeMaterialList = getMesCutSchemeMaterials(cutCodeList, model.getOrganizeCode()); //根据裁片方案代码对裁片方案原材料分组 Map> cutSchemeMaterialMapByCutCode = cutSchemeMaterialList.stream().collect(Collectors.groupingBy(MesCutSchemeMaterial::getCutCode)); @@ -151,12 +151,11 @@ public class CutWorkOrderNoPrintStrategy implements IPrintTemplateStrategyServic return val == null ? "" : val.toString(); } - private Map> getCutSchemeFgMapByCutCode(List cutCodeList) { - List cutSchemeFgList = getMesCutSchemeFgs(cutCodeList); + private Map> getCutSchemeFgMapByCutCode(List cutCodeList,String organizeCode) { + List cutSchemeFgList = getMesCutSchemeFgs(cutCodeList,organizeCode); //根据裁片方案代码对裁片方案成品明细分组 - Map> cutSchemeFgMapByCutCode = cutSchemeFgList.stream().collect(Collectors.groupingBy(MesCutSchemeFg::getCutCode)); - return cutSchemeFgMapByCutCode; + return cutSchemeFgList.stream().collect(Collectors.groupingBy(MesCutSchemeFg::getCutCode)); } private BigDecimal[] divideAndRemainder(Double qty, Double packageQty) { @@ -178,22 +177,19 @@ public class CutWorkOrderNoPrintStrategy implements IPrintTemplateStrategyServic private List getMesCutSchemeEquipments(MesProduceSnPrintModel model, List cutCodeList) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode()); DdlPreparedPack.getInPackList(cutCodeList, MesExtConstWords.CUT_CODE, packBean); - List cutSchemeEquipmentList = cutSchemeEquipmentRepository.findByHqlWhere(packBean); - return cutSchemeEquipmentList; + return cutSchemeEquipmentRepository.findByHqlWhere(packBean); } - private List getMesCutSchemeMaterials(List cutCodeList) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean(); + private List getMesCutSchemeMaterials(List cutCodeList,String organizeCode) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getInPackList(cutCodeList, MesExtConstWords.CUT_CODE, packBean); - List cutSchemeMaterialList = cutSchemeMaterialRepository.findByHqlWhere(packBean); - return cutSchemeMaterialList; + return cutSchemeMaterialRepository.findByHqlWhere(packBean); } - private List getMesCutSchemeFgs(List cutCodeList) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean(); + private List getMesCutSchemeFgs(List cutCodeList,String organizeCode) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getInPackList(cutCodeList, MesExtConstWords.CUT_CODE, packBean); - List cutSchemeFgList = cutSchemeFgRepository.findByHqlWhere(packBean); - return cutSchemeFgList; + return cutSchemeFgRepository.findByHqlWhere(packBean); } private List> packResultMapList(MesProduceSnPrintModel printModel, List> printTemplateDateList) { From bc6b3dc5ad6864328e327afa8976e35fa29e7de3 Mon Sep 17 00:00:00 2001 From: jun Date: Thu, 24 Oct 2024 18:26:47 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=A4=A9=E6=A1=A5=E6=95=B0=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/api/busi/report/IMesYfReportService.java | 4 + .../controller/report/MesBusiReportController.java | 17 ++++ .../serviceimpl/base/MesWorkOrderService.java | 97 +++++++++++++++++----- .../serviceimpl/report/MesYfReportServiceImpl.java | 17 ++++ 4 files changed, 116 insertions(+), 19 deletions(-) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java index ae548a6..8a55bd7 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultM import cn.estsh.i3plus.ext.mes.pojo.model.report.MesProdRuleReportConditionModel; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.mes.bean.MesCokpitKanbanData; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord; import cn.estsh.i3plus.pojo.mes.model.report.MesTraceabilityReportModel; @@ -48,4 +49,7 @@ public interface IMesYfReportService { @ApiOperation("产品加工记录") ListPager queryMesProductionRecord(MesProductionRecord mesProductionRecord, Pager pager); + + @ApiOperation("看板数据") + ListPager queryMesCokpitKanbanData(MesCokpitKanbanData kanbanData, Pager pager); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesBusiReportController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesBusiReportController.java index ff543c0..1449d7f 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesBusiReportController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesBusiReportController.java @@ -7,6 +7,7 @@ import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.mes.bean.MesCokpitKanbanData; import cn.estsh.i3plus.pojo.mes.bean.MesDowntimeRecord; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord; @@ -25,6 +26,7 @@ import org.apache.commons.collections.CollectionUtils; import org.drools.core.rule.Collect; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -148,4 +150,19 @@ public class MesBusiReportController extends MesBaseController { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } + + + @ApiOperation(value = "看板数据", notes = "看板数据") + @PostMapping("/mesCokpitKanbanData/query") + public ResultBean queryMesCokpitKanbanData(MesCokpitKanbanData kanbanData, Pager pager) { + try { + ValidatorBean.beginValid(kanbanData) + .notNull("organizeCode", kanbanData.getOrganizeCode()); + return ResultBean.success("查询成功").setListPager(mesYfReportService.queryMesCokpitKanbanData(kanbanData,pager)); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 61c366a..5b8440f 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -16,6 +16,7 @@ import cn.estsh.i3plus.platform.common.tool.MathOperation; import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; @@ -145,6 +146,9 @@ public class MesWorkOrderService extends BaseMesService implements @Autowired private IMesPrintedSnLogRepository printedSnLogRepository; + @Autowired + private SnowflakeIdMaker snowflakeIdMaker; + @Override public MesWorkOrder insert(MesWorkOrder bean) { //校验产线与工位的关系 @@ -912,7 +916,7 @@ public class MesWorkOrderService extends BaseMesService implements //查询产线信息 MesWorkCenter mesWorkCenter = getMesWorkCenter(mesWorkOrderDb.getOrganizeCode(),mesWorkOrderDb.getWorkCenterCode()); //获取生产版本 - MesProductVersion mesProductVersion = getMesProductVersion(mesWorkOrderDb); + MesProductVersion mesProductVersion = getMesProductVersion(mesWorkOrderDb.getPartNo(),mesWorkOrderDb.getOrganizeCode(),mesWorkOrderDb.getProductVersion()); //物料+生产版本获取bom信息 List mesBoms = mesBomService.findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList()); //报工类型 @@ -1012,7 +1016,7 @@ public class MesWorkOrderService extends BaseMesService implements } } //获取生产版本 - MesProductVersion mesProductVersion = getMesProductVersion(mesWorkOrder); + MesProductVersion mesProductVersion = getMesProductVersion(mesWorkOrder.getPartNo(),mesWorkOrder.getOrganizeCode(),mesWorkOrder.getProductVersion()); //物料+生产版本获取bom信息 List mesBoms = mesBomService.findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList()); //生成条码 @@ -1022,6 +1026,7 @@ public class MesWorkOrderService extends BaseMesService implements List mesMoveList = new ArrayList<>(); boolean isReport = false; boolean isMove = false; + String nowTime = TimeTool.getNowTime(true); //排序工单 if (MesExtEnumUtil.ORDER_TYPE.SORT.getValue() == mesWorkOrder.getWorkOrderType()) { //报工类型 @@ -1038,7 +1043,7 @@ public class MesWorkOrderService extends BaseMesService implements isReport = true; isMove = true; } else if (MesExtEnumUtil.MES_REPORT_TYPE.CUSTOMER_SUPPLY_MOVE.getValue() == mesProdRuleSortCfg.getReportType()) { - customerSupplyMove(mesWorkOrderNew, mesProductVersion, mesBoms, sn, mesProductOffLineList, mesMoveList); + customerSupplyMove(mesWorkOrderNew, mesProductVersion, mesBoms, sn, mesProductOffLineList, mesMoveList,nowTime,true); } else { log.info("工单{}排序加工规则报工类型未维护", mesWorkOrder.getWorkOrderNo()); return; @@ -1049,7 +1054,6 @@ public class MesWorkOrderService extends BaseMesService implements MesPartSap mesPartSap = mesPartSapService.getMesPartSapByPartNo(mesWorkOrder.getPartNo(), mesWorkOrder.getOrganizeCode()); //成品汇报 if (isReport) { - String nowTime = TimeTool.getNowTime(true); for (MesBom mesBom : mesBoms) { mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrderNew, mesProductVersion, sn, mesBom, false,nowTime,mesBoms.size())); } @@ -1064,11 +1068,11 @@ public class MesWorkOrderService extends BaseMesService implements } else if (MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue() == mesWorkOrder.getWorkOrderType()) { MesProdRuleNosortCfg mesProdRuleNoSortCfg = mesProdRuleNosortCfgService.findMesProdRuleNosortCfgByWorkCenterCode(mesWorkOrder.getWorkCenterCode(), mesWorkOrder.getPartNo(), mesWorkOrder.getOrganizeCode()); if (MesExtEnumUtil.NOSORT_REPORT_TYPE.REPORT.getValue() == mesProdRuleNoSortCfg.getReportType()) { - String nowTime = TimeTool.getNowTime(true); for (MesBom mesBom : mesBoms) { mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrderNew, mesProductVersion, sn, mesBom, false,nowTime,mesBoms.size())); } - + }else if(MesExtEnumUtil.NOSORT_REPORT_TYPE.CUSTOMER_SUPPLY_MOVE.getValue() == mesProdRuleNoSortCfg.getReportType()) { + customerSupplyMove(mesWorkOrderNew, mesProductVersion, mesBoms, sn, mesProductOffLineList, mesMoveList,nowTime,false); } } else { log.info("工单{}排序规则不属于排序工单和非排序工单", mesWorkOrder.getWorkOrderNo()); @@ -1346,7 +1350,7 @@ public class MesWorkOrderService extends BaseMesService implements if (CollectionUtils.isEmpty(oldProductOffLineList)) { MesException.throwMesBusiException("条码【%s】未查询到报工数据", model.getSn()); } - oldProductOffLineList = mesProductOffLineService.findMesProductOffLineByRecordId(oldProductOffLineList.iterator().next().getProductionRecordId(), model.getOrganizeCode()); + //oldProductOffLineList = mesProductOffLineService.findMesProductOffLineByRecordId(oldProductOffLineList.iterator().next().getProductionRecordId(), model.getOrganizeCode()); oldProductOffLineList.forEach(item -> { item.setReportType(MesExtEnumUtil.REPORT_TYPE.CBR.getValue()); item.setOrderNo(model.getShipOrderNo()); @@ -1430,10 +1434,11 @@ public class MesWorkOrderService extends BaseMesService implements return mesProductVersion; } - private void customerSupplyMove(MesWorkOrder mesWorkOrder, MesProductVersion mesProductVersion, List mesBoms, String sn, List mesProductOffLineList, List mesMoveList) { + private void customerSupplyMove(MesWorkOrder mesWorkOrder, MesProductVersion mesProductVersion, List mesBoms, String sn, List mesProductOffLineList, List mesMoveList,String nowTime,boolean isSort) { boolean isItemMove; boolean isItemReport; MesMoveRule moveRule; + MesPart itemPart; //查询零件生产组的移库规则 List moveRules = mesMoveRuleService.findMesMoveRuleByPartProdGroupCode(mesWorkOrder.getPartProdGroupCode(), mesWorkOrder.getOrganizeCode()); Map> mesMoveRuleMap = moveRules.stream().filter(t -> Objects.nonNull(t.getSrcType())).collect(Collectors.groupingBy(MesMoveRule::getSrcType)); @@ -1446,8 +1451,9 @@ public class MesWorkOrderService extends BaseMesService implements isItemReport = false; isItemMove = false; moveRule = null; + itemPart = null; if (itemPartMap.containsKey(mesBom.getItemPartNo())) { - MesPart itemPart = itemPartMap.get(mesBom.getItemPartNo()).iterator().next(); + itemPart = itemPartMap.get(mesBom.getItemPartNo()).iterator().next(); if (!StringUtil.isEmpty(itemPart.getEsd()) && mesMoveRuleMap.containsKey(itemPart.getEsd())) { moveRule = mesMoveRuleMap.get(itemPart.getEsd()).iterator().next(); if (MesExtEnumUtil.MOVE_TYPE_REPORT_TYPE.REPORT_MOVE.getValue() == moveRule.getReportType()) { @@ -1461,9 +1467,20 @@ public class MesWorkOrderService extends BaseMesService implements } } //汇报 - if (isItemReport) { - String nowTime = TimeTool.getNowTime(true); - mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrder, mesProductVersion, sn, mesBom, true,nowTime,mesBoms.size())); + if (isItemReport && isSort) { + mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrder, mesProductVersion, sn, mesBom, true, nowTime, mesBoms.size())); + } else if (isItemReport) { + String reportSn = String.valueOf(snowflakeIdMaker.nextId()); + MesProductVersion itemVersion = getMesProductVersion(mesBom.getItemPartNo(), mesWorkOrder.getOrganizeCode(), mesProductVersion.getProductVersion()); + List bomList = mesBomService.findBomList(mesWorkOrder.getOrganizeCode(), itemPart, itemVersion.getAlternativePartList()); + //bom下的子节汇报 + if (!CollectionUtils.isEmpty(bomList)) { + for (MesBom bom : bomList) { + mesProductOffLineList.add(getMesProductOffLine(mesWorkOrder, itemVersion, reportSn, bom, mesBom.getItemQty(), true, nowTime)); + } + } else { + mesProductOffLineList.add(getMesProductOffLine(mesWorkOrder, itemVersion, reportSn, mesBom, mesBom.getQty(), true, nowTime)); + } } //移库 if (isItemMove) { @@ -1476,6 +1493,13 @@ public class MesWorkOrderService extends BaseMesService implements mesMoveList.add(move); } } + + //bom下的子节汇报,总成也需要汇报 + if (!isSort && !CollectionUtils.isEmpty(mesProductOffLineList)) { + for (MesBom mesBom : mesBoms) { + mesProductOffLineList.add(getMesProductOffLine(mesWorkOrder, mesProductVersion, sn, mesBom, mesBom.getQty(), false, nowTime)); + } + } } private Map> getPartSapMap(MesWorkOrder mesWorkOrder, List itemPartNoList) { @@ -1507,18 +1531,53 @@ public class MesWorkOrderService extends BaseMesService implements } - private MesProductVersion getMesProductVersion(MesWorkOrder mesWorkOrder) { - DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "partNo", ddlPackBean); - //DdlPreparedPack.getStringEqualPack(mesWorkOrder.getErpWorkCenter(), "workCenterCode", ddlPackBean); - DdlPreparedPack.getStringEqualPack(mesWorkOrder.getProductVersion(), "productVersion", ddlPackBean); + private MesProductVersion getMesProductVersion(String partNo,String organizeCode,String productVersion) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean); + DdlPreparedPack.getStringEqualPack(productVersion, "productVersion", ddlPackBean); MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean); if (null == mesProductVersion) { - MesException.throwMesBusiException("物料【%s】生产版本【%s】信息不存在", mesWorkOrder.getPartNo(),mesWorkOrder.getProductVersion()); + MesException.throwMesBusiException("物料【%s】生产版本【%s】信息不存在", partNo,productVersion); } return mesProductVersion; } + private MesProductOffLine getMesProductOffLine(MesWorkOrder mesWorkOrder, MesProductVersion mesProductVersion, + String sn, MesBom mesBom,Double itemQty, boolean isItemReport,String nowTime) { + MesProductOffLine newMesProductOffLine = new MesProductOffLine(); + BeanUtils.copyProperties(mesBom, newMesProductOffLine, "id"); + newMesProductOffLine.setReportPartNo(mesBom.getPartNo()); + newMesProductOffLine.setReportPartNameRdd(mesBom.getPartName()); + newMesProductOffLine.setAlort(mesProductVersion.getReceiveInventoryPoint()); + newMesProductOffLine.setStgeLoc(mesProductVersion.getShipInventoryPoint()); + newMesProductOffLine.setQty(MathOperation.mul(mesWorkOrder.getNum(),itemQty)); + newMesProductOffLine.setItemQty(MathOperation.mul(newMesProductOffLine.getQty(), mesBom.getItemQty())); + if (isItemReport && mesBom.getPartNo().equals(mesWorkOrder.getPartNo())) { + newMesProductOffLine.setReportPartNo(mesBom.getItemPartNo()); + newMesProductOffLine.setReportPartNameRdd(mesBom.getItemPartName()); + newMesProductOffLine.setItemPartNo(""); + newMesProductOffLine.setItemPartName(""); + newMesProductOffLine.setItemUnit(""); + newMesProductOffLine.setItemQty(0d); + } + newMesProductOffLine.setReportSn(sn); + newMesProductOffLine.setSerialNumber(sn); + newMesProductOffLine.setBomVersion(mesWorkOrder.getProductVersion()); + newMesProductOffLine.setUnit(mesBom.getUnit()); + newMesProductOffLine.setBomCode(mesBom.getBomCode()); + newMesProductOffLine.setWorkOrderNo(mesWorkOrder.getWorkOrderNo()); + newMesProductOffLine.setWorkOrderType(mesWorkOrder.getWorkOrderType()); + newMesProductOffLine.setWorkCenterCode(mesWorkOrder.getWorkCenterCode()); + newMesProductOffLine.setWorkCellCode(mesWorkOrder.getWorkCellCode()); + newMesProductOffLine.setReportType(mesWorkOrder.getReportType()); + newMesProductOffLine.setSapWorkCenter(mesProductVersion.getWorkCenterCode()); + newMesProductOffLine.setOrganizeCode(mesWorkOrder.getOrganizeCode()); + newMesProductOffLine.setDescription(nowTime); + newMesProductOffLine.setProductionRecordId(mesWorkOrder.getId().toString()); + ConvertBean.serviceModelInitialize(newMesProductOffLine, mesWorkOrder.getModifyUser()); + return newMesProductOffLine; + } + private MesProductOffLine creatMesProductOffLine(MesWorkOrder mesWorkOrder, MesProductVersion mesProductVersion, String sn, MesBom mesBom, boolean isItemReport,String nowTime,Integer bomTotalSize) { @@ -1747,7 +1806,7 @@ public class MesWorkOrderService extends BaseMesService implements MesException.throwMesBusiException("产线【%s】不存在", mesWorkOrderDb.getWorkCenterCode()); } //获取生产版本 - MesProductVersion mesProductVersion = getMesProductVersion(mesWorkOrderDb); + MesProductVersion mesProductVersion = getMesProductVersion(mesWorkOrderDb.getPartNo(),mesWorkOrderDb.getOrganizeCode(),mesWorkOrderDb.getProductVersion()); //物料+生产版本获取bom信息 List mesBoms = findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList()); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java index b323582..78b8547 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java @@ -97,6 +97,10 @@ public class MesYfReportServiceImpl implements IMesYfReportService { @Autowired private MesProductionRecordRepository mesProductionRecordRepository; + + @Autowired + private MesCokpitKanbanDataRepository mesCokpitKanbanDataRepository; + @Override public ListPager queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel queryReportModel, Pager pager) { ListPager mesDeviceDataQueryReportResultModelListPager = @@ -251,6 +255,19 @@ public class MesYfReportServiceImpl implements IMesYfReportService { return new ListPager<>(mesProductionRecordRepository.findByHqlWherePage(packBean, pager), pager); } + @Override + public ListPager queryMesCokpitKanbanData(MesCokpitKanbanData kanbanData, Pager pager) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(kanbanData.getOrganizeCode()); + DdlPreparedPack.getStringLikerPack(kanbanData.getWorkCenterCode(),"workCenterCode",packBean); + DdlPreparedPack.getStringEqualPack("GHHCS","dataLocation",packBean); + DdlPreparedPack.getStringBiggerPack(kanbanData.getDataTimeStart(), "dataTime", packBean); + DdlPreparedPack.getStringSmallerPack(kanbanData.getDataTimeEnd(), "dataTime", packBean); + pager = PagerHelper.getPager(pager, mesCokpitKanbanDataRepository.findByHqlWhereCount(packBean)); + DdlPreparedPack.getOrderBy(kanbanData.getOrderByParam(),kanbanData.getAscOrDesc(),packBean); + List mesCokpitKanbanDataList = mesCokpitKanbanDataRepository.findByHqlWherePage(packBean, pager); + return new ListPager<>(mesCokpitKanbanDataList,pager); + } + private DdlPackBean getDdlPackBeanMesProductionRecord(MesProductionRecord mesProductionRecord) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesProductionRecord.getOrganizeCode()); DdlPreparedPack.getStringLikerPack(mesProductionRecord.getProductSn(), "productSn", packBean); From 97d7e4e65d50542a638faf7865eba83f105c14dd Mon Sep 17 00:00:00 2001 From: jun Date: Thu, 24 Oct 2024 19:59:02 +0800 Subject: [PATCH 3/4] =?UTF-8?q?SPS=E6=8B=89=E5=8A=A8=E5=8D=95=E6=89=93?= =?UTF-8?q?=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../estsh/i3plus/ext/mes/api/base/IMesCustomerPartService.java | 4 ++++ .../apiservice/serviceimpl/base/MesCustomerPartService.java | 10 ++++++++++ .../serviceimpl/base/MesPullingOrderInfoService.java | 8 +++++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCustomerPartService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCustomerPartService.java index 357bdeb..74d74d8 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCustomerPartService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCustomerPartService.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.ext.mes.api.base; import cn.estsh.i3plus.pojo.mes.bean.MesCustomerCarModelDetail; import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart; +import io.swagger.annotations.ApiOperation; import java.util.List; @@ -14,4 +15,7 @@ public interface IMesCustomerPartService extends IBaseMesService findMesCustomerPart(MesCustomerCarModelDetail mesPartProdGroupDetail); + @ApiOperation("根据零件号获取客户零件关系") + List findMesCustomerPartByPartNo(String organizeCode,List partNoList); + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerPartService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerPartService.java index 7548b83..7b2bea5 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerPartService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerPartService.java @@ -15,9 +15,11 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -100,4 +102,12 @@ public class MesCustomerPartService extends BaseMesService impl return baseRDao.findByHqlWhere(ddlPackBean); } + @Override + public List findMesCustomerPartByPartNo(String organizeCode, List partNoList) { + if(StringUtils.isEmpty(organizeCode) || Objects.isNull(partNoList)) return null; + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPack(partNoList, "erpPartNo", packBean); + return baseRDao.findByHqlWhere(packBean); + } + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPullingOrderInfoService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPullingOrderInfoService.java index d195ac7..e61342b 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPullingOrderInfoService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPullingOrderInfoService.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; +import cn.estsh.i3plus.ext.mes.api.base.IMesCustomerPartService; import cn.estsh.i3plus.ext.mes.api.base.IMesPullingOrderInfoService; import cn.estsh.i3plus.icloud.core.sdk.ICoreUtilCloud; import cn.estsh.i3plus.platform.common.convert.ConvertBean; @@ -49,6 +50,8 @@ public class MesPullingOrderInfoService extends BaseMesService工厂号{},产线对应的工单对应工单零件mesWorkOrderPartList-->{}", organizeCode, mesWorkOrderPartList); //5.取工单零件和拉动组交集,根据拉动主表对应的类型 生成相应的拉动单和拉动单明细 Map> workOrderNoListMap = mesWorkOrderPartList.stream().collect(Collectors.groupingBy(MesWorkOrderPart::getWorkOrderNo)); + //6、获取客户物料信息 + List mesCustomerPartByPartNoList = mesCustomerPartService.findMesCustomerPartByPartNo(organizeCode, partPullDetailListMap.keySet().stream().distinct().collect(Collectors.toList())); + Map> customerPartMap = CollectionUtils.isEmpty(mesCustomerPartByPartNoList) ? null : mesCustomerPartByPartNoList.stream().collect(Collectors.groupingBy(MesCustomerPart::getErpPartNo)); for (Map.Entry> stringListEntry : workOrderNoListMap.entrySet()) { @@ -234,7 +240,7 @@ public class MesPullingOrderInfoService extends BaseMesService Date: Fri, 25 Oct 2024 15:05:32 +0800 Subject: [PATCH 4/4] =?UTF-8?q?CBR=E8=B4=9F=E6=8A=A5=E5=B7=A5=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/base/MesWorkOrderService.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 5b8440f..a281582 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -47,7 +47,6 @@ import java.text.SimpleDateFormat; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; -import java.util.stream.Stream; @Service @Slf4j @@ -1472,7 +1471,11 @@ public class MesWorkOrderService extends BaseMesService implements } else if (isItemReport) { String reportSn = String.valueOf(snowflakeIdMaker.nextId()); MesProductVersion itemVersion = getMesProductVersion(mesBom.getItemPartNo(), mesWorkOrder.getOrganizeCode(), mesProductVersion.getProductVersion()); - List bomList = mesBomService.findBomList(mesWorkOrder.getOrganizeCode(), itemPart, itemVersion.getAlternativePartList()); + List bomList = null; + try { + bomList = findBomList(mesWorkOrder.getOrganizeCode(), itemPart, itemVersion.getAlternativePartList()); + } catch (Exception e) { + } //bom下的子节汇报 if (!CollectionUtils.isEmpty(bomList)) { for (MesBom bom : bomList) { @@ -1504,14 +1507,12 @@ public class MesWorkOrderService extends BaseMesService implements private Map> getPartSapMap(MesWorkOrder mesWorkOrder, List itemPartNoList) { List mesPartSapList = mesPartSapService.findMesPartSapByPartNoList(itemPartNoList, mesWorkOrder.getOrganizeCode()); - Map> mesPartSapMap = mesPartSapList.stream().filter(t -> Objects.nonNull(t.getPartNo())).collect(Collectors.groupingBy(MesPartSap::getPartNo)); - return mesPartSapMap; + return mesPartSapList.stream().filter(t -> Objects.nonNull(t.getPartNo())).collect(Collectors.groupingBy(MesPartSap::getPartNo)); } private Map> getItemPartMap(MesWorkOrder mesWorkOrder, List itemPartNoList) { List itemPartList = iMesPartService.findMesPartByPartNoList(itemPartNoList, mesWorkOrder.getOrganizeCode()); - Map> itemPartMap = itemPartList.stream().filter(t -> Objects.nonNull(t.getPartNo())).collect(Collectors.groupingBy(MesPart::getPartNo)); - return itemPartMap; + return itemPartList.stream().filter(t -> Objects.nonNull(t.getPartNo())).collect(Collectors.groupingBy(MesPart::getPartNo)); } private MesProdRuleSortCfg getMesProdRuleSortCfg(MesWorkOrder mesWorkOrder) { @@ -1545,7 +1546,7 @@ public class MesWorkOrderService extends BaseMesService implements private MesProductOffLine getMesProductOffLine(MesWorkOrder mesWorkOrder, MesProductVersion mesProductVersion, String sn, MesBom mesBom,Double itemQty, boolean isItemReport,String nowTime) { MesProductOffLine newMesProductOffLine = new MesProductOffLine(); - BeanUtils.copyProperties(mesBom, newMesProductOffLine, "id"); + BeanUtils.copyProperties(mesBom, newMesProductOffLine, "id","systemSyncStatus"); newMesProductOffLine.setReportPartNo(mesBom.getPartNo()); newMesProductOffLine.setReportPartNameRdd(mesBom.getPartName()); newMesProductOffLine.setAlort(mesProductVersion.getReceiveInventoryPoint()); @@ -1581,8 +1582,7 @@ public class MesWorkOrderService extends BaseMesService implements private MesProductOffLine creatMesProductOffLine(MesWorkOrder mesWorkOrder, MesProductVersion mesProductVersion, String sn, MesBom mesBom, boolean isItemReport,String nowTime,Integer bomTotalSize) { - MesProductOffLine newMesProductOffLine; - newMesProductOffLine = new MesProductOffLine(); + MesProductOffLine newMesProductOffLine = new MesProductOffLine(); if (!isItemReport) { newMesProductOffLine.setReportPartNo(mesWorkOrder.getPartNo()); newMesProductOffLine.setReportPartNameRdd(mesWorkOrder.getPartName());