|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|