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

10 months ago
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
10 months ago
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();
10 months ago
for (Map<String, Object> rowMap : srcData) {
//赋值
10 months ago
MesWorkCenter mesWorkCenter = null;
if (!StringUtils.isEmpty(rowMap.get("ASSEMBLY_LINE"))) {
String workCenterCode = String.valueOf(rowMap.get("ASSEMBLY_LINE"));
mesWorkCenter = getMesWorkCenter(organizeCode, workCenterCode)
10 months ago
if (!Objects.isNull(mesWorkCenter)) {
rowMap.put("WORK_CENTER_CODE", mesWorkCenter.getWorkCenterCode())
rowMap.put("ERP_WORK_CENTER", mesWorkCenter.getErpWorkCenter())
10 months ago
} 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"))))
10 months ago
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")))
10 months ago
}
}
//获取生产版本信息
if (!StringUtils.isEmpty(rowMap.get("part_no")) && !Objects.isNull(mesWorkCenter)) {
MesProductVersion mesProductVersion = getMesProductVersion(organizeCode, String.valueOf(rowMap.get("part_no")), mesWorkCenter.getErpWorkCenter())
10 months ago
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);
10 months ago
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);
10 months ago
ddlPackBean.setOrderByStr(" order by createDatetime desc ");
return mesProductVersionRepository.getByProperty(ddlPackBean);
}
}