pieces2mes数据同步

tags/yfai-mes-ext-v1.0
王杰 12 months ago
parent 5fb9194a20
commit 0578661a0e

@ -0,0 +1,88 @@
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.MesWorkOrder
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.MesWorkOrderRepository
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Autowired
/**
* @Description : MES2PISCES
* @Reference :
* @Author : wangjie
* @CreateDate 2024/7/12 12:28
* @Modify:
* */
class MesProductionRecordToPisces {
public static final Logger LOGGER = LoggerFactory.getLogger(MesProductionRecordToPisces.class)
@Autowired
private MesEquipmentRepository equipmentRepository;
@Autowired
private MesProduceSnRepository produceSnRepository;
@Autowired
private MesWorkOrderRepository workOrderRepository;
def filterData(MesInterfaceDataMapper mapper, List<Map<String, Object>> srcData) throws Exception {
if (srcData == null || srcData.size() == 0) {
return srcData
}
for (Map<String, Object> rowMap : srcData) {
String productSn = String.valueOf(rowMap.get("product_sn"));
String partNo = String.valueOf(rowMap.get("part_no"));
MesProduceSn produceSnDb = getProduceSnDb(mapper.getOrganizeCode(), productSn, partNo);
if (!Objects.isNull(produceSnDb)) {
rowMap.put("BARCODE_ID", produceSnDb.getId())
}
String workOrderNo = String.valueOf(rowMap.get("work_order_no"));
MesWorkOrder workOrderDb = getWorkOrderDb(mapper.getOrganizeCode(), workOrderNo);
if (!Objects.isNull(workOrderDb)) {
rowMap.put("WORK_ORDER_FID", workOrderDb.getFid())
}
String equipmentCode = String.valueOf(rowMap.get("equipment_code"));
MesEquipment equipmentDb = getEquipmentDb(mapper.getOrganizeCode(), equipmentCode);
if (!Objects.isNull(equipmentDb)) {
rowMap.put("EQUIPMENT_ID", equipmentDb.getEquipId())
}
}
return srcData;
}
def getProduceSnDb(String organizeCode, String productSn, String partNo) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(productSn, "productSn", ddlPackBean);
DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean);
MesProduceSn produceSnDb = produceSnRepository.getByProperty(ddlPackBean);
return produceSnDb;
}
MesWorkOrder getWorkOrderDb(String organizeCode, String workOrderNo) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workOrderNo, "workOrderNo", ddlPackBean);
MesWorkOrder workOrderDb = workOrderRepository.getByProperty(ddlPackBean);
return workOrderDb;
}
def getEquipmentDb(String organizeCode, String equipmentCode) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(equipmentCode, "equipmentCode", ddlPackBean);
MesEquipment equipmentDb = equipmentRepository.getByProperty(ddlPackBean);
return equipmentDb;
}
}

@ -2,9 +2,11 @@ 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.bean.MesWorkOrder
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 cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderRepository
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Autowired
@ -12,7 +14,7 @@ import org.springframework.util.CollectionUtils
import org.springframework.util.StringUtils
/**
* @Description :
* @Description : PISCES2MES
* @Reference :
* @Author : wangjie
* @CreateDate 2024/7/12 12:28
@ -28,6 +30,9 @@ class PiscesToMesProductionRecord {
@Autowired
private MesWorkCenterRepository workCenterRepository;
@Autowired
private MesWorkOrderRepository workOrderRepository;
def filterData(MesInterfaceDataMapper mapper, List<Map<String, Object>> srcData) throws Exception {
if (srcData == null || srcData.size() == 0) {
return srcData
@ -37,14 +42,14 @@ class PiscesToMesProductionRecord {
Map<String, MesWorkCenter> centerMap = new HashMap<>();
for (Map<String, Object> rowMap : srcData) {
if (!StringUtils.isEmpty(rowMap.get("EQUIP_ID"))) {
String equipId = String.valueOf(rowMap.get("EQUIP_ID"));
if (!StringUtils.isEmpty(rowMap.get("EQUIPMENT_ID"))) {
String equipId = String.valueOf(rowMap.get("EQUIPMENT_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)
LOGGER.info("执行加工记录同步PISCES2MES,设备ID{}对应的设备信息不存在", equipId)
}
}
if (!StringUtils.isEmpty(rowMap.get("ASSEMBLY_LINE"))) {
@ -52,13 +57,20 @@ class PiscesToMesProductionRecord {
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)
LOGGER.info("执行加工记录同步PISCES2MES,生产线代码{}对应的生产线信息不存在", workCenterCode)
}
}
if (!StringUtils.isEmpty(rowMap.get("WORK_ORDER_FID"))) {
String workOrderFid = String.valueOf(rowMap.get("WORK_ORDER_FID"));
MesWorkOrder workOrderDb = getWorkOrderDb(mapper.getOrganizeCode(), workOrderFid);
if (!Objects.isNull(workOrderDb)) {
rowMap.put("WORK_ORDER_NO", workOrderDb.getWorkOrderNo())
} else {
LOGGER.info("执行加工记录同步PISCES2MES,生产工单FID{}对应的工单信息不存在", workOrderFid)
}
}
}
return srcData;
}
@ -78,4 +90,11 @@ class PiscesToMesProductionRecord {
return workCenterDb;
}
def getWorkOrderDb(String organizeCode, String workOrderFid) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workOrderFid, "fid", ddlPackBean);
MesWorkOrder workOrderDb = workOrderRepository.getByProperty(ddlPackBean);
return workOrderDb;
}
}
Loading…
Cancel
Save