From c5138faa1c4771bfbc19de5b257e7c129c081cb8 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期一, 28 八月 2023 13:30:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java | 153 ++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 133 insertions(+), 20 deletions(-)
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java
index dea8314..8dd7601 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java
@@ -5,8 +5,10 @@
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.SelectProjectByCodeAndNameDto;
import com.yuanchu.limslaboratory.pojo.Dto.SelectQualificationRateDto;
import com.yuanchu.limslaboratory.pojo.Dto.SeriesDto;
+import com.yuanchu.limslaboratory.pojo.ImInfo;
import com.yuanchu.limslaboratory.pojo.InspectionMaterial;
import com.yuanchu.limslaboratory.service.QualificationRateStatisticsService;
import com.yuanchu.limslaboratory.utils.ArrayListUtil;
@@ -15,6 +17,7 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.text.NumberFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
@@ -30,6 +33,8 @@
@Resource
private InspectionMaterialMapper inspectionMaterialMapper;
+ private static final List<String> TYPE_LIST =Arrays.asList("鍘熸潗鏂�","鎴愬搧","濮旀墭鍝�");
+ private static final List<Integer> TYPE_INT_LIST =Arrays.asList(0,1,2);
@Resource
private QualificationRateStatisticsMapper qualificationRateStatisticsMapper;
@@ -43,16 +48,58 @@
@Override
public Map<String, Object> getTestSampleStatistics(SelectQualificationRateDto dto) {
- System.out.println(dto);
- return null;
+ Map<String, Object> mapResult = new HashMap<>(16);
+ List<Map<String, Object>> mapList = qualificationRateStatisticsMapper.selectTestSamp(dto);
+ if(mapList.size()<=0){
+ mapResult.put("noData",false);
+ return mapResult;
+ }
+ mapResult.put("xAxis",TYPE_LIST);
+ List<Map<String, Object>>list=new ArrayList<>();
+ Map<String, Object>mapPass=new HashMap<>(3);
+ mapPass.put("name","鍚堟牸");
+ mapPass.put("type","bar");
+ Map<String, Object>mapNoPass=new HashMap<>(3);
+ mapNoPass.put("name","涓嶅悎鏍�");
+ mapNoPass.put("type","bar");
+ List<Integer>passInteger=new ArrayList<>();
+ List<Integer>noPasInteger=new ArrayList<>();
+ AtomicInteger integerPass = new AtomicInteger(0);
+ AtomicInteger integerNoPass = new AtomicInteger(0);
+ for (int i = 0; i < TYPE_INT_LIST.size(); i++) {
+ int finalI = i;
+ mapList.stream().filter(m->Objects.equals(String.valueOf(m.get("type")),String.valueOf(TYPE_INT_LIST.get(finalI))))
+ .forEach(m->{
+ if(Objects.equals(m.get("inspectionStatus"),0)){
+ integerNoPass.incrementAndGet();
+ }
+ if(Objects.equals(m.get("inspectionStatus"),1)){
+ integerPass.incrementAndGet();
+ }
+ });
+ passInteger.add(integerPass.get());
+ noPasInteger.add(integerNoPass.get());
+ integerPass.set(0);
+ integerNoPass.set(0);
+ }
+ mapPass.put("data",passInteger);
+ mapNoPass.put("data",noPasInteger);
+ list.add(mapPass);
+ list.add(mapNoPass);
+ mapResult.put("series",list);
+ mapResult.put("noData",true);
+ //System.out.println(mapResult);
+ return mapResult;
}
@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("=================================");
+ if(mapList.size()<=0){
+ allMap.put("noData",false);
+ return allMap;
+ }
//鍘婚噸鍙栧嚭渚涘簲鍟�
List<Map<String, Object>> supplierDistinct = ArrayListUtil.oneObjectsDistinctByProperty(MapHandlerDto::comparingBySupplier, mapList);
List<String> supplierList = new ArrayList<String>();
@@ -60,21 +107,21 @@
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<SeriesDto> seriesDtoList = new ArrayList<SeriesDto>(2);
+ SeriesDto seriesDto = new SeriesDto("鍚堟牸鏁伴噺");
+ SeriesDto seriesDto2 = new SeriesDto("涓嶅悎鏍兼暟閲�");
// 鍙栧嚭瀵瑰簲鍚堟牸鏁伴噺涓嶅悎鏍兼暟閲�
- List<Long>pass=new ArrayList<>();
- List<Long>noPass=new ArrayList<>();
- AtomicLong integerPass=new AtomicLong(0L);
- AtomicLong integerNoPass=new AtomicLong(0L);
+ 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)){
+ if (Objects.equals(l.get("inspectionStatus"), 1)) {
integerPass.incrementAndGet();
- }else {
+ } else {
integerNoPass.incrementAndGet();
}
});
@@ -83,19 +130,85 @@
integerNoPass.set(0L);
integerPass.set(0L);
});
- seriesDto.setData(pass);
- seriesDto2.setData(noPass);
+ List<Double> percentPass = new ArrayList<>();
+ List<Double> percentNoPass = new ArrayList<>();
+ for (int i = 0; i < pass.size(); i++) {
+ long total = (pass.get(i) + noPass.get(i));
+ double passNO = 0.00;
+ if (pass.get(i) != 0L) {
+ passNO = Double.parseDouble(getPercent(pass.get(i), total).replace("%", ""));
+ }
+ double noPassNO = 0.00;
+ if (noPass.get(i) != 0L) {
+ noPassNO = Double.parseDouble(getPercent(noPass.get(i), total).replace("%", ""));
+ }
+ percentPass.add(passNO);
+ percentNoPass.add(noPassNO);
+ }
+ seriesDto.setData(percentPass);
+ seriesDto2.setData(percentNoPass);
seriesDtoList.add(seriesDto);
seriesDtoList.add(seriesDto2);
- System.out.println("鏁伴噺=======>");
- System.out.println(seriesDtoList);
- return null;
+ allMap.put("series", seriesDtoList);
+ allMap.put("noData",true);
+ return allMap;
}
@Override
public Map<String, Object> getNoPassProjectStatistics(SelectQualificationRateDto dto) {
- return null;
+ Map<String, Object> allMap = new HashMap<>(16);
+ List<ImInfo> imInfos = qualificationRateStatisticsMapper.selectProjectionsByCondition(dto);
+ List<String>NameList = new ArrayList<>();
+ List<SelectProjectByCodeAndNameDto>projectByCodeAndNameDtos=new ArrayList<>();
+ if(imInfos.size()<=0){
+ allMap.put("noData",false);
+ return allMap;
+ }
+ imInfos.forEach(l->{
+ NameList.add(l.getImCode()+"-"+l.getImName());
+ projectByCodeAndNameDtos.add(new SelectProjectByCodeAndNameDto(l.getImCode(),l.getImName()));
+ });
+ List<ImInfo> imInfosAll = qualificationRateStatisticsMapper.selectProjection(projectByCodeAndNameDtos,dto);
+ int total = imInfosAll.size();
+ List<Integer>noPas=new ArrayList<>();
+ AtomicInteger i=new AtomicInteger(0);
+ NameList.forEach(n->{
+ imInfos.stream()
+ .filter(im-> Objects.equals(n,im.getImCode()+"-"+im.getImName()))
+ .forEach(im->{
+ i.set(im.getIprInfos().size());
+ });
+ noPas.add(i.get());
+ i.set(0);
+ });
+ List<Map<String, Object>>doubleList=new ArrayList<>();
+ for (int j = 0; j < noPas.size(); j++) {
+ Map<String, Object>map=new HashMap<>();
+ map.put("name",NameList.get(j));
+ map.put("value",Double.parseDouble(getPercent(noPas.get(j),total).replace("%","")));
+ doubleList.add(map);
+ }
+ allMap.put("legend",NameList);
+ allMap.put("series",doubleList);
+ allMap.put("noData",true);
+ return allMap;
}
+ @Override
+ public List<Map<String, Object>> getSampleOptions() {
+ List<Map<String, Object>> sampleOptions = qualificationRateStatisticsMapper.getSampleOptions();
+ //鍘婚噸鏍峰搧
+ List<Map<String, Object>> sampleOptionsDistinct = ArrayListUtil.oneObjectsDistinctByProperty(MapHandlerDto::comparingByCode, sampleOptions);
+ sampleOptionsDistinct.forEach(System.out::println);
+ return sampleOptionsDistinct;
+ }
-}
+ public static String getPercent(long x, long y) {
+ double d1 = x * 1.0;
+ double d2 = y * 1.0;
+ NumberFormat percentInstance = NumberFormat.getPercentInstance();
+ // 璁剧疆淇濈暀鍑犱綅灏忔暟锛岃繖閲岃缃殑鏄繚鐣欎袱浣嶅皬鏁�
+ percentInstance.setMinimumFractionDigits(2);
+ return percentInstance.format(d1 / d2);
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.3