Преглед изворни кода

1.大中型报表新增项目部绩效总览查询

GouGengquan пре 10 месеци
родитељ
комит
fbafde7170

+ 10 - 0
biz-base/src/main/java/com/dayou/controller/MajorStatisticalStatementController.java

@@ -216,4 +216,14 @@ public class MajorStatisticalStatementController extends BaseController{
         exportPlus(response, "大中型订单列表", result, MajorEfficiencyDetailVO.class);
     }
 
+    /**
+     * 项目部绩效查询
+     * @param dto 查询dto
+     * @return List<MajorEvaluateEfficiencyVO>
+     */
+    @GetMapping("/department/getMajorDepPerformanceOverviewVO")
+    public RestResponse<List<MajorDepPerformanceOverviewVO>> getMajorDepPerformanceOverviewVO(MajorStatisticalSelectDTO dto) {
+        return RestResponse.data(majorStatisticalStatementService.getMajorDepPerformanceOverviewVO(dto));
+    }
+
 }

+ 7 - 0
dao/src/main/java/com/dayou/mapper/MajorStatisticalStatementMapper.java

@@ -95,4 +95,11 @@ public interface MajorStatisticalStatementMapper {
      * @return List<MajorEfficiencyDetailVO>
      */
     List<MajorEfficiencyDetailVO> exportMajorEfficiencyDetailVO(@Param("dto") MajorStatisticalSelectDTO dto);
+
+    /**
+     * 项目部绩效查询
+     * @param dto 查询dto
+     * @return List<MajorEvaluateEfficiencyVO>
+     */
+    List<MajorDepPerformanceOverviewVO> getMajorDepPerformanceOverviewVO(@Param("dto") MajorStatisticalSelectDTO dto);
 }

+ 122 - 52
dao/src/main/resources/mapper/MajorStatisticalStatementMapper.xml

@@ -244,58 +244,6 @@
         GROUP BY user.id
     </select>
 
