From f77a2eba10ce3f430d31a34790a8a1184c8069e6 Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期二, 22 八月 2023 11:50:02 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/PlanService.java                                 |   15 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformanceReviewServiceImpl.java        |    1 
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/InstrumentMapper.java                             |    3 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/ReportMapper.java                                 |    7 
 inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml                                   |   27 +
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/MapHandlerDto.java                              |   22 
 inspection-server/src/main/resources/mapper/InspectionMapper.xml                                                    |   18 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/QualificationRateStatisticsMapper.java            |   22 
 standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductModelMapper.java                             |    6 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/QualificationRateStatisticsController.java    |   50 +
 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/RawMaterialController.java                    |    3 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/HomeService.java                                 |   13 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductMapper.java                      |   16 
 standard-server/src/main/resources/mapper/ProductModelMapper.xml                                                    |    9 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/NonConformingFeedbackDto.java                   |    6 
 framework/src/main/java/com/yuanchu/limslaboratory/utils/MapUtil.java                                               |   36 +
 inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMapper.java                             |    9 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java                           |   13 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java                  |   56 -
 user-server/src/main/resources/mapper/UserMapper.xml                                                                |    1 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionProductServiceImpl.java           |   71 --
 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportController.java                         |   40 +
 laboratory-server/src/main/resources/mapper/InstrumentMapper.xml                                                    |   30 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java                           |   24 
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MetricalInformationController.java            |    6 
 inspection-server/src/main/resources/mapper/NonConformingFeedbackMapper.xml                                         |   41 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Inspection.java                                     |    9 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RawMaterialServiceImpl.java                 |   12 
 standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductModelServiceImpl.java                  |    9 
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java                             |    2 
 inspection-server/src/main/resources/mapper/ReportMapper.xml                                                        |   49 -
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/HomeServiceImpl.java                        |   38 +
 inspection-server/src/main/resources/mapper/PlanMapper.xml                                                          |   15 
 standard-server/src/main/resources/mapper/MaterialMapper.xml                                                        |    7 
 framework/src/main/java/com/yuanchu/limslaboratory/utils/ArrayListUtil.java                                         |  128 ++++
 inspection-server/src/main/resources/mapper/InspectionProductMapper.xml                                             |   40 +
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/ProjectNum.java                                     |   13 
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/UpdatedMetricalInformationDto.java              |   43 +
 standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java                      |   10 
 framework/src/main/java/com/yuanchu/limslaboratory/utils/JsonUtil.java                                              |   54 ++
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/QualificationRateStatisticsService.java          |   25 
 laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml                                                  |   24 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportVo.java                                    |   34 +
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MetricalInformationServiceImpl.java         |   18 
 user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java                                                 |    1 
 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/controller/InspectionController.java                     |   38 +
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java |  101 +++
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionProduct.java                              |    7 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportService.java                               |   22 
 standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java                                 |    3 
 /dev/null                                                                                                           |   37 -
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MetricalInformationService.java                  |    3 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java                        |  137 ++++
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Report.java                                         |   11 
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportServiceImpl.java                      |   38 +
 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/HomeController.java                           |   37 +
 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/NonConformingFeedback.java                          |    6 
 59 files changed, 1,288 insertions(+), 312 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/HomeController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/HomeController.java
new file mode 100644
index 0000000..04a96f4
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/HomeController.java
@@ -0,0 +1,37 @@
+package com.yuanchu.limslaboratory.controller;
+
+
+import com.yuanchu.limslaboratory.pojo.ProjectNum;
+import com.yuanchu.limslaboratory.service.HomeService;
+import com.yuanchu.limslaboratory.vo.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Service;
+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 zss
+ * @since 2023-08-03 13:03:36
+ */
+@Api(tags = "棣栭〉")
+@RestController
+@RequestMapping("/home")
+public class HomeController {
+
+    @Resource
+    HomeService homeService;
+
+    @ApiOperation("璁$畻妫�楠屼笌鏈楠岀殑鍗曞瓙涓庨」鐩殑鏁伴噺鎺ュ彛")
+    @GetMapping("/checkProjectNum")
+    public Result checkProjectNum() {
+        ProjectNum projectNum=homeService.checkProjectNum();
+        return Result.success(projectNum);
+    }
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java
index fd379d3..321f720 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java
@@ -6,6 +6,7 @@
 import java.util.*;
 
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.yuanchu.limslaboratory.mapper.UserMapper;
 import com.yuanchu.limslaboratory.pojo.Inspection;
 import com.yuanchu.limslaboratory.pojo.Report;
 import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
@@ -45,6 +46,9 @@
     @Resource
     LinkBasicInformationService linkBasicInformationService;
 
+    @Resource
+    UserMapper userMapper;
+
     @ApiOperation(value = "鏌ヨ妫�楠岀敵璇峰崟鍒楄〃")
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "pageSize", value = "椤垫暟", dataTypeClass = Integer.class, required = true),
@@ -71,10 +75,10 @@
             case 0:
                 //鍘熸潗鏂�
                 return Result.success(rawMaterialService.selectRawmaAll());
-            case 1:
+            case 2:
                 //濮旀墭鍗�
                 return Result.success(linkBasicInformationService.selectLinkAll());
-            case 2:
+            case 1:
                 //鎴愬搧妫�楠�
                 return Result.success("璇疯緭鍏ユ楠屼俊鎭�!");
         }
@@ -99,19 +103,31 @@
         return Result.success(inspectionService.selectInspectsListById(id));
     }
 
-    @ApiOperation(value = "涓婃姤(鏇存柊妫�楠岀姸鎬�)")
+    @ApiOperation(value = "閫夋嫨妫�楠岄」鐩殑璐d换浜�")
+    @GetMapping("/selectUser")
+    public Result selectUser() {
+        return Result.success(userMapper.selectUser());
+    }
+
+    @ApiOperation(value = "淇濆瓨妫�楠岄」鐩矗浠讳汉")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "妫�楠屽崟椤圭洰id", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "userProId", value = "璐d换浜篿d", dataTypeClass = Integer.class, required = true)
+    })
+    @GetMapping("/chooseUseProId")
+    public Result chooseUseProId(Integer id,Integer userProId) {
+        return Result.success(inspectionService.chooseUseProId(id,userProId));
+    }
+
+    @ApiOperation(value = "浣滃簾妫�楠屽崟")
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class, required = true)
     })
-    @PostMapping("/updateInspectsById")
-    public Result updateInspectsById(Integer id) {
-        //濡傛灉宸茬粡涓婃姤浜嗕笉鑳藉啀涓�娆′笂鎶�
-        Inspection inspection = inspectionService.getById(id);
-        if (ObjectUtils.isNotEmpty(inspection.getInspectionStatus())) {
-            return Result.fail("宸茬粡涓婃姤杩囦簡,涓嶈兘鍐嶆涓婃姤!");
-        }
-        return Result.success(inspectionService.updateInspectsById(id));
+    @PostMapping("/delInspect")
+    public Result delInspect(Integer id)  {
+        return Result.success(inspectionService.delInspect(id));
     }
 
+
 }
 
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java
index 84e6ac8..4f53cb3 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java
@@ -1,5 +1,7 @@
 package com.yuanchu.limslaboratory.controller;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.yuanchu.limslaboratory.pojo.Inspection;
 import com.yuanchu.limslaboratory.service.PlanService;
 import com.yuanchu.limslaboratory.vo.Result;
 import io.swagger.annotations.Api;
