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"))) } }else{ rowMap.put("ASSEMBLY_BARCODE_ID", null) } //条码 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"))) } }else{ rowMap.put("BARCODE_ID", null) } //加工记录表 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)) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getNumEqualPack(id,"id",ddlPackBean) mesProductionRecordMap.put(id, mesProductionRecordRepository.getByProperty(ddlPackBean)) } MesProductionRecord mesProductionRecord = mesProductionRecordMap.get(id) if (!Objects.isNull(mesProductionRecord)) { rowMap.put("PRODUCTION_LOG_FID", mesProductionRecord.getFid()) } else { LOGGER.info("加工记录id:{},信息不存在", String.valueOf(rowMap.get("production_record_id"))) } }else{ rowMap.put("PRODUCTION_LOG_FID", null) } //获取设备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_code"))) } }else{ rowMap.put("EQUIPMENT_FID", null) } } 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); } }