From b7586ba9b38136c7af8ca9b31f92f570a0b039c2 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期一, 21 八月 2023 18:02:35 +0800
Subject: [PATCH] 计量管理-》计量修改 试验管理-》合格率统计
---
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java | 2
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/QualificationRateStatisticsService.java | 25 ++
laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml | 24 ++
framework/src/main/java/com/yuanchu/limslaboratory/utils/MapUtil.java | 36 +++
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MetricalInformationServiceImpl.java | 18 +
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SeriesDto.java | 32 ++
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SelectQualificationRateDto.java | 52 ++++
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java | 101 +++++++++
inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml | 27 ++
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/MapHandlerDto.java | 22 ++
framework/src/main/java/com/yuanchu/limslaboratory/utils/ArrayListUtil.java | 128 +++++++++++
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/QualificationRateStatisticsMapper.java | 22 ++
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MetricalInformationService.java | 3
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/QualificationRateStatisticsController.java | 50 ++++
laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MetricalInformationController.java | 6
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/UpdatedMetricalInformationDto.java | 43 +++
framework/src/main/java/com/yuanchu/limslaboratory/utils/JsonUtil.java | 54 ++++
17 files changed, 641 insertions(+), 4 deletions(-)
diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/ArrayListUtil.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/ArrayListUtil.java
new file mode 100644
index 0000000..760e5c7
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/ArrayListUtil.java
@@ -0,0 +1,128 @@
+package com.yuanchu.limslaboratory.utils;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Function;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+/**
+ * @Author 寮犲
+ */
+public class ArrayListUtil {
+
+ /**
+ * 鍗曞�奸泦鍚堝幓閲�
+ * @param objList
+ * @param <T>
+ * @return
+ */
+ public static <T> List<T> singleValueDistinct(List<T>objList){
+ return objList.stream().distinct().collect(Collectors.toList());
+ }
+
+ /**
+ * 鍗曞�奸泦鍚堟瘮杈� 涓婚泦鍚堜腑涓庢闆嗗悎涓嶇浉绛夋暟鎹�
+ * @param mainList 涓婚泦鍚�
+ * @param secondaryList 娆¤闆嗗悎
+ * @param <T>
+ * @return 涓婚泦鍚堜腑璺熸瑕侀泦鍚堜笉鐩哥瓑鐨勬暟鎹�
+ */
+ public static <T> List<T> compareNotEqualListBySingleValue(List<T>mainList,List<T>secondaryList){
+ return mainList.stream().filter(item -> !secondaryList.stream()
+ .map(e -> e).distinct().collect(Collectors.toList())
+ .contains(item))
+ .collect(Collectors.toList());
+ }
+
+ /**
+ * 鍗曞�奸泦鍚堟瘮杈� 涓婚泦鍚堜腑涓庢闆嗗悎鐩哥瓑鏁版嵁
+ * @param mainList 涓婚泦鍚�
+ * @param secondaryList 娆¤闆嗗悎
+ * @param <T>
+ * @return 涓婚泦鍚堜腑璺熸瑕侀泦鍚堜笉鐩哥瓑鐨勬暟鎹�
+ */
+ public static <T> List<T> compareEqualListBySingleValue(List<T>mainList,List<T>secondaryList){
+ return mainList.stream().filter(item -> secondaryList.stream()
+ .map(e -> e).collect(Collectors.toList())
+ .contains(item))
+ .collect(Collectors.toList());
+ }
+
+ /**
+ * 鍗曞�奸泦鍚堝悎骞�
+ * @param isDistinct
+ * @param values
+ * @param <T>
+ * @return
+ */
+ @SafeVarargs
+ public static <T> List<T> mergeListBySingleValue(boolean isDistinct, List<T>... values){
+ //鍘婚噸鍚堝苟
+ if (isDistinct){
+ return Stream.of(values).flatMap(Collection::stream).distinct().collect(Collectors.toList());
+ }
+ return Stream.of(values).flatMap(Collection::stream).collect(Collectors.toList());
+ }
+
+ /**
+ * 鍗曚釜瀵硅薄闆嗗悎鏍规嵁瀵硅薄灞炴�у幓閲嶉泦鍚�
+ * @param keyExtractor
+ * @param objects
+ * @param <T>
+ * @return
+ */
+ public static <T> List<T> oneObjectsDistinctByProperty(Function<? super T, ?> keyExtractor,List<T> objects){
+ List<T> newList = new ArrayList<>();
+ objects.stream().filter(distinctByKey(keyExtractor)) //filter淇濈暀true鐨勫��
+ .forEach(newList::add);
+ return newList;
+ }
+
+ /**
+ * 澶氬璞¢泦鍚堝悎骞舵牴鎹睘鎬у幓閲�
+ * @param objects
+ * @param <T>
+ * @return
+ */
+ @SafeVarargs
+ public static <T> List<T> mergeListByObjectsDistinct(Function<? super T, ?> keyExtractor,List<T>... objects){
+ List<T> tList = mergeListByObjects(objects);
+ return oneObjectsDistinctByProperty(keyExtractor,tList);
+ }
+
+ /**
+ * 澶氬璞¢泦鍚堝悎骞舵棤闇�鍘婚噸 閲嶈浇
+ * @param objects
+ * @param <T>
+ * @return
+ */
+ @SafeVarargs
+ public static <T> List<T> mergeListByObjectsDistinct(List<T>... objects){
+ return mergeListByObjects(objects);
+ }
+
+ private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
+ Map<Object,Boolean> seen = new ConcurrentHashMap<>();
+ //putIfAbsent鏂规硶娣诲姞閿�煎锛屽鏋渕ap闆嗗悎涓病鏈夎key瀵瑰簲鐨勫�硷紝鍒欑洿鎺ユ坊鍔狅紝骞惰繑鍥瀗ull锛屽鏋滃凡缁忓瓨鍦ㄥ搴旂殑鍊硷紝鍒欎緷鏃т负鍘熸潵鐨勫�笺��
+ //濡傛灉杩斿洖null琛ㄧず娣诲姞鏁版嵁鎴愬姛(涓嶉噸澶�)锛屼笉閲嶅(null==null :TRUE)
+ return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
+ }
+
+ /**
+ * 瀵硅薄闆嗗悎鍚堝苟
+ * @param objects
+ * @param <T>
+ * @return
+ */
+ @SafeVarargs
+ private static <T> List<T> mergeListByObjects(List<T>... objects){
+ return Stream.of(objects).flatMap(Collection::stream).collect(Collectors.toList());
+ }
+
+
+}
diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/JsonUtil.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/JsonUtil.java
new file mode 100644
index 0000000..27b1f82
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/JsonUtil.java
@@ -0,0 +1,54 @@
+package com.yuanchu.limslaboratory.utils;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * @Author 寮犲
+ */
+public class JsonUtil {
+
+ private static ObjectMapper JSON_MAPPER = new ObjectMapper().disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
+ static {
+ JSON_MAPPER.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
+ JSON_MAPPER.registerModule(new JavaTimeModule());
+ }
+
+ /**
+ * json杞崲瀵瑰簲瀹炰綋
+ * @param json
+ * @param clazz
+ * @param <T>
+ * @return
+ */
+ public static <T> T jsonToPojo(String json, Class<T> clazz){
+ T t=null;
+ try {
+ t=JSON_MAPPER.readValue(json,clazz);
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ }
+ return t;
+ }
+
+ /**
+ * 瀹炰綋杞崲鎴恓son瀛楃
+ * @param t
+ * @param <T>
+ * @return
+ */
+ public static <T> String jsonToString(T t){
+ String result=null;
+ try {
+ result=JSON_MAPPER.writeValueAsString(t);
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+}
diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/MapUtil.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/MapUtil.java
new file mode 100644
index 0000000..072aadf
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/MapUtil.java
@@ -0,0 +1,36 @@
+package com.yuanchu.limslaboratory.utils;
+
+import org.apache.commons.lang3.ArrayUtils;
+
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * @Author 寮犲
+ */
+public class MapUtil{
+
+
+
+ /**
+ * Map涓牴鎹甼ey鎵归噺鍒犻櫎閿�煎
+ * @param map
+ * @param excludeKeys
+ * @param <K>
+ * @param <V>
+ * @return
+ */
+ public static <K, V> Map removeEntries(Map<K, V> map, K[] excludeKeys) {
+ Iterator<K> iterator = map.keySet().iterator();
+ while (iterator.hasNext()) {
+ K key = iterator.next();
+ // 濡傛灉key 鍒氬ソ鍦ㄨ鎺掗櫎鐨刱ey鐨勮寖鍥翠腑
+ if (ArrayUtils.contains(excludeKeys, key)) {
+ iterator.remove();
+ map.remove(key);
+ }
+ }
+ return map;
+ }
+}
+
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/QualificationRateStatisticsController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/QualificationRateStatisticsController.java
new file mode 100644
index 0000000..4f3c981
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/QualificationRateStatisticsController.java
@@ -0,0 +1,50 @@
+package com.yuanchu.limslaboratory.controller;
+
+import com.yuanchu.limslaboratory.pojo.Dto.SelectQualificationRateDto;
+import com.yuanchu.limslaboratory.service.QualificationRateStatisticsService;
+import com.yuanchu.limslaboratory.vo.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/21
+ */
+@Api(tags = "璇曢獙绠$悊-->鍚堟牸鐜囩粺璁�")
+@RequestMapping("/qualificationRate")
+@RestController
+public class QualificationRateStatisticsController {
+
+ @Resource
+ private QualificationRateStatisticsService service;
+
+ @ApiOperation("鏌ヨ鐢宠鐗╂枡鍗曚緵搴斿晢鍒楄〃")
+ @GetMapping("/getSupplierList")
+ public Result<?> getSupplierList() {
+ return Result.success(service.getSupplierList());
+ }
+
+ @ApiOperation("鏌ヨ妫�楠屾牱鍝佸悎鏍肩巼缁熻")
+ @GetMapping("/getTestSampleStatistics")
+ public Result<?> getTestSampleStatistics(SelectQualificationRateDto dto){
+ return Result.success(service.getTestSampleStatistics(dto));
+ }
+
+ @ApiOperation("鏌ヨ渚涘簲鍟嗕笉鍚堟牸缁熻娆℃暟")
+ @GetMapping("/getSupplierNoPassStatistics")
+ public Result<?> getSupplierNoPassStatistics(SelectQualificationRateDto dto){
+ return Result.success(service.getSupplierNoPassStatistics(dto));
+ }
+
+ @ApiOperation("鏌ヨ涓嶅悎鏍奸」鐩粺璁�")
+ @GetMapping("/getNoPassProjectStatistics")
+ public Result<?> getNoPassProjectStatistics(SelectQualificationRateDto dto){
+ return Result.success(service.getNoPassProjectStatistics(dto));
+ }
+
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/QualificationRateStatisticsMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/QualificationRateStatisticsMapper.java
new file mode 100644
index 0000000..590dc28
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/QualificationRateStatisticsMapper.java
@@ -0,0 +1,22 @@
+package com.yuanchu.limslaboratory.mapper;
+
+import com.yuanchu.limslaboratory.pojo.Dto.SelectQualificationRateDto;
+import org.apache.ibatis.annotations.MapKey;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/21
+ */
+@Repository
+public interface QualificationRateStatisticsMapper {
+
+ @MapKey("id")
+ List<Map<String, Object>>selectSupplierByCondition(@Param("dto") SelectQualificationRateDto dto);
+
+
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/MapHandlerDto.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/MapHandlerDto.java
new file mode 100644
index 0000000..03c894f
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/MapHandlerDto.java
@@ -0,0 +1,22 @@
+package com.yuanchu.limslaboratory.pojo.Dto;
+
+import com.yuanchu.limslaboratory.utils.JackSonUtil;
+import com.yuanchu.limslaboratory.utils.JsonUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/21
+ */
+@Component
+@Slf4j
+public class MapHandlerDto {
+
+ public static String comparingBySupplier(Object o){
+ Map map= JsonUtil.jsonToPojo(JsonUtil.jsonToString(o),Map.class);
+ return String.valueOf(map.get("supplier"));
+ }
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SelectQualificationRateDto.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SelectQualificationRateDto.java
new file mode 100644
index 0000000..29d0c71
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SelectQualificationRateDto.java
@@ -0,0 +1,52 @@
+package com.yuanchu.limslaboratory.pojo.Dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/21
+ */
+@Data
+@ApiModel(value="鏌ヨ鍚堟牸鐜囧璞�", description="")
+public class SelectQualificationRateDto implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+
+ /**
+ * 寮�濮嬫椂闂�
+ */
+ @ApiModelProperty(value = "寮�濮嬫椂闂�")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private Date beginDate;
+
+ /**
+ * 缁撴潫鏃堕棿
+ */
+ @ApiModelProperty(value = "缁撴潫鏃堕棿")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private Date endDate;
+
+ /***
+ * 绫诲瀷
+ */
+ @ApiModelProperty(value = "妫�楠岀被鍨�")
+ private Integer type;
+
+ /**
+ * 渚涘簲鍟�
+ */
+ @ApiModelProperty(value = "渚涘簲鍟�")
+ private String supplier;
+
+
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SeriesDto.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SeriesDto.java
new file mode 100644
index 0000000..1474065
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SeriesDto.java
@@ -0,0 +1,32 @@
+package com.yuanchu.limslaboratory.pojo.Dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/21
+ */
+@Data
+public class SeriesDto implements Serializable {
+
+ private String name;
+ private List<Long> data;
+ private String type;
+ private String stack;
+
+ public SeriesDto(String name, List<Long> data) {
+ this.name = name;
+ this.data = data;
+ this.type = "bar";
+ this.stack = "x";
+ }
+
+ public SeriesDto(String name) {
+ this.name = name;
+ this.type = "bar";
+ this.stack = "x";
+ }
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/QualificationRateStatisticsService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/QualificationRateStatisticsService.java
new file mode 100644
index 0000000..35640c3
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/QualificationRateStatisticsService.java
@@ -0,0 +1,25 @@
+package com.yuanchu.limslaboratory.service;
+
+import com.yuanchu.limslaboratory.pojo.Dto.SelectQualificationRateDto;
+import com.yuanchu.limslaboratory.pojo.InspectionMaterial;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/21
+ */
+public interface QualificationRateStatisticsService {
+ /**
+ * 鑾峰彇鐢宠鐗╂枡鍗曚笅鎵�鏈変緵搴斿晢鍒楄〃
+ * @return
+ */
+ List<InspectionMaterial> getSupplierList();
+
+ Map<String, Object> getTestSampleStatistics(SelectQualificationRateDto dto);
+
+ Map<String, Object> getSupplierNoPassStatistics(SelectQualificationRateDto dto);
+
+ Map<String, Object> getNoPassProjectStatistics(SelectQualificationRateDto dto);
+}
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
new file mode 100644
index 0000000..dea8314
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java
@@ -0,0 +1,101 @@
+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;
+ }
+
+
+}
diff --git a/inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml b/inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml
new file mode 100644
index 0000000..754f647
--- /dev/null
+++ b/inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.yuanchu.limslaboratory.mapper.QualificationRateStatisticsMapper">
+ <select id="selectSupplierByCondition" resultType="java.util.Map">
+ SELECT i.id,
+ i.type,
+ im.`name`,
+ im.supplier,
+ i.inspection_status inspectionStatus,
+ i.start_time startTime,
+ i.end_time endTime
+ FROM inspection i
+ INNER JOIN inspection_material im ON i.id = im.inspection_id
+ where (i.state = 1 AND TRUE = IFNULL(i.inspection_status, FALSE))
+ <if test="dto.beginDate!=null and dto.endDate!=null">
+ DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate}
+ AND #{dto.endDate}
+ AND DATE_FORMAT( i.start_time, '%Y-%m-%d' )>= #{dto.beginDate}
+ </if>
+ <if test="dto.type!=null">
+ and i.type=#{dto.type}
+ </if>
+ <if test="dto.supplier!=null and dto.supplier!=''">
+ and im.supplier=#{dto.supplier}
+ </if>
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MetricalInformationController.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MetricalInformationController.java
index fa11132..cabf979 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MetricalInformationController.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MetricalInformationController.java
@@ -2,6 +2,7 @@
import com.yuanchu.limslaboratory.pojo.MetricalInformation;
import com.yuanchu.limslaboratory.pojo.dto.UpdateMetricalInformationDto;
+import com.yuanchu.limslaboratory.pojo.dto.UpdatedMetricalInformationDto;
import com.yuanchu.limslaboratory.service.MetricalInformationService;
import com.yuanchu.limslaboratory.service.UserService;
import com.yuanchu.limslaboratory.utils.JackSonUtil;
@@ -89,8 +90,9 @@
}
@ApiOperation("鏇存柊璁¢噺缁撴灉")
- public Result<?> updateMetricalInformationResult(String code,Integer result){
- return null;
+ @PostMapping("/updateMetricalInformationInfo")
+ public Result<?> updateMetricalInformationInfo(@RequestBody UpdatedMetricalInformationDto dto){
+ return Result.success(metricalInformationService.updateMetricalInformationInfo(dto));
}
}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java
index a63535e..ff44554 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java
@@ -21,6 +21,8 @@
@ApiModel(value="MeteringPlanAndInfoAndIns瀵硅薄", description="")
public class MetricalInfoAndIns extends Instrument implements Serializable {
+ private Long imId;
+
@ApiModelProperty(value = "璁¢噺缂栧彿", example = "1", required = true)
private String code;
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/UpdatedMetricalInformationDto.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/UpdatedMetricalInformationDto.java
new file mode 100644
index 0000000..1202cf4
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/UpdatedMetricalInformationDto.java
@@ -0,0 +1,43 @@
+package com.yuanchu.limslaboratory.pojo.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/21
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "UpdatedMetricalInformationDto瀵硅薄", description = "")
+public class UpdatedMetricalInformationDto implements Serializable {
+
+ @ApiModelProperty(value = "涓婚敭", example = "1", required = true)
+ private Integer id;
+ @ApiModelProperty(value = "缂栫爜", example = "1", required = true)
+ private String code;
+ @ApiModelProperty(value = "缁撴灉", example = "1", required = true)
+ private Integer result;
+ @ApiModelProperty(value = "璁¢噺鏃ユ湡", example = "1", required = true)
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd", iso = DateTimeFormat.ISO.DATE_TIME)
+ private Date date;
+ @ApiModelProperty(value = "涓嶇‘瀹氬害", example = "1", required = true)
+ private String uncertainty;
+ @ApiModelProperty(value = "鎬ц兘鎸囨爣", example = "1", required = true)
+ private String performanceIndex;
+ @ApiModelProperty(value = "澶囨敞", example = "1", required = true)
+ private String remarks;
+ //@ApiModelProperty(value = "鏂囦欢", example = "1", required = true)
+ //private MultipartFile[] file;
+ //@ApiModelProperty(value = "鏈夋晥鍛ㄦ湡", example = "1", required = true)
+ //private String termValidity;
+}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MetricalInformationService.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MetricalInformationService.java
index eb8ad69..04ad32b 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MetricalInformationService.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MetricalInformationService.java
@@ -2,6 +2,7 @@
import com.yuanchu.limslaboratory.pojo.MetricalInformation;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.yuanchu.limslaboratory.pojo.dto.UpdatedMetricalInformationDto;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@@ -24,4 +25,6 @@
Integer deleteMetricalInformation(Integer metricalInformationId);
Integer updateMetricalInformation(MetricalInformation metricalInformation, MultipartFile file);
+
+ boolean updateMetricalInformationInfo(UpdatedMetricalInformationDto dto);
}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MetricalInformationServiceImpl.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MetricalInformationServiceImpl.java
index c52e053..ae2dc00 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MetricalInformationServiceImpl.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MetricalInformationServiceImpl.java
@@ -1,9 +1,11 @@
package com.yuanchu.limslaboratory.service.impl;
+import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.yuanchu.limslaboratory.pojo.MetricalInformation;
import com.yuanchu.limslaboratory.mapper.MetricalInformationMapper;
+import com.yuanchu.limslaboratory.pojo.dto.UpdatedMetricalInformationDto;
import com.yuanchu.limslaboratory.service.MetricalInformationService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.limslaboratory.utils.FileSaveUtil;
@@ -68,4 +70,20 @@
}
return metricalInformationMapper.updateById(metricalInformation);
}
+
+ @Override
+ public boolean updateMetricalInformationInfo(UpdatedMetricalInformationDto dto) {
+ System.out.println(dto);
+ MetricalInformation info = new MetricalInformation();
+ info.setId(dto.getId());
+ info.setRemarks(dto.getRemarks());
+ info.setPerformanceIndex(dto.getPerformanceIndex());
+ info.setResult(dto.getResult());
+ info.setUncertainty(dto.getUncertainty());
+ info.setEndDate(dto.getDate());
+ info.setUpdateTime(DateUtil.date());
+ System.out.println(info);
+ //鏂囦欢婊よ繃
+ return metricalInformationMapper.updateById(info)>0;
+ }
}
diff --git a/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml b/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
index f1af9c6..1a7b226 100644
--- a/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
+++ b/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
@@ -77,14 +77,22 @@
im.imName imName,
im.create_time imCreateTime,
im.measurement_unit imUnit,
- im.`code` imCode
+ im.`code` imCode,
+ im.id imId,
+ im.uncertainty uncertainty ,
+ im.performance_index performanceIndex ,
+ im.remarks remarks
FROM metering_plan m
LEFT JOIN `user` u ON m.create_Person = u.id
LEFT JOIN (
SELECT i.equipment_code,
i.equipment_name,
i.measuring_range,
+ im.id,
i.term_validity,
+ im.uncertainty,
+ im.performance_index,
+ im.remarks,
im.result,
im.end_date,
(SELECT NAME FROM USER WHERE id = im.user_id) imName,
@@ -114,7 +122,11 @@
(SELECT NAME FROM USER WHERE id = im.user_id) imName,
im.create_time imCreateTime,
im.measurement_unit imUnit,
- im.`code` imCode
+ im.`code` imCode,
+ im.id imId,
+ im.uncertainty uncertainty ,
+ im.performance_index performanceIndex ,
+ im.remarks remarks
FROM metrical_information im,
metering_plan m,
instrument i
@@ -144,6 +156,10 @@
<result property="measuringRange" column="measuringRange"/>
<result property="equipmentName" column="equipmentName"/>
<result property="equipmentCode" column="equipmentCode"/>
+ <result property="imId" column="imId"/>
+ <result property="performanceIndex" column="performanceIndex"/>
+ <result property="uncertainty" column="uncertainty"/>
+ <result property="remarks" column="remarks"/>
</resultMap>
<resultMap id="measureInsAndPlanMap" type="meteringPlanAndInfoAndIns">
@@ -166,6 +182,10 @@
<result property="measuringRange" column="measuringRange"/>
<result property="equipmentName" column="equipmentName"/>
<result property="equipmentCode" column="equipmentCode"/>
+ <result property="imId" column="imId"/>
+ <result property="performanceIndex" column="performanceIndex"/>
+ <result property="uncertainty" column="uncertainty"/>
+ <result property="remarks" column="remarks"/>
</collection>
</resultMap>
--
Gitblit v1.9.3