From 4f64cf83c57298028823222d56c02323ecea9d81 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Fri, 12 Jul 2024 15:04:33 +0800 Subject: [PATCH] =?UTF-8?q?pisces=E5=90=8C=E6=AD=A5=E5=8A=A0=E5=B7=A5?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=88=B0mes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/groovy/PiscesToMesProductionRecord.groovy | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 modules/i3plus-ext-mes-apiservice/src/groovy/PiscesToMesProductionRecord.groovy 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