diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesWorkOrder.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesWorkOrder.groovy new file mode 100644 index 0000000..67289b8 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesWorkOrder.groovy @@ -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.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.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 + } + for (Map rowMap : srcData) { + MesWorkCenter mesWorkCenter = null; + if (!StringUtils.isEmpty(rowMap.get("ASSEMBLY_LINE"))) { + String workCenterCode = String.valueOf(rowMap.get("ASSEMBLY_LINE")); + mesWorkCenter = getMesWorkCenter(mapper, workCenterCode, mesWorkCenter) + if (!Objects.isNull(mesWorkCenter)) { + rowMap.put("WORK_CENTER_CODE", mesWorkCenter.getWorkCenterCode()) + rowMap.put("REP_WORK_CENTER", mesWorkCenter.getErpWorkCenter()) + } else { + LOGGER.info("工作中心{},信息不存在", workCenterCode) + } + } + //获取零件生产组 + if (!StringUtils.isEmpty(rowMap.get("VERID"))) { + MesPartProdGroup mesPartProdGroup = mesPartProdGroupRepository.getById(Long.parseLong(String.valueOf(rowMap.get("VERID")))) + 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("VERID"))) + } + } + //获取生产版本信息 + if (!StringUtils.isEmpty(rowMap.get("part_no")) && !Objects.isNull(mesWorkCenter)) { + MesProductVersion mesProductVersion = getMesProductVersion(mapper, rowMap, mesWorkCenter) + 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(MesInterfaceDataMapper mapper, String workCenterCode, MesWorkCenter mesWorkCenter) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mapper.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean); + return mesWorkCenterRepository.getByProperty(ddlPackBean); + } + + + private MesProductVersion getMesProductVersion(MesInterfaceDataMapper mapper, Map rowMap, MesWorkCenter mesWorkCenter) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mapper.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(String.valueOf(rowMap.get("part_no")), "partNo", ddlPackBean); + DdlPreparedPack.getStringEqualPack(mesWorkCenter.getErpWorkCenter(), "workCenterCode", ddlPackBean); + ddlPackBean.setOrderByStr(" order by createDatetime desc "); + return mesProductVersionRepository.getByProperty(ddlPackBean); + } +} \ No newline at end of file