@@ -10,7 +12,6 @@
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
-
 import javax.annotation.Resource;
 
 /**
@@ -57,11 +58,30 @@
     @ApiOperation("鍒嗛厤")
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "id", value = "妫�楠岄」鐩甶d", dataTypeClass = Integer.class, required = true),
-            @ApiImplicitParam(name = "userId", value = "妫�楠屼汉id", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "userId", value = "鎵ц浜篿d", dataTypeClass = Integer.class, required = true),
             @ApiImplicitParam(name = "instrumentId", value = "璁惧id", dataTypeClass = Integer.class, required = true)
     })
     @PostMapping("/distribution")
     public Result distribution(Integer id, Integer userId, Integer instrumentId) {
         return Result.success(planService.distribution(id, userId, instrumentId));
     }
+
+    @ApiOperation("妫�楠�")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "妫�楠岄」鐩甶d", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "value", value = "妫�楠屽��", dataTypeClass = String.class)
+    })
+    @PostMapping("/check")
+    public Result check(Integer id, String value) {
+        return Result.success(planService.check(id, value));
+    }
+
+    @ApiOperation("涓婃姤")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class, required = true)
+    })
+    @PostMapping("/reported")
+    public Result reported(Integer id) {
+        return Result.success(planService.reported(id));
+    }
 }
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/controller/RawMaterialController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/RawMaterialController.java
index a5d2ce3..559238f 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/RawMaterialController.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/RawMaterialController.java
@@ -5,7 +5,6 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.limslaboratory.pojo.RawMaterial;
 import com.yuanchu.limslaboratory.service.RawMaterialService;
-import com.yuanchu.limslaboratory.utils.MyUtil;
 import com.yuanchu.limslaboratory.vo.Result;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -14,9 +13,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
-
 import org.springframework.web.bind.annotation.RestController;
-
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportAuditingController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportAuditingController.java
deleted file mode 100644
index f8b6e42..0000000
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportAuditingController.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.yuanchu.limslaboratory.controller;
-
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.yuanchu.limslaboratory.pojo.vo.ReportAuditingVo;
-import com.yuanchu.limslaboratory.service.ReportAuditingService;
-import com.yuanchu.limslaboratory.vo.Result;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-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;
-import java.util.HashMap;
-import java.util.Map;
-
-
-/**
- * <p>
- * 鍓嶇鎺у埗鍣�
- * </p>
- *
- * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
- * @since 2023-08-07
- */
-@Api(tags = "妫�楠屾ā鍧�-->鎶ュ憡瀹℃牳")
-@RestController
-@RequestMapping("/reportAuditing")
-public class ReportAuditingController {
-    /**
-     * 鏈嶅姟瀵硅薄
-     */
-    @Resource
-    private ReportAuditingService reportAuditingService;
-
-    @ApiOperation("鏌ヨ鎶ュ憡瀹℃牳鍐呭")
-    @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "page", value = "鍒濆椤�", dataTypeClass = Integer.class, required = true),
-            @ApiImplicitParam(name = "pageSize", value = "姣忎竴椤垫暟閲�", dataTypeClass = Integer.class, required = true),
-            @ApiImplicitParam(name = "status", value = "鐘舵��(涓虹┖=鍏ㄩ儴)", dataTypeClass = Integer.class),
-            @ApiImplicitParam(name = "name", value = "鎼滅储淇℃伅", dataTypeClass = String.class)
-    })
-    @GetMapping("/selectAllReportAuditing")
-    public Result selectAllReportCheck(Integer page, Integer pageSize, Integer status, String name) {
-        IPage<ReportAuditingVo> reportPage = reportAuditingService.selectAllReportAuditing(new Page<Object>(page, pageSize), status, name);
-        Map<String, Object> map = new HashMap<>();
-        map.put("total", reportPage.getTotal());
-        map.put("row", reportPage.getRecords());
-        return Result.success(map);
-    }
-
-}
-
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportController.java
index 5a3ece9..46c9563 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportController.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/ReportController.java
@@ -5,15 +5,15 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.limslaboratory.pojo.vo.ReportVo;
 import com.yuanchu.limslaboratory.service.ReportService;
+import com.yuanchu.limslaboratory.utils.JackSonUtil;
+import com.yuanchu.limslaboratory.utils.RedisUtil;
 import com.yuanchu.limslaboratory.vo.Result;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.util.HashMap;
@@ -32,9 +32,7 @@
 @RestController
 @RequestMapping("/report")
 public class ReportController {
-    /**
-     * 鏈嶅姟瀵硅薄
-     */
+
     @Resource
     private ReportService reportService;
 
@@ -54,5 +52,35 @@
         return Result.success(map);
     }
 
+    @ApiOperation("鎻愪氦")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "妫�楠屾姤鍛奿d", dataTypeClass = Integer.class, required = true)
+    })
+    @PostMapping("/submit")
+    public Result submit(Integer id) {
+        return Result.success(reportService.submit(id));
+    }
+
+    @ApiOperation("瀹℃牳")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "妫�楠屾姤鍛奿d", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "result", value = "瀹℃牳缁撹", dataTypeClass = String.class, required = true)
+    })
+    @PostMapping("/check")
+    public Result check(@RequestHeader("token") String token, Integer id, String result) throws Exception {
+        Object object = RedisUtil.get(token);
+        Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class);
+        return Result.success(reportService.check((String) unmarshal.get("name"), id, result));
+    }
+
+    @ApiOperation("鍒犻櫎")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "妫�楠屾姤鍛奿d", dataTypeClass = Integer.class, required = true)
+    })
+    @PostMapping("/delreport")
+    public Result delreport(Integer id) {
+        return Result.success(reportService.delreport(id));
+    }
+
 }
 
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMapper.java
index dd00306..5ae9960 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMapper.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMapper.java
@@ -4,9 +4,6 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.limslaboratory.pojo.Inspection;
-import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
-
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -25,5 +22,11 @@
      * @return
      */
     IPage<Map<String, Object>> selectInspectsList(Page<Object> page, String message);
+
+    //璁$畻宸叉楠屾楠屽崟鏁伴噺
+    Integer seleCountIns();
+
+    //璁$畻鏈楠岀殑鏁伴噺
+    Integer seleCountUnIns();
 }
 
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductMapper.java
index f73d82b..85a64d6 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductMapper.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductMapper.java
@@ -3,6 +3,8 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.yuanchu.limslaboratory.pojo.InspectionProduct;
 
+import java.util.List;
+
 /**
  * 鐢宠鍗曚笅鐗╂枡涓殑椤圭洰(InspectionProduct)琛ㄦ暟鎹簱璁块棶灞�
  *
@@ -11,5 +13,19 @@
  */
 public interface InspectionProductMapper extends BaseMapper<InspectionProduct> {
 
+    //鏍规嵁椤圭洰id灏嗗凡鏈夌殑妫�楠岀粨璁烘敼涓簄ull
+    void upda(Integer id);
+
+    //鏍规嵁妫�楠屽崟id鏌ヨ妫�楠岄」鐩殑妫�楠岀粨鏋�
+    List<Integer> getresult(Integer id);
+
+    //鏍规嵁妫�楠屾牱鍝乮d浣滃簾妫�楠岄」鐩�
+    void updat(Integer id);
+
+    //璁$畻宸叉楠岄」鐩暟閲�
+    Integer seleCountInspro();
+
+    //璁$畻鏈楠岄」鐩暟閲�
+    Integer seleCountUnInspro();
 }
 
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/mapper/ReportMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/ReportMapper.java
index c5f3504..d22692c 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/ReportMapper.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/ReportMapper.java
@@ -4,7 +4,6 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.limslaboratory.pojo.Report;
-import com.yuanchu.limslaboratory.pojo.vo.ReportAuditingVo;
 import com.yuanchu.limslaboratory.pojo.vo.ReportVo;
 
 /**
@@ -24,10 +23,6 @@
      */
     IPage<ReportVo> selectAllReport(Page<Object> page, Integer status, String name);
 
-    /**
-     * 鏌ヨ鎶ュ憡瀹℃牳
-     * @return
-     */
-    IPage<ReportAuditingVo> selectAllReportAuditing(Page<Object> page, Integer status, String name);
+
 }
 
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/NonConformingFeedbackDto.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/NonConformingFeedbackDto.java
index 5ed3e80..1ed54cf 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/NonConformingFeedbackDto.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/NonConformingFeedbackDto.java
@@ -24,12 +24,12 @@
     @ApiModelProperty(value = "鍒嗛〉澶氬皯鏉�", example = "10", required = true)
     private Long pageNum;
 
-    @ApiModelProperty(value = "鏍峰搧缂栧彿", example = "1680929494813868034", required = true)
+    @ApiModelProperty(value = "鏍峰搧缂栧彿", example = "1680929494813868034")
     private String materialCode;
 
