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/PiscesToMesWorkOrder.groovy

91 lines
4.4 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.MesPartProdGroup
import cn.estsh.i3plus.pojo.mes.bean.MesProductVersion
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter
import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper
import cn.estsh.i3plus.pojo.mes.repository.MesCustomerCarModelRepository
import cn.estsh.i3plus.pojo.mes.repository.MesPartProdGroupRepository
import cn.estsh.i3plus.pojo.mes.repository.MesProductVersionRepository
import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository
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/12 12:28
* @Modify:
* */
class PiscesToMesWorkOrder {
public static final Logger LOGGER = LoggerFactory.getLogger(PiscesToMesWorkOrder.class)
@Autowired
private MesWorkCenterRepository mesWorkCenterRepository;
@Autowired
private MesPartProdGroupRepository mesPartProdGroupRepository;
@Autowired
private MesProductVersionRepository mesProductVersionRepository;
def filterData(MesInterfaceDataMapper mapper, List<Map<String, Object>> srcData) throws Exception {
if (srcData == null || srcData.size() == 0) {
return srcData
}
String organizeCode = mapper.getOrganizeCode();
for (Map<String, Object> rowMap : srcData) {
//赋值
MesWorkCenter mesWorkCenter = null;
if (!StringUtils.isEmpty(rowMap.get("ASSEMBLY_LINE"))) {
String workCenterCode = String.valueOf(rowMap.get("ASSEMBLY_LINE"));
mesWorkCenter = getMesWorkCenter(organizeCode, workCenterCode)
if (!Objects.isNull(mesWorkCenter)) {
rowMap.put("WORK_CENTER_CODE", mesWorkCenter.getWorkCenterCode())
rowMap.put("ERP_WORK_CENTER", mesWorkCenter.getErpWorkCenter())
} else {
LOGGER.info("工作中心{},信息不存在", workCenterCode)
}
}
//获取零件生产组
if (!StringUtils.isEmpty(rowMap.get("PRODUCT_GROUP_ID"))) {
MesPartProdGroup mesPartProdGroup = mesPartProdGroupRepository.getById(Long.parseLong(String.valueOf(rowMap.get("PRODUCT_GROUP_ID"))))
if (!Objects.isNull(mesPartProdGroup)) {
rowMap.put("PART_PROD_GROUP_CODE", mesPartProdGroup.getPartProdGroupCode())
rowMap.put("PART_PROD_GROUP_NAME", mesPartProdGroup.getPartProdGroupName())
} else {
LOGGER.info("id{}零件生产组信息不存在", String.valueOf(rowMap.get("PRODUCT_GROUP_ID")))
}
}
//获取生产版本信息
if (!StringUtils.isEmpty(rowMap.get("part_no")) && !Objects.isNull(mesWorkCenter)) {
MesProductVersion mesProductVersion = getMesProductVersion(organizeCode, String.valueOf(rowMap.get("part_no")), mesWorkCenter.getErpWorkCenter())
if (!Objects.isNull(mesProductVersion)) {
rowMap.put("PRODUCT_VERSION", mesProductVersion.getProductVersion())
} else {
LOGGER.info("物料{},工作中心{},生产版本信息不存在", String.valueOf(rowMap.get("part_no")), mesWorkCenter.getErpWorkCenter())
}
}
}
return srcData;
}
private MesWorkCenter getMesWorkCenter(String organizeCode, String workCenterCode) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean);
return mesWorkCenterRepository.getByProperty(ddlPackBean);
}
private MesProductVersion getMesProductVersion(String organizeCode, String partNo, String erpWorkCenter) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(erpWorkCenter, "workCenterCode", ddlPackBean);
ddlPackBean.setOrderByStr(" order by createDatetime desc ");
return mesProductVersionRepository.getByProperty(ddlPackBean);
}
}