ludc
2024-10-17 d02571d59633367ac76b7f58ab38584698b1aa1b
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;
   }
   /**