GetSelectFieldService.java 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package com.kingdee.eas.custom.dataconfig.utils.service;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.kingdee.bos.BOSException;
  4. import com.kingdee.bos.Context;
  5. import com.kingdee.bos.bsf.service.app.IHRMsfService;
  6. import com.kingdee.bos.metadata.entity.EntityObjectInfo;
  7. import com.kingdee.eas.common.EASBizException;
  8. import com.kingdee.eas.custom.dataconfig.utils.SqlUtils;
  9. import java.util.Map;
  10. /**
  11. * 获取选择字段的服务类
  12. * 实现IHRMsfService接口,用于在金蝶EAS平台中处理获取指定实体选择字段的业务请求
  13. */
  14. public class GetSelectFieldService implements IHRMsfService {
  15. /**
  16. * 处理业务请求的核心方法
  17. * 实现IHRMsfService接口的process方法,用于接收请求参数并返回处理结果
  18. * @param context 系统上下文对象,包含用户信息、会话等上下文数据
  19. * @param map 存放请求参数的Map集合,包含业务所需的输入参数
  20. * @return 处理结果,返回JSONArray类型的选择字段信息
  21. * @throws EASBizException 抛出EAS业务异常,用于处理业务逻辑错误
  22. * @throws BOSException 抛出BOS平台异常,用于处理平台级错误
  23. */
  24. @Override
  25. public Object process(Context context, Map map) throws EASBizException, BOSException {
  26. // 从请求参数map中获取键为"entryFull1"的值,该值通常代表实体的完整标识(如实体全路径)
  27. Object o = map.get("entryFull1");
  28. // 从请求参数map中获取键为"alias"的值,该值通常代表实体的别名(用于筛选字段)
  29. Object o1 = map.get("alias");
  30. // 判断"entryFull1"对应的参数是否为空
  31. if(o==null){
  32. // 若"entryFull1"为空,则抛出运行时异常,提示"编号不能为空"
  33. throw new RuntimeException("编号不能为空");
  34. }
  35. // 将"entryFull1"的参数值转换为字符串类型,便于后续使用
  36. String entryFull1 = o.toString();
  37. // 创建SqlUtils工具类的实例,用于调用其提供的工具方法
  38. SqlUtils sqlUtils = new SqlUtils();
  39. // 调用SqlUtils的getEntryInfo方法,根据实体完整标识和上下文获取实体对象信息(元数据)
  40. EntityObjectInfo entryInfo1 = sqlUtils.getEntryInfo(entryFull1, context);
  41. // 定义JSONArray类型的变量selectField,用于存储获取到的选择字段信息
  42. JSONArray selectField = null;
  43. // 判断"alias"对应的参数是否为空
  44. if (o1==null){
  45. // 若"alias"为空,则调用SqlUtils的getSelectField方法,传入实体信息和上下文,获取无别名筛选的选择字段
  46. selectField = sqlUtils.getSelectField(entryInfo1, null, context);
  47. }else {
  48. // 若"alias"不为空,则将其转换为字符串,调用SqlUtils的getSelectField方法,传入实体信息、别名和上下文,获取带别名筛选的选择字段
  49. selectField = sqlUtils.getSelectField(entryInfo1,o1.toString(),context);
  50. }
  51. // 返回获取到的选择字段信息(JSONArray类型)
  52. return selectField;
  53. }
  54. }