供应商变更名称后,供应商银行户名同时变更。
This commit is contained in:
		
							parent
							
								
									c92a651666
								
							
						
					
					
						commit
						be92a3e51e
					
				|  | @ -0,0 +1,106 @@ | |||
| package nccloud.resources.uapbd.customer.customer_grp; | ||||
| 
 | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import nc.bs.businessevent.IBusinessEvent; | ||||
| import nc.bs.businessevent.IBusinessListener; | ||||
| import nc.bs.businessevent.bd.BDCommonEvent; | ||||
| import nc.bs.dao.BaseDAO; | ||||
| import nc.bs.framework.common.NCLocator; | ||||
| import nc.itf.uap.IUAPQueryBS; | ||||
| import nc.jdbc.framework.processor.MapListProcessor; | ||||
| import nc.vo.bd.supplier.SupplierVO; | ||||
| import nc.vo.pub.BusinessException; | ||||
| 
 | ||||
| /** | ||||
|  * 适配2005代码 | ||||
|  * zhangxinah | ||||
|  * 供应商变更名称后,供应商银行户名同时变更。 | ||||
|  */ | ||||
| public class updateAfterCheck implements IBusinessListener { | ||||
| 
 | ||||
|     @Override | ||||
|     public void doAction(IBusinessEvent event) throws BusinessException { | ||||
| 
 | ||||
|         try { | ||||
|             if (event != null) { | ||||
|                 String eventType = event.getEventType(); | ||||
|                 Map<String, Object> map = this.getBills(event); | ||||
|                 Object reObj = map.get("obj"); | ||||
|                 if (reObj instanceof Object[]) {  // 检查 object 是否是 Object[] 类型 | ||||
|                     Object[] objectArray = (Object[]) reObj;  // 将 Object 强制转换为 Object[] 类型 | ||||
|                     for (Object item : objectArray) { | ||||
|                         SupplierVO itemVo = (SupplierVO) item; | ||||
|                         String pk_supplierStr = itemVo.getPk_supplier(); | ||||
|                         String nameStr = itemVo.getName(); | ||||
|                         List<Map<String, Object>> pk_bankaccsubList = getSaleorderPK(pk_supplierStr); | ||||
|                         StringBuilder vsrcbidStr = new StringBuilder();//客商银行账户子户PK | ||||
|                         StringBuilder bankaccbasStr = new StringBuilder();//客商银行账户PK | ||||
|                         for (int i = 0; i < pk_bankaccsubList.size(); i++) { | ||||
|                             Map itemvo = pk_bankaccsubList.get(i); | ||||
|                             if (i > 0) { | ||||
|                                 vsrcbidStr.append(","); // 在每个元素前加逗号,避免首个元素前有逗号 | ||||
|                                 bankaccbasStr.append(","); | ||||
|                             } | ||||
|                             vsrcbidStr.append("'").append(itemvo.get("pk_bankaccsub")).append("'"); // 每个值加上单引号 | ||||
|                             bankaccbasStr.append("'").append(itemvo.get("pk_bankaccbas")).append("'"); // 每个值加上单引号 | ||||
|                         } | ||||
|                         if (!vsrcbidStr.toString().equals("")) { | ||||
|                             String updateSql = | ||||
|                                     "update bd_bankaccsub set accname='" + nameStr + "' where pk_bankaccsub in (" | ||||
|                                             + vsrcbidStr + ")";//客商银行账户子户 | ||||
|                             updateSaleBSQty(updateSql.toString()); | ||||
|                         } | ||||
|                         if (!bankaccbasStr.toString().equals("")) { | ||||
|                             String updateSql2 = | ||||
|                                     "update bd_bankaccbas set accname='" + nameStr + "' where pk_bankaccbas in (" | ||||
|                                             + bankaccbasStr + ")";//客商银行账户 | ||||
|                             updateSaleBSQty(updateSql2); | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } catch (Exception e) { | ||||
|             throw new BusinessException("根据供应商更新供应商银行账号户名失败" + e); | ||||
|         } | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     private List<Map<String, Object>> getSaleorderPK(String csourcebillbidStr) throws BusinessException { | ||||
|         IUAPQueryBS queryBS = NCLocator.getInstance().lookup(IUAPQueryBS.class); | ||||
|         String sql = " select bd_custbank.pk_bankaccsub pk_bankaccsub,bd_custbank.pk_bankaccbas pk_bankaccbas \n" | ||||
|                 + "from bd_custbank bd_custbank where bd_custbank.pk_cust in ( '" + csourcebillbidStr + "' ) "; | ||||
|         List<Map<String, Object>> values3 = (List<Map<String, Object>>) queryBS.executeQuery(sql, | ||||
|                 new MapListProcessor()); | ||||
|         return values3; | ||||
|     } | ||||
| 
 | ||||
|     private int updateSaleBSQty(String sql) throws BusinessException { | ||||
|         BaseDAO baseDAO = new BaseDAO(); | ||||
|         int succInt = baseDAO.executeUpdate(sql); | ||||
|         return succInt; | ||||
|     } | ||||
| 
 | ||||
|     private Map<String, Object> getBills(IBusinessEvent event) throws BusinessException { | ||||
|         Object object = null; | ||||
|         Object old = null; | ||||
|         Map<String, Object> retMap = new HashMap<>(); | ||||
|         //类型判断和赋值 | ||||
|         if (event instanceof BDCommonEvent) { | ||||
|             BDCommonEvent e = (BDCommonEvent) event; | ||||
|             object = e.getNewObjs(); | ||||
|             old = e.getOldObjs(); | ||||
|         } else { | ||||
|             throw new BusinessException("未找到单据类型"); | ||||
|         } | ||||
|         // 将 object 和 old 转换为 SupplierVO[] 并添加到 retMap | ||||
|         retMap.put("new", object); | ||||
|         retMap.put("old", old); | ||||
|         // 根据 new 或 old 来设置 "obj" | ||||
|         retMap.put("obj", retMap.get("new") != null ? retMap.get("new") : retMap.get("old")); | ||||
|         return retMap; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| } | ||||
		Loading…
	
		Reference in New Issue