zss
2023-08-22 59ae18f04a602bdfdc91299bbe2ff74a2ae1d215
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package com.yuanchu.limslaboratory.service.impl;
 
import com.yuanchu.limslaboratory.mapper.InspectionMapper;
import com.yuanchu.limslaboratory.mapper.InspectionProductMapper;
import com.yuanchu.limslaboratory.pojo.vo.ProjectNumVo;
import com.yuanchu.limslaboratory.service.HomeService;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
 
 
@Service
public class HomeServiceImpl implements HomeService {
 
    @Resource
    InspectionMapper inspectionMapper;
 
    @Resource
    InspectionProductMapper inspectionProductMapper;
 
 
    //计算检验与未检验的单子与项目的数量接口
    @Override
    public ProjectNumVo checkProjectNum() {
        ProjectNumVo projectNumVo = new ProjectNumVo();
        //已检验的检验单数量
        projectNumVo.setInsNum(inspectionMapper.seleCountIns());
        //未检验的检验单数量
        projectNumVo.setInsUnNum(inspectionMapper.seleCountUnIns());
        //已检验的检验项目数量
        projectNumVo.setInsproNum(inspectionProductMapper.seleCountInspro());
        //未检验的检验项目数量
        projectNumVo.setInsproUnNum(inspectionProductMapper.seleCountUnInspro());
        return projectNumVo;
    }
 
    //已检验top3
    @Override
    public List<Map<String, Object>> checktop3() {
        //获取检验单总数
        Integer allIns = inspectionMapper.getcount();
        //检验结论,检验数量
        List<Map<String, Object>> mapList = inspectionMapper.getResultNum();
        for (Map<String, Object> map : mapList) {
            //遍历获取数量
            Long num = (Long) map.get("num");
            //计算百分比并存入map中
            map.put("chact",getRadio(allIns,num));
        }
        return mapList;
    }
 
    /*计算百分比*/
    private BigDecimal getRadio(Integer all, Long num) {
        if (all.intValue() == 0) {
            return new BigDecimal(0);
        }
        BigDecimal numBigDecimal = new BigDecimal(num);
        BigDecimal allBigDecimal = new BigDecimal(all);
        BigDecimal divide = numBigDecimal.divide(allBigDecimal, 4, BigDecimal.ROUND_HALF_UP);
        return divide.multiply(new BigDecimal(100));
    }
}