zss
2023-08-22 9263a9be2c9c820c322dd734c4c18b0bcd05f91e
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/HomeServiceImpl.java
@@ -1,14 +1,16 @@
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.pojo.vo.StatisticsDataVo;
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 +25,76 @@
    //计算检验与未检验的单子与项目的数量接口
    @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;
    }
    //未检验tpo4
    @Override
    public List<Map<String, Object>> unchecktop4() {
        //检验项目,设备,检验开始时间,执行人,检验结束时间
        List<Map<String, Object>> mapList = inspectionProductMapper.getResultNum();
        return mapList;
    }
    //计算原材料与成品的合格率
    @Override
    public StatisticsDataVo qualified() {
        StatisticsDataVo statisticsDataVo = new StatisticsDataVo();
        //原材料检验单总数
        Integer allmater = inspectionMapper.getallmater();
        //原材料合格率
        Long mater = inspectionMapper.qualified(1);
        statisticsDataVo.setMaterial(getRadio(allmater, mater));
        //原材料不合格率
        Long unmater = inspectionMapper.qualified(0);
        statisticsDataVo.setUnmaterial(getRadio(allmater, unmater));
        //原材料未检验率
        Long notmater = inspectionMapper.qualified(null);
        statisticsDataVo.setNotmaterial(getRadio(allmater, notmater));
        //成品检验单总数
        Integer allfin = inspectionMapper.getallfin();
        //成品合格率
        //成品不合格率
        //成品未检验率
        return statisticsDataVo;
    }
    /*计算百分比*/
    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));
    }
}