feat(uapbd): 物料同步至艾普MES增加异常捕获

This commit is contained in:
mzr 2025-10-08 10:48:01 +08:00
parent 4de8c5b102
commit 50838e11bc
1 changed files with 34 additions and 30 deletions

View File

@ -46,39 +46,43 @@ public class MaterialToEpicMesListener implements IBusinessListener {
Object[] objs = e.getObjs();
// EventType是事件编码 1002-新增后 1004-修改后 1071-状态由停用变为启用后 1069-状态由启用变为停用后 1061批改后
if ("1002".equals(eventType) || "1004".equals(eventType) || "1061".equals(eventType) ||
"1071".equals(eventType) || "1069".equals(eventType)) {
MaterialVO[] useVOs = ArrayClassConvertUtil.convert(objs, MaterialVO.class);
configParams = MyHelper.getConfigParams("Dldz-config", null);
if (configParams.isEmpty()) {
throw new BusinessException("电力电子的艾普MES接口缺少配置");
}
buildSyncData(useVOs, eventType);
} else if ("1009".equals(eventType)) {
// 物料可见性范围-分配后 1009
configParams = MyHelper.getConfigParams("Dldz-config", null);
if (configParams.isEmpty()) {
throw new BusinessException("电力电子的艾普MES接口缺少配置");
}
HYPubBO hyPub = new HYPubBO();
List<MaterialVO> voList = new ArrayList<>();
for (Object obj : objs) {
MultiOrgAssignVO vo = (MultiOrgAssignVO) obj;
String pkMaterial = vo.getPk_doc();
String pkOrg = vo.getPk_org();
String orgCode = (String) hyPub.findColValue(OrgVO.getDefaultTableName(), OrgVO.CODE, "dr =0 and pk_org = '" + pkOrg + "' ");
// 检查当前组织是否为电力电子
if (MyHelper.checkIfDldzOrg(orgCode, configParams)) {
continue;
try {
if ("1002".equals(eventType) || "1004".equals(eventType) || "1061".equals(eventType) ||
"1071".equals(eventType) || "1069".equals(eventType)) {
MaterialVO[] useVOs = ArrayClassConvertUtil.convert(objs, MaterialVO.class);
configParams = MyHelper.getConfigParams("Dldz-config", null);
if (configParams.isEmpty()) {
throw new BusinessException("电力电子的艾普MES接口缺少配置");
}
MaterialVO materialVO = (MaterialVO) hyPub.queryByPrimaryKey(MaterialVO.class, pkMaterial);
voList.add(materialVO);
}
if (!voList.isEmpty()) {
MaterialVO[] useVOs = voList.toArray(new MaterialVO[0]);
buildSyncData(useVOs, eventType);
}
} else if ("1009".equals(eventType)) {
// 物料可见性范围-分配后 1009
configParams = MyHelper.getConfigParams("Dldz-config", null);
if (configParams.isEmpty()) {
throw new BusinessException("电力电子的艾普MES接口缺少配置");
}
HYPubBO hyPub = new HYPubBO();
List<MaterialVO> voList = new ArrayList<>();
for (Object obj : objs) {
MultiOrgAssignVO vo = (MultiOrgAssignVO) obj;
String pkMaterial = vo.getPk_doc();
String pkOrg = vo.getPk_org();
String orgCode = (String) hyPub.findColValue(OrgVO.getDefaultTableName(), OrgVO.CODE, "dr =0 and pk_org = '" + pkOrg + "' ");
// 检查当前组织是否为电力电子
if (MyHelper.checkIfDldzOrg(orgCode, configParams)) {
continue;
}
MaterialVO materialVO = (MaterialVO) hyPub.queryByPrimaryKey(MaterialVO.class, pkMaterial);
voList.add(materialVO);
}
if (!voList.isEmpty()) {
MaterialVO[] useVOs = voList.toArray(new MaterialVO[0]);
buildSyncData(useVOs, eventType);
}
}
} catch (BusinessException ex) {
logDl.error("EpicMes-Material-exp:" + ex.getMessage(), ex);
}
}