diff --git a/uapbd/src/private/nc/impl/bd/material/baseinfo/MaterialToGyMesListener.java b/uapbd/src/private/nc/impl/bd/material/baseinfo/MaterialToGyMesListener.java index b948e43b..1fd7a0b4 100644 --- a/uapbd/src/private/nc/impl/bd/material/baseinfo/MaterialToGyMesListener.java +++ b/uapbd/src/private/nc/impl/bd/material/baseinfo/MaterialToGyMesListener.java @@ -10,6 +10,7 @@ import nc.bs.businessevent.bd.BDCommonEvent; import nc.bs.dao.BaseDAO; import nc.bs.framework.common.NCLocator; 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; @@ -20,17 +21,14 @@ import nc.vo.bd.material.MaterialVO; import nc.vo.bd.material.marbasclass.MarBasClassVO; import nc.vo.bd.material.plan.MaterialPlanVO; import nc.vo.bd.material.stock.MaterialStockVO; -import nc.vo.bd.pub.BDCacheQueryUtil; import nc.vo.org.OrgVO; import nc.vo.pub.BusinessException; import nc.vo.pub.lang.UFBoolean; import nc.vo.sm.UserVO; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Stream; + /** * 高压MES-物料新增后同步 * @@ -44,37 +42,47 @@ public class MaterialToGyMesListener implements IBusinessListener { private static final String updateUrl = "/bip/order/materialUpdate"; private Map configParams; private BaseDAO baseDAO = new BaseDAO(); + public void doAction(IBusinessEvent event) throws BusinessException { BDCommonEvent e = (BDCommonEvent) event; String eventType = event.getEventType(); Object[] objs = e.getObjs(); - String materialid = ((MaterialStockVO) objs[0]).getPk_material(); - MaterialVO[] useVOs = (MaterialVO[]) BDCacheQueryUtil.queryVOsByIDs( - MaterialVO.class, - MaterialVO.PK_MATERIAL, - new String[]{materialid}, - new String[]{MaterialVO.PK_MEASDOC}); + configParams = MyHelper.getConfigParams("gy-config", null); if (configParams.isEmpty()) { throw new BusinessException("高压的gymes接口缺少配置"); } - buildSyncData(useVOs, eventType); + + HYPubBO hyPub = new HYPubBO(); + List voList = new ArrayList<>(); + for (Object obj : objs) { + MaterialStockVO materialStockVO = (MaterialStockVO) obj; + String pkMaterial = materialStockVO.getPk_material(); + String pkOrg = materialStockVO.getPk_org(); + String orgCode = (String) hyPub.findColValue(OrgVO.getDefaultTableName(), OrgVO.CODE, "dr =0 and pk_org = '" + pkOrg + "' "); + // 判断物料的业务单元是否是高压公司,不是则跳过 + if (checkIfOrg(orgCode, configParams)) { + continue; + } + MaterialVO materialVO = (MaterialVO) hyPub.queryByPrimaryKey(MaterialVO.class, pkMaterial); + materialVO.setPk_org(pkOrg); + voList.add(materialVO); + } + if (!voList.isEmpty()) { + MaterialVO[] useVOs = voList.toArray(new MaterialVO[0]); + buildSyncData(useVOs, eventType); + } + } + /** * 构建同步数据 */ private void buildSyncData(MaterialVO[] useVOs, String eventType) throws BusinessException { -// String orgId = MyHelper.transferField(OrgVO.getDefaultTableName(), OrgVO.PK_ORG, OrgVO.CODE, "C046"); - String pkOrg = MyHelper.getStrValByCondition("ORG_ORGS", OrgVO.PK_ORG, OrgVO.CODE + " = '" + "C046" + "'"+ " and ISBUSINESSUNIT = '" + "Y" +"'"); JSONArray dataArr = new JSONArray(); for (MaterialVO vo : useVOs) { String pkMaterial = vo.getPk_material(); - // 判断物料的业务单元是否是高压公司,不是则跳过 -// String pkOrg = vo.getPk_org(); - Integer num = MyHelper.checkIfOrg(configParams, pkMaterial, "gyOrg"); - if (!"1009".equals(eventType) && (num <= 0)) { - continue; - } + String pkOrg = vo.getPk_org(); // 字段值翻译 String pk_marbasclass = vo.getPk_marbasclass(); String mrlTypeName = MyHelper.getStrValByCondition(MarBasClassVO.getDefaultTableName(), MarBasClassVO.NAME, @@ -189,8 +197,8 @@ public class MaterialToGyMesListener implements IBusinessListener { logger.error("gymes-Material-res = " + result); if (!"200".equals(resultObj.getString("code"))) { - // throw new BusinessException("gymes-Material-error:" + resultObj.getString("msg")); logger.error("gymes-Material-error,result[" + resultObj.toJSONString() + "]"); + throw new BusinessException("gymes-Material-error:" + resultObj.getString("msg")); } } @@ -215,7 +223,7 @@ public class MaterialToGyMesListener implements IBusinessListener { } private Map getProdInfo(String pkMaterial) throws BusinessException { - String sql = "SELECT b.code deptCode, a.iscreatesonprodorder, a.issend, a.conversemethod, a.converstime, a.wghxcl" + + String sql = "SELECT b.code deptCode, a.iscreatesonprodorder, a.issend, a.conversemethod, a.converstime, a.wghxcl" + " pk_materialprod " + "FROM " + " bd_materialprod a" + @@ -226,7 +234,7 @@ public class MaterialToGyMesListener implements IBusinessListener { } private boolean checkIfOrg(String code, Map configParams) throws BusinessException { - String targetCode = configParams.get("mesBaseUrl"); + String targetCode = configParams.get("gyOrg"); if (targetCode == null || StringUtils.isEmpty(targetCode)) { throw new BusinessException("未配置组织参数"); }