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/Mes2Pisces/MesToPiscesProductionAssemb...

115 lines
5.5 KiB
Groovy

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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);
}
}