From d02571d59633367ac76b7f58ab38584698b1aa1b Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 17 十月 2024 09:55:37 +0800 Subject: [PATCH] 高级查询中增加范围查询功能 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 121 +++++++++++++++++++++++----------------- 1 files changed, 70 insertions(+), 51 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java index ab9f999..9fff05b 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java @@ -2050,7 +2050,7 @@ @Override public DataGrid<Map<String, String>> queryGrid(String btmType, CodeClassifyTemplateVO templateVO, Map<String, String> conditionMap, PageHelper pageHelper) { CodeTemplateAttrSqlBO sqlBO = getSqlByTemplateVO(btmType, templateVO, conditionMap, pageHelper); -// List<Map> maps = boService.queryByOnlySqlForMap(sqlBO.getSqlHasPage()); + // List<Map> maps = boService.queryByOnlySqlForMap(sqlBO.getSqlHasPage()); List<Map<String, String>> maps = null; try { maps = commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlHasPage()); @@ -2070,39 +2070,39 @@ for (String s : map.keySet()) { data.put(s.toLowerCase(Locale.ROOT), map.get(s) == null ? null : String.valueOf(map.get(s))); } -// map.forEach((key, value) -> { -// data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value)); -// }); + // map.forEach((key, value) -> { + // data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value)); + // }); dataList.add(data); }); wrapperData(dataList, templateVO, sqlBO.getSelectFieldList(), false); -// maps.stream().forEach(map -> { -// Map<String, String> data = new HashMap<>(); -//// map.forEach((key, value) -> { -//// data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value)); -//// }); -// for (String s : map.keySet()) { -// data.put(((String) s).toLowerCase(Locale.ROOT), String.valueOf(map.get(s))); -// } -// dataList.add(data); -// }); + // maps.stream().forEach(map -> { + // Map<String, String> data = new HashMap<>(); + // map.forEach((key, value) -> { + // data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value)); + // }); + // for (String s : map.keySet()) { + // data.put(((String) s).toLowerCase(Locale.ROOT), String.valueOf(map.get(s))); + // } + // dataList.add(data); + // }); } -// dataGrid.setData(dataList); -// if (!CollectionUtils.isEmpty(maps)) { -// wrapperData(maps, templateVO, sqlBO.getSelectFieldList(), false); -// maps.stream().forEach(map -> { -// Map<String, String> data = new HashMap<>(); -//// map.forEach((key, value) -> { -//// data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value)); -//// }); -// for (String s : map.keySet()) { -// data.put(((String) s).toLowerCase(Locale.ROOT), String.valueOf(map.get(s))); -// } -// dataList.add(data); -// }); + // dataGrid.setData(dataList); + // if (!CollectionUtils.isEmpty(maps)) { + // wrapperData(maps, templateVO, sqlBO.getSelectFieldList(), false); + // maps.stream().forEach(map -> { + // Map<String, String> data = new HashMap<>(); + //// map.forEach((key, value) -> { + //// data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value)); + //// }); + // for (String s : map.keySet()) { + // data.put(((String) s).toLowerCase(Locale.ROOT), String.valueOf(map.get(s))); + // } + // dataList.add(data); + // }); dataGrid.setData(dataList); dataGrid.setTotal(Long.parseLong(commonsMapper.selectBySql(sqlBO.getSqlCount()).get(0).values().toArray()[0].toString())); -// } + // } return dataGrid; } @@ -2179,7 +2179,7 @@ userVOMap.put(String.valueOf(data.getId()), data); } } -// Map<String, SmUserVO> userVOMap = Optional.ofNullable(userQueryService.listUserByUserIds(userIds)).orElseGet(() -> new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); + // Map<String, SmUserVO> userVOMap = Optional.ofNullable(userQueryService.listUserByUserIds(userIds)).orElseGet(() -> new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); dataMap.stream().forEach(data -> { String creator = data.getOrDefault("creator", null); if (StringUtils.isNotBlank(creator) && userVOMap.containsKey(creator.toLowerCase(Locale.ROOT))) { @@ -2569,8 +2569,19 @@ if (referFieldMap.containsKey(field)) { return VciBaseUtil.toInSql(referFieldMap.get(field), value); //referFieldMap.get(field) + SPACE + "= '" + value + "'" + SPACE; } else { - return (field.contains(".") ? "" : "t.") + field + SPACE + "= " + getStringValueInWhere(field, value, attrVOMap) + "" + SPACE; + //TODO:鏆傛椂娌¤�冭檻IN>1000鏉$殑闂 + //return (field.contains(".") ? "" : "t.") + field + SPACE + "= " + getStringValueInWhere(field, value, attrVOMap) + "" + SPACE; + return (field.contains(".") ? "" : "t.") + field + SPACE + "IN (" + getStringValueInWhere(field, "IN//"+value, attrVOMap) + ")" + SPACE; } + } else if (key.endsWith("_notin")) { + String field = UBCSSqlKeyword.getColumn(key, "_in"); + if (referFieldMap.containsKey(field)) { + return VciBaseUtil.toInSql(referFieldMap.get(field), value); //referFieldMap.get(field) + SPACE + "= '" + value + "'" + SPACE; + } else { + //return (field.contains(".") ? "" : "t.") + field + SPACE + "not in (" + getStringValueInWhere(field, "IN//"+value, attrVOMap) + ")" + SPACE; + return (field.contains(".") ? "" : "t.") + field + SPACE + "IN (" + getStringValueInWhere(field, "IN//"+value, attrVOMap) + ")" + SPACE; + } + } else { // if (referFieldMap.containsKey(key)) { // //璇存槑鏄弬鐓х殑锛屾垜浠弬鐓х殑鏌ヨ閮借涓烘槸瀛楃涓诧紝濡傛灉鏄椂闂存牸寮忕殑鏌ヨ鑲畾鏈夐棶棰橈紝 @@ -2667,13 +2678,21 @@ || VciFieldTypeEnum.VTInteger.equals(fieldTypeEnum)) { return value; } else { + if(value.contains("IN//")){ + return MybatisParameterUtil.getInClause(Func.toStrList(value.replace("IN//",""))); + } return "'" + value + "'"; } } else { if ((value.startsWith("(") && value.endsWith(")")) || (value.startsWith("'") && value.endsWith("'"))) { return value; + }else if(value.contains("IN//")){ + //鏆傛椂涓嶈�冭檻>1000鐨勬儏鍐碉紝鍥犱负鎼滅储涓�鑸篃涓嶄細鍑虹幇鎼滅储1000鏉$殑鎯呭喌 + //return MybatisParameterUtil.convertToOrConditions(field, Func.toStrList(value.replace("IN//",""))); + return MybatisParameterUtil.getInClause(Func.toStrList(value.replace("IN//",""))); + }else{ + return "'" + value + "'"; } - return "'" + value + "'"; } } @@ -3042,26 +3061,26 @@ } }); return mapDataGrid; -// List<String> selectFieldList = templateVO.getAttributes().stream().map(CodeClassifyTemplateAttrVO::getId).collect(Collectors.toList()); -// //鍙傜収璁╁钩鍙扮洿鎺ユ煡璇㈠氨琛� -// List<String> finalSelectFieldList = selectFieldList; -// List<CodeClassifyTemplateAttrVO> referAttrVOs = templateVO.getAttributes().stream().filter( -// s -> StringUtils.isNotBlank(s.getReferbtmid()) -// && -// (finalSelectFieldList.size() ==0 || finalSelectFieldList.contains(s.getId().toLowerCase(Locale.ROOT))) -// ).collect(Collectors.toList()); -// if(!CollectionUtils.isEmpty(referAttrVOs)){ -// for (int i = 0; i < referAttrVOs.size(); i++) { -// selectFieldList.add(referAttrVOs.get(i).getId() + ".name"); -// } -// } -// //鎴戜滑浣跨敤鍜屼笟鍔$被鍨嬬殑鏉ユ煡璇� -// DataGrid<Map<String,String>> dataGrid = boService.queryGridByBo(btmTypeId, conditionMap, pageHelper, selectFieldList); -// //鎴戜滑闇�瑕佷娇鐢ㄦā鏉挎潵杞崲 -// if(!CollectionUtils.isEmpty(dataGrid.getData())){ -// wrapperData(dataGrid.getData(),templateVO,finalSelectFieldList,false); -// } -// return dataGrid; + // List<String> selectFieldList = templateVO.getAttributes().stream().map(CodeClassifyTemplateAttrVO::getId).collect(Collectors.toList()); + // //鍙傜収璁╁钩鍙扮洿鎺ユ煡璇㈠氨琛� + // List<String> finalSelectFieldList = selectFieldList; + // List<CodeClassifyTemplateAttrVO> referAttrVOs = templateVO.getAttributes().stream().filter( + // s -> StringUtils.isNotBlank(s.getReferbtmid()) + // && + // (finalSelectFieldList.size() ==0 || finalSelectFieldList.contains(s.getId().toLowerCase(Locale.ROOT))) + // ).collect(Collectors.toList()); + // if(!CollectionUtils.isEmpty(referAttrVOs)){ + // for (int i = 0; i < referAttrVOs.size(); i++) { + // selectFieldList.add(referAttrVOs.get(i).getId() + ".name"); + // } + // } + // //鎴戜滑浣跨敤鍜屼笟鍔$被鍨嬬殑鏉ユ煡璇� + // DataGrid<Map<String,String>> dataGrid = boService.queryGridByBo(btmTypeId, conditionMap, pageHelper, selectFieldList); + // //鎴戜滑闇�瑕佷娇鐢ㄦā鏉挎潵杞崲 + // if(!CollectionUtils.isEmpty(dataGrid.getData())){ + // wrapperData(dataGrid.getData(),templateVO,finalSelectFieldList,false); + // } + // return dataGrid; } /** -- Gitblit v1.9.3