**
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;
}
}