feat: 企标详情-企标评价

This commit is contained in:
2023-09-22 11:08:00 +08:00
parent 3e52e2eabc
commit 03840805a0
7 changed files with 108 additions and 12 deletions
@@ -53,6 +53,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
@@ -870,8 +871,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
}
// 设置响应头和内容类型
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".xlsx");
String encodedFileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=" + encodedFileName);
// 写出到响应流
workbook.write(response.getOutputStream());
@@ -934,8 +935,14 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
workbook.close();
// 准备ZIP
// 获取编码后的文件名
String encodedZipName = URLEncoder.encode(fileName, "UTF-8");
response.setContentType("application/zip");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".zip");
response.setHeader("Content-Disposition", "attachment; filename=" + encodedZipName);
response.setHeader("Content-Transfer-Encoding", "binary");
response.setHeader("Pragma", "public");
response.setHeader("Cache-Control", "no-store");
response.setHeader("Expires", "0");
ZipOutputStream zipOut = new ZipOutputStream(response.getOutputStream());
// 将Excel加入ZIP
@@ -56,7 +56,7 @@ public class EnterpriseStandardReviewMeetingController extends JeroController<En
}
/**
* 评分详情
* 评分详情 可以传“评审会的id”也可以传“企标编号”
*
* @return
*/
@@ -23,7 +23,11 @@ public interface EnterpriseStandardReviewMeetingRecordMapper extends BaseMapper<
String getAvgScore(@Param("id") String id);
String getAvgScoreByStandardNo(@Param("standardNumber") String standardNumber);
List<EnterpriseStandardRmrEvaluateDetail> getScoreList(@Param("id") String rmrId);
List<EnterpriseStandardRmrEvaluateDetail> getScoreListByStandardNo(@Param("standardNumber") String studentNumber);
}
@@ -109,6 +109,34 @@
WHERE rmr.id = #{id}
</select>
<select id="getAvgScoreByStandardNo" 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
LEFT JOIN laws_enterprise_standard AS s ON s.id = rmr.standard_id
WHERE
s.standard_number = #{standardNumber}
</select>
<select id="getScoreList"
resultType="com.jero.modules.laws.enterprise.entity.EnterpriseStandardRmrEvaluateDetail">
SELECT
@@ -120,7 +148,24 @@
`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}
d.review_meeting_id = #{id}
ORDER BY u.username, evaluate_item
</select>
<select id="getScoreListByStandardNo"
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
LEFT JOIN laws_enterprise_standard_review_meeting_record AS rm ON rm.id = d.review_meeting_id
LEFT JOIN laws_enterprise_standard AS s ON s.id = rm.standard_id
WHERE
s.standard_number = #{standardNumber}
ORDER BY u.username, evaluate_item
</select>
@@ -34,8 +34,16 @@ public interface EnterpriseStandardReviewMeetingRecordService extends IService<E
Map<String, List<EnterpriseStandardRmrEvaluateDetail>> evaluateDetail(String id);
/**
* 设置优质标准
* @param standardNos
* 企标详情-企标评价
* @param standardNumber
* @return
*/
Map<String, List<EnterpriseStandardRmrEvaluateDetail>> evaluateDetailByStandardNo(String standardNumber);
/**
* 设置优质标准
* @param standardNos
*/
void setQualityStandards(List<String> standardNos);
}
@@ -51,10 +51,23 @@ public class EnterpriseStandardReviewMeetingRecordServiceImpl extends ServiceImp
}
@Override
public Map<String, List<EnterpriseStandardRmrEvaluateDetail>> evaluateDetail(String rmrId) {
List<EnterpriseStandardRmrEvaluateDetail> scoreList = esReviewMeetingMapper.getScoreList(rmrId);
public Map<String, List<EnterpriseStandardRmrEvaluateDetail>> evaluateDetail(String standardNumber) {
List<EnterpriseStandardRmrEvaluateDetail> scoreList = esReviewMeetingMapper.getScoreList(standardNumber);
Map<String, List<EnterpriseStandardRmrEvaluateDetail>> scoreMap = scoreList.stream().collect(Collectors.groupingBy(EnterpriseStandardRmrEvaluateDetail::getAdjudicatorName));
String avgScore = esReviewMeetingMapper.getAvgScore(rmrId);
String avgScore = esReviewMeetingMapper.getAvgScore(standardNumber);
Map<String, List<EnterpriseStandardRmrEvaluateDetail>> resultMap = new LinkedHashMap<>();
resultMap.put(avgScore, null);
resultMap.putAll(scoreMap);
return resultMap;
}
@Override
public Map<String, List<EnterpriseStandardRmrEvaluateDetail>> evaluateDetailByStandardNo(String standardNumber) {
List<EnterpriseStandardRmrEvaluateDetail> scoreList = esReviewMeetingMapper.getScoreListByStandardNo(standardNumber);
Map<String, List<EnterpriseStandardRmrEvaluateDetail>> scoreMap = scoreList.stream().collect(Collectors.groupingBy(EnterpriseStandardRmrEvaluateDetail::getAdjudicatorName));
String avgScore = esReviewMeetingMapper.getAvgScoreByStandardNo(standardNumber);
Map<String, List<EnterpriseStandardRmrEvaluateDetail>> resultMap = new LinkedHashMap<>();
resultMap.put(avgScore, null);
resultMap.putAll(scoreMap);
@@ -8,8 +8,10 @@ import com.jero.common.util.MessageUtils;
import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.modules.laws.common.constant.ResultCommon;
import com.jero.modules.laws.common.service.ILawsCommonService;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRmrEvaluateDetail;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthDeptService;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardReviewMeetingRecordService;
import com.jero.modules.laws.standard.entity.LawsUpdateRecord;
import com.jero.modules.laws.standard.entity.LawsStandardTempPermission;
import com.jero.modules.laws.standard.service.ILawsNodeRelationService;
@@ -20,6 +22,7 @@ import com.jero.modules.tag.entity.LawsTag;
import com.jero.modules.tag.enums.TableNameEnum;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -55,6 +58,9 @@ public class LawsEnterpriseController {
@Resource
private EnterpriseStandardAuthDeptService esAuthDeptService;
@Resource
private EnterpriseStandardReviewMeetingRecordService esReviewMeetingService;
private static final String MODULE_VALUE = TableNameEnum.ENTERPRISE_STANDARDS.getValue();
@AutoLog(value = "企业法规标准-分页列表查询")
@@ -175,17 +181,30 @@ public class LawsEnterpriseController {
return Result.OK();
}
/**
* 企标评价
*
* @return
*/
@AutoLog(value = "企业法规标准-企标评价")
@ApiOperation(value = "企业法规标准-企标评价", notes = "企业法规标准-企标评价")
@GetMapping(value = "/evaluateDetail/{standardNumber}")
public Result<?> evaluateDetail(@PathVariable("standardNumber") String standardNumber) {
Map<String, List<EnterpriseStandardRmrEvaluateDetail>> resultMap = esReviewMeetingService.evaluateDetailByStandardNo(standardNumber);
return Result.OK(resultMap);
}
@AutoLog(value = "企业法规标准-导出")
@ApiOperation(value="企业法规标准-导出", notes="企业法规标准-导出")
@PostMapping("/exportData")
public void exportData(HttpServletResponse response, @RequestBody Map<String,Object> parameterMap) {
public void exportData(HttpServletResponse response, @RequestBody(required = false) Map<String,Object> parameterMap) {
lawsCommonService.commonExport(response, parameterMap, "企标导出", "企标导出");
}
@AutoLog(value = "企业法规标准-带文件导出")
@ApiOperation(value="企业法规标准-带文件导出", notes="企业法规标准-带文件导出")
@PostMapping("/exportDataWithFile")
public void exportDataWithFile(HttpServletResponse response, @RequestBody Map<String,Object> parameterMap) {
public void exportDataWithFile(HttpServletResponse response, @RequestBody(required = false) Map<String,Object> parameterMap) {
lawsCommonService.exportDataWithFile(response, parameterMap, "企标导出", "企标导出");
}
}