diff --git a/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToEpicMesListener.java b/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToEpicMesListener.java index 43ef1c6..f82f433 100644 --- a/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToEpicMesListener.java +++ b/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToEpicMesListener.java @@ -3,22 +3,27 @@ package nccloud.api.uapbd.material.listener; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializerFeature; +import nc.bs.bd.assignservice.multiorg.MultiOrgAssignVO; import nc.bs.bd.baseservice.ArrayClassConvertUtil; import nc.bs.businessevent.IBusinessEvent; import nc.bs.businessevent.IBusinessListener; import nc.bs.businessevent.bd.BDCommonEvent; import nc.bs.dao.BaseDAO; import nc.bs.logging.Log; +import nc.bs.trade.business.HYPubBO; import nc.bs.uapbd.util.MyHelper; import nc.bs.uapbd.util.ThirdPartyPostRequestUtil; import nc.jdbc.framework.processor.MapProcessor; import nc.vo.bd.material.MaterialVO; import nc.vo.bd.material.marbasclass.MarBasClassVO; import nc.vo.bd.material.stock.MaterialStockVO; -import nc.vo.org.FactoryVO; +import nc.vo.org.OrgVO; import nc.vo.pub.BusinessException; +import nccloud.baseapp.core.log.NCCForUAPLogger; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -40,7 +45,7 @@ public class MaterialToEpicMesListener implements IBusinessListener { Object[] objs = e.getObjs(); // EventType是事件编码 1002-新增后 1004-修改后 1071-状态由停用变为启用后 1069-状态由启用变为停用后 - if ("1002".equals(eventType) || "1004".equals(eventType)) { + if ("1004".equals(eventType)) { MaterialVO[] useVOs = ArrayClassConvertUtil.convert(objs, MaterialVO.class); configParams = MyHelper.getConfigParams("Dldz-config", null); if (configParams.isEmpty()) { @@ -53,13 +58,32 @@ public class MaterialToEpicMesListener implements IBusinessListener { if (configParams.isEmpty()) { throw new BusinessException("电力电子的艾普MES接口缺少配置"); } + buildSyncData(useVOs, eventType); } else if ("1009".equals(eventType)) { - Object[] newObjs = e.getNewObjs(); - // 物料可见性范围-分配后 - for (Object obj : newObjs) { - MaterialVO vo = (MaterialVO) obj; - String pkMaterial = vo.getPk_material(); + // 物料可见性范围-分配后 1009 + configParams = MyHelper.getConfigParams("Dldz-config", null); + if (configParams.isEmpty()) { + throw new BusinessException("电力电子的艾普MES接口缺少配置"); } + HYPubBO hyPub = new HYPubBO(); + List 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); + } + } } @@ -70,8 +94,8 @@ public class MaterialToEpicMesListener implements IBusinessListener { for (MaterialVO vo : useVOs) { // 判断物料的业务单元是否是电力电子公司,不是则跳过 String pkOrg = vo.getPk_org(); - String orgCode = MyHelper.transferField(FactoryVO.getDefaultTableName(), FactoryVO.CODE, FactoryVO.PK_FACTORY, pkOrg); - if (MyHelper.checkIfDldzOrg(orgCode, configParams)) { + String orgCode = MyHelper.transferField(OrgVO.getDefaultTableName(), OrgVO.CODE, OrgVO.PK_ORG, pkOrg); + if (!"1009".equals(eventType) && MyHelper.checkIfDldzOrg(orgCode, configParams)) { continue; } // 字段值翻译 @@ -116,6 +140,7 @@ public class MaterialToEpicMesListener implements IBusinessListener { SerializerFeature.WriteNullStringAsEmpty ); logDl.error("EpicMes-Material-param = " + jsonStr); + NCCForUAPLogger.debug("EpicMes-Material-param = " + jsonStr); String baseUrl = configParams.get("epicMesUrl"); String requestUrl = baseUrl + reqUrl; logDl.error("EpicMes-Material-url = " + requestUrl); @@ -133,6 +158,7 @@ public class MaterialToEpicMesListener implements IBusinessListener { // 类型(I:新增 U:修改 D:删除) Map map = new HashMap<>(); map.put("1002", "I"); + map.put("1009", "I"); map.put("1004", "U"); map.put("1069", "U"); map.put("1071", "U");