OperateLogControllerBean.java 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package com.kingdee.eas.custom.interfacelog.businessoperationlog.app;
  2. import com.kingdee.bos.metadata.entity.EntityObjectInfo;
  3. import com.kingdee.bos.util.BOSUuid;
  4. import com.kingdee.eas.basedata.org.AdminOrgUnitInfo;
  5. import com.kingdee.eas.framework.*;
  6. import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
  7. import com.kingdee.shr.base.syssetting.util.MetaDataUtil;
  8. import org.apache.log4j.Logger;
  9. import javax.ejb.*;
  10. import java.rmi.RemoteException;
  11. import com.kingdee.bos.*;
  12. import com.kingdee.bos.util.BOSObjectType;
  13. import com.kingdee.bos.metadata.IMetaDataPK;
  14. import com.kingdee.bos.metadata.rule.RuleExecutor;
  15. import com.kingdee.bos.metadata.MetaDataPK;
  16. //import com.kingdee.bos.metadata.entity.EntityViewInfo;
  17. import com.kingdee.bos.framework.ejb.AbstractEntityControllerBean;
  18. import com.kingdee.bos.framework.ejb.AbstractBizControllerBean;
  19. //import com.kingdee.bos.dao.IObjectPK;
  20. import com.kingdee.bos.dao.IObjectValue;
  21. import com.kingdee.bos.dao.IObjectCollection;
  22. import com.kingdee.bos.service.ServiceContext;
  23. import com.kingdee.bos.service.IServiceContext;
  24. import com.kingdee.eas.framework.app.CoreBillBaseControllerBean;
  25. import com.kingdee.bos.dao.IObjectPK;
  26. import com.kingdee.eas.custom.interfacelog.businessoperationlog.OperateLogCollection;
  27. import java.lang.String;
  28. import com.kingdee.eas.custom.interfacelog.businessoperationlog.OperateLogInfo;
  29. import com.kingdee.bos.metadata.entity.EntityViewInfo;
  30. import com.kingdee.eas.common.EASBizException;
  31. import com.kingdee.bos.metadata.entity.SelectorItemCollection;
  32. /**
  33. * OperateLogControllerBean 类负责处理操作日志的业务逻辑,继承自 AbstractOperateLogControllerBean。
  34. * 该类重写了 _addnew 方法,用于在添加新操作日志时进行额外的业务信息处理。
  35. */
  36. public class OperateLogControllerBean extends AbstractOperateLogControllerBean {
  37. // 定义日志记录器,用于记录该类的相关日志信息
  38. private static Logger logger =
  39. Logger.getLogger("com.kingdee.eas.custom.interfacelog.businessoperationlog.app.OperateLogControllerBean");
  40. /**
  41. * 重写父类的 _addnew 方法,在添加新操作日志时进行额外的业务信息处理。
  42. *
  43. * @param ctx 上下文对象,包含了操作的环境信息
  44. * @param model 要添加的对象值,这里是操作日志信息
  45. * @return 返回添加对象的主键
  46. * @throws BOSException 当发生 BOS 相关异常时抛出
  47. * @throws EASBizException 当发生 EAS 业务异常时抛出
  48. */
  49. @Override
  50. protected IObjectPK _addnew(Context ctx, IObjectValue model) throws BOSException, EASBizException {
  51. // 将传入的对象值转换为 OperateLogInfo 类型
  52. OperateLogInfo operateLogInfo = (OperateLogInfo) model;
  53. // 获取操作日志中的业务 ID
  54. String businessId = operateLogInfo.getBusinessId();
  55. // 检查业务 ID 是否存在且不为空
  56. if (businessId != null && !businessId.isEmpty()) {
  57. // 将业务 ID 转换为 BOSUuid 对象
  58. BOSUuid read = BOSUuid.read(businessId);
  59. // 获取 BOSUuid 对象的类型
  60. BOSObjectType type = read.getType();
  61. // 根据 BOS 类型获取实体对象信息
  62. EntityObjectInfo entityObjectInfo = MetaDataUtil.getEntityObjectByBosType(type);
  63. // 获取实体对象的别名
  64. String alias = entityObjectInfo.getAlias();
  65. // 设置操作日志的 BOS 类型
  66. operateLogInfo.setBosType(type.toString());
  67. // 设置操作日志的业务名称
  68. operateLogInfo.setBusinessName(alias);
  69. // 创建 BOS 对象实例
  70. ICoreBase bosObject = (ICoreBase) (BOSObjectFactory.createBOSObject(ctx, type));
  71. // 根据业务 ID 获取对象集合
  72. CoreBaseCollection collection = bosObject.getCollection(" where id = '" + businessId + "'");
  73. // 检查集合中是否有元素
  74. if (collection.size() > 0) {
  75. // 获取集合中的第一个元素
  76. CoreBaseInfo coreBaseInfo = collection.get(0);
  77. // 设置操作日志的名称
  78. operateLogInfo.setName(coreBaseInfo.getString("name"));
  79. // 设置操作日志的编号
  80. operateLogInfo.setNumber(coreBaseInfo.getString("number"));
  81. }
  82. }
  83. // 调用父类的 _addnew 方法完成添加操作
  84. return super._addnew(ctx, operateLogInfo);
  85. }
  86. }