zss
2023-08-22 59ae18f04a602bdfdc91299bbe2ff74a2ae1d215
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/HomeServiceImpl.java
@@ -1,14 +1,15 @@
package com.yuanchu.limslaboratory.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yuanchu.limslaboratory.mapper.InspectionMapper;
import com.yuanchu.limslaboratory.mapper.InspectionProductMapper;
import com.yuanchu.limslaboratory.pojo.Inspection;
import com.yuanchu.limslaboratory.pojo.ProjectNum;
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
@@ -23,16 +24,43 @@
    //计算检验与未检验的单子与项目的数量接口
    @Override
    public ProjectNum checkProjectNum() {
        ProjectNum projectNum = new ProjectNum();
    public ProjectNumVo checkProjectNum() {
        ProjectNumVo projectNumVo = new ProjectNumVo();
        //已检验的检验单数量
        projectNum.setInsNum(inspectionMapper.seleCountIns());
        projectNumVo.setInsNum(inspectionMapper.seleCountIns());
        //未检验的检验单数量
        projectNum.setInsUnNum(inspectionMapper.seleCountUnIns());
        projectNumVo.setInsUnNum(inspectionMapper.seleCountUnIns());
        //已检验的检验项目数量
        projectNum.setInsproNum(inspectionProductMapper.seleCountInspro());
        projectNumVo.setInsproNum(inspectionProductMapper.seleCountInspro());
        //未检验的检验项目数量
        projectNum.setInsproUnNum(inspectionProductMapper.seleCountUnInspro());
        return projectNum;
        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));
    }
}