-    @ApiModelProperty(value = "鏍峰搧鍚嶇О", example = "鐢电嚎鐢电紗", required = true)
+    @ApiModelProperty(value = "鏍峰搧鍚嶇О", example = "鐢电嚎鐢电紗")
     private String materialName;
 
-    @ApiModelProperty(value = "鐢宠鍗曞彿", example = "XG-UGYUGH", required = true)
+    @ApiModelProperty(value = "鐢宠鍗曞彿", example = "XG-UGYUGH")
     private String inspectionCode;
 }
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/pojo/Inspection.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Inspection.java
index 3af517c..bbaf1c4 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Inspection.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Inspection.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
 import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -46,9 +47,7 @@
      **/
     private Integer inspectionStatus;
 
-    /**
-     * ${column.comment}
-     **/
+    @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
     private Integer state;
 
     /**
@@ -59,9 +58,7 @@
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date createTime;
 
-    /**
-     * ${column.comment}
-     **/
+
     @TableField(fill = FieldFill.INSERT_UPDATE)
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionProduct.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionProduct.java
index 61d8e22..64d49bb 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionProduct.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionProduct.java
@@ -84,7 +84,7 @@
     private Integer inspectionMaterialId;
 
     /**
-     * 鍏宠仈 鐢ㄦ埛id 璇曢獙鍛�
+     * 鍏宠仈 鐢ㄦ埛id 鎵ц浜�
      **/
     private Integer userId;
 
@@ -92,5 +92,10 @@
      * 鍏宠仈 璁惧id
      **/
     private Integer instrumentId;
+
+    /**
+     * 鍏宠仈 鐢ㄦ埛id 璐d换浜�
+     **/
+    private Integer userProId;
 }
 
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/NonConformingFeedback.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/NonConformingFeedback.java
index 845460b..29dffc2 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/NonConformingFeedback.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/NonConformingFeedback.java
@@ -18,6 +18,8 @@
 
     private static final long serialVersionUID = 1L;
 
+    private Integer id;
+
     /**
      * 鏍峰搧缂栧彿
      */
@@ -50,4 +52,8 @@
      */
     private String specifications;
 
+    /**
+     * 缁撹0:涓嶅悎鏍� ; 1:鍚堟牸
+     */
+    private Integer result;
 }
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/ProjectNum.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/ProjectNum.java
new file mode 100644
index 0000000..3f9c2e1
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/ProjectNum.java
@@ -0,0 +1,13 @@
+package com.yuanchu.limslaboratory.pojo;
+
+import lombok.Data;
+
+@Data
+public class ProjectNum {
+
+    private int insNum;         //宸叉楠岀殑妫�楠屽崟鏁伴噺
+    private int insUnNum;       //鏈楠岀殑妫�楠屽崟鏁伴噺
+    private int insproNum;      //宸叉楠岀殑妫�楠岄」鐩暟閲�
+    private int insproUnNum;    //鏈楠岀殑妫�楠岄」鐩暟閲�
+
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Report.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Report.java
index 0ecf6b6..07e3da7 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Report.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Report.java
@@ -44,14 +44,21 @@
     @ApiModelProperty(value = "鍏宠仈 鐢宠琛╥d")
     private Integer inspectionId;
 
+    @ApiModelProperty(value = "瀹℃牳鏃堕棿", hidden = true)
+    @JsonFormat(pattern = "yyyy-MM-dd ", timezone = "GMT+8")
+    private Date checkTime;
+
     @TableField(fill = FieldFill.INSERT)
     @ApiModelProperty(value = "鍒涘缓鏃堕棿", hidden = true)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd ", timezone = "GMT+8")
     private Date createTime;
 
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd ", timezone = "GMT+8")
     @TableField(fill = FieldFill.INSERT_UPDATE)
     private Date updateTime;
 
+    @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
+    private Integer state;
+
 }
 
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportAuditingVo.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportAuditingVo.java
deleted file mode 100644
index 7e7ffd1..0000000
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportAuditingVo.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.yuanchu.limslaboratory.pojo.vo;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * 鎶ュ憡瀹℃牳
- */
-@Data
-public class ReportAuditingVo {
-    @ApiModelProperty(value = "鏍峰搧缂栧彿")
-    @JsonSerialize
-    private String materialCode;
-    @ApiModelProperty(value = "鎶ュ憡鍗曞彿")
-    @JsonSerialize
-    private String reportCode;
-    @ApiModelProperty(value = "鏍峰搧鍚嶇О")
-    @JsonSerialize
-    private String materialName;
-    @ApiModelProperty(value = "瀹℃壒鐘舵�� 0锛氬緟鎻愪氦 1锛氬緟閫氳繃")
-    @JsonSerialize
-    private Integer status;
-    @ApiModelProperty(value = "瀹℃壒浜�")
-    @JsonSerialize
-    private Integer approver;
-    @ApiModelProperty(value = "鎻愪氦鏃ユ湡")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    private Date submitTime;
-    @ApiModelProperty(value = "瀹℃牳鏃ユ湡")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    private Date checkTime;
-}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportVo.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportVo.java
index 9c7849e..478437d 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportVo.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/ReportVo.java
@@ -1,32 +1,54 @@
 package com.yuanchu.limslaboratory.pojo.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
+import java.util.Date;
 
 /**
  * 妫�楠屾姤鍛�
  */
 @Data
 public class ReportVo {
+
+    @ApiModelProperty(value = "妫�楠屾姤鍛奿d")
+    @JsonSerialize
+    private Integer id;
+
     @ApiModelProperty(value = "鏍峰搧缂栧彿")
     @JsonSerialize
     private String materialCode;
+
     @ApiModelProperty(value = "鎶ュ憡鍗曞彿")
     @JsonSerialize
     private String reportCode;
-    @ApiModelProperty(value = "鐢宠鍗曞彿")
+
+    @ApiModelProperty(value = "妫�楠岀敵璇峰崟鍙�")
     @JsonSerialize
     private String inspectionCode;
-    @ApiModelProperty(value = "瀹℃壒浜�")
+
+    @ApiModelProperty(value = "鏍峰搧鍚嶇О")
     @JsonSerialize
-    private Integer approver;
-    @ApiModelProperty(value = "瀹℃壒鐘舵�� 0锛氬緟鎻愪氦 1锛氬緟瀹℃牳锛�2锛氬凡瀹℃牳")
-    @JsonSerialize
-    private Integer status;
+    private String materialName;
+
     @ApiModelProperty(value = "妫�楠岀粨璁�")
     @JsonSerialize
     private String conclusion;
+
+    @ApiModelProperty(value = "瀹℃壒鐘舵�� 0锛氬緟鎻愪氦 1锛氬緟瀹℃牳锛�2锛氬凡閫氳繃 3:涓嶉�氳繃")
+    @JsonSerialize
+    private Integer status;
+
+    @ApiModelProperty(value = "瀹℃壒浜�")
+    @JsonSerialize
+    private Integer approver;
+
+    @ApiModelProperty(value = "瀹℃牳鏃堕棿", hidden = true)
+    @JsonFormat(pattern = "yyyy-MM-dd ", timezone = "GMT+8")
+    private Date checkTime;
+
     @ApiModelProperty(value = "缂栧埗浜�")
     @JsonSerialize
     private String name;
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/HomeService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/HomeService.java
new file mode 100644
index 0000000..beb6b24
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/HomeService.java
@@ -0,0 +1,13 @@
+package com.yuanchu.limslaboratory.service;
+
+import com.yuanchu.limslaboratory.pojo.ProjectNum;
+
+public interface HomeService {
+
+    /**
+     * 璁$畻妫�楠屼笌鏈楠岀殑鍗曞瓙涓庨」鐩殑鏁伴噺鎺ュ彛
+     * @return
+     */
+    ProjectNum checkProjectNum();
+
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java
index e95c474..4c2fec0 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java
@@ -43,11 +43,20 @@
      */
     InspectDetailVo selectInspectsListById(Integer id);
 
+
     /**
-     * 涓婃姤(鏇存柊妫�楠屽崟妫�楠岀粨鏋�)
+     * 浣滃簾妫�楠屽崟
      * @param id
      * @return
      */
-    boolean updateInspectsById(Integer id);
+    String delInspect(Integer id);
+
+    /**
+     * 淇濆瓨妫�楠岄」鐩矗浠讳汉
+     * @param id
+     * @param userProId
+     * @return
+     */
+    String chooseUseProId(Integer id, Integer userProId);
 }
 
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/PlanService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/PlanService.java
index 65c7ba6..8c870a6 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/PlanService.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/PlanService.java
@@ -35,4 +35,19 @@
      * @return
      */
     String distribution(Integer id, Integer userId, Integer instrumentId);
+
+    /**
+     * 妫�楠�
+     * @param id
+     * @param value
+     * @return
+     */
+    String check(Integer id, String value);
+
+    /**
+     * 涓婃姤
+     * @param id
+     * @return
+     */
+    String reported(Integer id);
 }
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/ReportAuditingService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportAuditingService.java
deleted file mode 100644
index 362ee97..0000000
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportAuditingService.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.yuanchu.limslaboratory.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.yuanchu.limslaboratory.pojo.Report;
-import com.yuanchu.limslaboratory.pojo.vo.ReportAuditingVo;
-
-/**
- * <p>
- * 鏈嶅姟绫�
- * </p>
- *
- * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
- * @since 2023-08-07
- */
-public interface ReportAuditingService extends IService<Report> {
-
-    /**
-     * 椤圭洰瀹℃牳琛ㄦ煡璇�
-     * @return
-     */
-    IPage<ReportAuditingVo> selectAllReportAuditing(Page<Object> page, Integer status, String name);
-}
-
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportService.java
index f8a1f21..4e6476f 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportService.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/ReportService.java
@@ -23,5 +23,27 @@
      * @return
      */
     IPage<ReportVo> selectAllReport(Page<Object> page, Integer status, String name);
