diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductionAssembly.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductionAssembly.groovy new file mode 100644 index 0000000..15bea67 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductionAssembly.groovy @@ -0,0 +1,105 @@ +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.MesProductionRecord +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.MesProductionRecordRepository +import org.slf4j.Logger +import org.slf4j.LoggerFactory +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.util.StringUtils + +/** + * @Description : 装配件绑定记录表 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/7/13 17:59 + * @Modify: + * */ +class MesToPiscesProductionAssembly { + + public static final Logger LOGGER = LoggerFactory.getLogger(MesToPiscesProductionAssembly.class) + + @Autowired + private MesEquipmentRepository mesEquipmentRepository; + + @Autowired + private MesProduceSnRepository mesProduceSnRepository; + + @Autowired + private MesProductionRecordRepository mesProductionRecordRepository; + + def filterData(MesInterfaceDataMapper mapper, List> srcData) throws Exception { + if (srcData == null || srcData.size() == 0) { + return srcData + } + Map mesEquipmentMap = new HashMap<>(); + Map mesProduceSnMap = new HashMap<>(); + Map mesProductionRecordMap = new HashMap<>(); + String organizeCode = mapper.getOrganizeCode(); + for (Map rowMap : srcData) { + //装配条码ID + if (!StringUtils.isEmpty(rowMap.get("assembly_sn"))) { + MesProduceSn mesProduceSn = getMesProduceSn(organizeCode, String.valueOf(rowMap.get("assembly_sn")), mesProduceSnMap) + if (!Objects.isNull(mesProduceSn)) { + rowMap.put("ASSEMBLY_BARCODE_ID", mesProduceSn.getId()) + } else { + LOGGER.info("条码:{}信息不存在", String.valueOf(rowMap.get("assembly_sn"))) + } + } + //条码 + if (!StringUtils.isEmpty(rowMap.get("product_sn"))) { + MesProduceSn mesProduceSn = getMesProduceSn(organizeCode, String.valueOf(rowMap.get("product_sn")), mesProduceSnMap) + if (!Objects.isNull(mesProduceSn)) { + rowMap.put("BARCODE_ID", mesProduceSn.getId()) + } else { + LOGGER.info("条码:{}信息不存在", String.valueOf(rowMap.get("product_sn"))) + } + } + //加工记录表 + if (!StringUtils.isEmpty(rowMap.get("production_record_id"))) { + long id = Long.parseLong(String.valueOf(rowMap.get("production_record_id"))); + if (Objects.isNull(mesProductionRecordMap) || !mesProductionRecordMap.containsKey(id)) { + mesProductionRecordMap.put(id, mesProductionRecordRepository.getById(id)) + } + MesProductionRecord mesProductionRecord = mesProductionRecordMap.get(id) + if (!Objects.isNull(mesProductionRecord)) { + rowMap.put("PRODUCTION_LOG_FID", mesProductionRecord.getFid()) + } else { + LOGGER.info("原材料容器id:{},信息不存在", String.valueOf(rowMap.get(rowMap.get("production_record_id")))) + } + } + //获取设备FID + if (!StringUtils.isEmpty(rowMap.get("equipment_code"))) { + MesEquipment mesEquipment = getMesEquipment(organizeCode, String.valueOf(rowMap.get("equipment_code")), mesEquipmentMap) + if (!Objects.isNull(mesEquipment)) { + rowMap.put("EQUIPMENT_FID", mesEquipment.getFid()) + } else { + LOGGER.info("设备代码:{}信息不存在", String.valueOf(rowMap.get("EQUIPMENT_FID"))) + } + } + } + return srcData; + } + + private MesEquipment getMesEquipment(String organizeCode, String equipmentCode, Map mesEquipmentMap) { + if (Objects.isNull(mesEquipmentMap) || !mesEquipmentMap.containsKey(equipmentCode)) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(equipmentCode, "equipmentCode", ddlPackBean); + mesEquipmentMap.put(equipmentCode, mesEquipmentRepository.getByProperty(ddlPackBean)) + } + return mesEquipmentMap.get(equipmentCode); + } + + private MesProduceSn getMesProduceSn(String organizeCode, String sn, Map mesProduceSnMap) { + if (Objects.isNull(mesProduceSnMap) || !mesProduceSnMap.containsKey(sn)) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(sn, "productSn", ddlPackBean); + mesProduceSnMap.put(sn, mesProduceSnRepository.getByProperty(ddlPackBean)) + } + return mesProduceSnMap.get(sn); + } +} \ No newline at end of file diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesRawPartCharging.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesRawPartCharging.groovy index 4a17a4e..5cba587 100644 --- a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesRawPartCharging.groovy +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesRawPartCharging.groovy @@ -16,7 +16,7 @@ import org.springframework.util.StringUtils * @Author : junsheng.li * @CreateDate 2024/7/13 13:03 * @Modify: - **/ + * */ class MesToPiscesRawPartCharging { public static final Logger LOGGER = LoggerFactory.getLogger(MesToPiscesRawPartCharging.class) @@ -34,20 +34,31 @@ class MesToPiscesRawPartCharging { if (srcData == null || srcData.size() == 0) { return srcData } + Map mesRawPackageMap = new HashMap<>(); + Map mesRawPackageDetailMap = new HashMap<>(); + Map mesRawPackagePartMap = new HashMap<>(); for (Map rowMap : srcData) { //原材料容器 - if (!StringUtils.isEmpty(rowMap.get("PACKAGE_ID"))) { - MesRawPackage mesRawPackage = mesRawPackageRepository.getById(Long.parseLong(String.valueOf(rowMap.get("PACKAGE_ID")))) + if (!StringUtils.isEmpty(rowMap.get("package_id"))) { + long id = Long.parseLong(String.valueOf(rowMap.get("package_id"))); + if (Objects.isNull(mesRawPackageMap) || !mesRawPackageMap.containsKey(id)) { + mesRawPackageMap.put(id, mesRawPackageRepository.getById(id)) + } + MesRawPackage mesRawPackage = mesRawPackageMap.get(id) if (!Objects.isNull(mesRawPackage)) { rowMap.put("PACKAGE_NAME", mesRawPackage.getName()) rowMap.put("PACKAGE_FID", mesRawPackage.getFid()) } else { - LOGGER.info("原材料容器id:{},信息不存在", String.valueOf(rowMap.get(rowMap.get("PACKAGE_ID")))) + LOGGER.info("原材料容器id:{},信息不存在", String.valueOf(rowMap.get(rowMap.get("package_id")))) } } //防错配置明细 if (!StringUtils.isEmpty(rowMap.get("package_detail_id"))) { - MesRawPackageDetail mesRawPackageDetail = mesRawPackageDetailRepository.getById(Long.parseLong(String.valueOf(rowMap.get("package_detail_id")))) + long id = Long.parseLong(String.valueOf(rowMap.get("package_detail_id"))); + if (Objects.isNull(mesRawPackageDetailMap) || !mesRawPackageDetailMap.containsKey(id)) { + mesRawPackageDetailMap.put(id, mesRawPackageDetailRepository.getById(id)) + } + MesRawPackageDetail mesRawPackageDetail = mesRawPackageDetailMap.get(id) if (!Objects.isNull(mesRawPackageDetail)) { rowMap.put("PACKAGE_DETAIL_FID", mesRawPackageDetail.getFid()) } else { @@ -56,11 +67,15 @@ class MesToPiscesRawPartCharging { } //原材料容器零件关系表 if (!StringUtils.isEmpty(rowMap.get("package_part_id"))) { - MesRawPackagePart mesRawPackagePart = mesRawPackagePartRepository.getById(Long.parseLong(String.valueOf(rowMap.get("package_part_id")))) + long id = Long.parseLong(String.valueOf(rowMap.get("package_part_id"))); + if (Objects.isNull(mesRawPackagePartMap) || !mesRawPackagePartMap.containsKey(id)) { + mesRawPackagePartMap.put(id, mesRawPackagePartRepository.getById(id)) + } + MesRawPackagePart mesRawPackagePart = mesRawPackagePartMap.get(id) if (!Objects.isNull(mesRawPackagePart)) { rowMap.put("PACKAGE_PART_FID", mesRawPackagePart.getFid()) } else { - LOGGER.info("原材料容器明细id:{},信息不存在", String.valueOf(rowMap.get(rowMap.get("package_detail_id")))) + LOGGER.info("原材料容器明细id:{},信息不存在", String.valueOf(rowMap.get(rowMap.get("package_part_id")))) } } } diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesWorkOrder.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesWorkOrder.groovy index 721fa27..b7c7e4c 100644 --- a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesWorkOrder.groovy +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesWorkOrder.groovy @@ -41,65 +41,81 @@ class MesToPiscesWorkOrder { if (srcData == null || srcData.size() == 0) { return srcData } + Map mesProductVersionMap = new HashMap<>(); + Map mesPartSapMap = new HashMap<>(); + Map mesPartProdGroupMap = new HashMap<>(); + Map mesCustomerCarModelMap = new HashMap<>(); String organizeCode = mapper.getOrganizeCode(); for (Map rowMap : srcData) { - if (!StringUtils.isEmpty(rowMap.get("PART_NO")) && !StringUtils.isEmpty(rowMap.get("PRODUCT_VERSION")) && !StringUtils.isEmpty(rowMap.get("ERP_WORK_CENTER"))) { - MesProductVersion mesProductVersion = getMesProductVersion(organizeCode, String.valueOf(rowMap.get(rowMap.get("PART_NO"))), String.valueOf(rowMap.get("PRODUCT_VERSION")), String.valueOf(rowMap.get("ERP_WORK_CENTER"))) + if (!StringUtils.isEmpty(rowMap.get("part_no")) && !StringUtils.isEmpty(rowMap.get("product_version")) && !StringUtils.isEmpty(rowMap.get("erp_work_center"))) { + MesProductVersion mesProductVersion = getMesProductVersion(organizeCode, String.valueOf(rowMap.get("part_no")), String.valueOf(rowMap.get("product_version")), String.valueOf(rowMap.get("erp_work_center")), mesProductVersionMap) if (!Objects.isNull(mesProductVersion)) { rowMap.put("BOM_CODE", mesProductVersion.getAlternativePartList()) } else { - LOGGER.info("物料{}生产版本{}工作中心{},信息不存在", String.valueOf(rowMap.get(rowMap.get("PART_NO"))), String.valueOf(rowMap.get(rowMap.get("PRODUCT_VERSION"))), String.valueOf(rowMap.get(rowMap.get("ERP_WORK_CENTER")))) + LOGGER.info("物料{}生产版本{}工作中心{},信息不存在", String.valueOf(rowMap.get("part_no")), String.valueOf(rowMap.get("product_version")), String.valueOf(rowMap.get("erp_work_center"))) } } //获取物料信息 - if (!StringUtils.isEmpty(rowMap.get("PART_NO"))) { + if (!StringUtils.isEmpty(rowMap.get("part_no"))) { try { - MesPartSap mesPartSap = mesPartSapService.getMesPartSapByPartNo(String.valueOf(rowMap.get(rowMap.get("PART_NO"))), organizeCode) + if (Objects.isNull(mesPartSapMap) || !mesPartSapMap.containsKey(String.valueOf(rowMap.get("part_no")))) { + mesPartSapMap.put(String.valueOf(rowMap.get("part_no")), mesPartSapService.getMesPartSapByPartNo(String.valueOf(rowMap.get("part_no")), organizeCode)) + } + MesPartSap mesPartSap = mesPartSapMap.get(String.valueOf(rowMap.get("part_no"))) rowMap.put("UOM", mesPartSap.getUnit()) } catch (Exception e) { - LOGGER.info("物料{},信息不存在", String.valueOf(rowMap.get("PART_NO"))) + LOGGER.info("物料{},信息不存在", String.valueOf(rowMap.get("part_no"))) } } //获取零件生产组 - if (!StringUtils.isEmpty(rowMap.get("PART_PROD_GROUP_CODE"))) { - MesPartProdGroup mesPartProdGroup = getMesPartProdGroup(organizeCode, String.valueOf(rowMap.get(rowMap.get("PART_PROD_GROUP_CODE")))); + if (!StringUtils.isEmpty(rowMap.get("part_prod_group_code"))) { + MesPartProdGroup mesPartProdGroup = getMesPartProdGroup(organizeCode, String.valueOf(rowMap.get("part_prod_group_code")), mesPartProdGroupMap); if (!Objects.isNull(mesPartProdGroup)) { rowMap.put("PRODUCT_GROUP_ID", mesPartProdGroup.getId()) } else { - LOGGER.info("零件生产组{}信息不存在", String.valueOf(rowMap.get("PART_PROD_GROUP_CODE"))) + LOGGER.info("零件生产组{}信息不存在", String.valueOf(rowMap.get("part_prod_group_code"))) } } //获取车型名称 - if (!StringUtils.isEmpty(rowMap.get("CAR_MODEL_CODE"))) { - MesCustomerCarModel mesCustomerCarModel = getMesCustomerCarModel(organizeCode, String.valueOf(rowMap.get(rowMap.get("CAR_MODEL_CODE")))) + if (!StringUtils.isEmpty(rowMap.get("car_model_code"))) { + MesCustomerCarModel mesCustomerCarModel = getMesCustomerCarModel(organizeCode, String.valueOf(rowMap.get("car_model_code")), mesCustomerCarModelMap) if (!Objects.isNull(mesCustomerCarModel)) { rowMap.put("VEHICLE_NAME", mesCustomerCarModel.getCarModelName()) } else { - LOGGER.info("车型代码{}信息不存在", String.valueOf(rowMap.get("CAR_MODEL_CODE"))) + LOGGER.info("车型代码{}信息不存在", String.valueOf(rowMap.get("car_model_code"))) } } } return srcData; } - private MesProductVersion getMesProductVersion(String organizeCode, String partNo, String workCenterCode, String productVersion) { - DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean); - DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean); - DdlPreparedPack.getStringEqualPack(productVersion, "productVersion", ddlPackBean); - return mesProductVersionRepository.getByProperty(ddlPackBean); + private MesProductVersion getMesProductVersion(String organizeCode, String partNo, String productVersion, String workCenterCode, Map mesProductVersionMap) { + if (Objects.isNull(mesProductVersionMap) || !mesProductVersionMap.containsKey(partNo + productVersion + workCenterCode)) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean); + DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean); + DdlPreparedPack.getStringEqualPack(productVersion, "productVersion", ddlPackBean); + mesProductVersionMap.put(partNo + productVersion + workCenterCode, mesProductVersionRepository.getByProperty(ddlPackBean)) + } + return mesProductVersionMap.get(partNo + productVersion + workCenterCode) } - private MesPartProdGroup getMesPartProdGroup(String organizeCode, String partProdGroupCode) { - DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(partProdGroupCode, "partProdGroupCode", ddlPackBean); - return mesPartProdGroupRepository.getByProperty(ddlPackBean); + private MesPartProdGroup getMesPartProdGroup(String organizeCode, String partProdGroupCode, Map mesProductVersionMap) { + if (Objects.isNull(mesProductVersionMap) || !mesProductVersionMap.containsKey(partProdGroupCode)) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(partProdGroupCode, "partProdGroupCode", ddlPackBean); + mesProductVersionMap.put(partProdGroupCode, mesPartProdGroupRepository.getByProperty(ddlPackBean)) + } + return mesProductVersionMap.get(partProdGroupCode); } - private MesCustomerCarModel getMesCustomerCarModel(String organizeCode, String carModelCode) { - DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(carModelCode, "carModelCode", ddlPackBean); - return mesCustomerCarModelRepository.getByProperty(ddlPackBean); + private MesCustomerCarModel getMesCustomerCarModel(String organizeCode, String carModelCode, Map mesCustomerCarModelMap) { + if (Objects.isNull(mesCustomerCarModelMap) || !mesCustomerCarModelMap.containsKey(carModelCode)) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(carModelCode, "carModelCode", ddlPackBean); + mesCustomerCarModelMap.put(carModelCode, mesCustomerCarModelRepository.getByProperty(ddlPackBean)); + } + return mesCustomerCarModelMap.get(carModelCode) } } \ No newline at end of file diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesProductionAssembly.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesProductionAssembly.groovy new file mode 100644 index 0000000..eeaadee --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesProductionAssembly.groovy @@ -0,0 +1,54 @@ +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.dbinterface.MesInterfaceDataMapper +import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentRepository +import org.slf4j.Logger +import org.slf4j.LoggerFactory +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.util.StringUtils + +/** + * @Description : 装配件绑定记录表 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/7/13 17:59 + * @Modify: + * */ +class PiscesToMesProductionAssembly { + + public static final Logger LOGGER = LoggerFactory.getLogger(PiscesToMesProductionAssembly.class) + + @Autowired + private MesEquipmentRepository mesEquipmentRepository; + + def filterData(MesInterfaceDataMapper mapper, List> srcData) throws Exception { + if (srcData == null || srcData.size() == 0) { + return srcData + } + Map mesEquipmentMap = new HashMap<>(); + String organizeCode = mapper.getOrganizeCode(); + for (Map rowMap : srcData) { + //获取设备名称&设备代码 + if (!StringUtils.isEmpty(rowMap.get("EQUIPMENT_FID"))) { + MesEquipment mesEquipment = getMesEquipment(organizeCode, String.valueOf(rowMap.get("EQUIPMENT_FID")), mesEquipmentMap) + if (!Objects.isNull(mesEquipment)) { + rowMap.put("EQUIPMENT_CODE", mesEquipment.getEquipmentCode()) + rowMap.put("EQUIPMENT_NAME", mesEquipment.getEquipmentName()) + } else { + LOGGER.info("EQUIPMENT_FID:{}信息不存在", String.valueOf(rowMap.get("EQUIPMENT_FID"))) + } + } + } + return srcData; + } + + private MesEquipment getMesEquipment(String organizeCode, String equipmentFid, Map mesEquipmentMap) { + if (Objects.isNull(mesEquipmentMap) || !mesEquipmentMap.containsKey(equipmentFid)) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(equipmentFid, "fid", ddlPackBean); + mesEquipmentMap.put(equipmentFid, mesEquipmentRepository.getByProperty(ddlPackBean)) + } + return mesEquipmentMap.get(equipmentFid); + } +} \ No newline at end of file diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesWorkOrder.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesWorkOrder.groovy index d7a0891..9192253 100644 --- a/modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesWorkOrder.groovy +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesWorkOrder.groovy @@ -4,7 +4,6 @@ import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroup import cn.estsh.i3plus.pojo.mes.bean.MesProductVersion import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper -import cn.estsh.i3plus.pojo.mes.repository.MesCustomerCarModelRepository import cn.estsh.i3plus.pojo.mes.repository.MesPartProdGroupRepository import cn.estsh.i3plus.pojo.mes.repository.MesProductVersionRepository import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository @@ -37,13 +36,16 @@ class PiscesToMesWorkOrder { if (srcData == null || srcData.size() == 0) { return srcData } + Map mesWorkCenterMap = new HashMap<>(); + Map mesPartProdGroupMap = new HashMap<>(); + Map mesProductVersionMap = new HashMap<>(); String organizeCode = mapper.getOrganizeCode(); for (Map rowMap : srcData) { //赋值 MesWorkCenter mesWorkCenter = null; if (!StringUtils.isEmpty(rowMap.get("ASSEMBLY_LINE"))) { String workCenterCode = String.valueOf(rowMap.get("ASSEMBLY_LINE")); - mesWorkCenter = getMesWorkCenter(organizeCode, workCenterCode) + mesWorkCenter = getMesWorkCenter(organizeCode, workCenterCode, mesWorkCenterMap) if (!Objects.isNull(mesWorkCenter)) { rowMap.put("WORK_CENTER_CODE", mesWorkCenter.getWorkCenterCode()) rowMap.put("ERP_WORK_CENTER", mesWorkCenter.getErpWorkCenter()) @@ -53,7 +55,11 @@ class PiscesToMesWorkOrder { } //获取零件生产组 if (!StringUtils.isEmpty(rowMap.get("PRODUCT_GROUP_ID"))) { - MesPartProdGroup mesPartProdGroup = mesPartProdGroupRepository.getById(Long.parseLong(String.valueOf(rowMap.get("PRODUCT_GROUP_ID")))) + long id = Long.parseLong(String.valueOf(rowMap.get("PRODUCT_GROUP_ID"))) + if (Objects.isNull(mesPartProdGroupMap) || !mesPartProdGroupMap.containsKey(id)) { + mesPartProdGroupMap.put(id, mesPartProdGroupRepository.getById(id)) + } + MesPartProdGroup mesPartProdGroup = mesPartProdGroupMap.get(id) if (!Objects.isNull(mesPartProdGroup)) { rowMap.put("PART_PROD_GROUP_CODE", mesPartProdGroup.getPartProdGroupCode()) rowMap.put("PART_PROD_GROUP_NAME", mesPartProdGroup.getPartProdGroupName()) @@ -62,30 +68,36 @@ class PiscesToMesWorkOrder { } } //获取生产版本信息 - if (!StringUtils.isEmpty(rowMap.get("part_no")) && !Objects.isNull(mesWorkCenter)) { - MesProductVersion mesProductVersion = getMesProductVersion(organizeCode, String.valueOf(rowMap.get("part_no")), mesWorkCenter.getErpWorkCenter()) + if (!StringUtils.isEmpty(rowMap.get("PART_NO")) && !Objects.isNull(mesWorkCenter)) { + MesProductVersion mesProductVersion = getMesProductVersion(organizeCode, String.valueOf(rowMap.get("PART_NO")), mesWorkCenter.getErpWorkCenter(), mesProductVersionMap) if (!Objects.isNull(mesProductVersion)) { rowMap.put("PRODUCT_VERSION", mesProductVersion.getProductVersion()) } else { - LOGGER.info("物料{},工作中心{},生产版本信息不存在", String.valueOf(rowMap.get("part_no")), mesWorkCenter.getErpWorkCenter()) + LOGGER.info("物料{},工作中心{},生产版本信息不存在", String.valueOf(rowMap.get("PART_NO")), mesWorkCenter.getErpWorkCenter()) } } } return srcData; } - private MesWorkCenter getMesWorkCenter(String organizeCode, String workCenterCode) { - DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean); - return mesWorkCenterRepository.getByProperty(ddlPackBean); + private MesWorkCenter getMesWorkCenter(String organizeCode, String workCenterCode, Map mesWorkCenterMap) { + if (Objects.isNull(mesWorkCenterMap) || !mesWorkCenterMap.containsKey(workCenterCode)) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean); + mesWorkCenterMap.put(workCenterCode, mesWorkCenterRepository.getByProperty(ddlPackBean)) + } + return mesWorkCenterMap.get(workCenterCode); } - private MesProductVersion getMesProductVersion(String organizeCode, String partNo, String erpWorkCenter) { - DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean); - DdlPreparedPack.getStringEqualPack(erpWorkCenter, "workCenterCode", ddlPackBean); - ddlPackBean.setOrderByStr(" order by createDatetime desc "); - return mesProductVersionRepository.getByProperty(ddlPackBean); + private MesProductVersion getMesProductVersion(String organizeCode, String partNo, String erpWorkCenter, Map mesProductVersionMap) { + if (Objects.isNull(mesProductVersionMap) || !mesProductVersionMap.containsKey(partNo + erpWorkCenter)) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean); + DdlPreparedPack.getStringEqualPack(erpWorkCenter, "workCenterCode", ddlPackBean); + ddlPackBean.setOrderByStr(" order by createDatetime desc "); + mesProductVersionMap.put(partNo + erpWorkCenter, mesProductVersionRepository.getByProperty(ddlPackBean)) + } + return mesProductVersionMap.get(partNo + erpWorkCenter) } } \ No newline at end of file