feat: 评审会评分详情接口

This commit is contained in:
2023-09-11 09:50:49 +08:00
parent 2e9440f179
commit ed06a0046b
6 changed files with 101 additions and 7 deletions
@@ -4,22 +4,19 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardDeclare;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardReviewMeetingRecord;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRmrEvaluateDetail;
import com.jero.modules.laws.enterprise.entity.dto.ESQueryCommonDTO;
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardDeclareVo;
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardReviewMeetingVo;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardDeclareService;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardReviewMeetingRecordService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
@@ -51,4 +48,17 @@ public class EnterpriseStandardReviewMeetingController extends JeroController<En
IPage<EnterpriseStandardReviewMeetingVo> pageList= esReviewMeetingService.queryPageList(esReviewMeeting, pageNo, pageSize);
return Result.OK(pageList);
}
/**
* 分页列表查询
*
* @return
*/
@AutoLog(value = "企标评审会-评分详情")
@ApiOperation(value="企标评审会-评分详情", notes="企标评审会-评分详情")
@GetMapping(value = "/evaluateDetail/{id}")
public Result<?> evaluateDetail(@PathVariable("id") String id) {
Map<String, List<EnterpriseStandardRmrEvaluateDetail>> resultMap = esReviewMeetingService.evaluateDetail(id);
return Result.OK(resultMap);
}
}
@@ -1,6 +1,7 @@
package com.jero.modules.laws.enterprise.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
@@ -74,6 +75,11 @@ public class EnterpriseStandardRmrEvaluateDetail implements Serializable {
@ApiModelProperty(value = "评分人id")
private String adjudicatorId;
/**评分人名称*/
@TableField(exist = false)
@ApiModelProperty(value = "评分人名称")
private String adjudicatorName;;
/**扣分理由*/
@ApiModelProperty(value = "扣分理由")
private String deductionScoreReason;
@@ -3,10 +3,14 @@ package com.jero.modules.laws.enterprise.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardReviewMeetingRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRmrEvaluateDetail;
import com.jero.modules.laws.enterprise.entity.dto.ESQueryCommonDTO;
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardReviewMeetingVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @author ThinkBook
* @description 针对表【laws_enterprise_standard_review_meeting_record】的数据库操作Mapper
@@ -16,6 +20,10 @@ import org.apache.ibatis.annotations.Param;
public interface EnterpriseStandardReviewMeetingRecordMapper extends BaseMapper<EnterpriseStandardReviewMeetingRecord> {
IPage<EnterpriseStandardReviewMeetingVo> page(IPage<EnterpriseStandardReviewMeetingVo> page, @Param("param") ESQueryCommonDTO esReviewMeeting);
String getAvgScore(@Param("id") String id);
List<EnterpriseStandardRmrEvaluateDetail> getScoreList(@Param("id") String rmrId);
}
@@ -11,6 +11,7 @@
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="orgCode" column="org_code" jdbcType="VARCHAR"/>
<result property="standardId" column="standard_id" jdbcType="VARCHAR"/>
<result property="standardNo" column="standard_no" jdbcType="VARCHAR"/>
<result property="reviewDate" column="review_date" jdbcType="TIMESTAMP"/>
<result property="qualityFlag" column="quality_flag" jdbcType="VARCHAR"/>
@@ -82,4 +83,47 @@
score.avg_score_item2 DESC,
score.avg_score_item4 DESC;
</select>
<select id="getAvgScore" resultType="java.lang.String">
SELECT
(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
FROM
`laws_enterprise_standard_review_meeting_record` AS rmr
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
r.id
) AS score ON score.review_meeting_id = rmr.id
WHERE rmr.id = #{id}
</select>
<select id="getScoreList"
resultType="com.jero.modules.laws.enterprise.entity.EnterpriseStandardRmrEvaluateDetail">
SELECT
CONCAT(u.username, '', u.work_no, '') AS adjudicatorName,
d.evaluate_item,
d.evaluate_score,
d.deduction_score_reason
FROM
`laws_enterprise_standard_rmr_evaluate_detail` AS d
LEFT JOIN sys_user AS u ON u.id = d.adjudicator_id
WHERE
review_meeting_id = #{id}
ORDER BY u.username, evaluate_item
</select>
</mapper>
@@ -3,9 +3,13 @@ package com.jero.modules.laws.enterprise.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardReviewMeetingRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRmrEvaluateDetail;
import com.jero.modules.laws.enterprise.entity.dto.ESQueryCommonDTO;
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardReviewMeetingVo;
import java.util.List;
import java.util.Map;
/**
* @author ThinkBook
* @description 针对表【laws_enterprise_standard_review_meeting_record】的数据库操作Service
@@ -21,4 +25,11 @@ public interface EnterpriseStandardReviewMeetingRecordService extends IService<E
* @return
*/
IPage<EnterpriseStandardReviewMeetingVo> queryPageList(ESQueryCommonDTO esReviewMeeting, Integer pageNo, Integer pageSize);
/**
* 评分详情接口
* @param id
* @return
*/
Map<String, List<EnterpriseStandardRmrEvaluateDetail>> evaluateDetail(String id);
}
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.DictModel;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardReviewMeetingRecord;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRmrEvaluateDetail;
import com.jero.modules.laws.enterprise.entity.dto.ESQueryCommonDTO;
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardReviewMeetingVo;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardReviewMeetingRecordService;
@@ -14,7 +15,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -40,6 +44,17 @@ public class EnterpriseStandardReviewMeetingRecordServiceImpl extends ServiceImp
return page;
}
@Override
public Map<String, List<EnterpriseStandardRmrEvaluateDetail>> evaluateDetail(String rmrId) {
List<EnterpriseStandardRmrEvaluateDetail> scoreList = esReviewMeetingMapper.getScoreList(rmrId);
Map<String, List<EnterpriseStandardRmrEvaluateDetail>> scoreMap = scoreList.stream().collect(Collectors.groupingBy(EnterpriseStandardRmrEvaluateDetail::getAdjudicatorName));
String avgScore = esReviewMeetingMapper.getAvgScore(rmrId);
Map<String, List<EnterpriseStandardRmrEvaluateDetail>> resultMap = new LinkedHashMap<>();
resultMap.put(avgScore, null);
resultMap.putAll(scoreMap);
return resultMap;
}
// 转换列表中的状态值为中文
private void transReviewMeetingVo(List<EnterpriseStandardReviewMeetingVo> list) {
if (list.isEmpty()) {