lxw
2023-05-22 a99200c20a02f14b3f3560d24d6a9b624478d74a
src/main/java/com/whyc/service/KPIService.java
@@ -1,10 +1,8 @@
package com.whyc.service;
import com.whyc.constant.Com;
import com.whyc.dto.KPIDetail;
import com.whyc.dto.Response;
import com.whyc.pojo.BaoJiGroup;
import com.whyc.pojo.BaoJiGroupUser;
import com.whyc.pojo.FaultUpload;
import com.whyc.pojo.UserInf;
import com.whyc.util.MathUtil;
@@ -29,12 +27,12 @@
    private BaoJiGroupUserService baoJiGroupUserService;
    public List<KPIDetail> getAnnualPersonalDetail() {
    public List<KPIDetail> getAnnualPersonalDetail(int userId) {
        //放电任务,班组
        Map<String, Map<String, Integer>> planCount = planService.getPlanCount();
        Map<String, Map<String, Integer>> planCount = planService.getPlanCount(userId);
        //隐患故障上报,个人
        Map<String, FaultUpload> uploadWithGroupName = uploadService.getUploadWithGroupName();
        Map<String, FaultUpload> uploadWithGroupName = uploadService.getUploadWithGroupName(userId);
        //整理最终需要统计的所有用户及所属的包机组
        List<BaoJiGroup> baoJiGroupUserList = baoJiGroupUserService.getGroupAndUserListWithDischargeFlag();
@@ -106,9 +104,9 @@
            }else{
                faultUploadDivideFloat = (float)faultUploadDivide;
            }
            float faultUploadScore = MathUtil.multiply(faultUploadNumTotal , 0.3f,2) + MathUtil.multiply(faultUploadDivideFloat,70f,2);
            float faultUploadScore = MathUtil.multiply(faultUploadNumTotal, 0.3f, 2) + MathUtil.multiply(faultUploadDivideFloat, 70f, 2);
            float personalScore = MathUtil.multiply(dischargePlanScore,0.4f,2) + MathUtil.multiply(faultUploadScore,0.6f,2);
            float personalScore = MathUtil.multiply(dischargePlanScore, 0.4f, 2) + MathUtil.multiply(faultUploadScore, 0.6f, 2);
            kpiDetail.setPersonalScore(personalScore);
        }
@@ -116,17 +114,17 @@
        return kpiDetails;
    }
    public Response getAnnualDetail(Integer limitN) {
        List<KPIDetail> details = getAnnualPersonalDetail();
        if(limitN !=null){
            details = details.stream().sorted((a,b)->b.getPersonalScore().compareTo(a.getPersonalScore())).limit(limitN).collect(Collectors.toList());
    public Response getAnnualDetail(Integer limitN, int userId) {
        List<KPIDetail> details = getAnnualPersonalDetail(userId);
        if (limitN != null) {
            details = details.stream().sorted((a, b) -> b.getPersonalScore().compareTo(a.getPersonalScore())).limit(limitN).collect(Collectors.toList());
        }
        return new Response().set(1,details);
        return new Response().set(1, details);
    }
    public Response getAnnualStatisticByGroupName(Integer limitN) {
    public Response getAnnualStatisticByGroupName(Integer limitN, int userId) {
        List<KPIDetail> groupDetails = new LinkedList<>();
        List<KPIDetail> details = getAnnualPersonalDetail();
        List<KPIDetail> details = getAnnualPersonalDetail(userId);
        //班组得分
        Map<String, List<KPIDetail>> groupNameListMap = details.stream().collect(Collectors.groupingBy(KPIDetail::getGroupName));
        Set<String> groupNameSet = groupNameListMap.keySet();
@@ -149,9 +147,9 @@
        return new Response().set(1,groupDetails);
    }
    public Response getAnnualStatisticByGroupNameAndUser() {
    public Response getAnnualStatisticByGroupNameAndUser(int userId) {
        List<KPIDetail> groupDetails = new LinkedList<>();
        List<KPIDetail> details = getAnnualPersonalDetail();
        List<KPIDetail> details = getAnnualPersonalDetail(userId);
        //班组得分
        Map<String, List<KPIDetail>> groupNameListMap = details.stream().collect(Collectors.groupingBy(KPIDetail::getGroupName));
        Set<String> groupNameSet = groupNameListMap.keySet();