| | |
| | | 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 |
| | |
| | | |
| | | //计算检验与未检验的单子与项目的数量接口 |
| | | @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)); |
| | | } |
| | | } |