13、业务插件注册实现事件拦截

**

13、业务插件注册实现事件拦截

**
代码注册位置:
业务插件注册
实现接口:
IBusinessListener

示例代码:

package nc.bs.pu.order.listener;

import nc.bs.businessevent.BdUpdateEvent;
import nc.bs.businessevent.BusinessEvent;
import nc.bs.businessevent.IBusinessEvent;
import nc.bs.businessevent.IBusinessListener;
import nc.vo.pu.m21.entity.OrderHeaderVO;
import nc.vo.pu.m21.entity.OrderItemVO;
import nc.vo.pu.m21.entity.OrderVO;
import nc.vo.pub.BusinessException;
import nc.vo.pub.lang.UFDate;

public class OrderUpdXydqrListener implements IBusinessListener {

public OrderUpdXydqrListener(){}

@Override
public void doAction(IBusinessEvent event) throws BusinessException {
	Object objectVO = null;
	if ((event instanceof BusinessEvent)) {
		BusinessEvent addevent = (BusinessEvent)event;
		objectVO = addevent.getObject();
		OrderVO[] vos = (OrderVO[]) objectVO;
		addevent.setObject(getNewOrderVO(vos));
	} else if ((event instanceof BdUpdateEvent)) {
		objectVO = ((BdUpdateEvent)event).getNewObject();
		OrderVO[] vos = (OrderVO[]) objectVO;
		((BdUpdateEvent)event).setNewObject(getNewOrderVO(vos));
	}
}

private OrderVO[] getNewOrderVO(OrderVO[] vos){
	for(OrderVO vo : vos){
		//add by cxx 20171121 获取订单日期塞值到信用到期日,更新报价单位
		OrderHeaderVO headvo = (OrderHeaderVO) vo.getParentVO();
		UFDate billdate = headvo.getDbilldate();
		String xydqr = billdate.toString();
		OrderItemVO[] itemvos = (OrderItemVO[]) vo.getChildren(OrderItemVO.class);
		for(Object itemvo : itemvos){
			OrderItemVO subvo = (OrderItemVO) itemvo;
			if("0001Z0100000000000XR".equals(subvo.getCastunitid())){
				subvo.setCqtunitid(subvo.getCastunitid());
			}else{
				subvo.setCqtunitid(subvo.getCunitid());
			}
			subvo.setAttributeValue("vbdef1", xydqr);
		}
		vo.setChildren(OrderItemVO.class, itemvos);
	}
	return vos;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值