+
+    /**
+     * 鎻愪氦
+     * @param id
+     * @return
+     */
+    String submit(Integer id);
+
+    /**
+     * 瀹℃牳
+     * @param name
+     * @param id
+     * @return
+     */
+    String check(String name, Integer id, String result);
+
+    /**
+     * 鍒犻櫎
+     * @param id
+     * @return
+     */
+    String delreport(Integer id);
 }
 
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/HomeServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/HomeServiceImpl.java
new file mode 100644
index 0000000..e08a03e
--- /dev/null
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/HomeServiceImpl.java
@@ -0,0 +1,38 @@
+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.service.HomeService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+
+@Service
+public class HomeServiceImpl implements HomeService {
+
+    @Resource
+    InspectionMapper inspectionMapper;
+
+    @Resource
+    InspectionProductMapper inspectionProductMapper;
+
+
+    //璁$畻妫�楠屼笌鏈楠岀殑鍗曞瓙涓庨」鐩殑鏁伴噺鎺ュ彛
+    @Override
+    public ProjectNum checkProjectNum() {
+        ProjectNum projectNum = new ProjectNum();
+        //宸叉楠岀殑妫�楠屽崟鏁伴噺
+        projectNum.setInsNum(inspectionMapper.seleCountIns());
+        //鏈楠岀殑妫�楠屽崟鏁伴噺
+        projectNum.setInsUnNum(inspectionMapper.seleCountUnIns());
+        //宸叉楠岀殑妫�楠岄」鐩暟閲�
+        projectNum.setInsproNum(inspectionProductMapper.seleCountInspro());
+        //鏈楠岀殑妫�楠岄」鐩暟閲�
+        projectNum.setInsproUnNum(inspectionProductMapper.seleCountUnInspro());
+        return projectNum;
+    }
+}
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionProductServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionProductServiceImpl.java
index 7e63ffb..0c4f613 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionProductServiceImpl.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionProductServiceImpl.java
@@ -1,14 +1,13 @@
 package com.yuanchu.limslaboratory.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.limslaboratory.mapper.InspectionProductMapper;
 import com.yuanchu.limslaboratory.pojo.InspectionProduct;
-import com.yuanchu.limslaboratory.pojo.vo.InsProductVo;
 import com.yuanchu.limslaboratory.service.InspectionProductService;
 import org.springframework.stereotype.Service;
 
-import javax.annotation.Resource;
+
 
 /**
  * 鐢宠鍗曚笅鐗╂枡涓殑椤圭洰(InspectionProduct)琛ㄦ湇鍔″疄鐜扮被
@@ -19,72 +18,6 @@
 @Service
 public class InspectionProductServiceImpl extends ServiceImpl<InspectionProductMapper, InspectionProduct> implements InspectionProductService {
 
-    @Resource
-    InspectionProductMapper inspectionProductMapper;
 
-   /* //鏇存柊妫�楠岄」鐩�
-    @Override
-    public boolean updateInsProduct(Integer userId, InspectionProduct inspectionProduct) {
-        //璧嬪�兼楠屽憳id
-        inspectionProduct.setUserId(userId);
-        //鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�0
-        String testValue = inspectionProduct.getTestValue();//妫�楠屽��
-        String required = inspectionProduct.getRequired();//鏍囧噯鍊�
-        String internal = inspectionProduct.getInternal();//鍐呮帶鍊�
-        inspectionProduct.setTestState(checkValues(required, internal, testValue));
-        //鏍规嵁妫�楠岄」鐩悕鍜屽叧鑱旂殑妫�楠岀墿鏂檌d鏉ユ煡璇㈡楠岄」鐩殑鏁版嵁
-        LambdaUpdateWrapper<InspectionProduct> updateWrapper = new LambdaUpdateWrapper<>();
-        updateWrapper.eq(InspectionProduct::getInspectionMaterialId, inspectionProduct.getInspectionMaterialId())
-                .eq(InspectionProduct::getName, inspectionProduct.getName());
-        inspectionProductMapper.update(inspectionProduct, updateWrapper);
-        return true;
-    }*/
-
-    /*鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�*/
-    private int checkValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
-        boolean isStandardValueSatisfied = isValueSatisfied(standardValueStr, detectionValueStr);
-        boolean isControlValueSatisfied = isValueSatisfied(controlValueStr, detectionValueStr);
-
-        if (isStandardValueSatisfied && isControlValueSatisfied) {
-            return 1;
-        } else {
-            return 0;
-        }
-    }
-
-    private boolean isValueSatisfied(String valueStr, String detectionValueStr) {
-        String substring = valueStr.substring(1, 2);
-        if (substring.equals("=")) {
-            String operator = valueStr.substring(0, 2);
-            Double standardValue = Double.parseDouble(valueStr.substring(2));
-            Double detectionValue = Double.parseDouble(detectionValueStr);
-            switch (operator) {
-                case ">=":
-                    return detectionValue >= standardValue;
-                case "<=":
-                    return detectionValue <= standardValue;
-                default:
-                    return false;
-            }
-        } else {
-            String operator = valueStr.substring(0, 1);
-            Double standardValue = Double.parseDouble(valueStr.substring(1));
-            Double detectionValue = Double.parseDouble(detectionValueStr);
-            switch (operator) {
-                case ">":
-                    return detectionValue > standardValue;
-                case "鈮�":
-                    return detectionValue >= standardValue;
-                case "鈮�":
-                    return detectionValue <= standardValue;
-                case "<":
-                    return detectionValue < standardValue;
-                case "=":
-                    return detectionValue.equals(standardValue);
-                default:
-                    return false;
-            }
-        }
-    }
 }
 
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
index 66bfb6e..9187912 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
@@ -2,7 +2,6 @@
 
 import cn.hutool.core.lang.Snowflake;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -13,7 +12,6 @@
 import com.yuanchu.limslaboratory.pojo.vo.InspectDetailVo;
 import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
 import com.yuanchu.limslaboratory.service.*;
-import com.yuanchu.limslaboratory.utils.MyUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -61,8 +59,6 @@
     @Resource
     UserMapper userMapper;
 
