物料新增接口 优化
This commit is contained in:
		
							parent
							
								
									2c12487d2a
								
							
						
					
					
						commit
						86184e27ec
					
				|  | @ -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<String, String> 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<MaterialVO> 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<String, String> configParams) throws BusinessException { | ||||
|         String targetCode = configParams.get("mesBaseUrl"); | ||||
|         String targetCode = configParams.get("gyOrg"); | ||||
|         if (targetCode == null || StringUtils.isEmpty(targetCode)) { | ||||
|             throw new BusinessException("未配置组织参数"); | ||||
|         } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue