package com.kingdee.shr.customer.gtiit.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.apache.commons.lang3.StringUtils; import java.util.stream.Collectors; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class RptUtils { /** 报表查询字段/导出excel标题 */ public static ArrayList englishList = new ArrayList(); public static ArrayList chineseList = new ArrayList(); static { englishList.add("PersonNumber"); englishList.add("LastName"); englishList.add("FirstName"); englishList.add("EnglishName"); englishList.add("Department"); englishList.add("Position"); englishList.add("JobName"); englishList.add("WorkerCategory"); englishList.add("PersonType"); englishList.add("FullorPartTime"); englishList.add("HireDate"); englishList.add("ProbationEndDate"); englishList.add("ContractNo"); englishList.add("Type"); englishList.add("CommencingDate"); englishList.add("ExpiredDate"); englishList.add("Yearsofservice"); chineseList.add("工号"); chineseList.add("姓"); chineseList.add("名"); chineseList.add("英文名"); chineseList.add("部门名称"); chineseList.add("职位名称"); chineseList.add("职务"); chineseList.add("员工类别"); chineseList.add("人员类型"); chineseList.add("全职或兼职"); chineseList.add("雇佣日期"); chineseList.add("试用期结束日期"); chineseList.add("合同/协议编码"); chineseList.add("类型"); chineseList.add("开始时间"); chineseList.add("结束时间"); chineseList.add("服务年限"); } public static Map getRptSQLFilterate(JSONObject json, List qfNames) { Map rptSQLFilterateMap = new HashMap<>(); qfNames.forEach(item -> { JSONObject paramJson = json.getJSONObject(item); String dataType = paramJson.getString("dataType"); if (dataType.equals("Date")) { // 转Map 区分日期和日期范围 Map dateMap = new HashMap<>(3); JSONObject values = paramJson.getJSONObject("values"); if (values == null) { dateMap.put("startDate", null); dateMap.put("endDate", null); dateMap.put("selectDate", null); dateMap.put("date", null); } else { Map map = values.entrySet().stream() .collect(Collectors.toMap(entry -> entry.getKey(), entry -> entry.getValue())); if (map.containsKey("startDate") || map.containsKey("startDate")) { // 日期范围 dateMap.put("startDate", map.get("startDate")); dateMap.put("endDate", map.get("endDate")); dateMap.put("selectDate", map.get("selectDate")); } else { // 日期 dateMap.put("date", map.get("date")); } } rptSQLFilterateMap.put(item, dateMap); } else if (dataType.equals("F7")) { // 将id转换成 支持sql in 查询 String values = paramJson.getString("values"); if (StringUtils.isNotBlank(values.toString())) { String ids = "'" + values.toString().replace(",", "','") + "'"; ids = ids.replace(" ", "+"); rptSQLFilterateMap.put(item, ids); } else { rptSQLFilterateMap.put(item, values); } } else if (dataType.equals("Enum")) { String values = paramJson.getString("values"); rptSQLFilterateMap.put(item, values); } }); return rptSQLFilterateMap; } }