perf: 企标评审会记录性能优化

This commit is contained in:
2024-09-27 17:14:44 +08:00
parent c2ac5971d7
commit f442c72311
2 changed files with 18 additions and 20 deletions
@@ -1,7 +1,5 @@
package com.jero.modules.laws.enterprise.entity.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty;
@@ -47,6 +45,7 @@ public class EnterpriseStandardReviewMeetingVo {
@ApiModelProperty(value = "评审人")
private String reviewUsers;
@Dict(dicCode = "id", dictTable = "sys_user", dicText = "realname")
@ApiModelProperty(value = "评分人")
private String rateUsers;
@@ -28,8 +28,8 @@
rmr.review_user AS reviewUsers,
esp.qualityFlag,
(score.avg_score_item1 + score.avg_score_item2 + score.avg_score_item3 +
score.avg_score_item4 + score.avg_score_item5 + score.avg_score_item6) AS avgScore,
GROUP_CONCAT(DISTINCT CONCAT(u.realname, '(', u.username, ')') ORDER BY u.username ASC SEPARATOR ',') AS rateUsers
score.avg_score_item4 + score.avg_score_item5 + score.avg_score_item6) AS avgScore,
GROUP_CONCAT(DISTINCT detail.adjudicator_id ORDER BY detail.adjudicator_id ASC SEPARATOR ',') AS rateUsers
FROM
`laws_enterprise_standard_review_meeting_record` AS rmr
LEFT JOIN
@@ -43,24 +43,23 @@
laws_enterprise_standard_plan AS esp
) AS esp ON esp.id = rmr.plan_id
LEFT JOIN
(
SELECT
d.review_meeting_id,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '1' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item1,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '2' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item2,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '3' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item3,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '4' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item4,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '5' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item5,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '6' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item6
FROM
laws_enterprise_standard_review_meeting_record r
LEFT JOIN
laws_enterprise_standard_rmr_evaluate_detail d ON r.id = d.review_meeting_id
GROUP BY
(
SELECT
d.review_meeting_id,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '1' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item1,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '2' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item2,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '3' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item3,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '4' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item4,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '5' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item5,
ROUND(COALESCE(AVG(CASE WHEN d.evaluate_item = '6' THEN CAST(d.evaluate_score AS DECIMAL(10, 2)) ELSE NULL END), 0), 2) AS avg_score_item6
FROM
laws_enterprise_standard_review_meeting_record r
LEFT JOIN
laws_enterprise_standard_rmr_evaluate_detail d ON r.id = d.review_meeting_id
GROUP BY
r.id
) AS score ON score.review_meeting_id = rmr.id
) AS score ON score.review_meeting_id = rmr.id
LEFT JOIN laws_enterprise_standard_rmr_evaluate_detail detail ON detail.review_meeting_id = rmr.id
LEFT JOIN sys_user u ON u.id = detail.adjudicator_id
Where 1 = 1
<!--企标编号判断-->
<if test="param.standardNo != null and param.standardNo != ''">