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));
|
}
|
}
|