diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/PiscesToMesProductionRecord.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/PiscesToMesProductionRecord.groovy new file mode 100644 index 0000000..f29c57f --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/PiscesToMesProductionRecord.groovy @@ -0,0 +1,81 @@ +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.dbinterface.MesInterfaceDataMapper +import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentRepository +import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository +import org.slf4j.Logger +import org.slf4j.LoggerFactory +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.util.CollectionUtils +import org.springframework.util.StringUtils + +/** + * @Description : 加工记录同步 + * @Reference : + * @Author : wangjie + * @CreateDate 2024/7/12 12:28 + * @Modify: + * */ +class PiscesToMesProductionRecord { + + public static final Logger LOGGER = LoggerFactory.getLogger(PiscesToMesProductionRecord.class) + + @Autowired + private MesEquipmentRepository equipmentRepository; + + @Autowired + private MesWorkCenterRepository workCenterRepository; + + def filterData(MesInterfaceDataMapper mapper, List> srcData) throws Exception { + if (srcData == null || srcData.size() == 0) { + return srcData + } + + Map equipMap = new HashMap<>(); + Map centerMap = new HashMap<>(); + + for (Map rowMap : srcData) { + if (!StringUtils.isEmpty(rowMap.get("EQUIP_ID"))) { + String equipId = String.valueOf(rowMap.get("EQUIP_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) + } + } + if (!StringUtils.isEmpty(rowMap.get("ASSEMBLY_LINE"))) { + String workCenterCode = String.valueOf(rowMap.get("ASSEMBLY_LINE")); + 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) + } + } + } + + return srcData; + } + + def getEquipmentDb(String organizeCode, String equipId, HashMap equipMap) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(Integer.valueOf(equipId), "equipId", ddlPackBean); + MesEquipment equipmentDb = equipmentRepository.getByProperty(ddlPackBean); + if (!Objects.isNull(equipmentDb)) equipMap.put(equipId, equipmentDb); + return equipmentDb; + } + + def getWorkCenterDb(String organizeCode, String workCenterCode, HashMap centerMap) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean); + MesWorkCenter workCenterDb = workCenterRepository.getByProperty(ddlPackBean); + if (!Objects.isNull(workCenterDb)) centerMap.put(workCenterCode, workCenterDb); + return workCenterDb; + } + +} \ No newline at end of file