Commit 27421d88 authored by 赵桢's avatar 赵桢

统计分数页面导出功能/条件查询功能

parent 0b9f7ac5
......@@ -416,7 +416,47 @@ public class QuestionnaireCtrl {
map.put("data",data);
return map;
}
/**
* 统计中众创空间的分数(新)
* @param
* @return
*/
@RequestMapping({"/selectPerformanceSummaryListNew"})
@ResponseBody
public Map<String, Object> selectPerformanceSummaryListNew(@RequestBody PerformanceSummary performanceSummary){
Map<String, Object> map = new HashMap();
map.put("result", true);
map.put("msg", "");
Map<String, Object> data = new HashMap();
//列表排序
String sorting = "";
if(StringUtils.isEmpty(performanceSummary.getSorting())){
sorting = "t_record.id asc";
} else if(performanceSummary.getSorting().equals("desc")){
sorting = "basicIndicators desc,guideIndicators desc,rewardIndicators desc";
}else{
sorting = "t_record.id asc";
}
performanceSummary.setSorting(sorting);
float totalScore = 0;
//查询空间的不同指标的分数
List<PerformanceSummary> performanceSummaryList = questionnaireService.selectPerformanceSummaryListNew(performanceSummary);
if(performanceSummaryList.size() > 0){
for(PerformanceSummary total : performanceSummaryList){
//计算各个空间指标的总分
totalScore = total.getBasicIndicators() + total.getGuideIndicators() + total.getRewardIndicators();
total.setTotalScore(totalScore);
}
data.put("performanceSummaryList",performanceSummaryList);
}
map.put("data",data);
return map;
}
/**
* 2022年10月新增加功能问卷管理-审批页面根据基础指标、引导指标和奖励指标导出所有空间的数据
* @param request
......@@ -438,6 +478,14 @@ public class QuestionnaireCtrl {
public void exportPerformanceSummary(HttpServletRequest request, HttpServletResponse response) {
questionnaireService.exportPerformanceSummary(request,response);
}
/**
* 2023年问卷管理-绩效汇总列表导出
*/
@RequestMapping(value = {"/exportPerformanceSummaryNew"})
@ResponseBody
public void exportPerformanceSummaryNew(HttpServletRequest request, HttpServletResponse response) {
questionnaireService.exportPerformanceSummaryNew(request,response);
}
@RequestMapping(value = "/checkComplete")
@ResponseBody
......
......@@ -52,6 +52,8 @@ public interface QuestionnaireDao {
List<PerformanceSummary> selectPerformanceSummaryList(PerformanceSummary performanceSummary);
List<PerformanceSummary> selectPerformanceSummaryListNew(PerformanceSummary performanceSummary);
List<FullTimeWorkPerson> selectFullTimeWorkPersonList(@Param("recordId")String recordId);
List<SiteCondition> selectSiteConditionList();
......@@ -92,6 +94,8 @@ public interface QuestionnaireDao {
List<PerformanceSummaryTotal> queryGuideAndRewardIndexList();
List<PerformanceSummaryTotal> queryGuideAndRewardIndexListNew();
Integer updateAnswerScore(Answer answer);
List<Review> selectAnswerByStatus(@Param("recordId") Long recordId);
......
......@@ -7,6 +7,24 @@ public class PerformanceSummary {
private float guideIndicators;//引导指标得分
private float rewardIndicators;//奖励指标得分
private float totalScore;//合计得分
private String createBy;//众创空间名称
public Integer getQnYear() {
return qnYear;
}
private Integer qnYear; //上报年份
public void setQnYear(Integer qnYear) {
this.qnYear = qnYear;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
private String sorting; //排序使用 - desc 默认 --asc 升
......
......@@ -11,6 +11,13 @@ public class PerformanceSummaryTotal {
public PerformanceSummaryTotal(){
}
public Integer getQnYear() {
return qnYear;
}
private Integer qnYear; //上报年份
public void setQnYear(Integer qnYear) {
this.qnYear = qnYear;
}
@ExcelProperty(value="序号",index=0)
private Integer index;
......
......@@ -100,10 +100,14 @@ public interface QuestionnaireService {
//统计众创空间的分数
List<PerformanceSummary> selectPerformanceSummaryList(PerformanceSummary performanceSummary);
List<PerformanceSummary> selectPerformanceSummaryListNew(PerformanceSummary performanceSummary);
void exportFullTimeWorkPerson(HttpServletRequest request, HttpServletResponse response, String index, String recordId);
void exportPerformanceSummary(HttpServletRequest request, HttpServletResponse response);
void exportPerformanceSummaryNew(HttpServletRequest request, HttpServletResponse response);
Integer updateAnswerScore(Answer answer);
Review selectOneReviewByRecordIdAndQuestionsId( Long recordId, Long questionsId);
......
......@@ -179,7 +179,10 @@ public class QuestionnaireServiceImpl implements QuestionnaireService {
public List<PerformanceSummary> selectPerformanceSummaryList(PerformanceSummary performanceSummary){
return questionnaireDao.selectPerformanceSummaryList(performanceSummary);
}
@Override
public List<PerformanceSummary> selectPerformanceSummaryListNew(PerformanceSummary performanceSummary){
return questionnaireDao.selectPerformanceSummaryListNew(performanceSummary);
}
/**
* 2022年10月新增加功能问卷管理-审批页面根据基础指标、引导指标和奖励指标导出所有空间的数据
* @param request
......@@ -863,6 +866,78 @@ public class QuestionnaireServiceImpl implements QuestionnaireService {
}
}
@Override
public void exportPerformanceSummaryNew(HttpServletRequest request, HttpServletResponse response){
try{
WriteCellStyle headWriteCellStyle = new WriteCellStyle();
//设置背景颜色
headWriteCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
//设置头字体
WriteFont headWriteFont = new WriteFont();
headWriteFont.setFontHeightInPoints((short) 10);
headWriteFont.setBold(true);
headWriteCellStyle.setWriteFont(headWriteFont);
//设置头居中
headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
//内容策略
WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
contentWriteCellStyle.setWrapped(true);
//设置 水平居中
contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
//导出文件名称
String fileName_a = "绩效汇总表";
response.setHeader("Content-disposition", "attachment;filename=" + new String((fileName_a).getBytes("gb2312"), "ISO-8859-1") + ".xlsx");
//查询引导指标和奖励指标数据
List<PerformanceSummaryTotal> summaryList = questionnaireDao.queryGuideAndRewardIndexListNew();
if (summaryList != null) {
for(int i = 0; i < summaryList.size();i++){
//excel生成序号
summaryList.get(i).setIndex(i+1);
//计算引导指标和奖励指标分数
float guideIndexScore = summaryList.get(i).getGuideIndexOne() + summaryList.get(i).getGuideIndexTwo() + summaryList.get(i).getGuideIndexThree()
+ summaryList.get(i).getGuideIndexFour() + summaryList.get(i).getGuideIndexFive() + summaryList.get(i).getGuideIndexSix() + summaryList.get(i).getGuideIndexSeven()
+ summaryList.get(i).getGuideIndexEight() + summaryList.get(i).getGuideIndexNine() + summaryList.get(i).getGuideIndexTen() + summaryList.get(i).getGuideIndexEleven()
+ summaryList.get(i).getGuideIndexTwelve() + summaryList.get(i).getGuideIndexThirteen();
if(guideIndexScore >= 50.0){
summaryList.get(i).setGuideIndexScore(50);
}else{
summaryList.get(i).setGuideIndexScore(guideIndexScore);
}
//计算奖励指标分数
float rewardIndexScore = summaryList.get(i).getRewardIndexOne() + summaryList.get(i).getRewardIndexTwo() + summaryList.get(i).getRewardIndexThree()
+ summaryList.get(i).getRewardIndexFour() + summaryList.get(i).getRewardIndexFive();
if(rewardIndexScore >= 10.0){
summaryList.get(i).setRewardIndexScore(10);
}else{
summaryList.get(i).setRewardIndexScore(rewardIndexScore);
}
//总分数
float totalScore = summaryList.get(i).getBasisIndexScore() + summaryList.get(i).getGuideIndexScore() + summaryList.get(i).getRewardIndexScore();
summaryList.get(i).setTotalScore(totalScore);
}
//生成excel
EasyExcel.write(response.getOutputStream(),PerformanceSummaryTotal.class).sheet("绩效汇总表").
registerWriteHandler(horizontalCellStyleStrategy)
.registerWriteHandler(new SimpleColumnWidthStyleStrategy(30))
.doWrite(summaryList);
response.flushBuffer();
}
}catch (Exception e){
e.printStackTrace();
}
}
@Override
public Integer updateAnswerScore(Answer answer){
return questionnaireDao.updateAnswerScore(answer);
......
......@@ -177,6 +177,49 @@
${sorting}
</if>
</select>
<!--绩效汇总列表查询(新)2023-->
<select id="selectPerformanceSummaryListNew" resultType="com.tiptimes.model.PerformanceSummary">
SELECT
DISTINCT t_record.id as id,
t_record.qn_year as qnYear,
t_record.create_by as createBy,
CASE WHEN t_record.process_status = 2 THEN '0' WHEN t_record.process_status = 3 THEN '30' ELSE '0' END as
basicIndicators,
(
SELECT
CASE WHEN SUM(t_review.score) > 50 THEN 50 WHEN SUM(t_review.score) THEN SUM(t_review.score) ELSE '0' END as
score
FROM t_review
WHERE t_review.questions_id IN(22,21,20,19,18,17,16,15,14,13,12,11,10) AND record_id=t_record.id
) as guideIndicators,
(
SELECT
CASE WHEN SUM(t_review.score) > 10 THEN 10 WHEN SUM(t_review.score) THEN SUM(t_review.score) ELSE '0' END as
score
FROM t_review
WHERE t_review.questions_id IN(27,26,25,24,23) AND record_id=t_record.id
) as rewardIndicators
FROM t_review
LEFT JOIN t_record ON t_review.record_id=t_record.id
LEFT JOIN t_answer ON t_answer.record_id=t_review.record_id
<where>
t_record.process_status=3 OR t_record.process_status=2
<if test="qnYear == null or qnYear == ''"><!-- 年份 -->
AND t_record.qn_year = YEAR(NOW())
</if>
<if test="qnYear != null and qnYear != ''"><!-- 年份 -->
AND t_record.qn_year = #{qnYear}
</if>
<if test="createBy != null and createBy != ''"><!-- 众创空间名称 -->
AND t_record.create_by = #{createBy}
</if>
ORDER BY
<if test="sorting != null and sorting != ''">
${sorting}
</if>
</where>
</select>
<!--绩效汇总导出-->
<select id="queryGuideAndRewardIndexList" resultType="com.tiptimes.model.exportDTO.PerformanceSummaryTotal">
......@@ -347,6 +390,184 @@
OR process_status = 3
</select>
<select id="queryGuideAndRewardIndexListNew" resultType="com.tiptimes.model.exportDTO.PerformanceSummaryTotal">
SELECT DISTINCT t_record.id as id,
t_record.create_by as spaceName,
(CASE
WHEN (SELECT t_review.approval_status
FROM t_review
WHERE t_review.questions_id = 1
AND t_review.record_id = t_record.id) = 0
THEN '驳回'
ELSE '通过'
END
) AS basisIndexOne,
(CASE
WHEN (SELECT t_review.approval_status
FROM t_review
WHERE t_review.questions_id = 2
AND t_review.record_id = t_record.id) = 0
THEN '驳回'
ELSE '通过'
END
) AS basisIndexTwo,
(CASE
WHEN (SELECT t_review.approval_status
FROM t_review
WHERE t_review.questions_id = 3
AND t_review.record_id = t_record.id) = 0
THEN '驳回'
ELSE '通过'
END
) AS basisIndexThree,
(CASE
WHEN (SELECT t_review.approval_status
FROM t_review
WHERE t_review.questions_id = 4
AND t_review.record_id = t_record.id) = 0
THEN '驳回'
ELSE '通过'
END
) AS basisIndexFour,
(CASE
WHEN (SELECT t_review.approval_status
FROM t_review
WHERE t_review.questions_id = 5
AND t_review.record_id = t_record.id) = 0
THEN '驳回'
ELSE '通过'
END
) AS basisIndexFive,
(CASE
WHEN (SELECT t_review.approval_status
FROM t_review
WHERE t_review.questions_id = 6
AND t_review.record_id = t_record.id) = 0
THEN '驳回'
ELSE '通过'
END
) AS basisIndexSix,
(CASE
WHEN (SELECT t_review.approval_status
FROM t_review
WHERE t_review.questions_id = 7
AND t_review.record_id = t_record.id) = 0
THEN '驳回'
ELSE '通过'
END
) AS basisIndexSeven,
(CASE
WHEN (SELECT t_review.approval_status
FROM t_review
WHERE t_review.questions_id = 8
AND t_review.record_id = t_record.id) = 0
THEN '驳回'
ELSE '通过'
END
) AS basisIndexEight,
(CASE
WHEN (SELECT t_review.approval_status
FROM t_review
WHERE t_review.questions_id = 9
AND t_review.record_id = t_record.id) = 0
THEN '驳回'
ELSE '通过'
END
) AS basisIndexNine,
(CASE
WHEN t_record.process_status = 2 THEN 0
WHEN t_record.process_status = 3 THEN 30
END
) AS basisIndexScore,
(SELECT t_review.score
FROM t_review
WHERE t_review.questions_id = 10
AND t_review.record_id = t_record.id) AS guideIndexOne,
(SELECT t_review.score
FROM t_review
WHERE t_review.questions_id = 11
AND t_review.record_id = t_record.id) AS guideIndexTwo,
(SELECT t_review.score
FROM t_review
WHERE t_review.questions_id = 12
AND t_review.record_id = t_record.id) AS guideIndexThree,
(SELECT t_review.score
FROM t_review
WHERE t_review.questions_id = 13
AND t_review.record_id = t_record.id) AS guideIndexFour,
(SELECT t_review.score
FROM t_review
WHERE t_review.questions_id = 14
AND t_review.record_id = t_record.id) AS guideIndexFive,
(SELECT t_review.score
FROM t_review
WHERE t_review.questions_id = 15
AND t_review.record_id = t_record.id) AS guideIndexSix,
(SELECT t_review.score
FROM t_review
WHERE t_review.questions_id = 16
AND t_review.record_id = t_record.id) AS guideIndexSeven,
(SELECT t_review.score
FROM t_review
WHERE t_review.questions_id = 17
AND t_review.record_id = t_record.id) AS guideIndexEight,
(SELECT t_review.score
FROM t_review
WHERE t_review.questions_id = 18
AND t_review.record_id = t_record.id) AS guideIndexNine,
(SELECT t_review.score
FROM t_review
WHERE t_review.questions_id = 19
AND t_review.record_id = t_record.id) AS guideIndexTen,
(SELECT t_review.score
FROM t_review
WHERE t_review.questions_id = 20
AND t_review.record_id = t_record.id) AS guideIndexEleven,
(SELECT t_review.score
FROM t_review
WHERE t_review.questions_id = 21
AND t_review.record_id = t_record.id) AS guideIndexTwelve,
(SELECT t_review.score
FROM t_review
WHERE t_review.questions_id = 22
AND t_review.record_id = t_record.id) AS guideIndexThirteen,
(SELECT t_review.score
FROM t_review
WHERE t_review.questions_id = 23
AND t_review.record_id = t_record.id) AS rewardIndexOne,
(SELECT t_review.score
FROM t_review
WHERE t_review.questions_id = 24
AND t_review.record_id = t_record.id) AS rewardIndexTwo,
(SELECT t_review.score
FROM t_review
WHERE t_review.questions_id = 25
AND t_review.record_id = t_record.id) AS rewardIndexThree,
(SELECT t_review.score
FROM t_review
WHERE t_review.questions_id = 26
AND t_review.record_id = t_record.id) AS rewardIndexFour,
(SELECT t_review.score
FROM t_review
WHERE t_review.questions_id = 27
AND t_review.record_id = t_record.id) AS rewardIndexFive
FROM t_record
RIGHT JOIN t_review ON t_record.id = t_review.record_id
<where>
(t_record.process_status = 2
OR t_record.process_status = 3)
<if test="qnYear == null or qnYear == ''"><!-- 年份 -->
AND t_record.qn_year = YEAR(NOW())
</if>
<if test="qnYear != null and qnYear != ''"><!-- 年份 -->
AND t_record.qn_year = #{qnYear}
</if>
</where>
</select>
<!--2022年10月新增加功能问卷管理-审批页面根据基础指标、引导指标和奖励指标导出所有空间的数据-->
<!-- 问卷管理-导出基础指标1 众创空间场地情况、是否租赁场地-->
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment