diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesProdShiftRecordController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesProdShiftRecordController.java index 616548a..739cffa 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesProdShiftRecordController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesProdShiftRecordController.java @@ -124,6 +124,9 @@ public class MesProdShiftRecordController { return StationKvBeanUtil.addStationKvBeanList(new ArrayList<>(), new StationKvBean("shiftGroup", "班组", record.getShiftGroup()), - new StationKvBean("shiftCode", "班次", record.getShiftCode())); + new StationKvBean("shiftGroupName", "班组名称", record.getShiftGroup()), + new StationKvBean("shiftCode", "班次", record.getShiftCode()), + new StationKvBean("shiftName", "班次名称", record.getShiftName())) + ; } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportNoSortJob.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportNoSortJob.java index 5691a7a..b68f6c9 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportNoSortJob.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportNoSortJob.java @@ -76,7 +76,7 @@ public class MesReportNoSortJob extends BaseMesScheduleJob { private void handlerNoOrder(String organizeCode, String userName) { List unReportMesProduceSn = workOrderService.getUnReportMesProduceSn(organizeCode); if (CollectionUtils.isEmpty(unReportMesProduceSn)) { - LOGGER.error("没有加工记录,无需处理"); + LOGGER.error("无加工单加工记录中没有数据,无需处理"); return; } try { @@ -92,7 +92,7 @@ public class MesReportNoSortJob extends BaseMesScheduleJob { private void handlerHasOrder(String organizeCode, String userName) { List unReportMesProduceSn = workOrderService.getUnReportHasOrderMesProduceSn(organizeCode); if (CollectionUtils.isEmpty(unReportMesProduceSn)) { - LOGGER.error("没有加工记录,无需处理"); + LOGGER.error("有加工单加工记录中没有数据,无需处理"); return; } try { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesProdShiftRecordServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesProdShiftRecordServiceImpl.java index b9f50f6..f3e3e64 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesProdShiftRecordServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesProdShiftRecordServiceImpl.java @@ -103,6 +103,9 @@ public class MesProdShiftRecordServiceImpl implements IMesProdShiftRecordService DdlPackBean packBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(bean.getWorkCenterCode(), "workCenterCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getShiftGroup(), "shiftGroup", packBean); + if (bean.getWorkStatus() != null) { + DdlPreparedPack.getNumEqualPack(bean.getWorkStatus(), "workStatus", packBean); + } packBean.setOrderByStr(bean.orderBy()); return mesProdShiftRecordRDao.getByProperty(packBean); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java index bc60e9f..9396ae6 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java @@ -448,6 +448,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { //新增初始化 todo // 根据 //根据物料获取已发布的工单 + LOGGER.info("此次报工的条码【{}】,工单【{}】", productionRecord.getProductSn(), productionRecord.getWorkOrderNo()); List oldMesWorkOrders = getMesWorkOrders(productionRecord, organizeCode, null); if (CollectionUtils.isEmpty(oldMesWorkOrders)) { //updateProductionRecord(organizeCode, userName, productionRecord.getProductSn()); @@ -484,6 +485,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { productionRecord.getPartNo(), mesProductVersion.getProductVersion())); } oldMesWorkOrder.setNum(oldMesWorkOrder.getNum() == null ? 1 : oldMesWorkOrder.getNum() + 1); + LOGGER.info("工单报工原数量【{}】", oldMesWorkOrder.getReportedQty()); oldMesWorkOrder.setReportedQty(MathOperation.add(oldMesWorkOrder.getNum(), oldMesWorkOrder.getReportedQty())); //更新SAP计划完成数量 saveMesProductPlan(oldMesWorkOrder, false, true); @@ -499,6 +501,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { } else { oldMesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()); } + LOGGER.info("工单报工后数量【{}】", oldMesWorkOrder.getReportedQty()); ConvertBean.serviceModelUpdate(oldMesWorkOrder, userName); workOrderRepository.saveAndFlush(oldMesWorkOrder); //保存数据 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleService.java index b826e76..3aaaff4 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleService.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station; +import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesProdShiftRecordService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionCustomContextStepService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; @@ -14,6 +15,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesFile; +import cn.estsh.i3plus.pojo.mes.bean.MesProdShiftRecord; import cn.estsh.i3plus.pojo.mes.bean.MesStateMachineStatus; import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell; import cn.estsh.i3plus.pojo.mes.model.AttrBean; @@ -56,6 +58,9 @@ public class MesProductionNoSortModuleService extends BaseModuleService { private IMesProductionCustomContextStepService productionCustomContextStepService; @Autowired + private IMesProdShiftRecordService mesProdShiftRecordService; + + @Autowired private MesFileRepository mesFileRepository; @Override @@ -66,9 +71,11 @@ public class MesProductionNoSortModuleService extends BaseModuleService { //获取上下文信息 MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getEquipmentVariableList(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue()); MesWorkCell mesWorkCell = productionProcessContext.getWorkCell(); + /** + * 获取班次信息,先查询缓存,缓存没有在查询数据库 + */ + List prodShiftDataContext = getShiftRecordStationKvBeans(reqBean); - // 获取班次信息 - List prodShiftDataContext = productionCustomContextStepService.getProdShiftDataContext(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode()); MesProdShiftContext mesProdShiftKvBean = productionCustomContextStepService.getMesProdShiftKvBean(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode()); if (CollectionUtils.isEmpty(prodShiftDataContext)) { @@ -97,6 +104,23 @@ public class MesProductionNoSortModuleService extends BaseModuleService { } + private List getShiftRecordStationKvBeans(StationRequestBean reqBean) { + // 获取班次信息 redis + List prodShiftDataContext = productionCustomContextStepService.getProdShiftDataContext(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode()); + if (CollectionUtils.isEmpty(prodShiftDataContext)) { + MesProdShiftRecord shiftRecord = new MesProdShiftRecord(); + shiftRecord.setWorkCenterCode(reqBean.getWorkCenterCode()); + shiftRecord.setWorkStatus(MesExtEnumUtil.WORK_STATUS.START.getValue()); + // 查询数据库 + MesProdShiftRecord prodShiftRecord = mesProdShiftRecordService.queryMesProdShiftRecord(shiftRecord); + if (prodShiftRecord != null) { + prodShiftDataContext = getProdShiftData(prodShiftRecord); + productionCustomContextStepService.saveProdShiftDataContext(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(),prodShiftDataContext); + } + } + return prodShiftDataContext; + } + private StationResultBean getStationResultBean(StationRequestBean reqBean, List> moduleContentContext, List prodShiftDataContext) { StationResultBean resultBean = new StationResultBean(); resultBean.setBusiType(MesPcnEnumUtil.STATION_BUSI_TYPE.MODULE_CONTENT.getValue()); @@ -160,5 +184,14 @@ public class MesProductionNoSortModuleService extends BaseModuleService { init(reqBean); return true; } - + //封装展示组件班组班次内容 + private List getProdShiftData(MesProdShiftRecord record) { + + return StationKvBeanUtil.addStationKvBeanList(new ArrayList<>(), + new StationKvBean("shiftGroup", "班组", record.getShiftGroup()), + new StationKvBean("shiftGroupName", "班组名称", record.getShiftGroup()), + new StationKvBean("shiftCode", "班次", record.getShiftCode()), + new StationKvBean("shiftName", "班次名称", record.getShiftName())) + ; + } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldRecordGenerateStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldRecordGenerateStepService.java index 776acbb..88be049 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldRecordGenerateStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldRecordGenerateStepService.java @@ -78,39 +78,37 @@ public class MesMouldRecordGenerateStepService extends BaseStepService { private void saveMouldRecord(StationRequestBean reqBean, StationResultBean resultBean, MesProductionProcessContext productionProcessContext, List mesProduceSns, MesEquipVariableCollectContext mesFirstMouldNoCollectContext, MesEquipVariableCollectContext mesMouldNoCollectContext) { List mesProdMouldRecords = new ArrayList<>(); - for (MesProduceSn mesProduceSn : mesProduceSns) { - // 获取工位设备信息 - MesCellEquipContext mesCellEquipContext = productionProcessContext.getCurCellEquip(); + MesScanMonitorContext mesScanMonitorContext = productionProcessContextStepService.doHandleScanMonitorContext(reqBean, true); - String equipmentCode = mesCellEquipContext.getEquipmentCode(); + Long moduleId = mesScanMonitorContext.getMouldRecordId(); + // 获取工位设备信息 + MesCellEquipContext mesCellEquipContext = productionProcessContext.getCurCellEquip(); - String mouldNo = ""; + String equipmentCode = mesCellEquipContext.getEquipmentCode(); - if (mesFirstMouldNoCollectContext != null) { - mouldNo = mesFirstMouldNoCollectContext.getEquipVariableValue(); - } else if (mesFirstMouldNoCollectContext == null && mesMouldNoCollectContext != null) { - mouldNo = mesMouldNoCollectContext.getEquipVariableValue(); - } - DdlPackBean packBean = DdlPackBean.getDdlPackBean(); - DdlPreparedPack.getStringEqualPack(equipmentCode, "equipmentCode", packBean); - DdlPreparedPack.getStringEqualPack(mouldNo, "mouldNo", packBean); - MesMouldMappingCfg mesMouldMappingCfg = mesMouldMappingCfgRepository.getByProperty(packBean); + String mouldNo = ""; + if (mesFirstMouldNoCollectContext != null) { + mouldNo = mesFirstMouldNoCollectContext.getEquipVariableValue(); + } else if (mesFirstMouldNoCollectContext == null && mesMouldNoCollectContext != null) { + mouldNo = mesMouldNoCollectContext.getEquipVariableValue(); + } - MesProdMouldRecord mesProductionRecord = getMesProdMouldRecord(mesCellEquipContext, mouldNo, mesMouldMappingCfg); + MesProdMouldRecord mesProductionRecord = getMesProdMouldRecord(mesCellEquipContext, mouldNo, moduleId); + + ConvertBean.serviceModelInitialize(mesProductionRecord, reqBean.getUserInfo()); + mesProdMouldRecords.add(mesProductionRecord); - ConvertBean.serviceModelInitialize(mesProductionRecord, reqBean.getUserInfo()); - mesProdMouldRecords.add(mesProductionRecord); - } mesProdMouldRecordRepository.saveAll(mesProdMouldRecords); } - private MesProdMouldRecord getMesProdMouldRecord(MesCellEquipContext mesCellEquipContext, String mouldNo, MesMouldMappingCfg mesMouldMappingCfg) { + private MesProdMouldRecord getMesProdMouldRecord(MesCellEquipContext mesCellEquipContext, String mouldNo, Long mouldId) { MesProdMouldRecord mesProdMouldRecord = new MesProdMouldRecord(); mesProdMouldRecord.setEquipId(mesCellEquipContext.getEquipId()); - mesProdMouldRecord.setMeterName(mesMouldMappingCfg == null ? null : mesMouldMappingCfg.getMeterName()); - mesProdMouldRecord.setAssetNum(mesMouldMappingCfg == null ? null : mesMouldMappingCfg.getAssetNum()); + mesProdMouldRecord.setId(mouldId); + /* mesProdMouldRecord.setMeterName(mesMouldMappingCfg == null ? null : mesMouldMappingCfg.getMeterName()); + mesProdMouldRecord.setAssetNum(mesMouldMappingCfg == null ? null : mesMouldMappingCfg.getAssetNum());*/ mesProdMouldRecord.setMouldNo(mouldNo); mesProdMouldRecord.setEquipmentCode(mesCellEquipContext.getEquipmentCode()); return mesProdMouldRecord; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionRecordGenerateStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionRecordGenerateStepService.java index a8cb97d..c92fd8e 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionRecordGenerateStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionRecordGenerateStepService.java @@ -111,11 +111,16 @@ public class MesProductionRecordGenerateStepService extends BaseStepService { private void saveProductionRecordData(StationRequestBean reqBean, String mouldNo, List prodRuleContextList, MesProductionProcessContext productionProcessContext, MesProductionPsOutContext productionPsOutContext, Map prMap, MesCellEquipContext cellEquipContext) { + MesScanMonitorContext mesScanMonitorContext = productionProcessContextStepService.doHandleScanMonitorContext(reqBean, true); + + MesProdRuleContext prodRuleContext = CollectionUtils.isEmpty(prMap) ? null : prMap.get(productionPsOutContext.getForeignKey()); MesProductionRecord productionRecord = new MesProductionRecord(); BeanUtils.copyProperties(productionPsOutContext, productionRecord); + productionRecord.setMouldRecordId(mesScanMonitorContext.getMouldRecordId()); + productionRecord.setStartDateTime(mesScanMonitorContext.getStartDateTime()); productionRecord.setMouldNo(mouldNo); productionRecord.setEquipmentCode(cellEquipContext.getEquipmentCode()); productionRecord.setEquipmentName(cellEquipContext.getEquipmentName());