package com.engine.salary.elog.service.impl; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.cloudstore.eccom.pc.table.WeaTable; import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.engine.core.impl.Service; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.elog.annotation.OperateType; import com.engine.salary.elog.entity.dto.ElogBean; import com.engine.salary.elog.entity.dto.FilterConditionDto; import com.engine.salary.elog.entity.dto.LoggerContext; import com.engine.salary.elog.entity.dto.ShowColumsDto; import com.engine.salary.elog.entity.param.ELogGetLogParam; import com.engine.salary.elog.entity.param.GetDetailChangesParam; import com.engine.salary.elog.enums.ElogConsts; import com.engine.salary.elog.service.ILoggerTableService; import com.engine.salary.elog.util.ElogServiceUtils; import com.engine.salary.elog.util.ElogSeviceSwitchUtils; import com.engine.salary.elog.util.ElogSeviceUtils; import com.engine.salary.elog.util.FieldNameMap; import com.engine.salary.mapper.elog.LocalElogDaoMapper; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.Column; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; import com.github.pagehelper.Page; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import weaver.conn.RecordSet; import weaver.general.Util; import javax.servlet.http.HttpServletRequest; import java.util.*; import java.util.stream.Collectors; public class LoggerTableService extends Service implements ILoggerTableService { private static final Logger logger = LoggerFactory.getLogger(LoggerTableService.class); private LocalElogDaoMapper getLocalElogDaoMapper() { return MapperProxyFactory.getProxy(LocalElogDaoMapper.class); } // // private ComInfoCache comInfoCache; // // // private HrmCommonUtil hrmCommonUtil; // // // private QueryCommonTabeMapper queryCommonTabeMapper; // // // private RestHighLevelClient restHighLevelClient; // // @Resource // private BatchExportSender batchExportSender; // // // @Resource // private DateRangeTransformer dateRangeTransformer; // // // private HrmCommonEmployeeService hrmCommonEmployeeService; // // private final String databaseId = new RecordSet().getDBType(); @Override public PageInfo queryLogs(String data) { //解析数据 ElogBean elogBean = ElogServiceUtils.getElogBean(data); // columIndex统一转为小写 Optional.ofNullable(elogBean.getShowColumns()) .ifPresent(list -> { list.forEach(x -> { if (StringUtils.isNotBlank(x.getColumIndex())) { x.setColumIndex(x.getColumIndex().toLowerCase()); } }); }); List showColums = elogBean.getShowColumns(); String module = elogBean.getModule(); String function = elogBean.getFunction(); String searchMap = elogBean.getSearchMap(); String pageSize = elogBean.getPageSize(); String pageNum = elogBean.getCurrent(); String downloadSize = elogBean.getDownloadSize(); List filterConditionDtos = elogBean.getFilterConditionDtos(); String transMethod = elogBean.getTransMethod(); Map authParamsJson = elogBean.getAuthParamsJson(); //获取 context 数据 LoggerContext context = new LoggerContext(); context.setModuleName(module); context.setFunctionName(function); context.setTenant_key(getTenantKey()); // context.setOperator(getEmployeeId()); //获取主表 String tableName = ElogSeviceUtils.getTableName(module, function); //获取weaTable List columns = getWeaColumns(data, showColums, module, function); //获取条件sql String searchMapsql = getSearchMapSql(searchMap, module, function, elogBean.getShowColumns()); String sb = getQueryCondition(filterConditionDtos); sb = searchMapsql.concat(sb); String customSql = getCustomSql(transMethod, sb, "before"); // 分页 Page page = null; if (StringUtils.isEmpty(downloadSize)) { page = new Page(ElogSeviceUtils.getIntValue(pageNum, 1), ElogSeviceUtils.getIntValue(pageSize, 10)); } else { int pagesize = ElogSeviceUtils.getIntValue(downloadSize, 5000); page = new Page(1, pagesize); } List list = getLocalElogDaoMapper().queryElogList(page, context, null, tableName, customSql, "*"); Map countMap = getLocalElogDaoMapper().elogCount(context, tableName, customSql); if ("st".equals(databaseId)) { //st数据库 date类型特殊处理 list.forEach(map -> { map.forEach((k, v) -> { if (v instanceof Date) { map.put(k, DateUtil.format((Date) v, "yyyy-MM-dd HH:mm:ss")); } }); }); } //处理转换其他数据库类型值 list = ElogSeviceSwitchUtils.getSwitchDatabaseData(list); //处理用户信息Data // 大小写转换 ElogSeviceSwitchUtils.changKey2Lower(list); // 存放结果集 PageInfo pageInfo = SalaryPageUtil.buildPage(page.getPageNum(), page.getPageSize(), switchString(list)); pageInfo.setTotal(ElogSeviceUtils.getLongValue(countMap.get("counts") + "", 0)); pageInfo.setColumns(columns); return pageInfo; } @Override public WeaTable queryLogsPapi(String data, HttpServletRequest request) { return null; } @Override public List getDetailChangesPapi(String module, String function, String mainid, String transMethod, HttpServletRequest request) { return null; } private String getshowColumsStr(List showColums) { StringBuffer sb = new StringBuffer(); sb.append("id,uuid,targetid,params,operatetype,link_id,link_type,"); for (ShowColumsDto showColum : showColums) { String columIndex = showColum.getColumIndex(); if ("date".equalsIgnoreCase(columIndex) || "createdate".equalsIgnoreCase(columIndex)) { columIndex = "log_date"; } else if ("operator".equalsIgnoreCase(columIndex)) { columIndex = "log_operator"; } else if ("modulenamespan".equalsIgnoreCase(columIndex)) { columIndex = "modulename"; } else if ("functionnameespan".equalsIgnoreCase(columIndex)) { columIndex = "functionname"; } else if ("avatar".equals(columIndex)) { continue; } sb.append(columIndex).append(","); } String substring = sb.toString().substring(0, sb.toString().length() - 1); return substring; } // private PermissionParams getPermissionParams(Map hashMap) { // PermissionParams permissionParams = new PermissionParams(); // String permissionId = getPermissionStr(hashMap, "permissionId"); // String permissionType = getPermissionStr(hashMap, "permissionType"); // String mainDataTableAlias = getPermissionStr(hashMap, "mainDataTableAlias"); // String mainDataTable = getPermissionStr(hashMap, "mainDataTable"); // String primaryKey = getPermissionStr(hashMap, "primaryKey"); // String permissionTargetId = getPermissionStr(hashMap, "permissionTargetId"); // String permissionConfigSourceId = getPermissionStr(hashMap, "permissionConfigSourceId"); // // permissionParams.setPermissionId(permissionId); // permissionParams.setPermissionType(permissionType); // permissionParams.setMainDataTableAlias(mainDataTableAlias); // permissionParams.setMainDataTable(mainDataTable); // permissionParams.setPrimaryKey(primaryKey); // permissionParams.setPermissionTargetId(permissionTargetId); // permissionParams.setPermissionConfigSourceId(permissionConfigSourceId); // // return permissionParams; // // } private List getWeaColumns(String data, List showColums, String module, String function) { List columns = new ArrayList<>(); if (showColums != null && showColums.size() > 0) { for (ShowColumsDto showColum : showColums) { if (StringUtils.isNotBlank(showColum.getAliasColumName())) { columns.add(new Column(showColum.getAliasColumName(), showColum.getColumIndex(), showColum.getColumIndex())); } else if (StringUtils.isNotBlank(showColum.getColumName())) { columns.add(new Column(FieldNameMap.getMainFieldNameMap(data, function, showColum.getColumName()), showColum.getColumIndex(), showColum.getColumIndex())); } } } else { columns.add(new Column(FieldNameMap.getMainFieldNameMap(module, function, "moduleName"), "modulenamespan", "modulenamespan")); columns.add(new Column(FieldNameMap.getMainFieldNameMap(module, function, "functionName"), "functionnamespan", "functionnamespan")); columns.add(new Column(FieldNameMap.getMainFieldNameMap(module, function, "clientIp"), "clientip", "clientip")); columns.add(new Column(FieldNameMap.getMainFieldNameMap(module, function, "operateTypeName"), "operatetypename", "operatetypename")); columns.add(new Column(FieldNameMap.getMainFieldNameMap(module, function, "targetName"), "targetname", "targetname")); columns.add(new Column(FieldNameMap.getMainFieldNameMap(module, function, "date"), "createdate", "createdate")); columns.add(new Column(FieldNameMap.getMainFieldNameMap(module, function, "operatorName"), "operatorname", "operatorname")); } return columns; } private String getTargetid(List filterConditionDtos) { if (!filterConditionDtos.isEmpty()) { for (FilterConditionDto filterConditionDto : filterConditionDtos) { if ("targetid".equalsIgnoreCase(filterConditionDto.getColumIndex())) { return filterConditionDto.getValue(); } } } return ""; } private String getPermissionStr(Map hashMap, String str) { if (hashMap != null && hashMap.size() > 0) { Object obj = hashMap.get(str); if (obj != null) { return obj.toString(); } } return ""; } // private Map getCustomAuthSql(String transMethod, Map params, String prefix) { // MethodHandler beforeMethodHandler = ElogMethodHandler.loadMethodHandler(prefix + transMethod); // Map hashMap = new HashMap<>(); // if (beforeMethodHandler != null) { // try { // hashMap.put("flag", true); // hashMap.put("msg", ""); // hashMap.putAll(params); // Object execute = beforeMethodHandler.execute(hashMap); // if (execute != null && execute instanceof Map) { // Map map = (Map) execute; // return map; // } // } catch (Exception e) { // logger.error("转换出错:" + e); // throw new RuntimeException(e.getMessage()); // } // } // return hashMap; // } private String getCustomSql(String transMethod, String sql, String prefix) { // MethodHandler beforeMethodHandler = ElogMethodHandler.loadMethodHandler(prefix + transMethod); // boolean flag = false; // if (beforeMethodHandler != null) { // try { // String subSql = ""; // if (sql.length() > 5) { // flag = true; // subSql = sql.substring(5, sql.length()); // } // Object execute = beforeMethodHandler.execute(subSql); // if (execute != null) { // if (execute instanceof String) { // StringBuffer sb = null; // if(execute.toString().length()==0){ // sb = new StringBuffer(); // } else if (flag || execute.toString().length() > 0) { // sb = new StringBuffer(" and "); // } else { // sb = new StringBuffer(); // } // // sb.append(execute.toString()); // return sb.toString(); // } // } // } catch (Exception e) { // logger.error("转换出错:" + e); // throw new RuntimeException(e.getMessage()); // } // } return sql; } private void transUserInfo(List list) { // List operators = new ArrayList<>(); // if (list != null && list.size() > 0) { // for (Map map : list) { // //避免暴露内网地址 // map.remove("requesturl"); // // Object operator = map.get("operator"); // if (operator != null && StringUtils.isNotBlank(operator.toString())) { // operators.add(ElogSeviceUtils.getLongValue(operator.toString())); // } // } // } // List cacheList = comInfoCache.getCacheList(HrmEmployeeComInfo.class, operators); // Map infoHashMap = new HashMap<>(); // if (cacheList != null && cacheList.size() > 0) { // for (HrmEmployeeComInfo hrmEmployeeComInfo : cacheList) { // HrmAvatarComInfo hrmAvatarComInfo = (HrmAvatarComInfo) comInfoCache.getCacheById(HrmAvatarComInfo.class, hrmEmployeeComInfo.getAvatar()); // ElogHrmSimpleEmployeeInfo info = new ElogHrmSimpleEmployeeInfo(); // if (hrmAvatarComInfo != null) { // info.setAvatarP3Id(hrmAvatarComInfo.getP3()); // } // info.setId(hrmEmployeeComInfo.getId()); // info.setUserName(hrmEmployeeComInfo.getUsername()); // infoHashMap.put(hrmEmployeeComInfo.getId(), info); // } // } // if (list != null && list.size() > 0) { // for (Map map : list) { // Object operator = map.get("operator"); // if (map.get("params") != null && map.get("params").toString().startsWith("H4s")) { // map.put("params", ElogSeviceUtils.uncompress(map.get("params").toString())); // } // map.put("dboperatorname", Util.null2String(map.get("operatorname"))); // if (operator != null && StringUtils.isNotBlank(operator.toString())) { // Map i18nOperatorMap = new HashMap<>(); // ElogHrmSimpleEmployeeInfo hrmEmployeeComInfo = infoHashMap.get(Long.parseLong(operator.toString())); // if (hrmEmployeeComInfo != null) { // //获取最新的人员名称并进行多语言转换 // i18nOperatorMap.put(Long.parseLong(operator.toString()), hrmEmployeeComInfo.getUserName()); // Map parseI18nOperator = HrmI18nUtil.batchCovertEmployee(i18nOperatorMap, map.get("tenant_key").toString()); // map.put("operatorname", parseI18nOperator.get(Long.parseLong(operator.toString()))); // //// if (StringUtils.isNotEmpty(hrmEmployeeComInfo.getUserName())) { //// map.put("operatorname", hrmEmployeeComInfo.getUserName()); //// } // if (hrmEmployeeComInfo.getAvatarP3Id() != null) { // map.put("avatar", hrmEmployeeComInfo.getAvatarP3Id()); // } // } // } // } // } } /** * 获取宽度 * * @param showColum * @return */ private String getColumnsWidth(ShowColumsDto showColum) { if (StringUtils.isBlank(showColum.getWidth())) { return "5%"; } else { return showColum.getWidth(); } } private String getTenantKey() { // User currentUser = UserContext.getCurrentUser(); // if (currentUser != null) { // return currentUser.getTenantKey(); // } else { // String tenantKey = TenantRpcContext.getTenantKey(); // if (StringUtils.isNotBlank(tenantKey)) { // return tenantKey; // } // } return SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY; } // private String getEmployeeId() { // // User currentUser = UserContext.getCurrentUser(); // if (currentUser != null && !currentUser.isAdmin()) { // String employeeId = TenantRpcContext.getEmployeeId(); // return StringUtils.isNotBlank(employeeId) ? employeeId : ""; // } // return ""; // } // // private String getUserId() { // User currentUser = UserContext.getCurrentUser(); // if (currentUser != null) { // return currentUser.getEmployeeId().toString(); // } // String employeeId = TenantRpcContext.getEmployeeId(); // return StringUtils.isNotBlank(employeeId) ? employeeId : ""; // } /** * 拼接搜索条件 * * @param searchMap * @param module * @param function * @return */ private String getSearchMapSql(String searchMap, String module, String function, List showColumns) { StringBuffer sb = new StringBuffer(); Map map = JSON.parseObject(searchMap); if (map == null) return sb.toString(); Iterator> iterators = map.entrySet().iterator(); while (iterators.hasNext()) { Map.Entry next = iterators.next(); String key = next.getKey(); // SecurityUtil.sqlCheck(key); if ("date".equals(key) || "createdate".equals(key)) { Object date = next.getValue(); if (date != null) { if (StringUtils.isNotBlank(date.toString())) { List dates = (List) date; // if (dates != null && dates.size() == 2) { // Object startDate = dates.get(0); // Object endDate = dates.get(1); // startDate = ElogSeviceUtils.checkValSql(startDate.toString()); // endDate = ElogSeviceUtils.checkValSql(endDate.toString()); // if (StringUtils.isNotBlank(startDate.toString()) && StringUtils.isNotBlank(endDate.toString())) { // startDate = startDate.toString().replaceAll("'", "''"); // endDate = endDate.toString().replaceAll("'", "''"); // String dateRangeAfter = dateRangeTransformer.getDateRangeAfter(startDate.toString()); // String dateRangeBefore = dateRangeTransformer.getDateRangeBefore(endDate.toString()); // sb.append(" and log_date ").append(" between ").append(getSwithDatabaseDate(dateRangeAfter)).append(" and ").append(getSwithDatabaseDate(dateRangeBefore)).append(" "); // } else if (StringUtils.isNotBlank(startDate.toString())) { // String dateRangeAfter = dateRangeTransformer.getDateRangeAfter(startDate.toString()); // sb.append(" and log_date ").append(" >= ").append(getSwithDatabaseDate(dateRangeAfter)).append(" "); // } else if (StringUtils.isNotBlank(endDate.toString())) { // String dateRangeBefore = dateRangeTransformer.getDateRangeBefore(endDate.toString()); // sb.append(" and log_date ").append(" <= ").append(getSwithDatabaseDate(dateRangeBefore)).append(" "); // } // } } } } else if ("operator".equals(next.getKey())) { Object operator = next.getValue(); if (operator != null) { if (StringUtils.isNotBlank(operator.toString())) { operator = ElogSeviceUtils.checkValSql(operator.toString()); operator = operator.toString().replaceAll("'", "''"); if (StringUtils.isNumeric(operator.toString()) && operator.toString().length() > 15) { sb.append(" and log_operator = ").append(operator.toString()).append(" "); } // else { // List likeNameHrmEmployeeList = hrmCommonEmployeeService.queryEmpsByCondidtion( // new HrmOrgEmpCondition().setNameLikeList(Arrays.asList(operator.toString())).setTenantKey(getTenantKey()), // HrmConditionResultType.BEAN.name()); // if (likeNameHrmEmployeeList != null && likeNameHrmEmployeeList.size() > 0) { // List ids = likeNameHrmEmployeeList.stream().map(HrmEmployee::getId).collect(Collectors.toList()); // if (ids != null && ids.size() > 0) { // sb.append(" and ( operatorname like '%").append(operator.toString()).append("%' ") // .append(" or log_operator in (").append(StringUtils.join(ids, ",")).append(")) "); // } // } else { // sb.append(" and operatorname like '%").append(operator.toString()).append("%' "); // } // } } } } else if ("modulename".equals(next.getKey())) { Object moduleName = next.getValue(); if (moduleName != null) { moduleName = moduleName.toString().replaceAll("'", "''"); if (StringUtils.isNotBlank(moduleName.toString())) { moduleName = ElogSeviceUtils.checkValSql(moduleName.toString()); //sb.append(" and modulename = '").append(moduleName.toString()).append("' "); StringBuffer stringBuffer = new StringBuffer(); if (isEnglish(moduleName.toString())) { Map moduleMap = ElogSeviceSwitchUtils.moduleMap; Iterator> iterator = moduleMap.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry nextObj = iterator.next(); if (nextObj.getKey().contains(moduleName.toString())) { stringBuffer.append("'").append(nextObj.getKey()).append("',"); } } } else { Map moduleMap = ElogSeviceSwitchUtils.moduleMap; Iterator> iterator = moduleMap.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry nextObj = iterator.next(); String val = ElogSeviceSwitchUtils.getModuleName(nextObj.getValue() + ""); if (val.contains(moduleName.toString())) { stringBuffer.append("'").append(nextObj.getKey()).append("',"); } } } String str = ""; if (stringBuffer.toString().length() > 0) { str = stringBuffer.substring(0, stringBuffer.length() - 1); String inVals = str.toString().replaceAll("''", "'"); sb.append(" and modulename in (").append(inVals).append(") "); } else { sb.append(" and modulename = '").append(moduleName.toString()).append("' "); } } } } else if (databaseId.equalsIgnoreCase(ElogConsts.POSTGRESQL) && "targetid".equalsIgnoreCase(next.getKey())) { //兼容PG环境int类型不支持模糊搜索的问题 String value = next.getValue().toString().replaceAll("'", "''"); value = ElogSeviceUtils.checkValSql(value.toString()); if (value.startsWith("_")) { value = value.replace("_", "\\_"); } //将类型转为varchar再进行查询 sb.append(" and ").append("cast(").append(key).append(" as VARCHAR(255) )").append(" like '%").append(value).append("%' "); } else { if (next.getValue() != null && StringUtils.isNotBlank(key) && StringUtils.isNotBlank(next.getValue().toString())) { String value = next.getValue().toString().replaceAll("'", "''"); value = ElogSeviceUtils.checkValSql(value.toString()); StringBuilder stringBuffer = new StringBuilder(); // if (isLikeSearch(showColumns, key)) { // String logSearchSql = I18nUtil.getLogSearchSql(ElogSeviceUtils.getTableName(module, function), key, value); // String sql = logSearchSql.replaceAll("%_", "%\\\\_"); // try { // List maps = queryCommonTabeMapper.queryLabelIds(sql); // if (maps != null && maps.size() > 0) { // for (Map map1 : maps) { // Object indexid = map1.get(key); // if (indexid == null || StringUtils.isEmpty(indexid.toString())) { // indexid = map1.get(key.toLowerCase()); // } // if (indexid != null && StringUtils.isNotEmpty(indexid.toString())) { // String val = indexid.toString().replace("'", "''"); // if (ElogSeviceUtils.checkIsNumber(map.get(key))) { // val = "-" + val; // value = "-" + value; // } // stringBuffer.append("'").append(val).append("',"); // } // } // } // } catch (Exception e) { // logger.error("i18查询sql报错:{}", e.getMessage(), e); // } // // } String str = ""; if (stringBuffer.toString().length() > 0) { str = stringBuffer.substring(0, stringBuffer.length() - 1); if (value.startsWith("_")) { value = value.replace("_", "\\_"); } sb.append(" and (").append(key).append(" like '%").append(value).append("%' "); //String inVals = str.toString().replaceAll("''", "'"); if (str.startsWith("_")) { str = str.replace("_", "\\_"); } if ("operatetypename".equals(key)) { String s = ElogSeviceUtils.checkValSql(next.getValue().toString()); sb.append(matchOperatetype(s)); } sb.append(" or ").append(key).append(" in (").append(str).append(")) "); } else { if ("operatetypename".equals(key)) { sb.append(" and (").append(key).append(" like '%").append(value).append("%' "); String s = ElogSeviceUtils.checkValSql(next.getValue().toString()); sb.append(matchOperatetype(s)).append(")"); } else { if (value.startsWith("_")) { value = value.replace("_", "\\_"); } sb.append(" and ").append(key).append(" like '%").append(value).append("%' "); } } } } } return sb.toString(); } // /** // * 是否模糊搜索 // * // * @param showColumns // * @param key // * @return // */ // private boolean isLikeSearch(List showColumns, String key) { // for (ShowColumsDto showColumn : showColumns) { // if (key.equalsIgnoreCase(showColumn.getColumIndex()) && showColumn.isTransfLanguage()) { // return true; // } // } // return false; // } // private String getSwithDatabaseDate(String date) { // if (ElogConsts.ORACLE.equals(DatabaseUtil.getDatabaseId())) { // return " to_date('" + date + "','yyyy-mm-dd hh24:mi:ss') "; // } else if (ElogConsts.POSTGRESQL.equals(DatabaseUtil.getDatabaseId())) { // return " to_timestamp('" + date + "', 'YYYY-MM-DD HH24:MI:SS') "; // } else if (ElogConsts.SQLSERVER.equals(DatabaseUtil.getDatabaseId())) { // return " convert(nvarchar(19),'" + date + "',120) "; // } else { // return " DATE_FORMAT('" + date + "','%Y-%m-%d %H:%i:%s') "; // } // } public String matchOperatetype(String str) { // if (ElogSeviceUtils.currentLanguage() != 8) { // return ""; // } List list = new ArrayList(); list.add(OperateType.add); list.add(OperateType.update); list.add(OperateType.view); list.add(OperateType.delete); StringBuffer sb = new StringBuffer(); for (String o : list) { if (o.toLowerCase().contains(str.toLowerCase())) { sb.append("'").append(o).append("',"); } } if ("new".toLowerCase().contains(str.toLowerCase())) { sb.append("'add',"); } String sql = ""; if (sb.length() > 0) { sql = sb.toString().substring(0, sb.length() - 1); sql = "or operatetype in (" + sql + ")"; } return sql; } public static boolean isEnglish(String charaString) { return charaString.matches("^[a-zA-Z]*"); } /** * 获取搜索条件 * * @param filterConditionDtos * @return */ private String getQueryCondition(List filterConditionDtos) { StringBuffer sb = new StringBuffer(); if (filterConditionDtos != null && filterConditionDtos.size() > 0) { for (FilterConditionDto filterConditionDto : filterConditionDtos) { if (StringUtils.isNotBlank(filterConditionDto.getColumIndex())) { sb.append(getsql(filterConditionDto)); } } } return sb.toString(); } /** * 拼接sql * * @param filterConditionDto * @return */ private String getsql(FilterConditionDto filterConditionDto) { StringBuffer sb = new StringBuffer(); filterConditionDto.setConnectCondition(ElogSeviceUtils.checkConditionSql(filterConditionDto.getConnectCondition())); filterConditionDto.setType(ElogSeviceUtils.checkTypeSql(filterConditionDto.getType())); filterConditionDto.setValue(ElogSeviceUtils.checkValSql(filterConditionDto.getValue())); switchDatabaseFieldIndex(filterConditionDto); if ("LIKE".equalsIgnoreCase(filterConditionDto.getType())) { if (filterConditionDto.getLike() != null) { sb.append(" "). append(getConnectCondition(filterConditionDto.getConnectCondition())). append(" "). append(filterConditionDto.getColumIndex()). append(" "). append(getQueryType(filterConditionDto.getType())). append(" '"). append(filterConditionDto.getLike().getPrefix() != null ? filterConditionDto.getLike().getPrefix() : ""). append(filterConditionDto.getValue()). append(filterConditionDto.getLike().getSuffix() != null ? filterConditionDto.getLike().getSuffix() : ""). append("' "); } } else if ("IN".equalsIgnoreCase(filterConditionDto.getType())) { String[] split = filterConditionDto.getValue().split("\",\""); if (split.length > 0) { StringBuffer str = new StringBuffer("("); String value = ""; if ("targetid".equals(filterConditionDto.getColumIndex()) || "log_operator".equals(filterConditionDto.getColumIndex())) { List list = JSONArray.parseArray(filterConditionDto.getValue(), String.class); for (String s : list) { str.append(s).append(","); } } else { List list = JSONArray.parseArray(filterConditionDto.getValue(), String.class); for (String s : list) { str.append("'").append(s).append("',"); } } value = str.toString().substring(0, str.length() - 1); value += ")"; switchDatabaseFieldIndex(filterConditionDto); sb.append(" "). append(getConnectCondition(filterConditionDto.getConnectCondition())). append(" "). append(filterConditionDto.getColumIndex()). append(" "). append(getQueryType(filterConditionDto.getType())). append(value). append(" "); } else if (split.length == 0) { sb.append(" "). append(getConnectCondition(filterConditionDto.getConnectCondition())). append(" "). append(filterConditionDto.getColumIndex()). append(" "). append(getQueryType(filterConditionDto.getType())). append(" ('"). append(filterConditionDto.getValue()). append("') "); } } else if ("IS NULL".equalsIgnoreCase(filterConditionDto.getType()) || "IS NOT NULL".equalsIgnoreCase(filterConditionDto.getType())) { sb.append(" "). append(getConnectCondition(filterConditionDto.getConnectCondition())). append(" "). append(filterConditionDto.getColumIndex()). append(" "). append(getQueryType(filterConditionDto.getType())). append(" "); } else if ("BETWEEN".equalsIgnoreCase(filterConditionDto.getType())) { String[] split = filterConditionDto.getValue().split("\",\""); StringBuffer stringBuffer = new StringBuffer(); if (split.length > 0) { List list = JSONArray.parseArray(filterConditionDto.getValue(), String.class); String str = ""; for (String s : list) { stringBuffer.append(" '").append(s).append("' AND"); } str = stringBuffer.toString().substring(0, stringBuffer.length() - 3); sb.append(" "). append(getConnectCondition(filterConditionDto.getConnectCondition())). append(" "). append(filterConditionDto.getColumIndex()). append(" "). append(getQueryType(filterConditionDto.getType())). append(str). append(" "); } else if (split.length == 0) { sb.append(" "). append(getConnectCondition(filterConditionDto.getConnectCondition())). append(" "). append(filterConditionDto.getColumIndex()). append(" "). append(getQueryType(filterConditionDto.getType())). append(" '"). append(filterConditionDto.getValue()). append("' "); } } else { if ("targetid".equals(filterConditionDto.getColumIndex()) || "log_operator".equals(filterConditionDto.getColumIndex())) { if (StringUtils.isNotBlank(filterConditionDto.getValue())) { sb.append(" "). append(getConnectCondition(filterConditionDto.getConnectCondition())). append(" "). append(filterConditionDto.getColumIndex()). append(" "). append(getQueryType(filterConditionDto.getType())). append(" "). append(filterConditionDto.getValue()). append(" "); } else { sb.append(" "). append(getConnectCondition(filterConditionDto.getConnectCondition())). append(" "). append(filterConditionDto.getColumIndex()). append(" "). append(getQueryType(filterConditionDto.getType())). append(" "). append(-1). append(" "); } } else { sb.append(" "). append(getConnectCondition(filterConditionDto.getConnectCondition())). append(" "). append(filterConditionDto.getColumIndex()). append(" "). append(getQueryType(filterConditionDto.getType())). append(" '"). append(filterConditionDto.getValue()). append("' "); } } return sb.toString(); } private void switchDatabaseFieldIndex(FilterConditionDto filterConditionDto) { if ("operator".equalsIgnoreCase(filterConditionDto.getColumIndex())) { filterConditionDto.setColumIndex("log_operator"); } else if ("date".equalsIgnoreCase(filterConditionDto.getColumIndex())) { filterConditionDto.setColumIndex("log_date"); } else if ("result".equalsIgnoreCase(filterConditionDto.getColumIndex())) { filterConditionDto.setColumIndex("log_result"); } } /** * 获取查询类型 * * @param type * @return */ private String getQueryType(String type) { //如果不填默认是= if (StringUtils.isBlank(type)) { return " = "; } return type; } /** * 获取连接条件 * * @param connectCondition * @return */ private String getConnectCondition(String connectCondition) { //如果不填默认是AND if (StringUtils.isBlank(connectCondition)) { return " AND "; } return connectCondition; } @Override public List> getDetailChanges(GetDetailChangesParam param) { return getDetailChangesMethod(param.getModule(), param.getFunction(), param.getMainid(), param.getDetailTransMethod(), null); } /** * 明细分页查询 * * @param module * @param function * @param mainid * @param detailTransMethod * @param current * @param pageSize * @return */ @Override public WeaTable getDetailChangePages(String module, String function, String mainid, String detailTransMethod, String current, String pageSize) { Integer pageNum = Util.getIntValue(current, 1); Integer size = Util.getIntValue(pageSize, 10); Page page = new Page(pageNum, size); List> list = getDetailChangesMethod(module, function, mainid, null, page); //查询分页总数 String tableName = ElogSeviceUtils.getTableName(module, function, true); Integer total = getLocalElogDaoMapper().queryAllChangesPageCounts(tableName, mainid); WeaTable weaTable = new WeaTable(); weaTable.setColumns(getDetailColumns(list)); PageInfo pageInfo = SalaryPageUtil.buildPage(pageNum, size, list); pageInfo.setTotal(total); return weaTable; } private List getDetailColumns(List> list) { List columns = new ArrayList<>(); if (CollectionUtils.isNotEmpty(list)) { List detailcontexts = (List) list.get(0).get("detailcontexts"); if (CollectionUtils.isNotEmpty(detailcontexts)) { for (Map map : detailcontexts) { WeaTableColumn weaTableColumn = new WeaTableColumn(); // 列表属性名 weaTableColumn.setColumn((String) map.get("fieldname")); //显示名称 多语言转换 fieldnamelabelid weaTableColumn.setText((String) map.get("fieldname")); columns.add(weaTableColumn); } } } return columns; } public List> getDetailChangesMethod(String module, String function, String mainid, String detailTransMethod, Page page) { List list = new ArrayList<>(); String tableName = ElogSeviceUtils.getTableName(module, function, true); String maintableName = ElogSeviceUtils.getTableName(module, function, false); List maps = getLocalElogDaoMapper().queryAllMainData(maintableName, mainid); maps = ElogSeviceSwitchUtils.getSwitchDatabaseData(maps); ElogSeviceSwitchUtils.changKey2Lower(maps); List allChangesData = new ArrayList<>(); //如果有分页数据则走分页方法 if (Objects.nonNull(page)) { // Integer offset = (pageNum - 1) * size; //分页查询明细数据 allChangesData = getLocalElogDaoMapper().queryAllChangesDataPages(tableName, mainid, page); } else { //没有被则不分页 allChangesData = getLocalElogDaoMapper().queryAllChangesData(tableName, mainid); } ElogSeviceSwitchUtils.changKey2Lower(allChangesData); allChangesData = ElogSeviceSwitchUtils.getSwitchDatabaseData(allChangesData); List mainlist = new ArrayList<>(); List detaillist = new ArrayList<>(); if (allChangesData != null && allChangesData.size() > 0) { for (Map allChangesDatum : allChangesData) { Object o = allChangesDatum.get("isdetail"); if (o != null) { if ("0".equals(o.toString())) { mainlist.add(allChangesDatum); } else { detaillist.add(allChangesDatum); } } } } // List mainlist = getLocalElogDaoMapper().queryAllMainChanges(tableName, mainid); // List detaillist = getLocalElogDaoMapper().queryAllDetailChanges(tableName, mainid); //List moduleInfo = queryCommonTabeMapper.queryModuleNameInfo(module); List moduleInfo = new ArrayList<>(); processDetailInfo(mainlist, detaillist, moduleInfo); Map map = ElogSeviceSwitchUtils.switchChangeValue(mainlist, maps); Map detailMap = ElogSeviceSwitchUtils.switchDetailChangeValue(detaillist); map.putAll(detailMap); if (maps != null && maps.size() > 0) { Map maininfoMap = maps.get(0); String operatetypename = (String) maininfoMap.get("operatetypename"); String targetname = (String) maininfoMap.get("targetname"); //长度大于1避免部分模块为1,2,3这类的操作类型 if (StringUtils.isNumeric(operatetypename) && operatetypename.length() > 1 && operatetypename.length() < 10) { String transfOperatetypename = ElogSeviceSwitchUtils.transfLanguageLableid(Long.parseLong(operatetypename), operatetypename); maininfoMap.put("operatetypename", transfOperatetypename); } if (StringUtils.isNumeric(targetname) && targetname.length() > 1 && targetname.length() < 10) { String transfTargetname = ElogSeviceSwitchUtils.transfLanguageLableid(Long.parseLong(targetname), targetname); maininfoMap.put("targetname", transfTargetname); } map.put("maininfo", maininfoMap); map.put("detailtitle", ""); } list.add(map); //List transfLanguageData = ElogSeviceSwitchUtils.transfLanguageData(list); return list; } /** * 处理修改详情转多语言(主表和明细表) * * @param mainlist * @param detaillist * @param commonTableInfo * @return */ private void processDetailInfo(List mainlist, List detaillist, List commonTableInfo) { Map tablenameMap = new HashMap<>(); Map fieldnameMap = new HashMap<>(); Map valueMap = new HashMap<>(); if (commonTableInfo != null && commonTableInfo.size() > 0) { for (Map commonTableInfoMap : commonTableInfo) { JSONObject commonTableInfoMapJs = JSONObject.parseObject(JSONObject.toJSONString(commonTableInfoMap)); String tablename = commonTableInfoMapJs.getString("table_name"); String tablename_labelid = commonTableInfoMapJs.getString("tablename_labelid"); String fieldname = commonTableInfoMapJs.getString("field_name"); String fieldname_labelid = commonTableInfoMapJs.getString("fieldname_labelid"); String values_kvpairs = commonTableInfoMapJs.getString("values_kvpairs"); fieldnameMap.put(fieldname, fieldname_labelid); if (StringUtils.isNotBlank(fieldname) && StringUtils.isNotBlank(values_kvpairs)) { JSONObject jsonObject = JSONObject.parseObject(values_kvpairs); valueMap.put(fieldname, jsonObject); } Object tablenameObj = tablenameMap.get(tablename); if (tablenameObj == null) { tablenameMap.put(tablename, tablename_labelid); } } } if (mainlist != null && mainlist.size() > 0 && fieldnameMap.size() > 0 && valueMap.size() > 0) { for (Map mainlistMap : mainlist) { JSONObject mainMapJs = JSONObject.parseObject(JSONObject.toJSONString(mainlistMap)); String fielddesc = mainMapJs.getString("fielddesc"); String oldvalue = mainMapJs.getString("oldvalue"); String newvalue = mainMapJs.getString("newvalue"); if (fieldnameMap.get(fielddesc) != null) { mainlistMap.put("fielddesc", ElogSeviceSwitchUtils.transfLanguageLableid(ElogSeviceUtils.getLongValue(fieldnameMap.get(fielddesc).toString()), fieldnameMap.get(fielddesc).toString())); } if (valueMap.get(fielddesc) != null) { JSONObject jsonObject = JSONObject.parseObject(valueMap.get(fielddesc).toString()); String oldvalueStr = jsonObject.getString(oldvalue); String newvalueStr = jsonObject.getString(newvalue); if (StringUtils.isNotBlank(oldvalueStr)) { mainlistMap.put("oldvalue", ElogSeviceSwitchUtils.transfLanguageLableid(ElogSeviceUtils.getLongValue(oldvalueStr), oldvalue)); } if (StringUtils.isNotBlank(newvalueStr)) { mainlistMap.put("newvalue", ElogSeviceSwitchUtils.transfLanguageLableid(ElogSeviceUtils.getLongValue(newvalueStr), newvalue)); } } } } if (detaillist != null && detaillist.size() > 0 && fieldnameMap.size() > 0 && valueMap.size() > 0) { for (Map detaillistMap : detaillist) { JSONObject mainMapJs = JSONObject.parseObject(JSONObject.toJSONString(detaillistMap)); String tablename = mainMapJs.getString("tablename"); String fielddesc = mainMapJs.getString("fielddesc"); String oldvalue = mainMapJs.getString("oldvalue"); String newvalue = mainMapJs.getString("newvalue"); if (tablenameMap.get(tablename) != null) { detaillistMap.put("tablename", ElogSeviceSwitchUtils.transfLanguageLableid(ElogSeviceUtils.getLongValue(tablenameMap.get(tablename).toString()), tablenameMap.get(tablename).toString())); } if (fieldnameMap.get(fielddesc) != null) { detaillistMap.put("fielddesc", ElogSeviceSwitchUtils.transfLanguageLableid(ElogSeviceUtils.getLongValue(fieldnameMap.get(fielddesc).toString()), fieldnameMap.get(fielddesc).toString())); } if (valueMap.get(fielddesc) != null) { JSONObject jsonObject = JSONObject.parseObject(valueMap.get(fielddesc).toString()); String oldvalueStr = jsonObject.getString(oldvalue); String newvalueStr = jsonObject.getString(newvalue); if (StringUtils.isNotBlank(oldvalueStr)) { detaillistMap.put("oldvalue", ElogSeviceSwitchUtils.transfLanguageLableid(ElogSeviceUtils.getLongValue(oldvalueStr), oldvalue)); } if (StringUtils.isNotBlank(newvalueStr)) { detaillistMap.put("newvalue", ElogSeviceSwitchUtils.transfLanguageLableid(ElogSeviceUtils.getLongValue(newvalueStr), newvalue)); } } } } } @Override public List queryLogList(ELogGetLogParam param) { LoggerContext context = new LoggerContext(); context.setModuleName(param.getModule()); context.setFunctionName(param.getFunction()); int pagenum = Util.getIntValue(param.getCurrent(), 1) - 1; int size = Util.getIntValue(param.getPageSize(), 10); int start = pagenum * size; int end = start + size; Page page = new Page(pagenum, size); String limit = " limit " + start + "," + (end - start); String tableName = ElogSeviceUtils.getTableName(param.getModule(), param.getFunction()); List list = getLocalElogDaoMapper().queryElogList(page, context, null, tableName, null, "*"); list = ElogSeviceSwitchUtils.getSwitchDatabaseData(list); return switchString(list); } @Override public List queryCardLogList(String data) { JSONObject map = JSONObject.parseObject(data); String module = ""; String function = ""; String pageNum = ""; String pageSize = ""; String dataset = ""; String searchMap = ""; String sColum = ""; String fColum = ""; String transMethod = null; List showColums = new ArrayList<>(); List filterConditionDtos = new ArrayList<>(); String authParams = ""; Map jsonObject = new HashMap(); if (map != null) { module = map.getString("module"); function = map.getString("function"); pageNum = map.getString("pageNum"); pageSize = map.getString("pageSize"); //dataset = map.get("dataset").toString(); searchMap = map.getString("searchMap"); sColum = map.getString("showColums"); showColums = JSONArray.parseArray(sColum, ShowColumsDto.class); fColum = map.getString("filterConditions"); transMethod = map.getString("transMethod"); filterConditionDtos = JSONArray.parseArray(fColum, FilterConditionDto.class); authParams = map.getString("authParams"); jsonObject = JSONObject.parseObject(authParams); } LoggerContext context = new LoggerContext(); context.setModuleName(module); context.setFunctionName(function); context.setTenant_key(getTenantKey().toLowerCase()); // 分页 //Page pages = ElogSeviceUtils.getPage(); String sb = getQueryCondition(filterConditionDtos); logger.info("elog查询条件拼接sql:{}", sb); // 消费到消息,通过MethodHandler调用对应的方法 String customSql = getCustomSql(transMethod, sb, "before"); Page pages = new Page(ElogSeviceUtils.getIntValue(pageNum, 1), ElogSeviceUtils.getIntValue(pageSize, 10)); int page = Util.getIntValue(pages.getPageNum() + "", 1) - 1; int size = Util.getIntValue(pages.getPageSize() + "", 10); int start = page * size; int end = start + size; String limit = " limit " + start + "," + (end - start); String tableName = ElogSeviceUtils.getTableName(module, function); //String columns = getshowColumsStr(showColums); List list = new ArrayList<>(); Map countMap = new HashMap<>(); list = getLocalElogDaoMapper().queryElogList(pages, context, null, tableName, customSql, "*"); countMap = getLocalElogDaoMapper().elogCount(context, tableName, customSql); list = ElogSeviceSwitchUtils.getSwitchDatabaseData(list); if (list != null && list.size() > 0) { //if ("1".equals(pageNum)){ list.get(0).put("total", ElogSeviceUtils.getLongValue(countMap.get("counts") + "", 0)); //} } transUserInfo(list); //System.out.println("elog查询名称和头像耗时:{}"+ (l3-l2)); transfLanguageData(list, showColums); List res = switchString(list); return res; } /** * 转换数据成多语言,结合前端转 * * @param lists * @param showColums */ public static List transfLanguageData(List lists, List showColums) { if (lists != null && lists.size() > 0) { for (Map map : lists) { if (map != null) { Iterator> iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry entry = iterator.next(); for (ShowColumsDto showColum : showColums) { if (StringUtils.isNotBlank(showColum.getColumIndex()) && showColum.isTransfLanguage() && entry.getKey().equals(showColum.getColumIndex()) && !Objects.isNull(entry.getValue()) && StringUtils.isNumeric(entry.getValue().toString())) { if (entry.getValue() instanceof Integer || entry.getValue() instanceof Long || entry.getValue() instanceof String) { map.put(entry.getKey(), ElogSeviceSwitchUtils.transfLanguageLableid(ElogSeviceUtils.getLongValue(entry.getValue().toString()), entry.getValue().toString())); } else { //map.put(entry.getKey(), ElogSeviceSwitchUtils.handlerBaseDataMethod(entry.getValue().toString())); map.put(entry.getKey(), entry.getValue()); } } else if (StringUtils.isNotBlank(showColum.getColumIndex()) && showColum.isTransfLanguage() && entry.getKey().equals(showColum.getColumIndex()) && !Objects.isNull(entry.getValue())) { //read view add edit update delete if ("add".equals(entry.getValue().toString()) || "创建".equals(entry.getValue().toString())) { map.put(entry.getKey(), SalaryI18nUtil.getI18nLabel(1111111, "新增")); } else if ("read".equals(entry.getValue().toString()) || "view".equals(entry.getValue().toString()) || "查看".equals(entry.getValue().toString())) { map.put(entry.getKey(), SalaryI18nUtil.getI18nLabel(1111111, "查看")); } else if ("edit".equals(entry.getValue().toString()) || "update".equals(entry.getValue().toString()) || "更新".equals(entry.getValue().toString())) { map.put(entry.getKey(), SalaryI18nUtil.getI18nLabel(1111111, "修改")); } else if ("delete".equals(entry.getValue().toString()) || "删除".equals(entry.getValue().toString())) { map.put(entry.getKey(), SalaryI18nUtil.getI18nLabel(63254, "删除")); } else if (entry.getValue().toString().contains("取消关联标签 ")) { String val = entry.getValue().toString().replace("取消关联标签 ", SalaryI18nUtil.getI18nLabel(1111111, "取消关联标签 ") + " "); map.put(entry.getKey(), val); } else if (entry.getValue().toString().contains("关联标签 ")) { String val = entry.getValue().toString().replace("关联标签 ", SalaryI18nUtil.getI18nLabel(1111111, "关联标签 ") + " "); map.put(entry.getKey(), val); } } } } } } } return lists; } @Override public Map countLog(String module, String function) { LoggerContext context = new LoggerContext(); context.setModuleName(module); context.setFunctionName(function); context.setTenant_key(getTenantKey()); String tableName = ElogSeviceUtils.getTableName(module, function); return getLocalElogDaoMapper().elogCount(context, tableName, null); } @Override public List queryDetailLogList(String module, String function, String current, String pageSize, String condition, String mainId) { LoggerContext context = new LoggerContext(); context.setModuleName(module); context.setFunctionName(function); context.setTenant_key(getTenantKey()); context.setUuid(mainId); int page = Util.getIntValue(current, 1) - 1; int size = Util.getIntValue(pageSize, 10); int start = page * size; int end = start + size; String limit = " limit " + start + "," + (end - start); // 还需要支持下查询 String tableName = ElogSeviceUtils.getTableName(module, function, true); List list = getLocalElogDaoMapper().queryDetailElogList(context, limit, tableName, null); list = ElogSeviceSwitchUtils.getSwitchDatabaseData(list); return switchString(list); } @Override public Map countDestailLog(String module, String function, String mainId) { LoggerContext context = new LoggerContext(); context.setModuleName(module); context.setFunctionName(function); context.setTenant_key(getTenantKey()); context.setUuid(mainId); String tableName = ElogSeviceUtils.getTableName(module, function, true); return getLocalElogDaoMapper().elogDetailCount(context, tableName, null); } @Override public WeaTable queryElogTraceInfo(String traceId, String module, String function, Integer currentPage, Integer pageSize, String traceTransMethod) { WeaTable weaTable = new WeaTable(); if (StringUtils.isNotEmpty(traceId)) { String tableName = ElogSeviceUtils.getTableName(module, function); Integer offset = (currentPage - 1) * pageSize; List list = getLocalElogDaoMapper().queryElogTraceInfo(traceId, tableName, offset, pageSize); for (Map map : list) { if (map.get("modulename") != null) { map.put("modulenamespan", ElogSeviceSwitchUtils.getModuleName(map.get("modulename").toString())); } } //list = ElogSeviceSwitchUtils.getSwitchDatabaseData(list); int count = getLocalElogDaoMapper().queryElogTraceInfoCount(traceId, tableName); PageInfo pageInfo = SalaryPageUtil.buildPage(currentPage, pageSize, list); // pageInfo.setColumns(); pageInfo.setTotal(count); } return weaTable; } @Override public List queryLogInfoByCustom(String module, String function, String field, String value, boolean isDetail) { List list = new ArrayList(); String tableName = ElogSeviceUtils.getTableName(module, function, isDetail); if (StringUtils.isNotBlank(field) && StringUtils.isNotBlank(value)) { StringBuffer sql = new StringBuffer(); sql.append(field).append(" = '").append(value).append("' "); list = getLocalElogDaoMapper().queryLogInfoByCustom(tableName, sql.toString()); } return list; } @Override public List queryLogInfoByCustom(String module, String function, String field, String value) { return queryLogInfoByCustom(module, function, field, value, false); } public List switchString(List list) { if (list != null) { return list.stream().map(m -> { Set en = m.entrySet(); for (Map.Entry entry : en) { if (entry.getValue() != null) { entry.setValue(String.valueOf(entry.getValue())); } } return m; }).collect(Collectors.toList()); } else { return list; } } // @Override // public BatchDocumentMessage downloadLog(String data) { // JSONObject jsonObject = JSONObject.parseObject(data); // String module = jsonObject.getString("downloadmodule"); // String function = jsonObject.getString("function"); // String serviceName = jsonObject.getString("serviceName"); // String fileName = jsonObject.getString("fileName"); // String passWord = jsonObject.getString("passWord"); // // if (StringUtils.isEmpty(fileName)) { // fileName = SalaryI18nUtil.getI18nLabel(191432, "日志记录"); // } // // BatchDocumentMessage batchDocumentMessage = new BatchDocumentMessage(); // WeaTable weaTable = queryLogs(data); // List columns = weaTable.getColumns(); // List headers = new ArrayList<>(); // if (columns != null && !columns.isEmpty()) { // for (WeaTableColumn column : columns) { // Map header = new HashMap<>(); // header.put("key", column.getDataIndex()); // header.put("name", column.getTitle()); // headers.add(header); // } // } // List> dataList = weaTable.getData(); // List> maps = new ArrayList<>(); // if (dataList != null && !dataList.isEmpty()) { // dataList.stream().forEach(m -> { // Map map = new HashMap<>(); // headers.stream().forEach(h -> { // map.put(h.get("key").toString(), m.get(h.get("key"))); // }); // maps.add(map); // }); // } // // //必传--业务id // batchDocumentMessage.setBizId(IdGenerator.generate() + ""); // //必传-处理名称 // batchDocumentMessage.setHandlerName("ebatchdemo"); // //必传-服务名称 // batchDocumentMessage.setServiceName(serviceName); // //必传-数据类型 // batchDocumentMessage.setDataType(fileName); // //任务id // batchDocumentMessage.setBatchTaskId(IdGenerator.generate()); // //必传-模块 // batchDocumentMessage.setModule(module); //com.weaver.teams.domain.EntityType 中的module(没有的话需要找温明刚维护下) // //必传-功能 // batchDocumentMessage.setFunction(function); // //必传-eteamsid // batchDocumentMessage.setEteamsId(TenantRpcContext.getEteamsId()); // // //非必传 // if (StringUtils.isNotBlank(passWord)) { // batchDocumentMessage.setPassword(passWord); // } // // //必传 // BatchFile batchFile = new BatchFile(); // batchFile.setName(fileName); // //必传 // batchFile.setFileType(FileType.EXCEL); // //必传 // batchFile.setHandlerFileMethod(HandlerFileMethod.HANDLER_EXCEL_WITH_DATA); // batchFile.setTemplateId(1l); // List excelSheets = new ArrayList<>(); // ExcelSheet excelSheet = new ExcelSheet(); // // excelSheet.setHeader(headers); // excelSheet.setData(maps); // excelSheet.setName(fileName); // excelSheets.add(excelSheet); // batchFile.setExcelSheets(excelSheets); // batchDocumentMessage.setBatchFile(batchFile); // batchDocumentMessage.setChunk(false);//不分片 // batchExportSender.sendBatchExport(batchDocumentMessage); // // return batchDocumentMessage; // } // private String[] getESfields(String value) { String[] split = value.split(","); List list = new ArrayList<>(); for (String s : split) { switch (s.toLowerCase()) { case "interfacename": list.add("interfacename"); break; case "operatetype": list.add("operatetype"); break; case "operatedesc": list.add("operatedesc"); break; case "params": list.add("params"); break; case "clientip": list.add("clientip"); break; case "groupnamelabel": list.add("groupnamelabel"); break; case "redoservice": list.add("redoservice"); break; case "redocontext": list.add("redocontext"); break; case "cancelservice": list.add("cancelservice"); break; case "cancelcontext": list.add("cancelcontext"); break; case "device": list.add("device"); break; case "groupid": list.add("groupid"); break; case "belongmainid": list.add("belongmainid"); break; case "requesturl": list.add("requesturl"); break; case "requesturi": list.add("requesturi"); break; case "log_result": list.add("logResult"); break; case "fromterminal": list.add("fromterminal"); break; case "resultdesc": list.add("resultdesc"); break; case "old_content": list.add("oldContent"); break; case "link_type": list.add("linkType"); break; } } //list转为数组 if (list.size() > 0) { String[] strings = list.toArray(new String[list.size()]); return strings; } return null; } }