DataStatisticsUtils.java 4.17 KB
Newer Older
1 2 3 4 5 6 7 8 9 10
package com.ruoyi.common;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.domain.*;
import com.ruoyi.mapper.TaskMapper;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

wdy's avatar
wdy committed
11 12 13
public class DataStatisticsUtils {

    public static int calculateStandards(List<ReviewStandard> standards) {
14 15 16
        return standards.size();
    }

wdy's avatar
wdy committed
17
    public static int calculateStandardsPass(List<ReviewStandard> standards, Map<Long, ReviewDetailsResult> resultMap) {
18 19 20 21 22 23 24

        int standardsPass = 0;

        for(ReviewStandard standard : standards) {

            List<ReviewDetails> details = getDetailsByStandard(standard);

wdy's avatar
wdy committed
25
            boolean isPass = true;
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48

            for(ReviewDetails reviewDetails : details) {

                Integer passed = detailsIsPass(reviewDetails, resultMap);
                if(passed == null) {
                    isPass = false;
                }

                if(passed == ReviewStandard.NO_PASSED) {
                    isPass = false;
                }

            }

            if(isPass) {
                standardsPass = standardsPass + 1;
            }
        }

        return standardsPass;

    }

wdy's avatar
wdy committed
49
    public static int calculateStandardsNoPass(List<ReviewStandard> standards, Map<Long, ReviewDetailsResult> resultMap) {
50 51 52 53 54 55

        int standardsNoPass = 0;

        for(ReviewStandard standard : standards) {

            List<ReviewDetails> details = getDetailsByStandard(standard);
wdy's avatar
wdy committed
56
            boolean isPass = false;
57 58 59 60 61 62 63 64

            for(ReviewDetails reviewDetails : details) {

                Integer passed = detailsIsPass(reviewDetails, resultMap);
                if(passed == null) {
                    isPass = false;
                }

wdy's avatar
wdy committed
65 66
                if(passed == ReviewStandard.NO_PASSED) {
                    isPass = true;
67 68 69 70 71 72 73 74 75 76 77 78 79 80
                }


            }

            if(isPass) {
                standardsNoPass = standardsNoPass + 1;
            }
        }

        return standardsNoPass;

    }

wdy's avatar
wdy committed
81
    public static int calculateDetails(List<ReviewStandard> standards) {
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96

        //审查细则(条)
        int detailsNum = 0;

        for(ReviewStandard standard : standards) {

            List<ReviewDetails> details = getDetailsByStandard(standard);
            detailsNum = detailsNum + details.size();

        }

        return detailsNum;

    }

wdy's avatar
wdy committed
97
    public static int calculateDetailsPass(List<ReviewStandard> standards, Map<Long, ReviewDetailsResult> resultMap) {
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118

        int detailsPass = 0;

        for(ReviewStandard standard : standards) {
            List<ReviewDetails> details = getDetailsByStandard(standard);
            for(ReviewDetails reviewDetails : details) {

                if (detailsIsPass(reviewDetails, resultMap) == null) {
                    continue;
                }

                if(detailsIsPass(reviewDetails, resultMap) == ReviewStandard.PASSED) {
                    detailsPass = detailsPass + 1;
                }
            }
        }

        return detailsPass;

    }

wdy's avatar
wdy committed
119
    public static int calculateDetailsNoPass(List<ReviewStandard> standards, Map<Long, ReviewDetailsResult> resultMap) {
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136

        int detailsNoPass = 0;

        for(ReviewStandard standard : standards) {
            List<ReviewDetails> details = getDetailsByStandard(standard);
            for(ReviewDetails reviewDetails : details) {

                if(detailsIsPass(reviewDetails, resultMap) == ReviewStandard.NO_PASSED) {
                    detailsNoPass = detailsNoPass + 1;
                }
            }
        }

        return detailsNoPass;

    }

wdy's avatar
wdy committed
137
    public static List<ReviewDetails> getDetailsByStandard(ReviewStandard standard) {
138 139 140 141 142 143 144 145 146 147 148

        List<ReviewDetails> details = new ArrayList();

        List<ReviewKeyPoint> keyPointList = standard.getKeyPointList();
        for(ReviewKeyPoint keyPoint : keyPointList) {
            details.addAll(keyPoint.getReviewDetailsList());
        }

        return details;
    }

wdy's avatar
wdy committed
149
    public static Integer detailsIsPass(ReviewDetails reviewDetails, Map<Long, ReviewDetailsResult> resultMap) {
150 151 152 153 154 155 156 157 158
        ReviewDetailsResult result = resultMap.get(reviewDetails.getId());

        if(result == null) {
            return null;
        }

        return result.getPassed();
    }
}