-    <select id="getMajorErrorTypeCountVO" resultType="com.dayou.vo.MajorErrorTypeCountVO">
-        SELECT user.id AS userId,
-               user.departmentId,
-               user.userName,
-               (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','委托书界定事项和报告描述不符','%') AND deleted = 0 ) AS errorTypeCount01,
-               (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','委托方函重要数据出错','%') AND deleted = 0 ) AS errorTypeCount02,
-               (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','假设限制条件错漏','%') AND deleted = 0 ) AS errorTypeCount03,
-               (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','地价定义表述有误或不完整','%') AND deleted = 0 ) AS errorTypeCount04,
-               (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','大小写有误','%') AND deleted = 0 ) AS errorTypeCount05,
-               (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','面积有误','%') AND deleted = 0 ) AS errorTypeCount06,
-               (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','报告章节缺漏','%') AND deleted = 0 ) AS errorTypeCount07,
-               (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','技术路线错误','%') AND deleted = 0 ) AS errorTypeCount08,
-               (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','测算参数取值错误','%') AND deleted = 0 ) AS errorTypeCount09,
-               (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','实景图方位图错误','%') AND deleted = 0 ) AS errorTypeCount10,
-               (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','报告出具日期错误','%') AND deleted = 0 ) AS errorTypeCount11,
-               (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','报告有效期错误','%') AND deleted = 0 ) AS errorTypeCount12,
-               (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','估价依据适用不当','%') AND deleted = 0 ) AS errorTypeCount13,
-               (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','委托人名称出错','%') AND deleted = 0 ) AS errorTypeCount14,
-               (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','价值时点出错','%') AND deleted = 0 ) AS errorTypeCount15
-        FROM (SELECT DISTINCT user.id AS id,
-                     user.`name` AS userName,
-                     department.id AS departmentId
-              FROM user,post,user_post,sorted_department,department
-              WHERE `user`.id = user_post.user_id
-                AND user_post.post_id = post.id
-                AND post.department_id = sorted_department.department_id
-                AND sorted_department.department_id = department.id
-                AND sorted_department.deleted = 0
-                AND user_post.deleted = 0
-                AND sorted_department.business_type = 'MAJOR_BUSINESS'
-             ) AS user
-        LEFT JOIN (
-            SELECT
-                principal_id,
-                major.created,
-                major_production.id AS production_id
-            FROM
-                major
-                    LEFT JOIN major_production ON major_production.major_id = major.id
-                    AND major_production.deleted = 0
-        ) AS orderInfo ON user.id = orderInfo.principal_id
-        <where>
-            <if test="dto != null and dto.departmentId != null">
-                AND user.departmentId = #{dto.departmentId}
-            </if>
-            <if test="dto != null and dto.userName != null">
-                AND user.userName LIKE CONCAT('%',#{dto.userName},'%')
-            </if>
-        </where>
-        GROUP BY user.id
-    </select>
-
     <!--根据部门id获取部门绩效扣分-->
     <select id="getMajorPerformanceDeductionVOByDepId" resultType="com.dayou.vo.MajorPerformanceDeductionVO">
         SELECT user.id AS userId,
@@ -356,6 +304,59 @@
         GROUP BY user.id
     </select>
 
+    <!--获取每种错误类型的数量-->
+    <select id="getMajorErrorTypeCountVO" resultType="com.dayou.vo.MajorErrorTypeCountVO">
+        SELECT user.id AS userId,
+        user.departmentId,
+        user.userName,
+        (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','委托书界定事项和报告描述不符','%') AND deleted = 0 ) AS errorTypeCount01,
+        (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','委托方函重要数据出错','%') AND deleted = 0 ) AS errorTypeCount02,
+        (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','假设限制条件错漏','%') AND deleted = 0 ) AS errorTypeCount03,
+        (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','地价定义表述有误或不完整','%') AND deleted = 0 ) AS errorTypeCount04,
+        (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','大小写有误','%') AND deleted = 0 ) AS errorTypeCount05,
+        (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','面积有误','%') AND deleted = 0 ) AS errorTypeCount06,
+        (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','报告章节缺漏','%') AND deleted = 0 ) AS errorTypeCount07,
+        (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','技术路线错误','%') AND deleted = 0 ) AS errorTypeCount08,
+        (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','测算参数取值错误','%') AND deleted = 0 ) AS errorTypeCount09,
+        (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','实景图方位图错误','%') AND deleted = 0 ) AS errorTypeCount10,
+        (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','报告出具日期错误','%') AND deleted = 0 ) AS errorTypeCount11,
+        (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','报告有效期错误','%') AND deleted = 0 ) AS errorTypeCount12,
+        (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','估价依据适用不当','%') AND deleted = 0 ) AS errorTypeCount13,
+        (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','委托人名称出错','%') AND deleted = 0 ) AS errorTypeCount14,
+        (SELECT COUNT(id) FROM business_production_performance WHERE business_type = 'MAJOR_BUSINESS' AND production_id = orderInfo.production_id AND reason LIKE CONCAT('%','价值时点出错','%') AND deleted = 0 ) AS errorTypeCount15
+        FROM (SELECT DISTINCT user.id AS id,
+        user.`name` AS userName,
+        department.id AS departmentId
+        FROM user,post,user_post,sorted_department,department
+        WHERE `user`.id = user_post.user_id
+        AND user_post.post_id = post.id
+        AND post.department_id = sorted_department.department_id
+        AND sorted_department.department_id = department.id
+        AND sorted_department.deleted = 0
+        AND user_post.deleted = 0
+        AND sorted_department.business_type = 'MAJOR_BUSINESS'
+        ) AS user
+        LEFT JOIN (
+        SELECT
+        principal_id,
+        major.created,
+        major_production.id AS production_id
+        FROM
+        major
+        LEFT JOIN major_production ON major_production.major_id = major.id
+        AND major_production.deleted = 0
+        ) AS orderInfo ON user.id = orderInfo.principal_id
+        <where>
+            <if test="dto != null and dto.departmentId != null">
+                AND user.departmentId = #{dto.departmentId}
+            </if>
+            <if test="dto != null and dto.userName != null">
+                AND user.userName LIKE CONCAT('%',#{dto.userName},'%')
+            </if>
+        </where>
+        GROUP BY user.id
+    </select>
+
     <!--查询错误详情SQL-->
     <sql id="majorPerformanceDeductionDetailQuery">
         SELECT performance.id,
@@ -697,4 +698,73 @@
     <select id="exportMajorEfficiencyDetailVO" resultType="com.dayou.vo.MajorEfficiencyDetailVO">
         <include refid="majorEvaEffDetailQuery" />
     </select>
+
+    <!--项目部绩效查询-->
+    <select id="getMajorDepPerformanceOverviewVO" resultType="com.dayou.vo.MajorDepPerformanceOverviewVO">
+        SELECT department.departmentId,
+               department.departmentName,
+               (SELECT COALESCE(SUM(order_fund.real_amount),0) FROM major, order_fund WHERE major.deleted = 0 AND major.id = order_fund.business_id AND order_fund.deleted = 0 AND business_type = 'MAJOR_BUSINESS' AND major.created BETWEEN #{dto.startTime} AND #{dto.endTime} AND major.department_id = department.departmentId) AS outputValue,
+               (SELECT COUNT(major.id) FROM major LEFT JOIN major_production AS pro ON pro.major_id = major.id AND production != 'STATEMENT' AND pro.deleted = 0 WHERE major.deleted = 0 AND major.created BETWEEN #{dto.startTime} AND #{dto.endTime} AND major.department_id = department.departmentId) AS orderVolume,
+               (
+                   SELECT ROUND(SUM(TIMESTAMPDIFF(HOUR, major.created, end.created)) / COUNT(major.id) / 24, 2)
+                   FROM major
+                            INNER JOIN (
+                       SELECT major.id,node.`code`, instance.created
+                       FROM work_node AS node, work_flow_node_instance AS instance, major
+                       WHERE node.id = instance.node_id
+                         AND instance.business_id = major.id
+                         AND instance.deleted = 0
+                         AND node.`code` = 'FORMAL_QUOTATION'
+                         AND business_type = 'MAJOR_BUSINESS'
+                   ) AS end ON major.id = end.id
+                   WHERE department_id = department.departmentId
+                     AND financial = 1
+                     AND major.created BETWEEN #{dto.startTime} AND #{dto.endTime}
+               ) AS financialQuoteProcessingTime,
+               (
+                   SELECT ROUND(SUM(TIMESTAMPDIFF(HOUR, major.created, end.created)) / COUNT(major.id) / 24, 2)
+                   FROM major
+                            INNER JOIN (
+                       SELECT major.id,node.`code`, instance.created
+                       FROM work_node AS node, work_flow_node_instance AS instance, major
+                       WHERE node.id = instance.node_id
+                         AND instance.business_id = major.id
+                         AND instance.deleted = 0
+                         AND node.`code` = 'FORMAL_QUOTATION'
+                         AND business_type = 'MAJOR_BUSINESS'
+                   ) AS end ON major.id = end.id
+                   WHERE department_id = department.departmentId
+                     AND financial = 1
+                     AND major.created BETWEEN #{dto.startTime} AND #{dto.endTime}
+               ) AS unFinancialQuoteProcessingTime,
+               COALESCE ( SUM( reCheckPer.normal_mistake ), 0 ) AS reCheckNormalMistakeCount,
+               COALESCE ( SUM( reCheckPer.hard_mistake ), 0 ) AS reCheckHardMistakeCount,
+               COALESCE ( SUM( reCheckPer.fatal_mistake ), 0 ) AS reCheckFatalMistakeCount
+        FROM (
+             SELECT DISTINCT
+                 department.name AS departmentName,
+                 department.id AS departmentId
+             FROM sorted_department,department
+             WHERE sorted_department.department_id = department.id
+               AND sorted_department.deleted = 0
+               AND sorted_department.business_type = 'MAJOR_BUSINESS'
+             ) AS department
+        LEFT JOIN (
+        SELECT
+            department_id,
+            major.created,
+            major_production.id AS production_id
+        FROM
+            major
+        LEFT JOIN major_production ON major_production.major_id = major.id
+        AND major_production.deleted = 0
+        ) AS orderInfo ON department.departmentId = orderInfo.department_id
+        LEFT JOIN ( SELECT production_id, fatal_mistake, hard_mistake, normal_mistake
+                    FROM
+                        business_production_performance
+                    WHERE business_type = 'MAJOR_BUSINESS' AND check_loop = '复审'
+                    AND (business_production_performance.modified BETWEEN #{dto.startTime} AND #{dto.endTime})
+        ) AS reCheckPer ON reCheckPer.production_id = orderInfo.production_id
+        GROUP BY department.departmentId
+    </select>
 </mapper>

+ 98 - 0
domain/src/main/java/com/dayou/vo/MajorDepPerformanceOverviewVO.java

@@ -0,0 +1,98 @@
+package com.dayou.vo;
+
+import com.dayou.annotation.Excel;
+import lombok.Data;
+
+@Data
+public class MajorDepPerformanceOverviewVO {
+
+    /**
+     * 部门id
+     */
+    private Long departmentId;
+
+    /**
+     * 部门名称
+     */
+    @Excel(name = "部门名称")
+    private String departmentName;
+
+    /**
+     * 产值
+     */
+    @Excel(name = "产值")
+    private Double outputValue;
+
+    /**
+     * 产值计分
+     */
+    @Excel(name = "产值计分")
+    private Integer outputValueScore;
+
+    /**
+     * 接件数
+     */
+    @Excel(name = "接件数")
+    private Integer orderVolume;
+
+    /**
+     * 接件数计分
+     */
+    @Excel(name = "接件数计分")
+    private Integer orderVolumeScore;
+
+    /**
+     * 报价效率(金融)
+     */
+    @Excel(name = "报价效率(金融)")
+    private Double financialQuoteProcessingTime;
+
+    /**
+     * 报价效率计分(金融)
+     */
+    @Excel(name = "报价效率计分(金融)")
+    private Integer financialQuoteProcessingTimeScore;
+
+    /**
+     * 报价效率(非金融)
+     */
+    @Excel(name = "报价效率(非金融)")
+    private Double unFinancialQuoteProcessingTime;
+
+    /**
+     * 报价效率计分(非金融)
+     */
+    @Excel(name = "报价效率计分(非金融)")
+    private Integer unFinancialQuoteProcessingTimeScore;
+
+    /**
+     * 复审一般错误数量
+     */
+    @Excel(name = "复审一般错误")
+    private Integer reCheckNormalMistakeCount;
+
+    /**
+     * 复审较大错误数量
+     */
+    @Excel(name = "复审较大错误")
+    private Integer reCheckHardMistakeCount;
+
+    /**
+     * 复审严重错误数量
+     */
+    @Excel(name = "复审严重错误")
+    private Integer reCheckFatalMistakeCount;
+
+    /**
+     * 复审(扣分)
+     */
+    @Excel(name = "复审(扣分)")
+    private Integer reCheckTotalScore;
+
+    /**
+     * 时点累计分值
+     */
+    @Excel(name = "时点累计分值")
+    private Integer timePointTotalScore;
+
+}

+ 7 - 0
service/src/main/java/com/dayou/service/IMajorStatisticalStatementService.java

@@ -94,4 +94,11 @@ public interface IMajorStatisticalStatementService {
      * @return List<MajorEfficiencyDetailVO>
      */
     List<MajorEfficiencyDetailVO> exportMajorEfficiencyDetailVO(MajorStatisticalSelectDTO dto);
+
+    /**
+     * 项目部绩效查询
+     * @param dto 查询dto
+     * @return List<MajorEvaluateEfficiencyVO>
+     */
+    List<MajorDepPerformanceOverviewVO> getMajorDepPerformanceOverviewVO(MajorStatisticalSelectDTO dto);
 }

+ 106 - 0
service/src/main/java/com/dayou/service/impl/MajorStatisticalStatementServiceImpl.java

@@ -16,6 +16,8 @@ import com.dayou.vo.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 
 @Service
@@ -335,6 +337,110 @@ public class MajorStatisticalStatementServiceImpl implements IMajorStatisticalSt
     }
 
     /**
+     * 项目部绩效查询
+     * @param dto 查询dto
+     * @return List<MajorEvaluateEfficiencyVO>
+     */
+    @Override
+    public List<MajorDepPerformanceOverviewVO> getMajorDepPerformanceOverviewVO(MajorStatisticalSelectDTO dto) {
+        List<MajorDepPerformanceOverviewVO> overviewVOList = majorStatisticalStatementMapper.getMajorDepPerformanceOverviewVO(dto);
+
+        // 根据产值进行降序排序
+        overviewVOList.sort(Comparator.comparing(MajorDepPerformanceOverviewVO::getOutputValue, Comparator.nullsLast(Comparator.reverseOrder())));
+        // 排名赋分(第一名:10、第二名:8、第三名:7)
+        for (int i = 0; i < overviewVOList.size(); i++){
+            if (overviewVOList.get(i).getOutputValue() < 1){
+                overviewVOList.get(i).setOutputValueScore(0);
+            }else {
+                switch (i) {
+                    case 0:
+                        overviewVOList.get(i).setOutputValueScore(10);
+                        break;
+                    case 1:
+                        overviewVOList.get(i).setOutputValueScore(8);
+                        break;
+                    case 2:
+                        overviewVOList.get(i).setOutputValueScore(7);
+                        break;
+                }
+            }
+        }
+
+        // 接单量进行降序排序
+        overviewVOList.sort(Comparator.comparing(MajorDepPerformanceOverviewVO::getOrderVolume, Comparator.nullsLast(Comparator.reverseOrder())));
+        // 排名赋分(第一名:10、第二名:8、第三名:7)
+        for (int i = 0; i < overviewVOList.size(); i++){
+            if (overviewVOList.get(i).getOrderVolume() < 1){
+                overviewVOList.get(i).setOrderVolumeScore(0);
+            }else {
+                switch (i) {
+                    case 0:
+                        overviewVOList.get(i).setOrderVolumeScore(10);
+                        break;
+                    case 1:
+                        overviewVOList.get(i).setOrderVolumeScore(8);
+                        break;
+                    case 2:
+                        overviewVOList.get(i).setOrderVolumeScore(7);
+                        break;
+                }
+            }
+        }
+
+        // 金融报价效率进行降序排序
+        overviewVOList.sort(Comparator.comparing(MajorDepPerformanceOverviewVO::getFinancialQuoteProcessingTime, Comparator.nullsLast(Comparator.reverseOrder())));
+        // 排名赋分(第一名:10、第二名:8、第三名:7)
+        for (int i = 0; i < overviewVOList.size(); i++){
+            if (ObjectUtil.isNull(overviewVOList.get(i).getFinancialQuoteProcessingTime())){
+                overviewVOList.get(i).setFinancialQuoteProcessingTimeScore(0);
+            }else {
+                switch (i) {
+                    case 0:
+                        overviewVOList.get(i).setFinancialQuoteProcessingTimeScore(10);
+                        break;
+                    case 1:
+                        overviewVOList.get(i).setFinancialQuoteProcessingTimeScore(8);
+                        break;
+                    case 2:
+                        overviewVOList.get(i).setFinancialQuoteProcessingTimeScore(7);
+                        break;
+                }
+            }
+        }
+
+        // 非金融报价效率进行降序排序
+        overviewVOList.sort(Comparator.comparing(MajorDepPerformanceOverviewVO::getUnFinancialQuoteProcessingTime, Comparator.nullsLast(Comparator.reverseOrder())));
+        // 排名赋分(第一名:10、第二名:8、第三名:7)
+        for (int i = 0; i < overviewVOList.size(); i++){
+            if (ObjectUtil.isNull(overviewVOList.get(i).getUnFinancialQuoteProcessingTime())){
+                overviewVOList.get(i).setUnFinancialQuoteProcessingTimeScore(0);
+            }else {
+                switch (i) {
+                    case 0:
+                        overviewVOList.get(i).setUnFinancialQuoteProcessingTimeScore(10);
+                        break;
+                    case 1:
+                        overviewVOList.get(i).setUnFinancialQuoteProcessingTimeScore(8);
+                        break;
+                    case 2:
+                        overviewVOList.get(i).setUnFinancialQuoteProcessingTimeScore(7);
+                        break;
+                }
+            }
+        }
+
+        // 计算复审扣分与最后的时间累计分值
+        for (MajorDepPerformanceOverviewVO overviewVO : overviewVOList){
+            overviewVO.setReCheckTotalScore(overviewVO.getReCheckNormalMistakeCount() * 3 + overviewVO.getReCheckHardMistakeCount() * 8 + overviewVO.getReCheckFatalMistakeCount() * 41);
+            overviewVO.setTimePointTotalScore(overviewVO.getOutputValueScore() + overviewVO.getOrderVolumeScore() + overviewVO.getFinancialQuoteProcessingTimeScore() + overviewVO.getUnFinancialQuoteProcessingTimeScore() - overviewVO.getReCheckTotalScore());
+        }
+
+        // 重新排序部门顺序
+        overviewVOList.sort(Comparator.comparing(MajorDepPerformanceOverviewVO::getDepartmentId, Comparator.nullsLast(Comparator.naturalOrder())));
+        return overviewVOList;
+    }
+
+    /**
      * 设置项目参与人
      * @param majorLedgerVOList 台账集合
      * @return List<MajorLedgerVO>