From 26b03b6720fe222be3fdad7931a94a4842dca0c2 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期三, 21 八月 2024 11:52:49 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformServiceImpl.java | 1 + ycl-pojo/src/main/java/com/ycl/platform/domain/form/PlatformForm.java | 5 ++++- ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java | 20 ++++++++++++++++---- ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Platform.java | 4 ++++ ycl-pojo/src/main/java/com/ycl/platform/domain/vo/PlatformVO.java | 3 +++ ycl-server/src/main/resources/mapper/zgyw/PlatformMapper.xml | 4 +++- ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml | 13 +++++++------ 7 files changed, 38 insertions(+), 12 deletions(-) diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Platform.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Platform.java index 0a4a0c5..8f75456 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Platform.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Platform.java @@ -22,6 +22,10 @@ /** 骞冲彴鍚嶇О */ private String platformName; + @TableField("sub_platform_name") + /** 瀛愮骇骞冲彴鍚嶇О */ + private String subPlatformName; + @TableField("platform_ip") /** 骞冲彴鍚嶇О */ private String platformIP; diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/PlatformForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/PlatformForm.java index d81528d..c820bad 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/PlatformForm.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/PlatformForm.java @@ -24,10 +24,13 @@ @ApiModel(value = "Platform琛ㄥ崟", description = "骞冲彴杩愯鐩戞帶琛ㄥ崟") public class PlatformForm extends AbsForm { - @NotBlank(message = "骞冲彴鍚嶇О涓嶈兘涓虹┖", groups = {Add.class, Update.class}) @ApiModelProperty("骞冲彴鍚嶇О") private String platformName; + /** 瀛愮骇骞冲彴鍚嶇О */ + @ApiModelProperty("骞冲彴鍚嶇О") + private String subPlatformName; + @NotBlank(message = "骞冲彴IP涓嶈兘涓虹┖", groups = {Add.class, Update.class}) @ApiModelProperty("骞冲彴IP") private String platformIP; diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/PlatformVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/PlatformVO.java index c0c328b..7e8f169 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/PlatformVO.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/PlatformVO.java @@ -19,6 +19,9 @@ /** 骞冲彴鍚嶇О */ private String platformName; + /** 瀛愮骇骞冲彴鍚嶇О */ + private String subPlatformName; + /** 骞冲彴IP */ private String platformIP; diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java index 8020953..eab4a39 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java @@ -1,10 +1,15 @@ package com.ycl.platform.service.impl; import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.platform.domain.entity.CalculateRecord; import com.ycl.platform.domain.entity.CalculateReport; +import com.ycl.platform.domain.entity.CalculateRule; import com.ycl.platform.domain.excel.CalculateExport; import com.ycl.platform.domain.form.CalculateReportBackfillForm; import com.ycl.platform.domain.form.CalculateReportForm; @@ -14,6 +19,7 @@ import com.ycl.platform.mapper.CalculateRecordMapper; import com.ycl.platform.mapper.CalculateReportMapper; import com.ycl.platform.service.CalculateReportService; +import com.ycl.platform.service.ICalculateRuleService; import com.ycl.system.Result; import com.ycl.system.page.PageUtil; import enumeration.general.CalculateReportStatusEnum; @@ -44,7 +50,7 @@ @RequiredArgsConstructor public class CalculateReportServiceImpl extends ServiceImpl<CalculateReportMapper, CalculateReport> implements CalculateReportService { - private final CalculateReportMapper calculateReportMapper; + private final ICalculateRuleService calculateRuleService; private final CalculateRecordMapper calculateRecordMapper; /** @@ -211,13 +217,19 @@ calculateExport.setNum(list.stream().mapToInt(CalculateExport::getNum).sum()); calculateExport.setScore(100 + list.stream().mapToInt(CalculateExport::getScore).sum()); list.add(calculateExport); + // 鑾峰彇瑙勫垯 + List<CalculateRule> ruleList = calculateRuleService.list(new LambdaQueryWrapper<CalculateRule>().eq(CalculateRule::getContractId, contractId)); // 杈撳嚭鏂囦欢 response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setCharacterEncoding("utf-8"); String fileName = URLEncoder.encode("鏍哥畻鎶ュ憡", StandardCharsets.UTF_8).replace("\\+", "%20"); response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); - EasyExcel.write(response.getOutputStream(), CalculateExport.class) - .sheet("鏍哥畻鎶ュ憡") - .doWrite(list); + // 澧炲姞sheet + try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build()){ + WriteSheet sheet = EasyExcel.writerSheet(0, "鏍哥畻鎶ュ憡").head(CalculateExport.class).build(); + excelWriter.write(list, sheet); + WriteSheet sheet2 = EasyExcel.writerSheet(1, "鏍哥畻瑙勫垯").head(CalculateRule.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); + excelWriter.write(ruleList, sheet2); + } } } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformServiceImpl.java index b1bb3f9..aa4c25c 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformServiceImpl.java @@ -54,6 +54,7 @@ List<Platform> childList = form.getDeployList().stream().map(deploy -> { Platform child = new Platform(); BeanUtils.copyProperties(deploy, child); + child.setPlatformName(entity.getPlatformName()); child.setParentId(entity.getId()); child.setCreateTime(now); child.setUpdateTime(now); diff --git a/ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml index a3c9adf..85e8d77 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml @@ -102,12 +102,13 @@ <select id="exportData" resultType="com.ycl.platform.domain.excel.CalculateExport"> SELECT - SUBSTRING_INDEX(rule_name, '/', 1) AS rule_name, - COUNT(*) AS num, - -SUM(score) AS score - FROM t_contract_score - WHERE contract_id = #{contractId} AND auditing_status = 'PASS' AND deleted = 0 - GROUP BY SUBSTRING_INDEX(rule_name, '/', 1) + a.rule_name, + COUNT(b.id) AS num, + IFNULL(-SUM(score), 0) AS score + FROM t_calculate_rule a + LEFT JOIN t_contract_score b ON b.rule_id = a.id AND auditing_status = 'PASS' AND b.deleted = 0 + WHERE a.contract_id = #{contractId} AND a.deleted = 0 + GROUP BY a.rule_name </select> </mapper> diff --git a/ycl-server/src/main/resources/mapper/zgyw/PlatformMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/PlatformMapper.xml index 5102e2b..962b43a 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/PlatformMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/PlatformMapper.xml @@ -10,6 +10,7 @@ <result column="area" property="area" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> + <result column="sub_platform_name" property="subPlatformName" /> </resultMap> @@ -45,7 +46,8 @@ TP.create_time, TP.update_time, TP.id, - TP.parent_id + TP.parent_id, + TP.sub_platform_name FROM t_platform TP WHERE -- Gitblit v1.8.0