|
|
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<Map<String, Object>> srcData) throws Exception {
|
|
|
if (srcData == null || srcData.size() == 0) {
|
|
|
return srcData
|
|
|
}
|
|
|
Map<String, MesEquipment> mesEquipmentMap = new HashMap<>();
|
|
|
Map<String, MesProduceSn> mesProduceSnMap = new HashMap<>();
|
|
|
Map<Long, MesProductionRecord> mesProductionRecordMap = new HashMap<>();
|
|
|
String organizeCode = mapper.getOrganizeCode();
|
|
|
for (Map<String, Object> 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<String, MesEquipment> 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<String, MesProduceSn> 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);
|
|
|
}
|
|
|
} |