You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
i3plus-mes-yfai/modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesProductionAssemb...

81 lines
3.8 KiB
Groovy

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.MesProductionRecord
import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper
import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentRepository
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 PiscesToMesProductionAssembly {
public static final Logger LOGGER = LoggerFactory.getLogger(PiscesToMesProductionAssembly.class)
@Autowired
private MesEquipmentRepository mesEquipmentRepository;
@Autowired
private MesProductionRecordRepository mesProductionRecordRepository;
def filterData(MesInterfaceDataMapper mapper, List<Map<String, Object>> srcData) throws Exception {
if (srcData == null || srcData.size() == 0) {
return srcData
}
Map<String, MesEquipment> mesEquipmentMap = new HashMap<>();
Map<String, MesProductionRecord> mesProductionRecordMap = new HashMap<>();
String organizeCode = mapper.getOrganizeCode();
for (Map<String, Object> 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")))
}
}
if (!StringUtils.isEmpty(rowMap.get("PRODUCTION_LOG_FID"))) {
MesProductionRecord record = getMesProductionRecord(organizeCode, String.valueOf(rowMap.get("PRODUCTION_LOG_FID")), mesProductionRecordMap)
if (!Objects.isNull(record)) {
rowMap.put("PRODUCTION_RECORD_ID", record.getId())
} else {
LOGGER.info("加工记录FID:{}信息不存在", String.valueOf(rowMap.get("PRODUCTION_LOG_FID")))
rowMap.put("PRODUCTION_RECORD_ID", 0)
}
} else {
rowMap.put("PRODUCTION_RECORD_ID", 0)
}
}
return srcData;
}
private MesEquipment getMesEquipment(String organizeCode, String equipmentFid, Map<String, MesEquipment> 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);
}
private MesProductionRecord getMesProductionRecord(String organizeCode, String fid, Map<String, MesProductionRecord> mesProductionRecordMap) {
if (Objects.isNull(mesProductionRecordMap) || !mesProductionRecordMap.containsKey(fid)) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(fid, "fid", ddlPackBean);
mesProductionRecordMap.put(fid, mesProductionRecordRepository.getByProperty(ddlPackBean))
}
return mesProductionRecordMap.get(fid);
}
}