diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/MesProductionRecordToPisces.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/MesProductionRecordToPisces.groovy new file mode 100644 index 0000000..bf348f1 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/MesProductionRecordToPisces.groovy @@ -0,0 +1,88 @@ +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack +import cn.estsh.i3plus.pojo.mes.bean.MesEquipment +import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder +import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper +import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentRepository +import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository +import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderRepository +import org.slf4j.Logger +import org.slf4j.LoggerFactory +import org.springframework.beans.factory.annotation.Autowired + +/** + * @Description : 加工记录同步 MES2PISCES + * @Reference : + * @Author : wangjie + * @CreateDate 2024/7/12 12:28 + * @Modify: + * */ +class MesProductionRecordToPisces { + + public static final Logger LOGGER = LoggerFactory.getLogger(MesProductionRecordToPisces.class) + + @Autowired + private MesEquipmentRepository equipmentRepository; + + @Autowired + private MesProduceSnRepository produceSnRepository; + + @Autowired + private MesWorkOrderRepository workOrderRepository; + + def filterData(MesInterfaceDataMapper mapper, List> srcData) throws Exception { + if (srcData == null || srcData.size() == 0) { + return srcData + } + + for (Map rowMap : srcData) { + + String productSn = String.valueOf(rowMap.get("product_sn")); + String partNo = String.valueOf(rowMap.get("part_no")); + + MesProduceSn produceSnDb = getProduceSnDb(mapper.getOrganizeCode(), productSn, partNo); + if (!Objects.isNull(produceSnDb)) { + rowMap.put("BARCODE_ID", produceSnDb.getId()) + } + + String workOrderNo = String.valueOf(rowMap.get("work_order_no")); + MesWorkOrder workOrderDb = getWorkOrderDb(mapper.getOrganizeCode(), workOrderNo); + if (!Objects.isNull(workOrderDb)) { + rowMap.put("WORK_ORDER_FID", workOrderDb.getFid()) + } + + String equipmentCode = String.valueOf(rowMap.get("equipment_code")); + MesEquipment equipmentDb = getEquipmentDb(mapper.getOrganizeCode(), equipmentCode); + if (!Objects.isNull(equipmentDb)) { + rowMap.put("EQUIPMENT_ID", equipmentDb.getEquipId()) + } + + } + + return srcData; + } + + def getProduceSnDb(String organizeCode, String productSn, String partNo) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(productSn, "productSn", ddlPackBean); + DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean); + MesProduceSn produceSnDb = produceSnRepository.getByProperty(ddlPackBean); + return produceSnDb; + } + + MesWorkOrder getWorkOrderDb(String organizeCode, String workOrderNo) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(workOrderNo, "workOrderNo", ddlPackBean); + MesWorkOrder workOrderDb = workOrderRepository.getByProperty(ddlPackBean); + return workOrderDb; + } + + def getEquipmentDb(String organizeCode, String equipmentCode) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(equipmentCode, "equipmentCode", ddlPackBean); + MesEquipment equipmentDb = equipmentRepository.getByProperty(ddlPackBean); + return equipmentDb; + } + +} \ No newline at end of file diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/PiscesToMesProductionRecord.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/PiscesToMesProductionRecord.groovy index f29c57f..15b55c0 100644 --- a/modules/i3plus-ext-mes-apiservice/src/groovy/PiscesToMesProductionRecord.groovy +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/PiscesToMesProductionRecord.groovy @@ -2,9 +2,11 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack import cn.estsh.i3plus.pojo.mes.bean.MesEquipment import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentRepository import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository +import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderRepository import org.slf4j.Logger import org.slf4j.LoggerFactory import org.springframework.beans.factory.annotation.Autowired @@ -12,7 +14,7 @@ import org.springframework.util.CollectionUtils import org.springframework.util.StringUtils /** - * @Description : 加工记录同步 + * @Description : 加工记录同步 PISCES2MES * @Reference : * @Author : wangjie * @CreateDate 2024/7/12 12:28 @@ -28,6 +30,9 @@ class PiscesToMesProductionRecord { @Autowired private MesWorkCenterRepository workCenterRepository; + @Autowired + private MesWorkOrderRepository workOrderRepository; + def filterData(MesInterfaceDataMapper mapper, List> srcData) throws Exception { if (srcData == null || srcData.size() == 0) { return srcData @@ -37,14 +42,14 @@ class PiscesToMesProductionRecord { Map centerMap = new HashMap<>(); for (Map rowMap : srcData) { - if (!StringUtils.isEmpty(rowMap.get("EQUIP_ID"))) { - String equipId = String.valueOf(rowMap.get("EQUIP_ID")); + if (!StringUtils.isEmpty(rowMap.get("EQUIPMENT_ID"))) { + String equipId = String.valueOf(rowMap.get("EQUIPMENT_ID")); MesEquipment equipmentDb = (!CollectionUtils.is(equipMap) && equipMap.containsKey(equipId)) ? equipMap.get(equipId) : getEquipmentDb(mapper.getOrganizeCode(), equipId, equipMap); if (!Objects.isNull(equipmentDb)) { rowMap.put("EQUIPMENT_CODE", equipmentDb.getEquipmentCode()) rowMap.put("EQUIPMENT_NAME", equipmentDb.getEquipmentName()) } else { - LOGGER.info("接口映射执行加工记录同步,设备ID{}对象的设备信息不存在", equipId) + LOGGER.info("执行加工记录同步PISCES2MES,设备ID{}对应的设备信息不存在", equipId) } } if (!StringUtils.isEmpty(rowMap.get("ASSEMBLY_LINE"))) { @@ -52,13 +57,20 @@ class PiscesToMesProductionRecord { MesWorkCenter workCenterDb = (!CollectionUtils.is(centerMap) && centerMap.containsKey(workCenterCode)) ? centerMap.get(workCenterCode) : getWorkCenterDb(mapper.getOrganizeCode(), workCenterCode, centerMap); if (!Objects.isNull(workCenterDb)) { rowMap.put("AREA_CODE", workCenterDb.getAreaCode()) - rowMap.put("WORK_CENTER_CODE", workCenterDb.getWorkCenterCode()) } else { - LOGGER.info("接口映射执行加工记录同步,生产线代码{}对象的生产线信息不存在", workCenterCode) + LOGGER.info("执行加工记录同步PISCES2MES,生产线代码{}对应的生产线信息不存在", workCenterCode) + } + } + if (!StringUtils.isEmpty(rowMap.get("WORK_ORDER_FID"))) { + String workOrderFid = String.valueOf(rowMap.get("WORK_ORDER_FID")); + MesWorkOrder workOrderDb = getWorkOrderDb(mapper.getOrganizeCode(), workOrderFid); + if (!Objects.isNull(workOrderDb)) { + rowMap.put("WORK_ORDER_NO", workOrderDb.getWorkOrderNo()) + } else { + LOGGER.info("执行加工记录同步PISCES2MES,生产工单FID{}对应的工单信息不存在", workOrderFid) } } } - return srcData; } @@ -78,4 +90,11 @@ class PiscesToMesProductionRecord { return workCenterDb; } + def getWorkOrderDb(String organizeCode, String workOrderFid) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(workOrderFid, "fid", ddlPackBean); + MesWorkOrder workOrderDb = workOrderRepository.getByProperty(ddlPackBean); + return workOrderDb; + } + } \ No newline at end of file