package com.yuanchu.limslaboratory.service.impl;
|
|
import cn.hutool.json.JSON;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.yuanchu.limslaboratory.mapper.InspectionMaterialMapper;
|
import com.yuanchu.limslaboratory.mapper.QualificationRateStatisticsMapper;
|
import com.yuanchu.limslaboratory.pojo.Dto.MapHandlerDto;
|
import com.yuanchu.limslaboratory.pojo.Dto.SelectQualificationRateDto;
|
import com.yuanchu.limslaboratory.pojo.Dto.SeriesDto;
|
import com.yuanchu.limslaboratory.pojo.InspectionMaterial;
|
import com.yuanchu.limslaboratory.service.QualificationRateStatisticsService;
|
import com.yuanchu.limslaboratory.utils.ArrayListUtil;
|
import com.yuanchu.limslaboratory.utils.JackSonUtil;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.*;
|
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicLong;
|
|
/**
|
* @Author 张宾
|
* @Date 2023/8/21
|
*/
|
@Service
|
@Slf4j
|
public class QualificationRateStatisticsServiceImpl implements QualificationRateStatisticsService {
|
|
@Resource
|
private InspectionMaterialMapper inspectionMaterialMapper;
|
|
@Resource
|
private QualificationRateStatisticsMapper qualificationRateStatisticsMapper;
|
|
@Override
|
public List<InspectionMaterial> getSupplierList() {
|
QueryWrapper<InspectionMaterial> queryWrapper = new QueryWrapper<>();
|
queryWrapper.lambda().select(InspectionMaterial::getSupplier)
|
.eq(InspectionMaterial::getState, 1).groupBy(InspectionMaterial::getSupplier);
|
return inspectionMaterialMapper.selectList(queryWrapper);
|
}
|
|
@Override
|
public Map<String, Object> getTestSampleStatistics(SelectQualificationRateDto dto) {
|
System.out.println(dto);
|
return null;
|
}
|
|
@Override
|
public Map<String, Object> getSupplierNoPassStatistics(SelectQualificationRateDto dto) {
|
Map<String, Object> allMap = new HashMap<>(16);
|
List<Map<String, Object>> mapList = qualificationRateStatisticsMapper.selectSupplierByCondition(dto);
|
mapList.forEach(System.out::println);
|
System.out.println("=================================");
|
//去重取出供应商
|
List<Map<String, Object>> supplierDistinct = ArrayListUtil.oneObjectsDistinctByProperty(MapHandlerDto::comparingBySupplier, mapList);
|
List<String> supplierList = new ArrayList<String>();
|
supplierDistinct.forEach(l -> {
|
supplierList.add(String.valueOf(l.get("supplier")));
|
});
|
allMap.put("xAxis", supplierList);
|
List<SeriesDto>seriesDtoList=new ArrayList<SeriesDto>(2);
|
SeriesDto seriesDto2=new SeriesDto("不合格数量");
|
SeriesDto seriesDto=new SeriesDto("合格数量");
|
// 取出对应合格数量不合格数量
|
List<Long>pass=new ArrayList<>();
|
List<Long>noPass=new ArrayList<>();
|
AtomicLong integerPass=new AtomicLong(0L);
|
AtomicLong integerNoPass=new AtomicLong(0L);
|
supplierList.forEach(s -> {
|
mapList.stream()
|
.filter(l -> Objects.equals(l.get("supplier"), s))
|
.forEach(l -> {
|
if(Objects.equals(l.get("inspectionStatus"),1)){
|
integerPass.incrementAndGet();
|
}else {
|
integerNoPass.incrementAndGet();
|
}
|
});
|
pass.add(integerPass.get());
|
noPass.add(integerNoPass.get());
|
integerNoPass.set(0L);
|
integerPass.set(0L);
|
});
|
seriesDto.setData(pass);
|
seriesDto2.setData(noPass);
|
seriesDtoList.add(seriesDto);
|
seriesDtoList.add(seriesDto2);
|
System.out.println("数量=======>");
|
System.out.println(seriesDtoList);
|
return null;
|
}
|
|
@Override
|
public Map<String, Object> getNoPassProjectStatistics(SelectQualificationRateDto dto) {
|
return null;
|
}
|
|
|
}
|