ESignTemplateFileEntryFieldListHandler.java 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package com.kingdee.eas.custom.esign.handler;
  2. import com.kingdee.bos.metadata.entity.FilterInfo;
  3. import com.kingdee.bos.metadata.entity.FilterItemInfo;
  4. import com.kingdee.bos.metadata.query.util.CompareType;
  5. import com.kingdee.shr.base.syssetting.exception.SHRWebException;
  6. import com.kingdee.shr.base.syssetting.web.handler.ListHandler;
  7. import com.kingdee.util.StringUtils;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import java.util.regex.Pattern;
  11. /**
  12. * @Description e签宝模板字段列表handler
  13. * @Date 2025/11/25 14:13
  14. * @Created by 禾源
  15. */
  16. public class ESignTemplateFileEntryFieldListHandler extends ListHandler {
  17. private static final Pattern NUMBER_PATTERN = Pattern.compile("-?\\d+(\\.\\d+)?");
  18. /**
  19. * 获取自定义过滤器信息
  20. *
  21. * @param request HTTP请求对象,用于获取请求相关信息
  22. * @param response HTTP响应对象,用于设置响应相关信息
  23. * @return FilterInfo 过滤器信息对象
  24. * @throws SHRWebException 当获取过滤器信息过程中发生错误时抛出异常
  25. */
  26. @Override
  27. protected FilterInfo getCustomFilter(
  28. HttpServletRequest request,
  29. HttpServletResponse response
  30. ) throws SHRWebException {
  31. // 调用父类方法获取基础过滤器信息
  32. FilterInfo customFilter = super.getCustomFilter(request, response);
  33. if (customFilter == null) {
  34. customFilter = new FilterInfo();
  35. }
  36. // 根据parentId参数设置过滤条件
  37. String parentId = (String) this.getRequestParameter(request, "parentId");
  38. if (StringUtils.isEmpty(parentId) || NUMBER_PATTERN.matcher(parentId).matches()) {
  39. // parentId为空或为数字时,添加空值过滤条件
  40. customFilter.getFilterItems().add(new FilterItemInfo("parent1.id", null));
  41. } else {
  42. // parentId存在且不为数字时,添加相等过滤条件
  43. customFilter.getFilterItems().add(new FilterItemInfo("parent1.id", parentId));
  44. }
  45. return customFilter;
  46. }
  47. }