-    @Resource
-    ReportMapper reportMapper;
 
     /**
      * 鏌ヨ妫�楠岀敵璇峰崟鍒楄〃
@@ -188,36 +184,34 @@
         return inspectDetailVo;
     }
 
-    //鏇存柊妫�楠屽崟妫�楠岀粨鏋�
+    //浣滃簾妫�楠屽崟
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public boolean updateInspectsById(Integer id) {
-        //鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀姸鎬佸拰妫�楠岀粨璁�
-        InspectDetailVo inspectDetailVo = selectInspectsListById(id);
-        Inspection inspection = Inspection.builder()
-                .id(id)
-                .inspectionStatus(inspectDetailVo.getInspectionStatus())
-                .build();
+    public String delInspect(Integer id) {
+        /*浣滃簾妫�楠屽崟*/
+        Inspection inspection = new Inspection();
+        inspection.setId(id);
+        inspection.setState(0);
         inspectionMapper.updateById(inspection);
-        //鐢熸垚鎶ュ憡鍗�
-        Report report = new Report();
-        //鐢熸垚鎶ュ憡鍗曞彿
-        String code = MyUtil.getTimeSixNumberCode("BG","BG");
-        //鑾峰彇妫�楠岀粨璁�
-        String conclusion = "";
-        Inspection inspection1 = inspectionMapper.selectById(id);
-        if (inspection1.getInspectionStatus().equals(1)) {
-            conclusion = "鍚堟牸";
-        }else {
-            conclusion = "涓嶅悎鏍�";
-        }
-        report.setCode(code);
-        report.setStatus(0);
-        report.setConclusion(conclusion);
-        report.setInspectionId(id);
-        reportMapper.insert(report);
-
-        return true;
+        /*浣滃簾妫�楠屾牱鍝�*/
+        InspectionMaterial inspectionMaterial = inspectionMaterialMapper.selectOne(Wrappers.<InspectionMaterial>query().eq("inspection_id", id));
+        inspectionMaterial.setState(0);
+        inspectionMaterialMapper.updateById(inspectionMaterial);
+        /*浣滃簾妫�楠岄」鐩�*/
+        inspectionProductMapper.updat(inspectionMaterial.getId());
+        return "浣滃簾鎴愬姛!";
     }
+
+    //淇濆瓨妫�楠岄」鐩矗浠讳汉
+    @Override
+    public String chooseUseProId(Integer id, Integer userProId) {
+        InspectionProduct inspectionProduct = new InspectionProduct();
+        inspectionProduct.setId(id);
+        inspectionProduct.setUserProId(userProId);
+        inspectionProductMapper.updateById(inspectionProduct);
+        return "淇濆瓨鎴愬姛!";
+    }
+
+
 }
 
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformanceReviewServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformanceReviewServiceImpl.java
index 8fc347c..97d000f 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformanceReviewServiceImpl.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/NonConformanceReviewServiceImpl.java
@@ -10,7 +10,6 @@
 import com.yuanchu.limslaboratory.service.NonConformanceReviewService;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
-
 import javax.annotation.Resource;
 
 /**
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java
index 8eb52e3..94334c3 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java
@@ -1,14 +1,13 @@
 package com.yuanchu.limslaboratory.service.impl;
 
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.yuanchu.limslaboratory.mapper.*;
-import com.yuanchu.limslaboratory.pojo.InspectionProduct;
-import com.yuanchu.limslaboratory.pojo.Instrument;
-import com.yuanchu.limslaboratory.pojo.User;
-import com.yuanchu.limslaboratory.service.InstrumentService;
+import com.yuanchu.limslaboratory.pojo.*;
 import com.yuanchu.limslaboratory.service.PlanService;
+import com.yuanchu.limslaboratory.utils.MyUtil;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -37,10 +36,16 @@
     @Resource
     InstrumentMapper instrumentMapper;
 
+    @Resource
+    ReportMapper reportMapper;
+
+    @Resource
+    InspectionMapper inspectionMapper;
+
     //鏌ヨ妫�楠岃鍒�
     @Override
-    public  List<Map<String,Object>> selectAllPlan(String code , String beginTime, String endTime,Integer status) {
-        return planMapper.selectAllPlan(code,beginTime,endTime,status);
+    public List<Map<String, Object>> selectAllPlan(String code, String beginTime, String endTime, Integer status) {
+        return planMapper.selectAllPlan(code, beginTime, endTime, status);
     }
 
     //鍒嗛厤-->閫夋嫨妫�楠屼汉
@@ -52,7 +57,7 @@
     //鍒嗛厤-->閫夋嫨璁惧
     @Override
     public List<Map<String, Object>> chooseinstum() {
-        return null;
+        return instrumentMapper.chooseinstum();
     }
 
     //鍒嗛厤浜哄憳涓庤澶�
@@ -60,9 +65,123 @@
     public String distribution(Integer id, Integer userId, Integer instrumentId) {
         InspectionProduct inspectionProduct = new InspectionProduct();
         inspectionProduct.setId(id);
+        //鎵ц浜�
         inspectionProduct.setUserId(userId);
         inspectionProduct.setInstrumentId(instrumentId);
         inspectionProductMapper.updateById(inspectionProduct);
         return "鍒嗛厤瀹屾垚!";
     }
+
+    //妫�楠�
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String check(Integer id, String value) {
+        //濡傛灉妫�楠屽�间笉涓虹┖
+        if (StringUtils.isNotBlank(value)) {
+            InspectionProduct inspectionProduct = inspectionProductMapper.selectById(id);
+            //鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�0
+            String required = inspectionProduct.getRequired();//鏍囧噯鍊�
+            String internal = inspectionProduct.getInternal();//鍐呮帶鍊�
+            inspectionProduct.setTestValue(value);
+            inspectionProduct.setTestState(checkValues(required, internal, value));
+            inspectionProductMapper.updateById(inspectionProduct);
+        } else {
+            //濡傛灉妫�楠屽�间负绌�,灏嗗師鏈夌殑妫�楠岀粨璁鸿鐩栦负null
+            inspectionProductMapper.upda(id);
+        }
+        return "鎻愪氦鎴愬姛!";
+    }
+
+    //涓婃姤
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String reported(Integer id) {
+        /*鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀粨璁�*/
+        //鍏堝垽鏂楠岀粨鏋�
+        List<Integer> results = inspectionProductMapper.getresult(id);
+        int count = 0;
+        for (Integer result : results) {
+            if (result != null && result==1) {
+                count++;
+            }
+        }
+        //濡傛灉妫�楠岄」鐩腑鐨勭粨璁哄寘鍚笉鍚堟牸鍒欐楠屽崟涓嶅悎鏍�
+        if (results.contains(0)) {
+            Inspection inspection = new Inspection();
+            inspection.setId(id);
+            inspection.setInspectionStatus(0);
+            inspectionMapper.updateById(inspection);
+        } else if (count == results.size()) {
+            Inspection inspection = new Inspection();
+            inspection.setId(id);
+            inspection.setInspectionStatus(1);
+            inspectionMapper.updateById(inspection);
+        } else return "椤圭洰鏈楠屽畬!";
+        //鐢熸垚鎶ュ憡鍗�
+        Report report = new Report();
+        //鐢熸垚鎶ュ憡鍗曞彿
+        String recode = MyUtil.getTimeSixNumberCode("BG", "BG");
+        //鑾峰彇妫�楠岀粨璁�
+        String conclusion = "";
+        Inspection inspection = inspectionMapper.selectById(id);
+        if (inspection.getInspectionStatus().equals(1)) {
+            conclusion = "鍚堟牸";
+        } else {
+            conclusion = "涓嶅悎鏍�";
+        }
+        report.setCode(recode);
+        report.setStatus(0);
+        report.setConclusion(conclusion);
+        report.setInspectionId(id);
+        reportMapper.insert(report);
+        return "涓婃姤鎴愬姛!";
+    }
+
+
+    /*鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�*/
+    private int checkValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
+        boolean isStandardValueSatisfied = isValueSatisfied(standardValueStr, detectionValueStr);
+        boolean isControlValueSatisfied = isValueSatisfied(controlValueStr, detectionValueStr);
+
+        if (isStandardValueSatisfied && isControlValueSatisfied) {
+            return 1;
+        } else {
+            return 0;
+        }
+    }
+
+    private boolean isValueSatisfied(String valueStr, String detectionValueStr) {
+        String substring = valueStr.substring(1, 2);
+        if (substring.equals("=")) {
+            String operator = valueStr.substring(0, 2);
+            Double standardValue = Double.parseDouble(valueStr.substring(2));
+            Double detectionValue = Double.parseDouble(detectionValueStr);
+            switch (operator) {
+                case ">=":
+                    return detectionValue >= standardValue;
+                case "<=":
+                    return detectionValue <= standardValue;
+                default:
+                    return false;
+            }
+        } else {
+            String operator = valueStr.substring(0, 1);
+            Double standardValue = Double.parseDouble(valueStr.substring(1));
+            Double detectionValue = Double.parseDouble(detectionValueStr);
+            switch (operator) {
+                case ">":
+                    return detectionValue > standardValue;
+                case "鈮�":
+                    return detectionValue >= standardValue;
+                case "鈮�":
+                    return detectionValue <= standardValue;
+                case "<":
+                    return detectionValue < standardValue;
+                case "=":
+                    return detectionValue.equals(standardValue);
+                default:
+                    return false;
+            }
+        }
+    }
 }
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/java/com/yuanchu/limslaboratory/service/impl/RawMaterialServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RawMaterialServiceImpl.java
index 7b93cf3..de3cc31 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RawMaterialServiceImpl.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RawMaterialServiceImpl.java
@@ -1,24 +1,15 @@
 package com.yuanchu.limslaboratory.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.yuanchu.limslaboratory.pojo.Instrument;
 import com.yuanchu.limslaboratory.pojo.RawMaterial;
 import com.yuanchu.limslaboratory.mapper.RawMaterialMapper;
