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