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> srcData) throws Exception { if (srcData == null || srcData.size() == 0) { return srcData } String organizeCode = mapper.getOrganizeCode(); for (Map 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); } }