-import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
 import com.yuanchu.limslaboratory.service.RawMaterialService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
-
 import javax.annotation.Resource;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.time.LocalDate;
-import java.util.Date;
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
 
 /**
@@ -37,7 +28,6 @@
 
     /**
      * 鍒嗛〉鏌ヨ
-     *
      * @param materialCoding
      * @param materialName
      * @param condition
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportAuditingServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportAuditingServiceImpl.java
deleted file mode 100644
index df8e8e4..0000000
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportAuditingServiceImpl.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.yuanchu.limslaboratory.service.impl;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.yuanchu.limslaboratory.mapper.ReportMapper;
-import com.yuanchu.limslaboratory.pojo.Report;
-import com.yuanchu.limslaboratory.pojo.vo.ReportAuditingVo;
-import com.yuanchu.limslaboratory.service.ReportAuditingService;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-
-/**
- * <p>
- * 鏈嶅姟瀹炵幇绫�
- * </p>
- *
- * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
- * @since 2023-08-07
- */
-@Service
-public class ReportAuditingServiceImpl extends ServiceImpl<ReportMapper, Report> implements ReportAuditingService {
-
-    @Resource
-    private ReportMapper reportMapper;
-
-    /**
-     * 椤圭洰瀹℃牳琛ㄦ煡璇�
-     * @return
-     */
-    @Override
-    public IPage<ReportAuditingVo> selectAllReportAuditing(Page<Object> page, Integer status, String name) {
-        return reportMapper.selectAllReportAuditing(page, status, name);
-    }
-}
-
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportServiceImpl.java
index 702f2ae..dec4ee1 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportServiceImpl.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ReportServiceImpl.java
@@ -7,10 +7,9 @@
 import com.yuanchu.limslaboratory.pojo.Report;
 import com.yuanchu.limslaboratory.pojo.vo.ReportVo;
 import com.yuanchu.limslaboratory.service.ReportService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-
 import javax.annotation.Resource;
