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> checktop3() { //获取检验单总数 Integer allIns = inspectionMapper.getcount(); //检验结论,检验数量 List> mapList = inspectionMapper.getResultNum(); for (Map 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)); } }