From c6cf682d969c66c0d218c7bc7a15356c14b7ca7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Tue, 28 Mar 2023 11:28:06 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90fix=20sonar=E3=80=91OnlCgreportAPI?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cgreport/controller/OnlCgreportAPI.java | 486 ++++++++++-------- 1 file changed, 270 insertions(+), 216 deletions(-) diff --git a/jero-boot/jero-boot-base/jero-boot-base-generater/src/main/java/com/jero/generater/modules/online/cgreport/controller/OnlCgreportAPI.java b/jero-boot/jero-boot-base/jero-boot-base-generater/src/main/java/com/jero/generater/modules/online/cgreport/controller/OnlCgreportAPI.java index 9adc8d7e..3abff8e9 100644 --- a/jero-boot/jero-boot-base/jero-boot-base-generater/src/main/java/com/jero/generater/modules/online/cgreport/controller/OnlCgreportAPI.java +++ b/jero-boot/jero-boot-base/jero-boot-base-generater/src/main/java/com/jero/generater/modules/online/cgreport/controller/OnlCgreportAPI.java @@ -27,6 +27,8 @@ import org.apache.poi.ss.usermodel.Workbook; import org.jeecgframework.poi.excel.ExcelExportUtil; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -73,67 +75,72 @@ public class OnlCgreportAPI { @GetMapping({"/getColumnsAndData/{code}"}) @PermissionData - public Result a(@PathVariable("code") String var1, HttpServletRequest var2) { + public Result> a(@PathVariable("code") String var1, HttpServletRequest var2) { OnlCgreportHead var3 = this.onlCgreportHeadService.getById(var1); if (var3 == null) { return Result.error(EN_IS_NULL); } else { - Result var4 = this.b(var1, var2); - if (var4.getCode().equals(200)) { - JSONObject var5 = JSON.parseObject(JSON.toJSONString(var4.getResult())); - JSONArray var6 = var5.getJSONArray("records"); - QueryWrapper var7 = new QueryWrapper<>(); - var7.eq(CGR_HEAD_ID, var1).eq(IS_SHOW, 1).orderByAsc(ORDER_NUM); - List var8 = this.onlCgreportItemService.list(var7); - HashMap var9 = new HashMap<>(); - JSONArray var10 = new JSONArray(); - JSONArray var11 = new JSONArray(); - boolean var12 = false; + return getMapResult(var1, var2, var3); + } + } - for (OnlCgreportItem var14 : var8) { - JSONObject var15 = new JSONObject(4); - var15.put(TITLE, var14.getFieldTxt()); - var15.put(DATA_INDEX, var14.getFieldName()); - var15.put(ALIGN, CENTER); - var15.put(SORTER, "true"); - var15.put("isTotal", var14.getIsTotal()); - var15.put("groupTitle", var14.getGroupTitle()); - if (oConvertUtils.isNotEmpty(var14.getGroupTitle())) { - var12 = true; - } + @NotNull + private Result> getMapResult(@PathVariable("code") String var1, HttpServletRequest var2, OnlCgreportHead var3) { + Result> var4 = this.b(var1, var2); + if (var4.getCode().equals(200)) { + JSONObject var5 = JSON.parseObject(JSON.toJSONString(var4.getResult())); + JSONArray var6 = var5.getJSONArray("records"); + QueryWrapper var7 = new QueryWrapper<>(); + var7.eq(CGR_HEAD_ID, var1).eq(IS_SHOW, 1).orderByAsc(ORDER_NUM); + List var8 = this.onlCgreportItemService.list(var7); + HashMap var9 = new HashMap<>(); + JSONArray var10 = new JSONArray(); + JSONArray var11 = new JSONArray(); + boolean var12 = false; - String var16; - if (StringUtils.isNotBlank(var14.getFieldHref())) { - var16 = "fieldHref_" + var14.getFieldName(); - JSONObject var17 = new JSONObject(); - var17.put(CUSTOM_RENDER, var16); - var15.put("scopedSlots", var17); - JSONObject var18 = new JSONObject(); - var18.put("slotName", var16); - var18.put("href", var14.getFieldHref()); - var10.add(var18); - } - - var11.add(var15); - var16 = var14.getDictCode(); - List var20 = this.a(var16, var6, var14.getFieldName()); - if (var20 != null) { - var9.put(var14.getFieldName(), var20); - var15.put(CUSTOM_RENDER, var14.getFieldName()); - } + for (OnlCgreportItem var14 : var8) { + JSONObject var15 = new JSONObject(4); + var15.put(TITLE, var14.getFieldTxt()); + var15.put(DATA_INDEX, var14.getFieldName()); + var15.put(ALIGN, CENTER); + var15.put(SORTER, "true"); + var15.put("isTotal", var14.getIsTotal()); + var15.put("groupTitle", var14.getGroupTitle()); + if (oConvertUtils.isNotEmpty(var14.getGroupTitle())) { + var12 = true; } - HashMap var19 = new HashMap<>(3); - var19.put("data", var4.getResult()); - var19.put(COLUMNS, var11); - var19.put(DICT_OPTIONS, var9); - var19.put("fieldHrefSlots", var10); - var19.put("cgreportHeadName", var3.getName()); - var19.put("isGroupTitle", var12); - return Result.OK(var19); - } else { - return var4; + String var16; + if (StringUtils.isNotBlank(var14.getFieldHref())) { + var16 = "fieldHref_" + var14.getFieldName(); + JSONObject var17 = new JSONObject(); + var17.put(CUSTOM_RENDER, var16); + var15.put("scopedSlots", var17); + JSONObject var18 = new JSONObject(); + var18.put("slotName", var16); + var18.put("href", var14.getFieldHref()); + var10.add(var18); + } + + var11.add(var15); + var16 = var14.getDictCode(); + List var20 = this.a(var16, var6, var14.getFieldName()); + if (var20 != null) { + var9.put(var14.getFieldName(), var20); + var15.put(CUSTOM_RENDER, var14.getFieldName()); + } } + + HashMap var19 = new HashMap<>(3); + var19.put("data", var4.getResult()); + var19.put(COLUMNS, var11); + var19.put(DICT_OPTIONS, var9); + var19.put("fieldHrefSlots", var10); + var19.put("cgreportHeadName", var3.getName()); + var19.put("isGroupTitle", var12); + return Result.OK(var19); + } else { + return var4; } } @@ -143,28 +150,20 @@ public class OnlCgreportAPI { if (var1.trim().toLowerCase().indexOf("select ") == 0 && (var3 == null || !var2.isEmpty())) { var1 = var1.trim(); int var5 = var1.lastIndexOf(";"); - if (var5 == var1.length() - 1) { - var1 = var1.substring(0, var5); - } + var1 = getString(var1, var5); String var6 = "SELECT * FROM (" + var1 + ") temp "; String var12; if (var2 != null) { ArrayList var7 = new ArrayList<>(); - for(int var8 = 0; var8 < var2.size(); ++var8) { - JSONObject var9 = var2.getJSONObject(var8); - String var10 = var9.getString(var3); - if (StringUtils.isNotBlank(var10)) { - var7.add(var10); - } - } + addVar7(var2, var3, var7); var12 = "'" + StringUtils.join(var7, "','") + "'"; var6 = var6 + "WHERE temp.value IN (" + var12 + ")"; } - List var11 = this.onlCgreportHeadService.getBaseMapper().executeSelete(var6); + List> var11 = this.onlCgreportHeadService.getBaseMapper().executeSelete(var6); if (var11 != null && !var11.isEmpty()) { var12 = JSON.toJSONString(var11); var4 = JSON.parseArray(var12, DictModel.class); @@ -177,10 +176,28 @@ public class OnlCgreportAPI { return var4; } + @NotNull + private String getString(String var1, int var5) { + if (var5 == var1.length() - 1) { + var1 = var1.substring(0, var5); + } + return var1; + } + + private void addVar7(JSONArray var2, String var3, ArrayList var7) { + for(int var8 = 0; var8 < var2.size(); ++var8) { + JSONObject var9 = var2.getJSONObject(var8); + String var10 = var9.getString(var3); + if (StringUtils.isNotBlank(var10)) { + var7.add(var10); + } + } + } + /** @deprecated */ @Deprecated @GetMapping({"/getColumns/{code}"}) - public Result a(@PathVariable("code") String var1) { + public Result> a(@PathVariable("code") String var1) { OnlCgreportHead var2 = this.onlCgreportHeadService.getById(var1); if (var2 == null) { return Result.error(EN_IS_NULL); @@ -191,7 +208,7 @@ public class OnlCgreportAPI { var3.orderByAsc(ORDER_NUM); List var4 = this.onlCgreportItemService.list(var3); ArrayList> var5 = new ArrayList<>(); - HashMap var6 = new HashMap<>(); + HashMap var6 = new HashMap<>(); for (OnlCgreportItem var8 : var4) { HashMap var9 = new HashMap<>(3); @@ -202,16 +219,7 @@ public class OnlCgreportAPI { var5.add(var9); String var10 = var8.getDictCode(); if (oConvertUtils.isNotEmpty(var10)) { - List var11 = null; - if (var10.toLowerCase().indexOf("select ") == 0) { - List var12 = this.onlCgreportHeadService.getBaseMapper().executeSelete(var10); - if (var12 != null && !var12.isEmpty()) { - String var13 = JSON.toJSONString(var12); - var11 = JSON.parseArray(var13, DictModel.class); - } - } else { - var11 = this.sysBaseAPI.queryDictItemsByCode(var10); - } + List var11 = getDictModels(var10); if (var11 != null) { var6.put(var8.getFieldName(), var11); @@ -220,7 +228,7 @@ public class OnlCgreportAPI { } } - HashMap var14 = new HashMap<>(1); + HashMap var14 = new HashMap<>(1); var14.put(COLUMNS, var5); var14.put(DICT_OPTIONS, var6); var14.put("cgreportHeadName", var2.getName()); @@ -228,9 +236,24 @@ public class OnlCgreportAPI { } } + @Nullable + private List getDictModels(String var10) { + List var11 = null; + if (var10.toLowerCase().indexOf("select ") == 0) { + List> var12 = this.onlCgreportHeadService.getBaseMapper().executeSelete(var10); + if (var12 != null && !var12.isEmpty()) { + String var13 = JSON.toJSONString(var12); + var11 = JSON.parseArray(var13, DictModel.class); + } + } else { + var11 = this.sysBaseAPI.queryDictItemsByCode(var10); + } + return var11; + } + @GetMapping({"/getData/{code}"}) @PermissionData - public Result b(@PathVariable("code") String var1, HttpServletRequest var2) { + public Result> b(@PathVariable("code") String var1, HttpServletRequest var2) { OnlCgreportHead var3 = this.onlCgreportHeadService.getById(var1); if (var3 == null) { return Result.error(EN_IS_NULL); @@ -259,7 +282,7 @@ public class OnlCgreportAPI { } @GetMapping({"/getQueryInfo/{code}"}) - public Result b(@PathVariable("code") String var1) { + public Result>> b(@PathVariable("code") String var1) { try { List> var2 = this.onlCgreportItemService.getAutoListQueryInfo(var1); return Result.OK(var2); @@ -270,7 +293,7 @@ public class OnlCgreportAPI { } @GetMapping({"/getParamsInfo/{code}"}) - public Result c(@PathVariable("code") String var1) { + public Result> c(@PathVariable("code") String var1) { try { LambdaQueryWrapper var2 = new LambdaQueryWrapper<>(); var2.eq(OnlCgreportParam::getCgrheadId, var1); @@ -290,144 +313,175 @@ public class OnlCgreportAPI { if (!oConvertUtils.isNotEmpty(var1)) { throw new JeroBootException("参数错误"); } else { - Map var6 = null; + getVar6(var1, var2, var3, var4, var5); + } + } + private void getVar6(@PathVariable("reportId") String var1, HttpServletRequest var2, HttpServletResponse var3, String var4, String var5) { + Map var6 = null; + + try { + var6 = this.onlCgreportHeadService.queryCgReportConfig(var1); + } catch (Exception var35) { + throw new JeroBootException("动态报表配置不存在!"); + } + + List> var7 = (List)var6.get("items"); + var2.setAttribute(GET_ALL, true); + Result> var8 = this.b(var1, var2); + List> var9 = null; + if (var8.getCode().equals(200)) { + Map var10 = var8.getResult(); + var9 = (List)var10.get("records"); + } + + ArrayList var36 = new ArrayList<>(); + HashMap var11 = new HashMap<>(); + HashMap var12 = new HashMap<>(); + ArrayList var13 = new ArrayList<>(); + + String var15; + for(int var14 = 0; var14 < var7.size(); ++var14) { + if ("1".equals(oConvertUtils.getString((var7.get(var14)).get(IS_SHOW)))) { + var15 = (var7.get(var14)).get("field_name").toString(); + ExcelExportEntity var16 = new ExcelExportEntity((var7.get(var14)).get("field_txt").toString(), var15, 15); + Object var17 = (var7.get(var14)).get("dict_code"); + JSONArray var18 = JSON.parseArray(JSON.toJSONString(var9)); + List var19 = this.a(oConvertUtils.getString(var17), var18, var15); + getVar16(var16, var19); + + Object var50 = (var7.get(var14)).get("replace_val"); + getVar16(var16, var50); + + if (oConvertUtils.isNotEmpty((var7.get(var14)).get("group_title"))) { + String var52 = (var7.get(var14)).get("group_title").toString(); + Object var53 = new ArrayList<>(); + if (var12.containsKey(var52)) { + var53 = var12.get(var52); + ((List)var53).add(var15); + } else { + ExcelExportEntity var23 = new ExcelExportEntity(var52, var52, true); + var13.add(var23); + ((List)var53).add(var15); + } + + var12.put(var52, var53); + var16.setColspan(true); + } + + var13.add(var16); + } + + getVar36(var7, var36, var14); + } + + Iterator> var37 = var12.entrySet().iterator(); + + String var42; + while(var37.hasNext()) { + Entry var39 = var37.next(); + var42 = var39.getKey(); + List var43 = (List)var39.getValue(); + + getVar48(var13, var42, var43); + } + + if (!var36.isEmpty()) { + getVar38(var9, var36, var11); + var9.add(var11); + } + + var3.setContentType("application/vnd.ms-excel"); + getVar41(var2, var3, var4, var5, var9, var13); + } + + private void getVar36(List> var7, ArrayList var36, int var14) { + if ("1".equals(oConvertUtils.getString((var7.get(var14)).get("is_total")))) { + var36.add((var7.get(var14)).get("field_name").toString()); + } + } + + private void getVar16(ExcelExportEntity var16, Object var50) { + if (oConvertUtils.isNotEmpty(var50)) { + var16.setReplace(var50.toString().split(",")); + } + } + + private void getVar38(List> var9, ArrayList var36, HashMap var11) { + String var42; + BigDecimal var38 = BigDecimal.valueOf(0.0D); + + for (String o : var36) { + var42 = o; + var38 = getBigDecimal(var9, var42, var38); + var11.put(var42, var38); + } + } + + private void getVar48(ArrayList var13, String var42, List var43) { + for (ExcelExportEntity o : var13) { + ExcelExportEntity var48 = o; + if (var42.equals(var48.getName()) && var48.isColspan()) { + var48.setSubColumnList(var43); + } + } + } + + private void getVar16(ExcelExportEntity var16, List var19) { + if (var19 != null && !var19.isEmpty()) { + ArrayList var20 = new ArrayList<>(); + + for (DictModel o : var19) { + var20.add(o.getText() + "_" + o.getValue()); + } + + var16.setReplace(var20.toArray(new String[var20.size()])); + } + } + + private BigDecimal getBigDecimal(List> var9, String var42, BigDecimal var38) { + for (Map value : var9) { + Map var47 = value; + String var49 = var47.get(var42).toString(); + if (var49.matches("\\d+(.\\d+)?")) { + BigDecimal var51 = new BigDecimal(var49); + var38 = var38.add(var51); + } + } + return var38; + } + + private void getVar41(HttpServletRequest var2, HttpServletResponse var3, String var4, String var5, List> var9, ArrayList var13) { + String var15; + String var42; + ServletOutputStream var41 = null; + + try { + var15 = BrowserUtils.checkBrowse(var2); + if ("MSIE".equalsIgnoreCase(var15.substring(0, 4))) { + var3.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(var4, "UTF-8") + ".xls"); + } else { + var42 = new String(var4.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1); + var3.setHeader("content-disposition", "attachment;filename=" + var42 + ".xls"); + } + + Workbook var44 = ExcelExportUtil.exportExcel(new ExportParams(null, var5), var13, var9); + var41 = var3.getOutputStream(); + var44.write(var41); + } catch (Exception var33) { + log.error("异常",var33); + } finally { try { - var6 = this.onlCgreportHeadService.queryCgReportConfig(var1); - } catch (Exception var35) { - throw new JeroBootException("动态报表配置不存在!"); - } - - List var7 = (List)var6.get("items"); - var2.setAttribute(GET_ALL, true); - Result var8 = this.b(var1, var2); - List var9 = null; - if (var8.getCode().equals(200)) { - Map var10 = (Map)var8.getResult(); - var9 = (List)var10.get("records"); - } - - ArrayList var36 = new ArrayList<>(); - HashMap var11 = new HashMap<>(); - HashMap var12 = new HashMap<>(); - ArrayList var13 = new ArrayList<>(); - - String var15; - for(int var14 = 0; var14 < var7.size(); ++var14) { - if ("1".equals(oConvertUtils.getString(((Map)var7.get(var14)).get(IS_SHOW)))) { - var15 = ((Map)var7.get(var14)).get("field_name").toString(); - ExcelExportEntity var16 = new ExcelExportEntity(((Map)var7.get(var14)).get("field_txt").toString(), var15, 15); - Object var17 = ((Map)var7.get(var14)).get("dict_code"); - JSONArray var18 = JSON.parseArray(JSON.toJSONString(var9)); - List var19 = this.a(oConvertUtils.getString(var17), var18, var15); - if (var19 != null && !var19.isEmpty()) { - ArrayList var20 = new ArrayList<>(); - - for (Object o : var19) { - DictModel var22 = (DictModel) o; - var20.add(var22.getText() + "_" + var22.getValue()); - } - - var16.setReplace((String[])var20.toArray(new String[var20.size()])); - } - - Object var50 = ((Map)var7.get(var14)).get("replace_val"); - if (oConvertUtils.isNotEmpty(var50)) { - var16.setReplace(var50.toString().split(",")); - } - - if (oConvertUtils.isNotEmpty(((Map)var7.get(var14)).get("group_title"))) { - String var52 = ((Map)var7.get(var14)).get("group_title").toString(); - Object var53 = new ArrayList(); - if (var12.containsKey(var52)) { - var53 = var12.get(var52); - ((List)var53).add(var15); - } else { - ExcelExportEntity var23 = new ExcelExportEntity(var52, var52, true); - var13.add(var23); - ((List)var53).add(var15); - } - - var12.put(var52, var53); - var16.setColspan(true); - } - - var13.add(var16); - } - - if ("1".equals(oConvertUtils.getString(((Map)var7.get(var14)).get("is_total")))) { - var36.add(((Map)var7.get(var14)).get("field_name").toString()); - } - } - - Iterator var37 = var12.entrySet().iterator(); - - String var42; - while(var37.hasNext()) { - Entry var39 = (Entry)var37.next(); - var42 = (String)var39.getKey(); - List var43 = (List)var39.getValue(); - - for (Object o : var13) { - ExcelExportEntity var48 = (ExcelExportEntity) o; - if (var42.equals(var48.getName()) && var48.isColspan()) { - var48.setSubColumnList(var43); - } - } - } - - if (!var36.isEmpty()) { - BigDecimal var38 = BigDecimal.valueOf(0.0D); - - for (Object o : var36) { - var42 = (String) o; - - for (Object value : var9) { - Map var47 = (Map) value; - String var49 = var47.get(var42).toString(); - if (var49.matches("\\d+(.\\d+)?")) { - BigDecimal var51 = new BigDecimal(var49); - var38 = var38.add(var51); - } - } - - var11.put(var42, var38); - } - - var9.add(var11); - } - - var3.setContentType("application/vnd.ms-excel"); - ServletOutputStream var41 = null; - - try { - var15 = BrowserUtils.checkBrowse(var2); - if ("MSIE".equalsIgnoreCase(var15.substring(0, 4))) { - var3.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(var4, "UTF-8") + ".xls"); - } else { - var42 = new String(var4.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1); - var3.setHeader("content-disposition", "attachment;filename=" + var42 + ".xls"); - } - - Workbook var44 = ExcelExportUtil.exportExcel(new ExportParams((String)null, var5), var13, var9); - var41 = var3.getOutputStream(); - var44.write(var41); - } catch (Exception var33) { - log.error("异常",var33); - } finally { - try { - if(var41 != null){var41.flush();var41.close();} - } catch (Exception var32) { - log.error("异常",var32); - } - + if(var41 != null){var41.flush();var41.close();} + } catch (Exception var32) { + log.error("异常",var32); } } } @GetMapping({"/getRpColumns/{code}"}) - public Result d(@PathVariable("code") String var1) { + public Result> d(@PathVariable("code") String var1) { LambdaQueryWrapper var2 = new LambdaQueryWrapper<>(); var2.eq(OnlCgreportHead::getCode, var1); OnlCgreportHead var3 = this.onlCgreportHeadService.getOne(var2); @@ -439,10 +493,10 @@ public class OnlCgreportAPI { var4.eq(IS_SHOW, 1); var4.orderByAsc(ORDER_NUM); List var5 = this.onlCgreportItemService.list(var4); - ArrayList var6 = new ArrayList<>(); - HashMap var7 = new HashMap<>(); + ArrayList> var6 = new ArrayList<>(); + HashMap var7 = new HashMap<>(); - HashMap var10; + HashMap var10; for(Iterator var8 = var5.iterator(); var8.hasNext(); var6.add(var10)) { OnlCgreportItem var9 = var8.next(); var10 = new HashMap<>(3); @@ -462,7 +516,7 @@ public class OnlCgreportAPI { } } - HashMap var14 = new HashMap<>(1); + HashMap var14 = new HashMap<>(1); var14.put(COLUMNS, var6); var14.put(DICT_OPTIONS, var7); var14.put("cgRpConfigId", var3.getId()); @@ -472,11 +526,11 @@ public class OnlCgreportAPI { } @PostMapping({"/testConnection"}) - public Result a(@RequestBody DynamicDataSourceModel var1) { - Result var4; + public Result a(@RequestBody DynamicDataSourceModel var1) { + Result var4; try (Connection var2 = DriverManager.getConnection(var1.getDbUrl(), var1.getDbUsername(), var1.getDbPassword())){ Class.forName(var1.getDbDriver()); - Result var3; + Result var3; if (var2 == null) { var3 = Result.OK("数据库连接失败:错误未知"); return var3;