+import java.util.Date;
 
 /**
  * <p>
@@ -35,5 +34,40 @@
         return reportMapper.selectAllReport(page, status, name);
     }
 
+    //鎻愪氦
+    @Override
+    public String submit(Integer id) {
+        Report report = new Report();
+        report.setId(id);
+        report.setStatus(1);
+        reportMapper.updateById(report);
+        return "鎻愪氦鎴愬姛!";
+    }
+
+    //瀹℃牳
+    @Override
+    public String check(String name, Integer id, String result) {
+        Report report = new Report();
+        report.setId(id);
+        report.setApprover(name);
+        report.setCheckTime(new Date());
+        if (result.equals("閫氳繃")){
+            report.setStatus(2);
+        }else if (result.equals("涓嶉�氳繃")){
+            report.setStatus(3);
+        }
+        reportMapper.updateById(report);
+        return "瀹℃牳鎴愬姛!";
+    }
+
+    @Override
+    public String delreport(Integer id) {
+        Report report = new Report();
+        report.setId(id);
+        report.setState(0);
+        reportMapper.updateById(report);
+        return "鍒犻櫎鎴愬姛!";
+    }
+
 }
 
diff --git a/inspection-server/src/main/resources/mapper/InspectionMapper.xml b/inspection-server/src/main/resources/mapper/InspectionMapper.xml
index 6d7526d..5314b40 100644
--- a/inspection-server/src/main/resources/mapper/InspectionMapper.xml
+++ b/inspection-server/src/main/resources/mapper/InspectionMapper.xml
@@ -20,10 +20,26 @@
         from lims_laboratory.inspection i
         join lims_laboratory.user u on i.user_id = u.id
         join lims_laboratory.inspection_material im on i.id = im.inspection_id
-        where   i.state=1
+        where i.state=1
         <if test="message!=null">
             and i.code like concat('%', #{message}, '%')
             or im.name like concat('%', #{message}, '%')
         </if>
     </select>
+
+    <!--璁$畻妫�楠岀殑妫�楠屽崟鏁伴噺-->
+    <select id="seleCountIns" resultType="java.lang.Integer">
+        select count(id)
+        from lims_laboratory.inspection
+        where state = 1
+          and inspection_status in (0, 1)
+    </select>
+
+    <!--璁$畻鏈楠岀殑妫�楠屽崟鏁伴噺-->
+    <select id="seleCountUnIns" resultType="java.lang.Integer">
+        select count(id)
+        from lims_laboratory.inspection
+        where state = 1
+          and inspection_status is null
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/inspection-server/src/main/resources/mapper/InspectionProductMapper.xml b/inspection-server/src/main/resources/mapper/InspectionProductMapper.xml
new file mode 100644
index 0000000..a04eeab
--- /dev/null
+++ b/inspection-server/src/main/resources/mapper/InspectionProductMapper.xml
@@ -0,0 +1,40 @@
+<?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.InspectionProductMapper">
+    <update id="upda">
+        update lims_laboratory.inspection_product
+        set test_state=null
+        where id = #{id}
+          and state = 1
+    </update>
+
+    <!--鏍规嵁妫�楠屽崟id鏌ヨ妫�楠岄」鐩殑妫�楠岀粨鏋�-->
+    <select id="getresult" resultType="java.lang.Integer">
+        select test_state
+        from lims_laboratory.inspection_product
+        where state = 1
+          and inspection_material_id = (select id from lims_laboratory.inspection_material where inspection_id = #{id})
+    </select>
+    <!--鏍规嵁妫�楠屾牱鍝乮d浣滃簾妫�楠岄」鐩�-->
+    <update id="updat">
+        update lims_laboratory.inspection_product
+        set state=0
+        where inspection_material_id = #{id}
+    </update>
+
+    <!--璁$畻宸叉楠岄」鐩暟閲�-->
+    <select id="seleCountInspro" resultType="java.lang.Integer">
+        select count(id)
+        from lims_laboratory.inspection_product
+        where state = 1
+          and test_state in (0, 1)
+    </select>
+
+    <!--璁$畻鏈楠岄」鐩暟閲�-->
+    <select id="seleCountUnInspro" resultType="java.lang.Integer">
+        select count(id)
+        from lims_laboratory.inspection_product
+        where state = 1
+          and test_state is null
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/inspection-server/src/main/resources/mapper/NonConformingFeedbackMapper.xml b/inspection-server/src/main/resources/mapper/NonConformingFeedbackMapper.xml
index 2fb25ac..dbc4fe2 100644
--- a/inspection-server/src/main/resources/mapper/NonConformingFeedbackMapper.xml
+++ b/inspection-server/src/main/resources/mapper/NonConformingFeedbackMapper.xml
@@ -1,35 +1,34 @@
 <?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.NonConformingFeedbackMapper">
-
-    <select id="selectNonConformingFeedback" resultType="nonConformingFeedback" parameterType="com.yuanchu.limslaboratory.pojo.Dto.NonConformingFeedbackDto">
-        SELECT
-            im.`code` materialCode,
-            im.`name` materialName,
-            i.`code` inspectionCode,
-            i.create_time createTime,
-            u.`name` testManager,
-            im.specifications specifications
+    <select id="selectNonConformingFeedback" resultType="nonConformingFeedback"
+            parameterType="com.yuanchu.limslaboratory.pojo.Dto.NonConformingFeedbackDto">
+        SELECT im.id,
+        im.`code` materialCode,
+        im.`name` materialName,
+        i.`code` inspectionCode,
+        i.create_time createTime,
+        u.`name` testManager,
+        im.specifications specifications,
+        inspection_status result
         FROM
-            inspection i,
-            inspection_material im,
-            `user` u
+        lims_laboratory.inspection i,
+        lims_laboratory.inspection_material im,
+        lims_laboratory.`user` u
         WHERE
-            1 = 1
-          AND i.id = im.inspection_id
-          AND i.user_id = u.id
+        i.id = im.inspection_id
+        AND i.user_id = u.id
         <if test="nonConformingFeedbackDto.materialCode!=null and nonConformingFeedbackDto.materialCode!=''">
-            and  im.`code` like concat("%",#{nonConformingFeedbackDto.materialCode},"%")
+            and im.`code` like concat('%',#{nonConformingFeedbackDto.materialCode},'%')
         </if>
         <if test="nonConformingFeedbackDto.materialName!=null and nonConformingFeedbackDto.materialName!=''">
-            and im.`name` like concat("%",#{nonConformingFeedbackDto.materialName},"%")
+            and im.`name` like concat('%',#{nonConformingFeedbackDto.materialName},'%')
         </if>
         <if test="nonConformingFeedbackDto.inspectionCode!=null and nonConformingFeedbackDto.inspectionCode!=''">
-            and im.specifications like concat("%",#{nonConformingFeedbackDto.inspectionCode},"%")
+            and im.specifications like concat('%',#{nonConformingFeedbackDto.inspectionCode},'%')
         </if>
-          and i.state=1
-          and im.state=1
+        and i.state=1
+        and im.state=1
         and i.inspection_status =0
     </select>
-
 </mapper>
\ No newline at end of file
diff --git a/inspection-server/src/main/resources/mapper/PlanMapper.xml b/inspection-server/src/main/resources/mapper/PlanMapper.xml
index 16f3557..bf79c9d 100644
--- a/inspection-server/src/main/resources/mapper/PlanMapper.xml
+++ b/inspection-server/src/main/resources/mapper/PlanMapper.xml
@@ -1,19 +1,17 @@
 <?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.PlanMapper">
-    <resultMap id="selectAllPlanMap" type="map" >
+    <resultMap id="selectAllPlanMap" type="map">
         <id property="code" column="code"/>
+        <result property="id" column="id"/>
+        <result property="samplename" column="samplename"/>
         <result property="inspectionStatus" column="inspectionStatus"/>
         <result property="startTime" column="startTime"/>
         <result property="endTime" column="endTime"/>
-        <collection property="father" resultMap="selectAllPlanMapTowMap" javaType="List"/>
-    </resultMap>
-    <resultMap id="selectAllPlanMapTowMap" type="map">
-        <id property="samplename" column="samplename"/>
         <collection property="chldren" resultMap="selectAllPlanMapTowsMap" javaType="List"/>
     </resultMap>
     <resultMap id="selectAllPlanMapTowsMap" type="map">
-        <id property="id" column="id"/>
+        <id property="pid" column="pid"/>
         <result property="name" column="name"/>
         <result property="unit" column="unit"/>
         <result property="required" column="required"/>
@@ -24,12 +22,13 @@
     </resultMap>
     <!--鏌ヨ妫�楠岃鍒�-->
     <select id="selectAllPlan" resultMap="selectAllPlanMap">
-        select ip.id,
+        select i.id ,
         i.code,
         inspection_status inspectionStatus,
         DATE_FORMAT(start_time,'%Y-%m-%d') startTime,
         DATE_FORMAT(end_time,'%Y-%m-%d') endTime,
         im.name samplename,
+        ip.id pid,
         ip.name,
         ip.unit,
         required,
@@ -41,7 +40,7 @@
         left join lims_laboratory.inspection_material im on ip.inspection_material_id = im.id
         left join lims_laboratory.inspection i on im.inspection_id = i.id
         left join lims_laboratory.user u on ip.user_id = u.id
-        left join  lims_laboratory.instrument isu on ip.instrument_id = isu.id
+        left join lims_laboratory.instrument isu on ip.instrument_id = isu.id
         <where>
             <if test="code != null and code != null">
                 and i.code like concat('%',#{code},'%')
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/inspection-server/src/main/resources/mapper/ReportMapper.xml b/inspection-server/src/main/resources/mapper/ReportMapper.xml
index 708ac38..7634937 100644
--- a/inspection-server/src/main/resources/mapper/ReportMapper.xml
+++ b/inspection-server/src/main/resources/mapper/ReportMapper.xml
@@ -4,17 +4,20 @@
 
     <!--鏌ヨ妫�楠屾姤鍛�-->
     <select id="selectAllReport" resultType="com.yuanchu.limslaboratory.pojo.vo.ReportVo">
-        select im.code materialCode,
+        select r.id,
+        im.code materialCode,
         r.code reportCode,
         i.code inspectionCode,
-        r.approver approver,
-        r.status status,
-        r.conclusion conclusion,
-        u.name name
-        from report r
-        join inspection i on r.inspection_id = i.id
-        join user u on i.user_id = u.id
-        join inspection_material im on i.id = im.inspection_id
+        im.name materialName,
+        r.conclusion ,
+        r.status ,
+        r.approver ,
+        check_time,
+        u.name
+        from lims_laboratory.report r
+        join lims_laboratory.inspection i on r.inspection_id = i.id
+        join lims_laboratory.user u on i.user_id = u.id
+        join lims_laboratory.inspection_material im on i.id = im.inspection_id
         <where>
             r.state = 1
             <if test="status != null">
@@ -26,33 +29,7 @@
                 or r.code like concat('%', #{name}, '%')
             </if>
         </where>
+        order by r.id
     </select>
 
-    <!--鏌ヨ鎶ュ憡瀹℃牳-->
-    <select id="selectAllReportAuditing" resultType="com.yuanchu.limslaboratory.pojo.vo.ReportAuditingVo">
-        select im.code materialCode,
-        r.code reportCode,
-        im.name materialName,
-        r.status status,
-        r.approver approver,
-        DATE_FORMAT(r.`create_time`, '%Y-%m-%d') submitTime,
-        DATE_FORMAT(r.`check_time`, '%Y-%m-%d') checkTime
-        from report r
-        join inspection i on r.inspection_id = i.id
-        join inspection_material im on i.id = im.inspection_id
-        <where>
-            r.state = 1
-            <if test="status == null">
-                and r.status in (0, 1)
-            </if>
-            <if test="status != null">
-                and r.status = #{status}
-            </if>
-            <if test="name != null and name != ''">
-                and im.code like concat('%', #{name}, '%')
-                or i.code like concat('%', #{name}, '%')
-                or im.name like concat('%', #{name}, '%')
-            </if>
-        </where>
-    </select>
 </mapper>
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/mapper/InstrumentMapper.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/InstrumentMapper.java
index 2af36d3..dba7af0 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/InstrumentMapper.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/InstrumentMapper.java
@@ -23,5 +23,6 @@
     IPage<Map<String, Object>> getListInstrumentInformation(Integer conditions,Boolean whetherWhether, String numberOrNameOrSpecifications, Integer classifyId, Page<Objects> page);
 
 
-
+    //鍒嗛厤-->閫夋嫨璁惧
+    List<Map<String, Object>> chooseinstum();
 }
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/InstrumentMapper.xml b/laboratory-server/src/main/resources/mapper/InstrumentMapper.xml
index 3dcab6f..98a6181 100644
--- a/laboratory-server/src/main/resources/mapper/InstrumentMapper.xml
+++ b/laboratory-server/src/main/resources/mapper/InstrumentMapper.xml
@@ -1,18 +1,19 @@
 <?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.InstrumentMapper">
-
     <select id="getListInstrumentInformation" resultType="map">
         SELECT i.`id`, i.`equipment_code`, i.`equipment_name`, i.`specifications_models`, u.`name`,
-               DATE_FORMAT(DATE_ADD(i.`create_time`, INTERVAL i.`term_validity` MONTH), '%Y-%m-%d') termValidity, i.`conditions`, i.`storage_place`
+        DATE_FORMAT(DATE_ADD(i.`create_time`, INTERVAL i.`term_validity` MONTH), '%Y-%m-%d') termValidity,
+        i.`conditions`, i.`storage_place`
         FROM instrument i, `user` u
         WHERE i.`state` = 1
-          AND i.`classify_id` = #{classifyId}
+        AND i.`classify_id` = #{classifyId}
         <if test="conditions != null">
             AND i.`conditions` = #{conditions}
         </if>
         <if test="numberOrNameOrSpecifications != null and numberOrNameOrSpecifications != ''">
-            AND CONCAT(i.`equipment_code`, i.`equipment_name`, i.`specifications_models`) LIKE CONCAT('%',#{numberOrNameOrSpecifications},'%')
+            AND CONCAT(i.`equipment_code`, i.`equipment_name`, i.`specifications_models`) LIKE
+            CONCAT('%',#{numberOrNameOrSpecifications},'%')
         </if>
         <if test="whetherWhether == true">
             AND DATE_FORMAT(DATE_ADD(i.`create_time`, INTERVAL i.`term_validity` MONTH), '%Y-%m-%d') <![CDATA[<]]> NOW()
@@ -20,4 +21,25 @@
         AND i.`user_id` = u.`id`
     </select>
 
+    <!--閫夋嫨璁惧-->
+    <resultMap id="chooseinstumMap" type="map">
+        <id property="father_name" column="father_name"/>
+        <collection property="father" resultMap="chooseinstumTowMap" javaType="List"/>
+    </resultMap>
+    <resultMap id="chooseinstumTowMap" type="map">
+        <id property="son_name" column="son_name"/>
+        <collection property="chldren" resultMap="chooseinstumTowsMap" javaType="List"/>
+    </resultMap>
+    <resultMap id="chooseinstumTowsMap" type="map">
+        <id property="id" column="id"/>
+        <result property="name" column="name"/>
+    </resultMap>
+    <select id="chooseinstum" resultMap="chooseinstumMap">
+        select instrument.id,
+               father_name,
+               son_name,
+               equipment_name name
+        from lims_laboratory.instrument
+                 left join lims_laboratory.classify c on c.id = instrument.classify_id
+    </select>
 </mapper>
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>
 
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java
index 08b370e..8769e0c 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java
@@ -26,8 +26,7 @@
     // 鍥涚骇鏍�
     List<Map<String, Object>> FourTree(String specificationsName);
 
-    //閫夋嫨鏍峰搧鍚嶇О
-    List<String> selectmater();
+
 
 
 
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductModelMapper.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductModelMapper.java
index 659a0c3..753ae1f 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductModelMapper.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductModelMapper.java
@@ -23,10 +23,10 @@
     //娣诲姞鏍囧噯-->閫夋嫨椤圭洰鍒嗙粍
     List<String> selectfather();
 
-
-
-
     //鏌ヨ椤圭洰妯$増鏍规嵁鏍峰搧鍚�
     List<Map<String, Object>> seleMode(String name);
+
+    //閫夋嫨鏍峰搧鍚嶇О
+    List<String> selectmater();
 }
 
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java
index 4e3721e..3169392 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java
@@ -85,9 +85,11 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Integer addMaterialInformation(AddMaterialDto addMaterialDto) {
-        Material material = materialMapper.selectOne(Wrappers.<Material>query().eq("name", addMaterialDto.getMaterialName()));
-        material.setType(addMaterialDto.getType());
-        int isInsertSuccess = materialMapper.updateById(material);
+        Material material = new Material()
+                .setCode("BZ" + IdWorker.getIdStr())
+                .setName(addMaterialDto.getMaterialName())
+                .setType(addMaterialDto.getType());
+        int isInsertSuccess = materialMapper.insert(material);
         if (isInsertSuccess > 0) {
             Standard standard = new Standard()
                     .setMaterialId(material.getId())
@@ -125,7 +127,7 @@
     //娣诲姞鎸囨爣-->閫夋嫨鏍峰搧鍚嶇О
     @Override
     public List<String> selectmater() {
-        return materialMapper.selectmater();
+        return productModelMapper.selectmater();
     }
 
 
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductModelServiceImpl.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductModelServiceImpl.java
index d2bdf8c..a42754d 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductModelServiceImpl.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductModelServiceImpl.java
@@ -28,13 +28,10 @@
     @Resource
     ProductModelMapper productModelMapper;
 
-    @Resource
-    MaterialMapper materialMapper;
-
     //閫夋嫨鏍峰搧
     @Override
     public List<String> selectmater() {
-        return materialMapper.selectmater();
+        return productModelMapper.selectmater();
     }
 
     //娣诲姞鏍囧噯-->閫夋嫨椤圭洰鍒嗙粍
@@ -58,10 +55,6 @@
             BeanUtils.copyProperties(productModelDto, productModel);
             productModelMapper.insert(productModel);
         }
-        //娣诲姞鐗╂枡浜у搧搴�
-        Material material = new Material();
-        material.setName(productModelDto.getMaterial()).setCode(MyUtil.getTimeSixNumberCode("CP", "CP"));
-        materialMapper.insert(material);
     }
 
     //鏌ヨ鏍囧噯妯$増鍒楄〃
diff --git a/standard-server/src/main/resources/mapper/MaterialMapper.xml b/standard-server/src/main/resources/mapper/MaterialMapper.xml
index e2f4825..59e36a3 100644
--- a/standard-server/src/main/resources/mapper/MaterialMapper.xml
+++ b/standard-server/src/main/resources/mapper/MaterialMapper.xml
@@ -66,11 +66,4 @@
         WHERE m.`state` = 1
     </select>
 
-
-    <!--娣诲姞鏍囧噯閫夋嫨鏍峰搧鍚嶇О-->
-    <select id="selectmater" resultType="java.lang.String">
-        select  name
-        from lims_laboratory.material
-        where state = 1
-    </select>
 </mapper>
diff --git a/standard-server/src/main/resources/mapper/ProductModelMapper.xml b/standard-server/src/main/resources/mapper/ProductModelMapper.xml
index 5b31620..8488506 100644
--- a/standard-server/src/main/resources/mapper/ProductModelMapper.xml
+++ b/standard-server/src/main/resources/mapper/ProductModelMapper.xml
@@ -47,6 +47,13 @@
                unit
         from lims_laboratory.product_model
         where state = 1
-          and material =#{name}
+          and material = #{name}
+    </select>
+
+    <!--娣诲姞鏍囧噯閫夋嫨鏍峰搧鍚嶇О-->
+    <select id="selectmater" resultType="java.lang.String">
+        select material
+        from lims_laboratory.product_model
+        where state = 1
     </select>
 </mapper>
diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java
index 7c1b746..4a972a5 100644
--- a/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java
@@ -8,7 +8,6 @@
 import java.util.Map;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.sun.jmx.snmp.Timestamp;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
diff --git a/user-server/src/main/resources/mapper/UserMapper.xml b/user-server/src/main/resources/mapper/UserMapper.xml
index 4a8eb08..8220b5a 100644
--- a/user-server/src/main/resources/mapper/UserMapper.xml
+++ b/user-server/src/main/resources/mapper/UserMapper.xml
@@ -40,5 +40,6 @@
     <select id="selectUser" resultType="Map">
         select id, name
         from lims_laboratory.user
+        where job_state!=0
     </select>
 </mapper>

--
Gitblit v1.9.3