RptUtils.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package com.kingdee.shr.customer.gtiit.util;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import org.apache.commons.lang3.StringUtils;
  5. import java.util.stream.Collectors;
  6. import java.util.ArrayList;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import java.util.Map;
  10. public class RptUtils {
  11. /** 报表查询字段/导出excel标题 */
  12. public static ArrayList<String> englishList = new ArrayList<String>();
  13. public static ArrayList<String> chineseList = new ArrayList<String>();
  14. static {
  15. englishList.add("PersonNumber");
  16. englishList.add("LastName");
  17. englishList.add("FirstName");
  18. englishList.add("EnglishName");
  19. englishList.add("Department");
  20. englishList.add("Position");
  21. englishList.add("JobName");
  22. englishList.add("WorkerCategory");
  23. englishList.add("PersonType");
  24. englishList.add("FullorPartTime");
  25. englishList.add("HireDate");
  26. englishList.add("ProbationEndDate");
  27. englishList.add("ContractNo");
  28. englishList.add("Type");
  29. englishList.add("CommencingDate");
  30. englishList.add("ExpiredDate");
  31. englishList.add("Yearsofservice");
  32. chineseList.add("工号");
  33. chineseList.add("姓");
  34. chineseList.add("名");
  35. chineseList.add("英文名");
  36. chineseList.add("部门名称");
  37. chineseList.add("职位名称");
  38. chineseList.add("职务");
  39. chineseList.add("员工类别");
  40. chineseList.add("人员类型");
  41. chineseList.add("全职或兼职");
  42. chineseList.add("雇佣日期");
  43. chineseList.add("试用期结束日期");
  44. chineseList.add("合同/协议编码");
  45. chineseList.add("类型");
  46. chineseList.add("开始时间");
  47. chineseList.add("结束时间");
  48. chineseList.add("服务年限");
  49. }
  50. public static Map<String, Object> getRptSQLFilterate(JSONObject json, List<String> qfNames) {
  51. Map<String, Object> rptSQLFilterateMap = new HashMap<>();
  52. qfNames.forEach(item -> {
  53. JSONObject paramJson = json.getJSONObject(item);
  54. String dataType = paramJson.getString("dataType");
  55. if (dataType.equals("Date")) {
  56. // 转Map 区分日期和日期范围
  57. Map<String, Object> dateMap = new HashMap<>(3);
  58. JSONObject values = paramJson.getJSONObject("values");
  59. if (values == null) {
  60. dateMap.put("startDate", null);
  61. dateMap.put("endDate", null);
  62. dateMap.put("selectDate", null);
  63. dateMap.put("date", null);
  64. } else {
  65. Map<String, Object> map = values.entrySet().stream()
  66. .collect(Collectors.toMap(entry -> entry.getKey(), entry -> entry.getValue()));
  67. if (map.containsKey("startDate") || map.containsKey("startDate")) {
  68. // 日期范围
  69. dateMap.put("startDate", map.get("startDate"));
  70. dateMap.put("endDate", map.get("endDate"));
  71. dateMap.put("selectDate", map.get("selectDate"));
  72. } else {
  73. // 日期
  74. dateMap.put("date", map.get("date"));
  75. }
  76. }
  77. rptSQLFilterateMap.put(item, dateMap);
  78. } else if (dataType.equals("F7")) {
  79. // 将id转换成 支持sql in 查询
  80. String values = paramJson.getString("values");
  81. if (StringUtils.isNotBlank(values.toString())) {
  82. String ids = "'" + values.toString().replace(",", "','") + "'";
  83. ids = ids.replace(" ", "+");
  84. rptSQLFilterateMap.put(item, ids);
  85. } else {
  86. rptSQLFilterateMap.put(item, values);
  87. }
  88. } else if (dataType.equals("Enum")) {
  89. String values = paramJson.getString("values");
  90. rptSQLFilterateMap.put(item, values);
  91. }
  92. });
  93. return rptSQLFilterateMap;
  94. }
  95. }