From c28d3bb363dde2afb44c168b93379b2bf6b1f67f Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期四, 07 九月 2023 15:26:22 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 standard-server/src/main/java/com/yuanchu/mom/mapper/TechnologyMapper.java                |    3 
 inspect-server/src/main/resources/mapper/FinishedInspectMapper.xml                        |  142 ++
 inspect-server/src/main/resources/mapper/RawInspectMapper.xml                             |    6 
 inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java        |   59 +
 production-server/src/main/java/com/yuanchu/mom/mapper/ManualTechnologyMapper.java        |    3 
 inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/FinishedInspectVo.java               |   41 +
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java |  377 +++++----
 inspect-server/src/main/java/com/yuanchu/mom/controller/ProcessInspectController.java     |  100 ++
 inspect-server/src/main/java/com/yuanchu/mom/controller/RawInspectController.java         |   22 
 standard-server/src/main/java/com/yuanchu/mom/controller/MaterialController.java          |    3 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InspectionItemServiceImpl.java  |   76 -
 inspect-server/src/main/java/com/yuanchu/mom/pojo/InspectionItem.java                     |   96 +
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/ProcessInspectServiceImpl.java  |  205 +++++
 standard-server/src/main/java/com/yuanchu/mom/service/impl/StandardServiceImpl.java       |   11 
 production-server/src/main/java/com/yuanchu/mom/pojo/ManualTechnology.java                |    5 
 inventory-server/src/main/java/com/yuanchu/mom/controller/SaleController.java             |   33 
 inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java          |   47 +
 standard-server/src/main/java/com/yuanchu/mom/service/SpecificationsService.java          |    2 
 inspect-server/src/main/java/com/yuanchu/mom/service/ProcessInspectService.java           |   59 +
 inspect-server/src/main/java/com/yuanchu/mom/pojo/FinishedInspect.java                    |  111 +-
 standard-server/src/main/java/com/yuanchu/mom/mapper/ProductMapper.java                   |    3 
 standard-server/src/main/java/com/yuanchu/mom/service/impl/MaterialServiceImpl.java       |   16 
 production-server/src/main/resources/mapper/ManualTechnologyMapper.xml                    |   19 
 standard-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java        |    6 
 inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java    |  100 +-
 inspect-server/src/main/java/com/yuanchu/mom/mapper/InspectionItemMapper.java             |   11 
 inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInsProductMapper.java              |    4 
 inspect-server/src/main/java/com/yuanchu/mom/service/RawInspectService.java               |   11 
 inspect-server/src/main/resources/mapper/RawInsProductMapper.xml                          |   12 
 standard-server/src/main/resources/mapper/TechnologyMapper.xml                            |   10 
 inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml                      |   15 
 inspect-server/src/main/java/com/yuanchu/mom/controller/InspectionItemController.java     |   33 
 standard-server/src/main/java/com/yuanchu/mom/service/ProductService.java                 |    8 
 standard-server/src/main/resources/mapper/MaterialMapper.xml                              |    8 
 inspect-server/src/main/java/com/yuanchu/mom/pojo/ProcessInspect.java                     |  100 ++
 standard-server/src/main/java/com/yuanchu/mom/mapper/TechniqueMapper.java                 |    6 
 inspect-server/src/main/java/com/yuanchu/mom/mapper/InspectUnacceptedMapper.java          |    4 
 inspect-server/src/main/java/com/yuanchu/mom/mapper/FinishedInspectMapper.java            |   15 
 user-server/src/main/java/com/yuanchu/mom/service/imp/UserServiceImp.java                 |    7 
 user-server/src/main/java/com/yuanchu/mom/service/UserService.java                        |    3 
 standard-server/src/main/java/com/yuanchu/mom/service/impl/SpecificationsServiceImpl.java |   11 
 inspect-server/src/main/java/com/yuanchu/mom/controller/InspectUnacceptedController.java  |    1 
 standard-server/src/main/resources/mapper/TechniqueMapper.xml                             |   19 
 standard-server/src/main/java/com/yuanchu/mom/controller/StandardController.java          |    3 
 standard-server/src/main/resources/mapper/ProductMapper.xml                               |    8 
 inspect-server/src/main/java/com/yuanchu/mom/mapper/ProcessInspectMapper.java             |   28 
 inspect-server/src/main/java/com/yuanchu/mom/pojo/dto/UpdateInspectionItemDto.java        |   10 
 inspect-server/src/main/java/com/yuanchu/mom/service/InspectionItemService.java           |   25 
 standard-server/src/main/java/com/yuanchu/mom/mapper/MaterialMapper.java                  |    3 
 inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/ProcessInspectVo.java                |   39 +
 standard-server/src/main/java/com/yuanchu/mom/service/MaterialService.java                |    9 
 /dev/null                                                                                 |  157 ----
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java      |   28 
 inspect-server/src/main/resources/mapper/InspectionItemMapper.xml                         |   34 
 inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInspectMapper.java                 |    2 
 standard-server/src/main/java/com/yuanchu/mom/service/StandardService.java                |    2 
 standard-server/src/main/java/com/yuanchu/mom/controller/SpecificationsController.java    |    3 
 inspect-server/src/main/resources/mapper/ProcessInspectMapper.xml                         |  120 +++
 58 files changed, 1,545 insertions(+), 749 deletions(-)

diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java
index f64a1f7..8dd51eb 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java
@@ -2,8 +2,11 @@
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.mom.pojo.FinishedInspect;
+import com.yuanchu.mom.pojo.ProcessInspect;
+import com.yuanchu.mom.pojo.vo.FinishedInspectVo;
 import com.yuanchu.mom.service.*;
 import com.yuanchu.mom.utils.JackSonUtil;
 import com.yuanchu.mom.utils.Jwt;
@@ -18,12 +21,11 @@
 
 import java.util.Date;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 
 /**
  * <p>
- *  鍓嶇鎺у埗鍣�
+ * 鍓嶇鎺у埗鍣�
  * </p>
  *
  * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
@@ -49,76 +51,62 @@
     @Autowired
     Jwt jwt;
 
-    @ApiOperation(value = "鏂板鎸夐挳-->1銆佹柊澧炴垚鍝佹楠屽崟")
-    @PostMapping("/add_process_inspection_sheet")
-    public Result<?> addProcessInspectionSheet(@Validated @RequestBody FinishedInspect finishedInspect){
-        Integer isInsertSuccess = finishedInspectService.addProcessInspectionSheet(finishedInspect);
-        if (isInsertSuccess == 1){
-            return Result.success("鏂板鎴愬姛锛�", finishedInspect.getId());
-        }
-        return Result.fail("鏂板澶辫触锛�");
-    }
-
-    @ApiOperation(value = "鏂板鎸夐挳-->1銆佹柊澧炶繃绋嬫楠屽崟-->涓绘満宸ヤ笅鎷夋")
-    @GetMapping("/list_user")
-    public Result<?> selectUserIdAndName(){
-        List<Map<String, Object>> maps = userService.listUserIdAndName();
-        return Result.success(maps);
-    }
-
-    @ApiOperation(value = "鏂板鎸夐挳-->1銆佹柊澧炶繃绋嬫楠屽崟-->2銆佽鏍煎瀷鍙蜂笅鎷夋锛氭牴鎹」鐩甀D鏌ヨ")
+    @ApiOperation(value = "鏂板鎴愬搧妫�楠屽崟-->鏍规嵁璁㈠崟鍙烽�夋嫨浜у搧淇℃伅鍜屽伐鑹�")
     @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "materialId",value = "椤圭洰鍚嶇ОID",dataTypeClass  = Integer.class,required = true)
+            @ApiImplicitParam(name = "orderNumber", value = "璁㈠崟缂栧彿", dataTypeClass = String.class, required = true)
     })
-    @GetMapping("/list_specification")
-    public Result<?> selectSpecificationIdAndName(Integer materialId){
-        List<Map<String, Object>> maps = specificationsService.selectSpecificationIdAndName(materialId);
-        return Result.success(maps);
+    @GetMapping("/chooseMater")
+    public Result<?> chooseMater(String orderNumber) {
+        return Result.success(finishedInspectService.chooseMater(orderNumber));
     }
 
-    @ApiOperation(value = "鏂板鎸夐挳-->1銆佹柊澧炶繃绋嬫楠屽崟-->1銆侀」鐩悕绉颁笅鎷夋")
-    @GetMapping("/list_material")
-    public Result<?> selectMaterialIdAndNameAndCode(){
-        List<Map<String, Object>> maps = materialService.selectMaterialIdAndNameAndCode();
-        return Result.success(maps);
-    }
-
-    @ApiOperation(value = "鏂板鎸夐挳-->3銆佹楠岀粨璁�")
-    @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "finishedInspectId",value = "妫�楠屽崟Id",dataTypeClass  = Integer.class,required = true),
-            @ApiImplicitParam(name = "result",value = "妫�楠岀粨璁�",dataTypeClass  = Integer.class,required = true),
-    })
-    @PostMapping("/inspection_conclusion")
-    public Result<?> inspectionConclusion(@RequestHeader("token") String token,Integer finishedInspectId, Integer result) throws Exception {
+    @ApiOperation(value = "鏂板鎴愬搧妫�楠屽崟")
+    @PostMapping("/addFinish")
+    public Result<?> addFinish(@RequestHeader("token") String token, @Validated @RequestBody FinishedInspectVo finishedInspectVo) throws Exception {
         Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
-        Integer isInsertSuccess = finishedInspectService.inspectionConclusion(data.get("name").replaceAll("\"", ""),finishedInspectId, result);
-        if (isInsertSuccess == 1){
-            return Result.success("涓婃姤鎴愬姛锛�");
-        }
-        return Result.fail("涓婃姤澶辫触锛�");
+        return Result.success(finishedInspectService.addProcessInspectionSheet(data.get("id").replaceAll("\"", ""), finishedInspectVo));
     }
 
-    @ApiOperation(value = "4銆佷富椤靛垎椤�")
+
+    @ApiOperation(value = "涓婃姤(鏇存柊妫�楠岀姸鎬�)")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class, required = true)
+    })
+    @PostMapping("/updateFinishInspectsById")
+    public Result updateFinishInspectsById(@RequestHeader("token") String token, Integer id) throws Exception {
+        //濡傛灉宸茬粡涓婃姤浜嗕笉鑳藉啀涓�娆′笂鎶�
+        FinishedInspect finishedInspect = finishedInspectService.getById(id);
+        if (ObjectUtils.isNotEmpty(finishedInspect.getResult())) {
+            return Result.fail("宸茬粡涓婃姤杩囦簡,涓嶈兘鍐嶆涓婃姤!");
+        }
+        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
+        return Result.success(finishedInspectService.updateFinishInspectsById(data.get("name").replaceAll("\"", ""), id));
+    }
+
+    @ApiOperation(value = "鏍规嵁妫�楠屽崟id鏌ヨ鎴愬搧妫�楠屽崟璇︽儏")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class, required = true)
+    })
+    @GetMapping("/selectFinishInspectsListById")
+    public Result selectFinishInspectsListById(Integer id) {
+        return Result.success(finishedInspectService.selectFinishInspectsListById(id));
+    }
+
+    @ApiOperation(value = "鍒嗛〉鏌ヨ鎴愬搧妫�楠屽崟鍒楄〃")
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "pageNo", value = "鏉℃暟/椤�", dataTypeClass = Integer.class, required = true),
             @ApiImplicitParam(name = "pageSize", value = "椤垫暟", dataTypeClass = Integer.class, required = true),
-            @ApiImplicitParam(name = "inspectResult", value = "妫�楠岀粨鏋�", dataTypeClass = Integer.class),
-            @ApiImplicitParam(name = "inspectDate", value = "妫�楠屾棩鏈�", dataTypeClass = Date.class, dataType = "date"),
-            @ApiImplicitParam(name = "inspectUsername", value = "涓绘満宸�", dataTypeClass = String.class)
+            @ApiImplicitParam(name = "result", value = "妫�楠岀粨鏋�(涓虹┖=鍏ㄩ儴)", dataTypeClass = Integer.class),
+            @ApiImplicitParam(name = "material", value = "浜у搧鍚嶇О", dataTypeClass = String.class)
     })
     @GetMapping("/list_page")
-    public Result<?> selectFinishedInspectPage(Integer pageNo, Integer pageSize, Integer inspectResult, String inspectDate, String inspectUsername){
-        IPage<Map<String, Object>> page = finishedInspectService.selectFinishedInspectPage(new Page<Object>(pageNo, pageSize), inspectResult, inspectDate, inspectUsername);
+    public Result<?> list_page(Integer pageNo, Integer pageSize, Integer result, String material) {
+        IPage<Map<String, Object>> page = finishedInspectService.selectFinishedInspectPage(new Page<Object>(pageNo, pageSize), result, material);
         Map<String, Object> map = new HashMap<>();
         map.put("total", page.getTotal());
         map.put("row", page.getRecords());
         return Result.success(map);
     }
 
-    @ApiOperation(value = "4銆佷富椤靛垎椤�-->涓绘満宸ユ潯浠舵煡璇笅鎷夋")
-    @GetMapping("/page_user")
-    public Result<?> selectPageUserIdAndName(){
-        List<Map<String, Object>> maps = userService.listUserIdAndName();
-        return Result.success(maps);
-    }
+
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InspectUnacceptedController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InspectUnacceptedController.java
index ccf1740..4a54ccd 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InspectUnacceptedController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InspectUnacceptedController.java
@@ -27,6 +27,7 @@
  * @author zss
  * @since 2023-08-07 10:04:01
  */
+@Api(tags = "QMS绠$悊-->涓嶅悎鏍煎搧绠$悊")
 @RestController
 @RequestMapping("/inspectUnaccepted")
 public class InspectUnacceptedController {
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InspectionItemController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InspectionItemController.java
index e77f84b..fed0cf2 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InspectionItemController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InspectionItemController.java
@@ -17,13 +17,13 @@
 
 /**
  * <p>
- *  鍓嶇鎺у埗鍣�
+ * 鍓嶇鎺у埗鍣�
  * </p>
  *
  * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
  * @since 2023-08-01
  */
-@Api(tags = "QMS绠$悊-->鎴愬搧妫�楠�")
+@Api(tags = "QMS绠$悊-->鎴愬搧杩囩▼妫�楠岄」鐩�")
 @RestController
 @RequestMapping("/inspection-item")
 public class InspectionItemController {
@@ -31,22 +31,35 @@
     @Autowired
     private InspectionItemService inspectionItemService;
 
+
     @Autowired
     private Jwt jwt;
 
     @ApiOperation(value = "鏂板鎸夐挳-->2銆佹煡璇㈡墍鏈夋楠岄」鐩�")
     @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "finishInspectId",value = "鎴愬搧妫�楠屽崟Id",dataTypeClass  = Integer.class,required = true)
+            @ApiImplicitParam(name = "id", value = "妫�楠屽崟Id", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "type", value = "绫诲瀷", dataTypeClass = Integer.class, required = true)
     })
     @GetMapping("/list_user")
-    public Result<?> selectInspectionItem(Integer finishInspectId){
-        List<InspectionItemDto> inspectionItemDto = inspectionItemService.selectInspectionItem(finishInspectId);
+    public Result<?> selectInspectionItem(Integer id, Integer type) {
+        List<InspectionItemDto> inspectionItemDto = inspectionItemService.selectInspectionItem(id,type);
         return Result.success(inspectionItemDto);
     }
 
-    @ApiOperation(value = "鏂板鎸夐挳-->2銆佹楠岄」鐩�-->澶卞幓鐒︾偣鍙戣捣璇ヨ姹�")
+    @ApiOperation(value = "鏂板妫�楠屽崟-->閫夋嫨璁惧")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "technologyId", value = "鍏宠仈鐨勫伐鑹鸿矾绾縤d", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "father", value = "椤圭洰鐖跺悕绉�", dataTypeClass = String.class, required = true),
+            @ApiImplicitParam(name = "name", value = "椤圭洰鍚嶇О", dataTypeClass = String.class, required = true)
+    })
+    @GetMapping("/chooseDev")
+    public Result<?> chooseDev(Integer technologyId, String father, String name) {
+        return Result.success(inspectionItemService.chooseDev(technologyId,father,name));
+    }
+
+    @ApiOperation(value = "鏂板鎸夐挳-->2銆佹楠岄」鐩殑妫�楠屽��-->澶卞幓鐒︾偣鍙戣捣璇ヨ姹�")
     @PostMapping("/lose_focus_update")
-    public Result<?> addInspectionItem(@RequestHeader("token")String token, @RequestBody UpdateInspectionItemDto updateInspectionItemDto) throws Exception {
+    public Result<?> addInspectionItem(@RequestHeader("token") String token, @RequestBody UpdateInspectionItemDto updateInspectionItemDto) throws Exception {
         Map<String, String> usernameMessage = jwt.readJWT(token);
         Map<String, Object> usernameAndId = JackSonUtil.unmarshal(usernameMessage.get("data"), Map.class);
         String name = usernameAndId.get("name").toString().replaceAll("\"", "");
@@ -57,10 +70,4 @@
         return Result.success(map);
     }
 
-    @ApiOperation(value = "鏂板鎸夐挳-->2銆佹楠岄」鐩�-->璇曢獙璁惧涓嬫媺妗�")
-    @GetMapping("/list_device")
-    public Result<?> selectDeviceIdAndName(){
-        List<Map<String, Object>> maps = inspectionItemService.selectDeviceIdAndName();
-        return Result.success(maps);
-    }
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/ProcessInspectController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/ProcessInspectController.java
new file mode 100644
index 0000000..e3fac84
--- /dev/null
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/ProcessInspectController.java
@@ -0,0 +1,100 @@
+package com.yuanchu.mom.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.pojo.ProcessInspect;
+import com.yuanchu.mom.pojo.vo.ProcessInspectVo;
+import com.yuanchu.mom.utils.JackSonUtil;
+import com.yuanchu.mom.utils.Jwt;
+import com.yuanchu.mom.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.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import com.yuanchu.mom.service.ProcessInspectService;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+
+/**
+ * 杩囩▼妫�楠�(ProcessInspect)琛ㄦ帶鍒跺眰
+ *
+ * @author zss
+ * @since 2023-09-06 13:36:02
+ */
+@Api(tags = "QMS绠$悊-->杩囩▼妫�楠�")
+@RestController
+@RequestMapping("/processInspect")
+public class ProcessInspectController {
+
+    @Autowired
+    private ProcessInspectService processInspectService;
+
+    @Resource
+    Jwt jwt;
+
+    @ApiOperation(value = "鏂板杩囩▼妫�楠屽崟-->鏍规嵁璁㈠崟鍙烽�夋嫨浜у搧淇℃伅鍜屽伐鑹�")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "orderNumber", value = "璁㈠崟缂栧彿", dataTypeClass = String.class, required = true)
+    })
+    @GetMapping("/chooseMater")
+    public Result<?> chooseMater(String orderNumber) {
+        return Result.success(processInspectService.chooseMater(orderNumber));
+    }
+
+    @ApiOperation(value = "鏂板杩囩▼妫�楠屽崟")
+    @PostMapping("/addProcess")
+    public Result<?> addProcess(@RequestHeader("token") String token,@Validated @RequestBody ProcessInspectVo processInspectVo) throws Exception {
+        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
+        return Result.success(processInspectService.addProcess(data.get("id").replaceAll("\"", ""), processInspectVo));
+    }
+
+    @ApiOperation(value = "涓婃姤(鏇存柊妫�楠岀姸鎬�)")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class, required = true)
+    })
+    @PostMapping("/updateProcessInspectsById")
+    public Result updateProcessInspectsById(Integer id) {
+        //濡傛灉宸茬粡涓婃姤浜嗕笉鑳藉啀涓�娆′笂鎶�
+        ProcessInspect processInspect = processInspectService.getById(id);
+        if (ObjectUtils.isNotEmpty(processInspect.getResult())) {
+            return Result.fail("宸茬粡涓婃姤杩囦簡,涓嶈兘鍐嶆涓婃姤!");
+        }
+        return Result.success(processInspectService.updateProcessInspectsById(id));
+    }
+
+    @ApiOperation(value = "鏍规嵁妫�楠屽崟id鏌ヨ杩囩▼妫�楠屽崟璇︽儏")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class, required = true)
+    })
+    @GetMapping("/selectProcessInspectsListById")
+    public Result selectProcessInspectsListById(Integer id) {
+        return Result.success(processInspectService.selectProcessInspectsListById(id));
+    }
+
+    @ApiOperation(value = "鍒嗛〉鏌ヨ杩囩▼妫�楠屽崟鍒楄〃")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "pageSize", value = "椤垫暟", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "countSize", value = "鏉℃暟/椤�", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "techfather", value = "宸ュ簭", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "result", value = "妫�娴嬬粨鏋�(涓虹┖=鍏ㄩ儴)", dataTypeClass = Integer.class),
+            @ApiImplicitParam(name = "name", value = "浜у搧鍚嶇О", dataTypeClass = String.class)
+    })
+    @PostMapping("/selectProcessInspectsList")
+    public Result selectProcessInspectsList(Integer pageSize, Integer countSize, String techfather, Integer result, String name) {
+        IPage<Map<String, Object>> page = processInspectService.selectProcessInspectsList(new Page<Object>(pageSize, countSize), techfather, result, name);
+        Map<String, Object> map = new HashMap<>();
+        map.put("total", page.getTotal());
+        map.put("row", page.getRecords());
+        return Result.success(map);
+    }
+
+}
+
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/RawInspectController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/RawInspectController.java
index 399a283..8a3518e 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/RawInspectController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/RawInspectController.java
@@ -14,6 +14,7 @@
 import org.json.JSONException;
 import org.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -36,7 +37,7 @@
 
     @ApiOperation(value = "鏂板鍘熸潗鏂欐楠屽崟")
     @PostMapping("/addRawInspects")
-    public Result addRawInspects(@RequestHeader("token") String token, @RequestBody RawInspectVo rawInspectVo) throws Exception {
+    public Result addRawInspects(@RequestHeader("token") String token,@Validated @RequestBody RawInspectVo rawInspectVo) throws Exception {
         Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
         return Result.success(rawInspectService.addRawInspects(data.get("id").replaceAll("\"", ""), rawInspectVo));
     }
@@ -82,23 +83,4 @@
         return Result.success(rawInspectService.updateRawInspectsById(id));
     }
 
-    @ApiOperation(value = "鍒犻櫎")
-    @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "id", value = "鍘熸潗鏂欐楠屽崟id", dataTypeClass = Integer.class, required = true)
-    })
-    @PostMapping("/delRawInsById")
-    public Result delRawInsById(Integer id) {
-        rawInspectService.delRawInsById(id);
-        return Result.success("鍒犻櫎" + id + "鎴愬姛!");
-    }
-
-    @ApiOperation(value = "鎵归噺鍒犻櫎")
-    @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "ids", value = "鍘熸潗鏂欐楠屽崟id", dataTypeClass = String.class, required = true)
-    })
-    @PostMapping("/delAllRawIns")
-    public Result delAllRawIns(String ids) {
-        rawInspectService.delAllRawIns(ids);
-        return Result.success("鎵归噺鍒犻櫎鎴愬姛!");
-    }
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/ResportController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/ResportController.java
deleted file mode 100644
index 6673339..0000000
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/ResportController.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.yuanchu.mom.controller;
-
-
-import com.yuanchu.mom.pojo.StatisticsData;
-import com.yuanchu.mom.service.ResportService;
-import com.yuanchu.mom.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.format.annotation.DateTimeFormat;
-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.time.LocalDate;
-
-
-@RestController
-@RequestMapping("/resport")
-@Api(tags = "QMS绠$悊-->璐ㄩ噺缁熻")
-public class ResportController {
-
-    @Resource
-    ResportService resportService;
-
-
-    @ApiOperation("璁$畻鍚堟牸涓庝笉鍚堟牸鏁伴噺鎺ュ彛")
-    @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "begin", value = "缁熻寮�濮嬫棩鏈�", dataTypeClass = String.class, required = true),
-            @ApiImplicitParam(name = "end", value = "缁熻缁撴潫鏃ユ湡", dataTypeClass = String.class, required = true)
-    })
-    @GetMapping("/qualifiedStatistics")
-    public Result turno(String begin, String end) {
-        StatisticsData statisticsData=resportService.turno(begin,end);
-        return Result.success(statisticsData);
-    }
-
-    @ApiOperation("璁$畻浜у搧鏁伴噺鎺ュ彛")
-    @GetMapping("/allNum")
-    public Result allNum() {
-        return Result.success(resportService.allNum());
-    }
-
-    @ApiOperation("璁$畻浜у搧杈炬爣鏁伴噺鎺ュ彛")
-    @GetMapping("/statisNum")
-    public Result statisNum() {
-        return Result.success(resportService.statisNum());
-    }
-}
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/FinishedInspectMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/FinishedInspectMapper.java
index 1b970f7..20e1362 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/FinishedInspectMapper.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/FinishedInspectMapper.java
@@ -2,10 +2,10 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.yuanchu.mom.pojo.FinishedInspect;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yuanchu.mom.pojo.FinishedInspect;
 
-import java.time.LocalDate;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -18,11 +18,12 @@
  */
 public interface FinishedInspectMapper extends BaseMapper<FinishedInspect> {
 
-    IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer inspectResult, String inspectDate, String inspectUsername);
+    //鍒嗛〉鏌ヨ鎴愬搧妫�楠�
+    IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer result, String material);
 
-    //璁$畻鎴愬搧鎴栬�呰繃绋嬫楠屽湪鏌愪竴涓椂闂存鐨勫悎鏍兼暟
-    Integer selCountFin(String begin, String end, int type,int result);
+    //鏂板妫�楠屽崟-->鏍规嵁璁㈠崟鍙烽�夋嫨浜у搧淇℃伅
+    List<Map<String, Object>> chooseMater(String orderNumber);
 
-    //璁$畻鏈堜骇閲�
-    Long seAllCount(String begin, String end, int type);
+    //鏍规嵁妫�楠屽崟id鏌ヨ鎴愬搧妫�楠屽崟璇︽儏
+    List<Map<String, Object>> selectFinishInspectsListById(Integer id);
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InspectUnacceptedMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InspectUnacceptedMapper.java
index 1ba404f..8f9e557 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InspectUnacceptedMapper.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InspectUnacceptedMapper.java
@@ -18,11 +18,7 @@
     //鏌ヨ鎴愬搧妫�楠屼腑涓嶅悎鏍煎搧妫�楠屽崟鍒楄〃
     IPage<Map<String, Object>> selectInsList(Page<Object> page, String formTime, Integer dealState);
 
-    //鏍规嵁鍘熸潗鏂欐楠屽崟id鍒犻櫎鍘熸潗鏂欎笉鍚堟牸鍝�
-    void updaRawIns(Integer id);
 
-    //鏍规嵁鍘熸潗鏂欐楠屽崟id鎵归噺鍒犻櫎鍘熸潗鏂欎笉鍚堟牸鍝�
-    void delAllRawIns(String ids);
 
     IPage<Map<String, Object>> selectUnqualifiedRawMaterials(Page<Object> page, String formTime, String productName, String supplier, Integer processingStatus);
 
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InspectionItemMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InspectionItemMapper.java
index 991b8c7..f3a2c89 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InspectionItemMapper.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InspectionItemMapper.java
@@ -1,5 +1,6 @@
 package com.yuanchu.mom.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.yuanchu.mom.mybatis_config.MyBaseMapper;
 import com.yuanchu.mom.pojo.InspectionItem;
 import com.yuanchu.mom.pojo.dto.InspectionItemDto;
@@ -14,7 +15,13 @@
  * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
  * @since 2023-08-01
  */
-public interface InspectionItemMapper extends MyBaseMapper<InspectionItem> {
+public interface InspectionItemMapper extends BaseMapper<InspectionItem> {
 
-    List<InspectionItemDto> selectInspectionItem(Integer finishInspectId);
+
+    //鑾峰彇璇ョ被鍨嬫楠屽崟id涓嬬殑妫�楠岄」鐩粨鏋滈泦
+     List<Integer> getResult(Integer id, int type);
+
+    List<InspectionItemDto> selectInspectionItem(Integer finishInspectId, Integer type);
+
+
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/ProcessInspectMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/ProcessInspectMapper.java
new file mode 100644
index 0000000..c986c40
--- /dev/null
+++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/ProcessInspectMapper.java
@@ -0,0 +1,28 @@
+package com.yuanchu.mom.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.pojo.ProcessInspect;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 杩囩▼妫�楠�(ProcessInspect)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author zss
+ * @since 2023-09-06 13:36:02
+ */
+public interface ProcessInspectMapper extends BaseMapper<ProcessInspect> {
+
+    //鏂板杩囩▼妫�楠屽崟-->鏍规嵁璁㈠崟鍙烽�夋嫨浜у搧淇℃伅鍜屽伐鑹�
+    List<Map<String, Object>> chooseMater(String orderNumber);
+
+    //鏍规嵁妫�楠屽崟id鏌ヨ杩囩▼妫�楠屽崟璇︽儏
+    List<Map<String, Object>> selectProcessInspectsListById(Integer id);
+
+    //鍒嗛〉鏌ヨ杩囩▼妫�楠屽崟鍒楄〃
+    IPage<Map<String, Object>> selectProcessInspectsList(Page<Object> page, String techfather, Integer result, String name);
+}
+
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInsProductMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInsProductMapper.java
index 74ac78c..5a34469 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInsProductMapper.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInsProductMapper.java
@@ -19,10 +19,6 @@
     //鏍规嵁鍘熸潗鏂欐楠屽崟id鏌ヨ妫�楠岄」鐩�
     List<Integer> getresult(Integer id);
 
-    //鏍规嵁鍘熸潗鏂欐楠屽崟id鍒犻櫎
-    void updaRawInsById(Integer id);
 
-    //鏍规嵁鍘熸潗鏂欐楠屽崟id鎵归噺鍒犻櫎鍘熸潗鏂欐楠岄」鐩�
-    void delAllRawIns(String ids);
 }
 
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInspectMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInspectMapper.java
index a536bd6..8d99714 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInspectMapper.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInspectMapper.java
@@ -29,8 +29,6 @@
     //鏍规嵁鍘熸潗鏂欐楠屽崟id鏌ョ湅璇︽儏
     List<Map<String, Object>> selectRawInspectsListById(Integer id);
 
-    //鏍规嵁鍘熸潗鏂欐楠屽崟id鎵归噺鍒犻櫎
-    void delAllRawIns(String ids);
 }
 
 
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/FinishedInspect.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/FinishedInspect.java
index fd3be29..1373879 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/FinishedInspect.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/FinishedInspect.java
@@ -1,102 +1,105 @@
 package com.yuanchu.mom.pojo;
 
 import com.baomidou.mybatisplus.annotation.*;
-
-import java.time.LocalDateTime;
-import java.io.Serializable;
-import java.util.Date;
-
 import com.fasterxml.jackson.annotation.JsonFormat;
-import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import java.util.Date;
+import java.io.Serializable;
 
 /**
- * <p>
+ * 鎴愬搧妫�楠�(FinishedInspect)琛ㄥ疄浣撶被
  *
- * </p>
- *
- * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
- * @since 2023-08-01
+ * @author zss
+ * @since 2023-09-06 13:33:56
  */
 @Data
+@Accessors(chain = true)
+@AllArgsConstructor
+@NoArgsConstructor
 @EqualsAndHashCode(callSuper = false)
-@ApiModel(value="FinishedInspect瀵硅薄", description="")
+@TableName("finished_inspect")
 public class FinishedInspect implements Serializable {
-
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "涓婚敭", hidden = true)
-    @TableId(value = "id", type = IdType.AUTO)
+    /**
+     * 涓婚敭
+     **/
+    @TableId(type = IdType.AUTO)
     private Integer id;
 
-    @NotBlank(message = "璁㈠崟鍙蜂笉鍏佽涓虹┖锛�")
-    @ApiModelProperty(value = "璁㈠崟鍙�", required = true, example = "DDH202308010001")
+    /**
+     * 璁㈠崟鍙�
+     **/
     private String orderNumber;
 
-    @NotBlank(message = "瀹㈡埛鍚嶇О涓嶅厑璁镐负绌猴紒")
-    @ApiModelProperty(value = "瀹㈡埛鍚嶇О", required = true, example = "鎳掓磱娲�")
+    /**
+     * 瀹㈡埛鍚嶇О
+     **/
     private String customerName;
 
-    @NotBlank(message = "宸ョ▼鍚嶇О涓嶅厑璁镐负绌猴紒")
-    @ApiModelProperty(value = "宸ョ▼鍚嶇О", required = true, example = "娑蹭綋纭呮鑳�")
+    /**
+     * 宸ョ▼鍚嶇О
+     **/
     private String projectName;
 
-    @NotBlank(message = "璐ㄩ噺杩芥函鍙蜂笉鍏佽涓虹┖锛�")
-    @ApiModelProperty(value = "璐ㄩ噺杩芥函鍙�", required = true, example = "ZLZSH202308010001")
+    /**
+     * 璐ㄩ噺杩芥函鍙�
+     **/
     private String qualityTraceability;
 
-    @ApiModelProperty(value = "0:鎴愬搧;1锛氳繃绋�;", hidden = true)
-    private Integer type;
-
-    @NotBlank(message = "鍗曚綅涓嶅厑璁镐负绌猴紒")
-    @ApiModelProperty(value = "鍗曚綅", required = true, example = "鍚�")
+    /**
+     * 鍗曚綅
+     **/
     private String unit;
 
-    @NotNull(message = "璇疯緭鍏ユ暟閲忥紒")
-    @ApiModelProperty(value = "鏁伴噺", required = true, example = "50")
+    /**
+     * 鏁伴噺
+     **/
     private Integer quantity;
 
-    @NotNull(message = "璇烽�夋嫨瑙勬牸鍨嬪彿锛�")
-    @ApiModelProperty(value = "瑙勬牸鍨嬪彿鎷兼帴瀛楃", required = true, example = "8.7/15kV JLS-3.2")
+    /**
+     * 瑙勬牸鍨嬪彿
+     **/
     private String specificationsModel;
 
-    @NotNull(message = "璇烽�夋嫨鍨嬪彿ID锛�")
-    @TableField(exist = false)
-    @ApiModelProperty(value = "鍨嬪彿ID", required = true, example = "1")
-    private Integer specificationsId;
-
-    @ApiModelProperty(value = "椤圭洰缂栫爜", required = true, example = "GX20230807")
-    private String materialCode;
-
-    @NotNull(message = "璇烽�夋嫨椤圭洰鍚嶇О锛�")
-    @ApiModelProperty(value = "椤圭洰鍚嶇О", required = true, example = "鍏夌氦")
+    /**
+     * 鐗╂枡鍚嶇О
+     **/
     private String material;
 
-    @NotNull(message = "璇烽�夋嫨涓绘満宸ワ紒")
-    @ApiModelProperty(value = "涓绘満宸�:鐢ㄦ埛id", required = true, example = "1")
+    /**
+     * 鐗╂枡缂栫爜
+     **/
+    private String materialCode;
+
+    /**
+     * 鎶ユ浜�:鐢ㄦ埛id
+     **/
     private Integer userId;
 
-    @ApiModelProperty(value = "妫�楠岀粨璁�", hidden = true, required = true, example = "DDH202308010001")
+    /**
+     * 妫�楠岀粨璁�;0:涓嶅悎鏍�;1:鍚堟牸
+     **/
     private Integer result;
 
     @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
-    @TableLogic(value = "1", delval = "0")
     private Integer state;
 
     @TableField(fill = FieldFill.INSERT)
-    @ApiModelProperty(value = "鍒涘缓鏃堕棿", hidden = true)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date createTime;
 
     @TableField(fill = FieldFill.INSERT_UPDATE)
-    @ApiModelProperty(value = "鏇存柊鏃堕棿", hidden = true)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date updateTime;
-
-
 }
+
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InspectionItem.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InspectionItem.java
index 0ed6e61..1d640c1 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InspectionItem.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InspectionItem.java
@@ -1,81 +1,107 @@
 package com.yuanchu.mom.pojo;
 
 import com.baomidou.mybatisplus.annotation.*;
-
-import java.time.LocalDateTime;
-import java.io.Serializable;
-import java.util.Date;
-
-import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.io.Serializable;
 
 /**
- * <p>
+ * 鎴愬搧/杩囩▼妫�楠岄」鐩�(InspectionItem)琛ㄥ疄浣撶被
  *
- * </p>
- *
- * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
- * @since 2023-08-01
+ * @author zss
+ * @since 2023-09-06 13:34:17
  */
 @Data
+@Accessors(chain = true)
+@AllArgsConstructor
+@NoArgsConstructor
 @EqualsAndHashCode(callSuper = false)
-@ApiModel(value="InspectionItem瀵硅薄", description="")
-public class InspectionItem extends Model<InspectionItem> implements Serializable {
-
+@TableName("inspection_item")
+public class InspectionItem implements Serializable {
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "涓婚敭")
-    @TableId(value = "id", type = IdType.AUTO)
+    /**
+     * 涓婚敭
+     **/
+    @TableId(type = IdType.AUTO)
     private Integer id;
 
-    @ApiModelProperty(value = "椤圭洰鍚嶇О")
+    /**
+     * 椤圭洰鍚嶇О
+     **/
     private String name;
 
-    @ApiModelProperty(value = "鐖跺悕绉�")
+    /**
+     * 鐖跺悕绉�
+     **/
     private String father;
 
-    @ApiModelProperty(value = "鍗曚綅")
+    /**
+     * 鍗曚綅
+     **/
     private String unit;
 
-    @ApiModelProperty(value = "鏍囧噯鍊�")
+    /**
+     * 鏍囧噯鍊�
+     **/
     private String required;
 
-    @ApiModelProperty(value = "鍐呮帶鍊�")
+    /**
+     * 鍐呮帶鍊�
+     **/
     private String internal;
 
-    @ApiModelProperty(value = "鎴愬搧妫�楠屽崟Id")
-    private Integer finishInspectId;
-
-    @ApiModelProperty(value = "妫�楠屽��")
+    /**
+     * 妫�楠屽��
+     **/
     private String inspectionValue;
 
-    @ApiModelProperty(value = "璇曢獙璁惧")
+    /**
+     * 璇曢獙璁惧Id 鍏宠仈
+     **/
     private Integer deviceId;
 
-    @ApiModelProperty(value = "缁撹")
+    /**
+     * 缁撹
+     **/
     private Integer result;
 
-    @ApiModelProperty(value = "妫�楠屼汉")
+    /**
+     * 妫�楠屽崟Id
+     **/
+    private Integer inspectId;
+
+    /**
+     * 妫�楠屼汉
+     **/
     private String username;
 
-    @TableField(fill = FieldFill.INSERT)
+    /**
+     * 绫诲瀷 1:杩囩▼;2:鎴愬搧
+     **/
+    private Integer type;
+
     @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
-    @TableLogic(value = "1", delval = "0")
     private Integer state;
 
     @TableField(fill = FieldFill.INSERT)
-    @ApiModelProperty(value = "鍒涘缓鏃堕棿", hidden = true)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date createTime;
 
     @TableField(fill = FieldFill.INSERT_UPDATE)
-    @ApiModelProperty(value = "鏇存柊鏃堕棿", hidden = true)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date updateTime;
 
 
 }
+
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/ProcessInspect.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/ProcessInspect.java
new file mode 100644
index 0000000..e30e1ad
--- /dev/null
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/ProcessInspect.java
@@ -0,0 +1,100 @@
+package com.yuanchu.mom.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.io.Serializable;
+
+/**
+ * 杩囩▼妫�楠�(ProcessInspect)琛ㄥ疄浣撶被
+ *
+ * @author zss
+ * @since 2023-09-06 13:36:03
+ */
+@Data
+@Accessors(chain = true)
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = false)
+@TableName("process_inspect")
+public class ProcessInspect implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓婚敭
+     **/
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 璁㈠崟鍙�
+     **/
+    private String orderNumber;
+
+    /**
+     * 浜у搧鍚嶇О
+     **/
+    private String material;
+
+    /**
+     * 浜у搧缂栫爜
+     **/
+    private String materialCode;
+
+    /**
+     * 鍗曚綅
+     **/
+    private String unit;
+
+    /**
+     * 鏁伴噺
+     **/
+    private Integer quantity;
+
+    /**
+     * 瑙勬牸鍨嬪彿
+     **/
+    private String specificationsModel;
+
+    /**
+     * 宸ュ簭
+     **/
+    private String techfather;
+
+    /**
+     * 宸ヨ壓
+     **/
+    private String techname;
+
+    /**
+     * 鎶ユ浜�:鐢ㄦ埛id
+     **/
+    private Integer userId;
+
+    /**
+     * 妫�楠岀粨璁�;0:涓嶅悎鏍�;1:鍚堟牸
+     **/
+    private Integer result;
+
+    @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
+    private Integer state;
+
+    @TableField(fill = FieldFill.INSERT)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createTime;
+
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date updateTime;
+}
+
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/StatisticsData.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/StatisticsData.java
deleted file mode 100644
index 84fe3bf..0000000
--- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/StatisticsData.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.yuanchu.mom.pojo;
-
-
-import lombok.Data;
-
-import java.math.BigDecimal;
-
-@Data
-public class StatisticsData {
-  private int material;  //鍘熸潗鏂欏悎鏍�
-  private int process;   //杩囩▼鍚堟牸
-  private int finished;  //鎴愬搧鍚堟牸
-  private int unmaterial;  //鍘熸潗鏂欎笉鍚堟牸
-  private int unprocess;   //杩囩▼涓嶅悎鏍�
-  private int unfinished;  //鎴愬搧涓嶅悎鏍�
-  /*private BigDecimal imaterial;  //鍘熸潗鏂欏悎鏍肩巼
-  private BigDecimal iprocess;   //杩囩▼鍚堟牸鐜�
-  private BigDecimal ifinished;  //鎴愬搧鍚堟牸鐜�
-  private BigDecimal iunmaterial;  //鍘熸潗鏂欎笉鍚堟牸鐜�
-  private BigDecimal iunprocess;   //杩囩▼涓嶅悎鏍肩巼
-  private BigDecimal iunfinished;  //鎴愬搧涓嶅悎鏍肩巼*/
-
-
-
-}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/dto/UpdateInspectionItemDto.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/dto/UpdateInspectionItemDto.java
index 71fe288..bbec45c 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/dto/UpdateInspectionItemDto.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/dto/UpdateInspectionItemDto.java
@@ -7,17 +7,11 @@
 public class UpdateInspectionItemDto {
 
     @ApiModelProperty(value = "妫�楠屽�糏d锛氭牴鎹繖涓狪D淇敼", required = true, example = "5079")
-    String inspectionItemId;
-
-    @ApiModelProperty(value = "鏍囧噯鍊�", required = true, example = ">=1")
-    private String required;
-
-    @ApiModelProperty(value = "鍐呮帶鍊�", required = true, example = ">2")
-    private String internal;
+    Integer inspectionItemId;
 
     @ApiModelProperty(value = "妫�楠屽��", required = true, example = "3")
     String inspectionValue;
 
     @ApiModelProperty(value = "璇曢獙璁惧", required = true, example = "1")
-    String deviceId;
+    Integer deviceId;
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/FinishedInspectVo.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/FinishedInspectVo.java
new file mode 100644
index 0000000..41fd7aa
--- /dev/null
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/FinishedInspectVo.java
@@ -0,0 +1,41 @@
+package com.yuanchu.mom.pojo.vo;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+//鏂板鎴愬搧妫�楠屽弬鏁�
+public class FinishedInspectVo {
+    @NotBlank(message = "璁㈠崟鍙蜂笉鑳戒负绌�!")
+    private String orderNumber;
+
+    @NotBlank(message = "瀹㈡埛鍚嶇О涓嶈兘涓虹┖!")
+    private String prname;
+
+    @NotBlank(message = "宸ョ▼鍚嶇О涓嶈兘涓虹┖!")
+    private String sname;
+
+    @NotBlank(message = "璐ㄩ噺杩芥函鍙蜂笉鑳戒负绌�!")
+    private String qualityTraceability;
+
+    @NotBlank(message = "鍗曚綅涓嶈兘涓虹┖!")
+    private String unit;
+
+    @NotNull(message = "鏁伴噺涓嶈兘涓虹┖!")
+    private Integer quantity;
+
+    @NotBlank(message = "瑙勬牸鍨嬪彿涓嶈兘涓虹┖!")
+    private String specificationsModel;
+
+    @NotBlank(message = "浜у搧鍚嶇О涓嶈兘涓虹┖!")
+    private String material;
+
+    @NotBlank(message = "浜у搧缂栫爜涓嶈兘涓虹┖!")
+    private String mcode;
+
+    @NotNull(message = "鐢熶骇璁㈠崟id涓嶈兘涓虹┖!")
+    private Integer id;
+
+}
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/ProcessInspectVo.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/ProcessInspectVo.java
new file mode 100644
index 0000000..6845e2e
--- /dev/null
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/ProcessInspectVo.java
@@ -0,0 +1,39 @@
+package com.yuanchu.mom.pojo.vo;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+//鏂板杩囩▼妫�楠屽弬鏁�
+public class ProcessInspectVo {
+
+    @NotBlank(message = "璁㈠崟鍙蜂笉鑳戒负绌�!")
+    private String orderNumber;
+
+    @NotBlank(message = "浜у搧涓嶈兘涓虹┖!")
+    private String material;
+
+    @NotBlank(message = "浜у搧缂栫爜涓嶈兘涓虹┖!")
+    private String materialCode;
+
+    @NotBlank(message = "瑙勬牸鍨嬪彿涓嶈兘涓虹┖!")
+    private String specificationsModel;
+
+    @NotBlank(message = "鍗曚綅涓嶈兘涓虹┖!")
+    private String unit;
+
+    @NotBlank(message = "宸ュ簭涓嶈兘涓虹┖!")
+    private String techfather;
+
+    @NotBlank(message = "宸ヨ壓涓嶈兘涓虹┖!")
+    private String techname;
+
+    @NotNull(message = "鏁伴噺涓嶈兘涓虹┖!")
+    private Integer quantity;
+
+    @NotNull(message = "鍏宠仈鐨勫伐鑹鸿矾绾縤d涓嶈兘涓虹┖!")
+    private Integer technologyId;
+
+}
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java
index a7a296d..38545ce 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java
@@ -2,15 +2,17 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.yuanchu.mom.pojo.FinishedInspect;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.yuanchu.mom.pojo.FinishedInspect;
+import com.yuanchu.mom.pojo.vo.FinishedInspectVo;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.List;
 import java.util.Map;
 
 /**
  * <p>
- *  鏈嶅姟绫�
+ * 鏈嶅姟绫�
  * </p>
  *
  * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
@@ -18,10 +20,43 @@
  */
 public interface FinishedInspectService extends IService<FinishedInspect> {
 
-    @Transactional(rollbackFor = Exception.class)
-    Integer addProcessInspectionSheet(FinishedInspect finishedInspect);
+    /**
+     * 鏂板妫�楠屽崟-->鏍规嵁璁㈠崟鍙烽�夋嫨浜у搧淇℃伅
+     *
+     * @param orderNumber
+     * @return
+     */
+    List<Map<String, Object>> chooseMater(String orderNumber);
 
-    Integer inspectionConclusion(String username,Integer finishedInspectId, Integer result);
+    /**
+     * 鏂板鎴愬搧妫�楠屽崟
+     *
+     * @param finishedInspectVo
+     * @return
+     */
+    Integer addProcessInspectionSheet(String userId, FinishedInspectVo finishedInspectVo);
 
-    IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer inspectResult, String inspectDate, String inspectUsername);
+
+    /**
+     * 涓婃姤(鏇存柊妫�楠岀姸鎬�)
+     * @param id
+     * @return
+     */
+    String updateFinishInspectsById(String username,Integer id);
+
+    /**
+     * 鍒嗛〉鏌ヨ鎴愬搧妫�楠屽崟鍒楄〃
+     * @param page
+     * @param result
+     * @param material
+     * @return
+     */
+    IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer result, String material);
+
+    /**
+     * 鏍规嵁妫�楠屽崟id鏌ヨ鎴愬搧妫�楠屽崟璇︽儏
+     * @param id
+     * @return
+     */
+    List<Map<String,Object>> selectFinishInspectsListById(Integer id);
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/InspectionItemService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/InspectionItemService.java
index ecf667f..58c06ff 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/InspectionItemService.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/InspectionItemService.java
@@ -1,7 +1,7 @@
 package com.yuanchu.mom.service;
 
-import com.yuanchu.mom.pojo.InspectionItem;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.yuanchu.mom.pojo.InspectionItem;
 import com.yuanchu.mom.pojo.dto.InspectionItemDto;
 import com.yuanchu.mom.pojo.dto.UpdateInspectionItemDto;
 
@@ -18,11 +18,28 @@
  */
 public interface InspectionItemService extends IService<InspectionItem> {
 
-    void insertList(Integer finishInspectId, List<Map<String, Object>> list);
 
-    List<InspectionItemDto> selectInspectionItem(Integer finishInspectId);
+    /**
+     * 鏂板鎸夐挳-->2銆佹煡璇㈡墍鏈夋楠岄」鐩�
+     * @param finishInspectId
+     * @return
+     */
+    List<InspectionItemDto> selectInspectionItem(Integer finishInspectId, Integer type);
 
+    /**
+     * 鏂板鎸夐挳-->2銆佹楠岄」鐩�-->澶卞幓鐒︾偣鍙戣捣璇ヨ姹�
+     * @param username
+     * @param updateInspectionItemDto
+     * @return
+     */
     Integer addProcessInspectionSheet(String username, UpdateInspectionItemDto updateInspectionItemDto);
 
-    List<Map<String, Object>> selectDeviceIdAndName();
+    /**
+     * 鏂板鎸夐挳-->閫夋嫨璁惧
+     * @param technologyId
+     * @param father
+     * @param name
+     * @return
+     */
+    List<Map<String, Object>> chooseDev(Integer technologyId, String father, String name);
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/ProcessInspectService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/ProcessInspectService.java
new file mode 100644
index 0000000..7f20d43
--- /dev/null
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/ProcessInspectService.java
@@ -0,0 +1,59 @@
+package com.yuanchu.mom.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.mom.pojo.ProcessInspect;
+import com.yuanchu.mom.pojo.vo.ProcessInspectVo;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 杩囩▼妫�楠�(ProcessInspect)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author zss
+ * @since 2023-09-06 13:36:03
+ */
+public interface ProcessInspectService extends IService<ProcessInspect> {
+
+    /**
+     * 鏂板杩囩▼妫�楠屽崟-->鏍规嵁璁㈠崟鍙烽�夋嫨浜у搧淇℃伅鍜屽伐鑹�
+     * @param orderNumber
+     * @return
+     */
+    List<Map<String, Object>> chooseMater(String orderNumber);
+
+    /**
+     * 鏂板杩囩▼妫�楠屽崟
+     * @param id
+     * @param processInspectVo
+     * @return
+     */
+    Integer addProcess(String id, ProcessInspectVo processInspectVo);
+
+    /**
+     * 涓婃姤(鏇存柊妫�楠岀姸鎬�)
+     * @param id
+     * @return
+     */
+    String updateProcessInspectsById(Integer id);
+
+    /**
+     * 鏍规嵁妫�楠屽崟id鏌ヨ杩囩▼妫�楠屽崟璇︽儏
+     * @param id
+     * @return
+     */
+    List<Map<String,Object>> selectProcessInspectsListById(Integer id);
+
+    /**
+     * 鍒嗛〉鏌ヨ杩囩▼妫�楠屽崟鍒楄〃
+     * @param page
+     * @param techfather
+     * @param result
+     * @param name
+     * @return
+     */
+    IPage<Map<String, Object>> selectProcessInspectsList(Page<Object> page, String techfather, Integer result, String name);
+}
+
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/RawInspectService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/RawInspectService.java
index ba303c1..93976f0 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/RawInspectService.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/RawInspectService.java
@@ -47,15 +47,4 @@
      */
     String updateRawInspectsById(Integer id);
 
-    /**
-     * 鏍规嵁鍘熸潗鏂欐楠屽崟id鍒犻櫎
-     * @param id
-     */
-    void delRawInsById(Integer id);
-
-    /**
-     * 鎵归噺鍒犻櫎
-     * @param ids
-     */
-    void delAllRawIns(String ids);
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/ResportService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/ResportService.java
deleted file mode 100644
index 9e9ef87..0000000
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/ResportService.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.yuanchu.mom.service;
-
-import com.yuanchu.mom.pojo.StatisticsData;
-import com.yuanchu.mom.pojo.ProReport;
-
-public interface ResportService {
-
-    /**
-     * 璁$畻鍚堟牸涓庝笉鍚堟牸鏁伴噺
-     * @param begin
-     * @param end
-     * @return
-     */
-    StatisticsData turno(String begin, String end);
-
-    /**
-     * 璁$畻浜у搧鎬婚噺
-     * @return
-     */
-    ProReport allNum();
-
-    /**
-     * 璁$畻杈炬爣鎬婚噺
-     * @return
-     */
-    ProReport statisNum();
-
-}
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java
index ffb04db..9704d8b 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java
@@ -3,19 +3,14 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 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.mom.mapper.ImportRepertoryMapper;
-import com.yuanchu.mom.mapper.InspectUnacceptedMapper;
-import com.yuanchu.mom.mapper.RepertoryMapper;
-import com.yuanchu.mom.pojo.FinishedInspect;
-import com.yuanchu.mom.mapper.FinishedInspectMapper;
-import com.yuanchu.mom.pojo.ImportRepertory;
-import com.yuanchu.mom.pojo.InspectUnaccepted;
-import com.yuanchu.mom.pojo.Repertory;
-import com.yuanchu.mom.service.FinishedInspectService;
+import com.yuanchu.mom.mapper.*;
+import com.yuanchu.mom.pojo.*;
+import com.yuanchu.mom.pojo.vo.FinishedInspectVo;
+import com.yuanchu.mom.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.yuanchu.mom.service.InspectionItemService;
-import com.yuanchu.mom.service.ProductService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -23,6 +18,8 @@
 import javax.annotation.Resource;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -36,13 +33,28 @@
 public class FinishedInspectServiceImpl extends ServiceImpl<FinishedInspectMapper, FinishedInspect> implements FinishedInspectService {
 
     @Resource
-    private FinishedInspectMapper finishedInspectMapper;
+    FinishedInspectMapper finishedInspectMapper;
 
-    @Autowired
-    private ProductService productService;
+    @Resource
+    MaterialMapper materialMapper;
 
-    @Autowired
-    private InspectionItemService inspectionItemService;
+    @Resource
+    StandardService standardService;
+
+    @Resource
+    SpecificationsService specificationsService;
+
+    @Resource
+    ManualTechnologyMapper manualTechnologyMapper;
+
+    @Resource
+    ProductService productService;
+
+    @Resource
+    InspectionItemService inspectionItemService;
+
+    @Resource
+    InspectionItemMapper inspectionItemMapper;
 
     @Resource
     InspectUnacceptedMapper inspectUnacceptedMapper;
@@ -50,162 +62,197 @@
     @Resource
     RepertoryMapper repertoryMapper;
 
-    @Resource
-    ImportRepertoryMapper importRepertoryMapper;
-
+    //鏂板妫�楠屽崟-->鏍规嵁璁㈠崟鍙烽�夋嫨浜у搧淇℃伅
     @Override
-    public Integer addProcessInspectionSheet(FinishedInspect finishedInspect) {
-        finishedInspect.setType(0);
-        int insert = finishedInspectMapper.insert(finishedInspect);
-        if (insert == 1) {
-            List<Map<String, Object>> maps = productService.selectProductList(finishedInspect.getSpecificationsId());
-            inspectionItemService.insertList(finishedInspect.getId(), maps);
-            return insert;
-        }
-        return 0;
+    public List<Map<String, Object>> chooseMater(String orderNumber) {
+        return finishedInspectMapper.chooseMater(orderNumber);
     }
 
-
+    //鏂板鎴愬搧妫�楠屽崟
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Integer inspectionConclusion(String username, Integer finishedInspectId, Integer result) {
-        //鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀粨璁�
-        LambdaUpdateWrapper<FinishedInspect> updateWrapper = new LambdaUpdateWrapper<>();
-        updateWrapper.eq(FinishedInspect::getId, finishedInspectId);
-        updateWrapper.set(FinishedInspect::getResult, result);
-        finishedInspectMapper.update(new FinishedInspect(), updateWrapper);
-        FinishedInspect finishedInspect = finishedInspectMapper.selectById(finishedInspectId);
-        /*妫�楠岀粨璁轰负涓嶅悎鏍�*/
-        if (result == 0) {
-            //濡傛灉鏄垚鍝佺殑缁撹涓轰笉鍚堟牸,闇�瑕佹柊澧炴垚鍝佷笉鍚堟牸妫�楠屽崟
-            if (finishedInspect.getType() == 0) {
-                /*鏂板鎴愬搧涓嶅悎鏍兼楠屽崟*/
-                InspectUnaccepted inspectUnaccepted = InspectUnaccepted.builder()
-                        .reason(finishedInspect.getProjectName() + "涓嶅悎鏍�")  //鏆備笖瀹氫箟涓哄伐绋嬪悕绉颁笉鍚堟牸
-                        .rawInspectId(finishedInspectId)
-                        .build();
-                inspectUnacceptedMapper.insert(inspectUnaccepted);
-            }
-            //濡傛灉鏄繃绋嬫楠岀殑缁撹涓轰笉鍚堟牸,闇�瑕佹柊澧炲崐鎴愬搧搴撳瓨涓旀楠岀粨鏋滀负涓嶅悎鏍�
-            if (finishedInspect.getType() == 1) {
-                /*鏂板鍗婃垚鍝�(1)搴撳瓨*/
-                //濡傛灉鍏ュ簱鐨勪俊鎭竴鏍峰彧鏈夊簱瀛樹笉涓�鏍�,鍒欏湪鍘熸潵鐨勫簱瀛樻暟閲忎笂鍔犱笂鐩稿簲鐨勬暟閲�
-                LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
-                queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber())
-                        .eq(Repertory::getQualityTraceability, finishedInspect.getQualityTraceability())
-                        .eq(Repertory::getName, finishedInspect.getMaterial())
-                        .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel())
-                        .eq(Repertory::getUnit, finishedInspect.getUnit())
-                        .eq(Repertory::getType, 1)
-                        .eq(Repertory::getCheckResult, 0);
-                Repertory rep = repertoryMapper.selectOne(queryWrapper);
-                if (rep != null) {
-                    rep.setNumber(rep.getNumber() + finishedInspect.getQuantity());
-                    rep.setUserName(username);
-                    repertoryMapper.updateById(rep);
-                } else {
-                    //濡傛灉闄や簡搴撳瓨鍒殑淇℃伅鏈変换浣曚竴涓笉涓�鏍�,鍒欐柊澧炰竴鏉″崐鎴愬搧搴撳瓨
-                    Repertory repertory = Repertory.builder()
-                            .orderCode(finishedInspect.getOrderNumber())
-                            .qualityTraceability(finishedInspect.getQualityTraceability())
-                            .name(finishedInspect.getMaterial())
-                            .specifications(finishedInspect.getSpecificationsModel())
-                            .unit(finishedInspect.getUnit())
-                            .number(finishedInspect.getQuantity())
-                            .userName(username)
-                            .type(1)
-                            .checkResult(0)//妫�楠岀粨鏋滀负涓嶅悎鏍�
-                            .build();
-                    repertoryMapper.insert(repertory);
-                }
-            }
-        }
-        /*妫�楠岀粨璁轰负鍚堟牸*/
-        if (result == 1) {
-            //濡傛灉鏄垚鍝佹楠屽悎鏍�,,闇�瑕佹柊澧炴垚鍝�(0)搴撳瓨鍜屽叆搴撹褰�
-            if (finishedInspect.getType() == 0) {
-                /*鏂板鎴愬搧鍏ュ簱璁板綍*/
-                ImportRepertory importRepertory = ImportRepertory.builder()
-                        .orderCode(finishedInspect.getOrderNumber())
-                        .qualityTraceability(finishedInspect.getQualityTraceability())
-                        .name(finishedInspect.getMaterial())
-                        .specifications(finishedInspect.getSpecificationsModel())
-                        .unit(finishedInspect.getUnit())
-                        .number(finishedInspect.getQuantity())
-                        .userName(username)
-                        .build();
-                importRepertoryMapper.insert(importRepertory);
-                /*鏂板鎴愬搧(0)搴撳瓨*/
-                //濡傛灉鍏ュ簱鐨勪俊鎭竴鏍峰彧鏈夊簱瀛樹笉涓�鏍�,鍒欏湪鍘熸潵鐨勫簱瀛樻暟閲忎笂鍔犱笂鐩稿簲鐨勬暟閲�
-                LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
-                queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber())
-                        .eq(Repertory::getQualityTraceability, finishedInspect.getQualityTraceability())
-                        .eq(Repertory::getName, finishedInspect.getMaterial())
-                        .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel())
-                        .eq(Repertory::getUnit, finishedInspect.getUnit())
-                        .eq(Repertory::getType, 0)
-                        .eq(Repertory::getCheckResult, 1);
-                Repertory rep = repertoryMapper.selectOne(queryWrapper);
-                if (rep != null) {
-                    rep.setNumber(rep.getNumber() + finishedInspect.getQuantity());
-                    rep.setUserName(username);
-                    repertoryMapper.updateById(rep);
-                } else {
-                    //濡傛灉闄や簡搴撳瓨鍒殑淇℃伅鏈変换浣曚竴涓笉涓�鏍�,鍒欐柊澧炰竴鏉℃垚鍝佸簱瀛�
-                    Repertory repertory = Repertory.builder()
-                            .orderCode(finishedInspect.getOrderNumber())
-                            .qualityTraceability(finishedInspect.getQualityTraceability())
-                            .name(finishedInspect.getMaterial())
-                            .specifications(finishedInspect.getSpecificationsModel())
-                            .unit(finishedInspect.getUnit())
-                            .number(finishedInspect.getQuantity())
-                            .userName(username)
-                            .type(0)
-                            .checkResult(1)   //搴撳瓨妫�楠岀粨鏋滀负鍚堟牸
-                            .build();
-                    repertoryMapper.insert(repertory);
-                }
-            }
-            //濡傛灉鏄繃绋嬫楠屽悎鏍�,闇�瑕佹柊澧炲崐鎴愬搧(1)搴撳瓨,妫�楠岀粨鏋滀负鍚堟牸1
-            if (finishedInspect.getType()==1) {
-                /*鏂板鍗婃垚鍝�(1)搴撳瓨*/
-                //濡傛灉鍏ュ簱鐨勪俊鎭竴鏍峰彧鏈夊簱瀛樹笉涓�鏍�,鍒欏湪鍘熸潵鐨勫簱瀛樻暟閲忎笂鍔犱笂鐩稿簲鐨勬暟閲�
-                LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
-                queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber())
-                        .eq(Repertory::getQualityTraceability, finishedInspect.getQualityTraceability())
-                        .eq(Repertory::getName, finishedInspect.getMaterial())
-                        .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel())
-                        .eq(Repertory::getUnit, finishedInspect.getUnit())
-                        .eq(Repertory::getType, 1)
-                        .eq(Repertory::getCheckResult, 1);
-                Repertory rep = repertoryMapper.selectOne(queryWrapper);
-                if (rep != null) {
-                    rep.setNumber(rep.getNumber() + finishedInspect.getQuantity());
-                    rep.setUserName(username);
-                    repertoryMapper.updateById(rep);
-                } else {
-                    //濡傛灉闄や簡搴撳瓨鍒殑淇℃伅鏈変换浣曚竴涓笉涓�鏍�,鍒欐柊澧炰竴鏉″崐鎴愬搧搴撳瓨
-                    Repertory repertory = Repertory.builder()
-                            .orderCode(finishedInspect.getOrderNumber())
-                            .qualityTraceability(finishedInspect.getQualityTraceability())
-                            .name(finishedInspect.getMaterial())
-                            .specifications(finishedInspect.getSpecificationsModel())
-                            .unit(finishedInspect.getUnit())
-                            .number(finishedInspect.getQuantity())
-                            .userName(username)
-                            .type(1)
-                            .checkResult(1)//妫�楠岀粨鏋滀负鍚堟牸
-                            .build();
-                    repertoryMapper.insert(repertory);
-                }
-            }
-
-        }
-        return 1;
+    public Integer addProcessInspectionSheet(String userId, FinishedInspectVo finishedInspectVo) {
+        /*鏂板鎴愬搧妫�楠屽崟*/
+        FinishedInspect finishedInspect = new FinishedInspect();
+        finishedInspect.setUserId(Integer.parseInt(userId));
+        finishedInspect.setOrderNumber(finishedInspectVo.getOrderNumber());
+        finishedInspect.setCustomerName(finishedInspectVo.getPrname());
+        finishedInspect.setProjectName(finishedInspectVo.getSname());
+        finishedInspect.setQualityTraceability(finishedInspectVo.getQualityTraceability());
+        finishedInspect.setUnit(finishedInspectVo.getUnit());
+        finishedInspect.setQuantity(finishedInspectVo.getQuantity());
+        finishedInspect.setSpecificationsModel(finishedInspectVo.getSpecificationsModel());
+        finishedInspect.setMaterial(finishedInspectVo.getMaterial());
+        finishedInspect.setMaterialCode(finishedInspectVo.getMcode());
+        finishedInspectMapper.insert(finishedInspect);
+        /*鎵归噺鏂板鎴愬搧妫�楠岄」鐩崟*/
+        //鑾峰彇鍨嬪彿id
+        Integer specificationId = getSpecificationId(finishedInspectVo.getMaterial(), finishedInspectVo.getMcode(), finishedInspectVo.getSpecificationsModel());
+        //鏍规嵁鐢熶骇璁㈠崟id鏌ヨ缂栧埗宸ュ簭鐨勬渶鍚庝竴閬撳伐鑹�
+        List<ManualTechnology> manualTechnologyList = manualTechnologyMapper.selAllByMoId(finishedInspectVo.getId());
+        //鑾峰彇鏈�鍚庝竴閬撳伐鑹哄叧鑱旂殑宸ヨ壓璺嚎id
+        Integer technologyId = manualTechnologyList.get(0).getTechnologyId();
+        //鏌ヨ鏍囧噯BOM鎶�鏈寚鏍囦腑璇ュ瀷鍙峰伐鑹轰笅鏈�鏂扮増鏈殑妫�楠岄」鐩�
+        Integer ver = productService.selectVerByPro(specificationId).get(0);//璇ュ瀷鍙蜂笅鎶�鏈寚鏍囨渶鏂扮増鏈�
+        List<Product> productList = productService.selProByVerSpe(technologyId, ver);
+        List<InspectionItem> inspectionItemList = productList.stream().map(product -> {
+            InspectionItem inspectionItem = new InspectionItem();
+            BeanUtils.copyProperties(product, inspectionItem);
+            inspectionItem.setInspectId(finishedInspect.getId());
+            inspectionItem.setType(2);//鎴愬搧
+            return inspectionItem;
+        }).collect(Collectors.toList());
+        inspectionItemService.saveBatch(inspectionItemList);
+        return finishedInspect.getId();
     }
 
+    //涓婃姤(鏇存柊妫�楠岀姸鎬�)
     @Override
-    public IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer inspectResult, String inspectDate, String inspectUsername) {
-        return finishedInspectMapper.selectFinishedInspectPage(page, inspectResult, inspectDate, inspectUsername);
+    @Transactional(rollbackFor = Exception.class)
+    public String updateFinishInspectsById(String username,Integer id) {
+        /*鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀粨璁�*/
+        //鍏堝垽鏂楠岀粨鏋�
+        List<Integer> results = inspectionItemMapper.getResult(id,1);
+        int count = 0;
+        for (Integer result : results) {
+            if (result != null && result == 1) {
+                count++;
+            }
+        }
+        FinishedInspect finishedInspect = finishedInspectMapper.selectById(id);
+        //濡傛灉妫�楠岄」鐩腑鐨勭粨璁哄寘鍚笉鍚堟牸鍒欐楠屽崟涓嶅悎鏍�
+        if (results.contains(0)) {
+            finishedInspect.setResult(0);//涓嶅悎鏍�
+            //鏇存柊妫�楠屽崟
+            finishedInspectMapper.updateById(finishedInspect);
+        } else if (count == results.size()) {
+            finishedInspect.setResult(1);//鍚堟牸
+            finishedInspectMapper.updateById(finishedInspect);
+        } else return "椤圭洰鏈楠屽畬!";
+        /*濡傛灉妫�楠岀粨璁轰负涓嶅悎鏍�,鍒欓渶瑕佹柊澧炰笉鍚堟牸妫�楠屽崟*/
+        if (finishedInspect.getResult() == 0) {
+            InspectUnaccepted finishUnaccepted = InspectUnaccepted.builder()
+                    .reason(finishedInspect.getMaterial() + "涓嶅悎鏍�")  //鏆備笖瀹氫箟涓轰骇鍝佸悕绉颁笉鍚堟牸
+                    .rawInspectId(id)
+                    .type(1)        //绫诲瀷涓烘垚鍝佹楠�
+                    .build();
+            inspectUnacceptedMapper.insert(finishUnaccepted);
+        }
+        /*濡傛灉妫�楠岀粨璁轰负鍚堟牸,鍒欓渶瑕佹柊澧炲崐鎴愬搧搴撳瓨*/
+        if (finishedInspect.getResult() == 1) {
+            //濡傛灉鍏ュ簱鐨勪俊鎭竴鏍峰彧鏈夊簱瀛樹笉涓�鏍�,鍒欏湪鍘熸潵鐨勫簱瀛樻暟閲忎笂鍔犱笂鐩稿簲鐨勬暟閲�
+            LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber())
+                    .eq(Repertory::getQualityTraceability, finishedInspect.getQualityTraceability())
+                    .eq(Repertory::getName, finishedInspect.getMaterial())
+                    .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel())
+                    .eq(Repertory::getUnit, finishedInspect.getUnit())
+                    .eq(Repertory::getType, 1);
+            Repertory rep = repertoryMapper.selectOne(queryWrapper);
+            if (rep != null ) {
+                rep.setNumber(rep.getNumber() + finishedInspect.getQuantity());
+                rep.setUserName(username);
+                repertoryMapper.updateById(rep);
+            } else {
+                //濡傛灉闄や簡搴撳瓨鍒殑淇℃伅鏈変换浣曚竴涓笉涓�鏍�,鍒欐柊澧炰竴鏉℃垚鍝佸簱瀛�
+                Repertory repertory = new Repertory();
+                repertory.setOrderCode(finishedInspect.getOrderNumber());
+                repertory.setQualityTraceability(finishedInspect.getQualityTraceability());
+                repertory.setName(finishedInspect.getMaterial());
+                repertory.setSpecifications(finishedInspect.getSpecificationsModel());
+                repertory.setUnit(finishedInspect.getUnit());
+                repertory.setNumber(finishedInspect.getQuantity());
+                repertory.setUserName(username);
+                repertory.setType(1);//鍗婃垚鍝�
+                repertory.setCheckResult(1);//鏆傚畾涓嶅垹
+                repertoryMapper.insert(repertory);
+            }
+        }
+        return "涓婃姤鎴愬姛!";
     }
+
+    //鍒嗛〉鏌ヨ鎴愬搧妫�楠屽崟鍒楄〃
+    @Override
+    public IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer result, String material) {
+        return finishedInspectMapper.selectFinishedInspectPage(page, result,material);
+    }
+
+    //鏍规嵁妫�楠屽崟id鏌ヨ鎴愬搧妫�楠屽崟璇︽儏
+    @Override
+    public List<Map<String, Object>> selectFinishInspectsListById(Integer id) {
+        return finishedInspectMapper.selectFinishInspectsListById(id);
+    }
+
+
+    /*鏍规嵁鏍峰搧鍚嶇О,鏍峰搧缂栧彿,鍨嬪彿瑙勬牸鑾峰彇鍨嬪彿id*/
+    private Integer getSpecificationId(String name, String mcode, String specification) {
+        //鑾峰彇鐗╂枡id
+        Material material = materialMapper.selectOne(Wrappers.<Material>query()
+                .eq("name", name)
+                .eq("code", mcode));
+        if (Objects.isNull(material)) {
+            return null;
+        }
+        //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉�
+        String[] split = specification.split("-");
+        String stName = split[0];
+        String spName = split[1];
+        //鑾峰彇瑙勬牸id
+        Standard standard = standardService.getOne(Wrappers.<Standard>query()
+                .eq("name", stName)
+                .eq("material_id", material.getId()));
+        //鑾峰彇鍨嬪彿id
+        Specifications specifications = specificationsService.getOne(Wrappers.<Specifications>query()
+                .eq("name", spName)
+                .eq("standard_id", standard.getId()));
+        return specifications.getId();
+    }
+
+    /*鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�*/
+    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/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InspectionItemServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InspectionItemServiceImpl.java
index e0a13f1..82273bf 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InspectionItemServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InspectionItemServiceImpl.java
@@ -1,26 +1,21 @@
 package com.yuanchu.mom.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.yuanchu.mom.pojo.Device;
-import com.yuanchu.mom.pojo.InspectionItem;
 import com.yuanchu.mom.mapper.InspectionItemMapper;
+import com.yuanchu.mom.mapper.TechniqueMapper;
+import com.yuanchu.mom.pojo.InspectionItem;
 import com.yuanchu.mom.pojo.dto.InspectionItemDto;
 import com.yuanchu.mom.pojo.dto.UpdateInspectionItemDto;
 import com.yuanchu.mom.service.DeviceService;
 import com.yuanchu.mom.service.InspectionItemService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.yuanchu.mom.service.SpecificationsService;
-import com.yuanchu.mom.utils.JackSonUtil;
-import com.yuanchu.mom.utils.MyUtil;
-import io.swagger.annotations.ApiModelProperty;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -36,51 +31,48 @@
     @Resource
     private InspectionItemMapper inspectionItemMapper;
 
-    @Autowired
-    private DeviceService deviceService;
+    @Resource
+    TechniqueMapper techniqueMapper;
 
+
+
+    //鏂板鎸夐挳-->2銆佹煡璇㈡墍鏈夋楠岄」鐩�
     @Override
-    public void insertList(Integer finishInspectId, List<Map<String, Object>> list) {
-        List<InspectionItem> list1 = new ArrayList<>();
-        for (Map<String, Object> map : list){
-            try {
-                InspectionItem inspectionItem = JackSonUtil.unmarshal(JackSonUtil.marshal(map), InspectionItem.class);
-                inspectionItem.setFinishInspectId(finishInspectId);
-                list1.add(inspectionItem);
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        }
-        inspectionItemMapper.insertBatchSomeColumn(list1);
+    public List<InspectionItemDto> selectInspectionItem(Integer finishInspectId, Integer type) {
+        return inspectionItemMapper.selectInspectionItem(finishInspectId,type);
     }
 
+
+    //鏂板杩囩▼妫�楠屽崟-->閫夋嫨璁惧
     @Override
-    public List<InspectionItemDto> selectInspectionItem(Integer finishInspectId) {
-        return inspectionItemMapper.selectInspectionItem(finishInspectId);
+    public List<Map<String, Object>> chooseDev(Integer technologyId, String father, String name) {
+        //璇ュ伐鑹篿d涓嬬敓浜у伐鑹烘渶鏂扮増鏈�
+        Integer ver = techniqueMapper.selectVerByTeId(technologyId).get(0);
+        return techniqueMapper.selDevByVerTecIdFaNam(technologyId, father, name, ver);
     }
 
+    //鏂板鎸夐挳-->2銆佹楠岄」鐩�-->澶卞幓鐒︾偣鍙戣捣璇ヨ姹�
     @Override
     public Integer addProcessInspectionSheet(String username, UpdateInspectionItemDto updateInspectionItemDto) {
-        LambdaUpdateWrapper<InspectionItem> wrapper = new LambdaUpdateWrapper<>();
-        wrapper.eq(InspectionItem::getId, updateInspectionItemDto.getInspectionItemId());
-        wrapper.set(InspectionItem::getInspectionValue, updateInspectionItemDto.getInspectionValue());
-        wrapper.set(InspectionItem::getDeviceId, updateInspectionItemDto.getDeviceId());
-        int i = checkValues(updateInspectionItemDto.getRequired(), updateInspectionItemDto.getInternal(), updateInspectionItemDto.getInspectionValue());
-        wrapper.set(InspectionItem::getResult, i);
-        wrapper.set(InspectionItem::getUsername, username);
-        int update = inspectionItemMapper.update(new InspectionItem(), wrapper);
-        if (update > 0){
-            return i;
+        //鏌ヨ鍐呮帶鍊煎拰鏍囧噯鍊�
+        InspectionItem inspectionItem = inspectionItemMapper.selectById(updateInspectionItemDto.getInspectionItemId());
+        inspectionItem.setInspectionValue(updateInspectionItemDto.getInspectionValue());
+        inspectionItem.setDeviceId(updateInspectionItemDto.getDeviceId());
+        List<Integer> list = Arrays.stream( updateInspectionItemDto.getInspectionValue().split(",")).map(s -> {
+            int values = checkValues(inspectionItem.getRequired(),  inspectionItem.getInternal(), s);
+            return values;
+        }).collect(Collectors.toList());
+        if (list.contains(0)) {
+            //濡傛灉鍏朵腑涓�涓楠屽�间笉鍚堟牸鍒欒椤圭洰妫�楠屼笉鍚堟牸
+            inspectionItem.setResult(0);
+        } else {
+            inspectionItem.setResult(1);
         }
-        return 2;
+        inspectionItemMapper.updateById(inspectionItem);
+        //杩斿洖妫�楠岄」鐩殑缁撹
+        return inspectionItem.getResult();
     }
 
-    @Override
-    public List<Map<String, Object>> selectDeviceIdAndName() {
-        LambdaQueryWrapper<Device> wrapper = new LambdaQueryWrapper<>();
-        wrapper.select(Device::getId, Device::getName);
-        return deviceService.listMaps(wrapper);
-    }
 
     /*鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�*/
     private int checkValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/ProcessInspectServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/ProcessInspectServiceImpl.java
new file mode 100644
index 0000000..ca30a73
--- /dev/null
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/ProcessInspectServiceImpl.java
@@ -0,0 +1,205 @@
+package com.yuanchu.mom.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.mom.mapper.*;
+import com.yuanchu.mom.pojo.*;
+import com.yuanchu.mom.pojo.vo.ProcessInspectVo;
+import com.yuanchu.mom.service.*;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * 杩囩▼妫�楠�(ProcessInspect)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author zss
+ * @since 2023-09-06 13:36:03
+ */
+@Service
+public class ProcessInspectServiceImpl extends ServiceImpl<ProcessInspectMapper, ProcessInspect> implements ProcessInspectService {
+
+    @Resource
+    ProcessInspectMapper processInspectMapper;
+
+    @Resource
+    MaterialMapper materialMapper;
+
+    @Resource
+    StandardService standardService;
+
+    @Resource
+    SpecificationsService specificationsService;
+
+    @Resource
+    ProductService productService;
+
+    @Resource
+    InspectionItemMapper inspectionItemMapper;
+
+    @Resource
+    InspectionItemService inspectionItemService;
+
+    @Resource
+    InspectUnacceptedMapper inspectUnacceptedMapper;
+
+    //鏂板杩囩▼妫�楠屽崟-->鏍规嵁璁㈠崟鍙烽�夋嫨浜у搧淇℃伅鍜屽伐鑹�
+    @Override
+    public List<Map<String, Object>> chooseMater(String orderNumber) {
+        return processInspectMapper.chooseMater(orderNumber);
+    }
+
+    //鏂板杩囩▼妫�楠屽崟
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Integer addProcess(String userId, ProcessInspectVo processInspectVo) {
+        /*鏂板杩囩▼妫�楠屽崟*/
+        ProcessInspect processInspect = new ProcessInspect();
+        processInspect.setUserId(Integer.parseInt(userId));
+        BeanUtils.copyProperties(processInspectVo, processInspect);
+        processInspectMapper.insert(processInspect);
+        /*鎵归噺鏂板杩囩▼妫�楠岄」鐩〃*/
+        //鑾峰彇鍨嬪彿id
+        Integer specificationId = getSpecificationId(processInspectVo.getMaterial(), processInspectVo.getMaterialCode(), processInspectVo.getSpecificationsModel());
+        //鏌ヨ鏍囧噯BOM鎶�鏈寚鏍囦腑璇ュ瀷鍙峰伐鑹轰笅鏈�鏂扮増鏈殑妫�楠岄」鐩�
+        Integer ver = productService.selectVerByPro(specificationId).get(0);//璇ュ瀷鍙蜂笅鎶�鏈寚鏍囨渶鏂扮増鏈�
+        List<Product> productList = productService.selProByVerSpe(processInspectVo.getTechnologyId(), ver);
+        List<InspectionItem> inspectionItemList = productList.stream().map(product -> {
+            InspectionItem inspectionItem = new InspectionItem();
+            BeanUtils.copyProperties(product, inspectionItem);
+            inspectionItem.setInspectId(processInspect.getId());
+            inspectionItem.setType(1);
+            return inspectionItem;
+        }).collect(Collectors.toList());
+        inspectionItemService.saveBatch(inspectionItemList);
+        return processInspect.getId();
+    }
+
+    //涓婃姤(鏇存柊妫�楠岀姸鎬�)
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String updateProcessInspectsById(Integer id) {
+        /*鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀粨璁�*/
+        //鍏堝垽鏂楠岀粨鏋�
+        List<Integer> results = inspectionItemMapper.getResult(id,1);
+        int count = 0;
+        for (Integer result : results) {
+            if (result != null && result == 1) {
+                count++;
+            }
+        }
+        ProcessInspect processInspect = processInspectMapper.selectById(id);
+        //濡傛灉妫�楠岄」鐩腑鐨勭粨璁哄寘鍚笉鍚堟牸鍒欐楠屽崟涓嶅悎鏍�
+        if (results.contains(0)) {
+            processInspect.setResult(0);//涓嶅悎鏍�
+            //鏇存柊妫�楠屽崟
+            processInspectMapper.updateById(processInspect);
+        } else if (count == results.size()) {
+            processInspect.setResult(1);//鍚堟牸
+            processInspectMapper.updateById(processInspect);
+        } else return "椤圭洰鏈楠屽畬!";
+        /*濡傛灉妫�楠岀粨璁轰负涓嶅悎鏍�,鍒欓渶瑕佹柊澧炰笉鍚堟牸妫�楠屽崟*/
+        if (processInspect.getResult() == 0) {
+            InspectUnaccepted processUnaccepted = InspectUnaccepted.builder()
+                    .reason(processInspect.getMaterial() +processInspect.getTechname()+ "涓嶅悎鏍�")  //鏆備笖瀹氫箟涓轰骇鍝佸悕绉�+宸ヨ壓涓嶅悎鏍�
+                    .rawInspectId(id)
+                    .type(2)        //绫诲瀷涓鸿繃绋嬫楠�
+                    .build();
+            inspectUnacceptedMapper.insert(processUnaccepted);
+        }
+        return "涓婃姤鎴愬姛!";
+    }
+
+    //鏍规嵁妫�楠屽崟id鏌ヨ杩囩▼妫�楠屽崟璇︽儏
+    @Override
+    public List<Map<String, Object>> selectProcessInspectsListById(Integer id) {
+        return processInspectMapper.selectProcessInspectsListById(id);
+    }
+
+    //鍒嗛〉鏌ヨ杩囩▼妫�楠屽崟鍒楄〃
+    @Override
+    public IPage<Map<String, Object>> selectProcessInspectsList(Page<Object> page, String techfather, Integer result, String name) {
+        return processInspectMapper.selectProcessInspectsList(page,techfather,result,name);
+    }
+
+
+    /*鏍规嵁鏍峰搧鍚嶇О,鏍峰搧缂栧彿,鍨嬪彿瑙勬牸鑾峰彇鍨嬪彿id*/
+    private Integer getSpecificationId(String name, String mcode, String specification) {
+        //鑾峰彇鐗╂枡id
+        Material material = materialMapper.selectOne(Wrappers.<Material>query()
+                .eq("name", name)
+                .eq("code", mcode));
+        if (Objects.isNull(material)) {
+            return null;
+        }
+        //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉�
+        String[] split = specification.split("-");
+        String stName = split[0];
+        String spName = split[1];
+        //鑾峰彇瑙勬牸id
+        Standard standard = standardService.getOne(Wrappers.<Standard>query()
+                .eq("name", stName)
+                .eq("material_id", material.getId()));
+        //鑾峰彇鍨嬪彿id
+        Specifications specifications = specificationsService.getOne(Wrappers.<Specifications>query()
+                .eq("name", spName)
+                .eq("standard_id", standard.getId()));
+        return specifications.getId();
+    }
+
+    /*鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�*/
+    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/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java
index 72b3615..b5ad1d0 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java
@@ -147,34 +147,6 @@
         return "涓婃姤鎴愬姛!";
     }
 
-    //鏍规嵁鍘熸潗鏂欐楠屽崟id鍒犻櫎
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void delRawInsById(Integer id) {
-        /*鍒犻櫎鍘熸潗鏂欐楠屽崟*/
-        RawInspect rawInspect = new RawInspect();
-        rawInspect.setId(id);
-        rawInspect.setState(0);
-        rawInspectMapper.updateById(rawInspect);
-        /*鍒犻櫎鍘熸潗鏂欐楠岄」鐩〃*/
-        rawInsProductMapper.updaRawInsById(id);
-        /*鍒犻櫎鍘熸潗鏂欎笉鍚堟牸鍗�*/
-        inspectUnacceptedMapper.updaRawIns(id);
-    }
-
-    //鎵归噺鍒犻櫎
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void delAllRawIns(String ids) {
-        /*鎵归噺鍒犻櫎鍘熸潗鏂欐楠屽崟*/
-        rawInspectMapper.delAllRawIns(ids);
-        /*鎵归噺鍒犻櫎鍘熸潗鏂欐楠岄」鐩〃*/
-        rawInsProductMapper.delAllRawIns(ids);
-        /*鎵归噺鍒犻櫎鍘熸潗鏂欎笉鍚堟牸鍗�*/
-        inspectUnacceptedMapper.delAllRawIns(ids);
-
-    }
-
 
     /*鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�*/
     private int checkValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/ResportServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/ResportServiceImpl.java
deleted file mode 100644
index 8abc759..0000000
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/ResportServiceImpl.java
+++ /dev/null
@@ -1,157 +0,0 @@
-package com.yuanchu.mom.service.impl;
-
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.yuanchu.mom.mapper.FinishedInspectMapper;
-import com.yuanchu.mom.mapper.RawInspectMapper;
-import com.yuanchu.mom.pojo.ProReport;
-import com.yuanchu.mom.pojo.RawInspect;
-import com.yuanchu.mom.pojo.StatisticsData;
-import com.yuanchu.mom.service.ResportService;
-import lombok.Data;
-import org.apache.tomcat.util.buf.StringUtils;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Date;
-
-
-@Service
-public class ResportServiceImpl implements ResportService {
-
-    @Resource
-    RawInspectMapper rawInspectMapper;
-
-    @Resource
-    FinishedInspectMapper finishedInspectMapper;
-
-    //璁$畻鍚堟牸涓庝笉鍚堟牸鏁伴噺
-    @Override
-    public StatisticsData turno(String begin, String end) {
-        StatisticsData statisticsData = new StatisticsData();
-        //鍘熸潗鏂欏悎鏍�
-        Integer material = rawInspectMapper.selCountRaw(begin, end, 1);
-        statisticsData.setMaterial(material);
-        //鍘熸潗鏂欎笉鍚堟牸
-        Integer unmaterial = rawInspectMapper.selCountRaw(begin, end, 0);
-        statisticsData.setUnmaterial(unmaterial);
-        //杩囩▼鍚堟牸鏁�
-        Integer process = finishedInspectMapper.selCountFin(begin, end, 1, 1);
-        statisticsData.setProcess(process);
-        //杩囩▼涓嶅悎鏍�
-        Integer unprocess = finishedInspectMapper.selCountFin(begin, end, 1, 0);
-        statisticsData.setUnprocess(unprocess);
-        //鎴愬搧鍚堟牸鏁�
-        Integer finished = finishedInspectMapper.selCountFin(begin, end, 0, 1);
-        statisticsData.setFinished(finished);
-        //鎴愬搧涓嶅悎鏍�
-        Integer unfinished = finishedInspectMapper.selCountFin(begin, end, 0, 0);
-        statisticsData.setUnfinished(unfinished);
-        return statisticsData;
-    }
-
-    //璁$畻浜у搧鎬婚噺
-    @Override
-    public ProReport allNum() {
-        // 鑾峰彇褰撳墠鏃ユ湡鐨勫墠涓や釜鏈堢殑鏃ユ湡
-        ArrayList<String> dateList = new ArrayList<>();
-        LocalDate now = LocalDate.now();
-        LocalDate oneAgo = now.minusMonths(1);
-        LocalDate twoAgo = now.minusMonths(2);
-        // 鏍煎紡鍖栨棩鏈熷璞�
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
-        dateList.add(twoAgo.format(formatter));
-        dateList.add(oneAgo.format(formatter));
-        dateList.add(now.format(formatter));
-        //鑾峰彇鍘熸潗鏂欐湀浜ч噺
-        Long cLong = rawInspectMapper.seAllCount(now.withDayOfMonth(1).toString(), now.plusMonths(1).withDayOfMonth(1).minusDays(1).toString());
-        Long bLong = rawInspectMapper.seAllCount(oneAgo.withDayOfMonth(1).toString(), oneAgo.plusMonths(1).withDayOfMonth(1).minusDays(1).toString());
-        Long aLong = rawInspectMapper.seAllCount(twoAgo.withDayOfMonth(1).toString(), twoAgo.plusMonths(1).withDayOfMonth(1).minusDays(1).toString());
-        ArrayList<String> materialList = new ArrayList<>();
-        materialList.add(aLong.toString());
-        materialList.add(bLong.toString());
-        materialList.add(cLong.toString());
-        //鑾峰彇杩囩▼鏈堜骇閲�
-        Long c1Long = finishedInspectMapper.seAllCount(now.withDayOfMonth(1).toString(), now.plusMonths(1).withDayOfMonth(1).minusDays(1).toString(), 1);
-        Long b1Long = finishedInspectMapper.seAllCount(oneAgo.withDayOfMonth(1).toString(), oneAgo.plusMonths(1).withDayOfMonth(1).minusDays(1).toString(), 1);
-        Long a1Long = finishedInspectMapper.seAllCount(twoAgo.withDayOfMonth(1).toString(), twoAgo.plusMonths(1).withDayOfMonth(1).minusDays(1).toString(), 1);
-        ArrayList<String> processList = new ArrayList<>();
-        processList.add(a1Long.toString());
-        processList.add(b1Long.toString());
-        processList.add(c1Long.toString());
-        //鑾峰彇鎴愬搧鏈堜骇閲�
-        Long c2Long = finishedInspectMapper.seAllCount(now.withDayOfMonth(1).toString(), now.plusMonths(1).withDayOfMonth(1).minusDays(1).toString(), 0);
-        Long b2Long = finishedInspectMapper.seAllCount(oneAgo.withDayOfMonth(1).toString(), oneAgo.plusMonths(1).withDayOfMonth(1).minusDays(1).toString(), 0);
-        Long a2Long = finishedInspectMapper.seAllCount(twoAgo.withDayOfMonth(1).toString(), twoAgo.plusMonths(1).withDayOfMonth(1).minusDays(1).toString(), 0);
-        ArrayList<String> finishedList = new ArrayList<>();
-        finishedList.add(a2Long.toString());
-        finishedList.add(b2Long.toString());
-        finishedList.add(c2Long.toString());
-        return ProReport.builder()
-                .dateList(StringUtils.join(dateList, ','))
-                .materialList(StringUtils.join(materialList, ','))
-                .processList(StringUtils.join(processList, ','))
-                .finishedList(StringUtils.join(finishedList, ','))
-                .build();
-    }
-
-    //璁$畻杈炬爣鎬婚噺
-    @Override
-    public ProReport statisNum() {
-        // 鑾峰彇褰撳墠鏃ユ湡鐨勫墠涓や釜鏈堢殑鏃ユ湡
-        ArrayList<String> dateList = new ArrayList<>();
-        LocalDate now = LocalDate.now();
-        LocalDate oneAgo = now.minusMonths(1);
-        LocalDate twoAgo = now.minusMonths(2);
-        // 鏍煎紡鍖栨棩鏈熷璞�
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
-        dateList.add(twoAgo.format(formatter));
-        dateList.add(oneAgo.format(formatter));
-        dateList.add(now.format(formatter));
-        //鑾峰彇鍘熸潗鏂欐湀杈炬爣浜ч噺
-        Integer c = rawInspectMapper.selCountRaw(now.withDayOfMonth(1).toString(), now.plusMonths(1).withDayOfMonth(1).minusDays(1).toString(), 1);
-        Integer b = rawInspectMapper.selCountRaw(oneAgo.withDayOfMonth(1).toString(), oneAgo.plusMonths(1).withDayOfMonth(1).minusDays(1).toString(), 1);
-        Integer a = rawInspectMapper.selCountRaw(twoAgo.withDayOfMonth(1).toString(), twoAgo.plusMonths(1).withDayOfMonth(1).minusDays(1).toString(), 1);
-        ArrayList<String> materialList = new ArrayList<>();
-        materialList.add(a.toString());
-        materialList.add(b.toString());
-        materialList.add(c.toString());
-        //鑾峰彇杩囩▼鏈堣揪鏍囦骇閲�
-        Integer c1 = finishedInspectMapper.selCountFin(now.withDayOfMonth(1).toString(), now.plusMonths(1).withDayOfMonth(1).minusDays(1).toString(), 1, 1);
-        Integer b1 = finishedInspectMapper.selCountFin(oneAgo.withDayOfMonth(1).toString(), oneAgo.plusMonths(1).withDayOfMonth(1).minusDays(1).toString(), 1, 1);
-        Integer a1 = finishedInspectMapper.selCountFin(twoAgo.withDayOfMonth(1).toString(), twoAgo.plusMonths(1).withDayOfMonth(1).minusDays(1).toString(), 1, 1);
-        ArrayList<String> processList = new ArrayList<>();
-        processList.add(a1.toString());
-        processList.add(b1.toString());
-        processList.add(c1.toString());
-        //鑾峰彇鎴愬搧鏈堣揪鏍囦骇閲�
-        Integer c2 = finishedInspectMapper.selCountFin(now.withDayOfMonth(1).toString(), now.plusMonths(1).withDayOfMonth(1).minusDays(1).toString(), 0, 1);
-        Integer b2 = finishedInspectMapper.selCountFin(oneAgo.withDayOfMonth(1).toString(), oneAgo.plusMonths(1).withDayOfMonth(1).minusDays(1).toString(), 0, 1);
-        Integer a2 = finishedInspectMapper.selCountFin(twoAgo.withDayOfMonth(1).toString(), twoAgo.plusMonths(1).withDayOfMonth(1).minusDays(1).toString(), 0, 1);
-        ArrayList<String> finishedList = new ArrayList<>();
-        finishedList.add(a2.toString());
-        finishedList.add(b2.toString());
-        finishedList.add(c2.toString());
-        return ProReport.builder()
-                .dateList(StringUtils.join(dateList, ','))
-                .materialList(StringUtils.join(materialList, ','))
-                .processList(StringUtils.join(processList, ','))
-                .finishedList(StringUtils.join(finishedList, ','))
-                .build();
-    }
-
-
-    /*璁$畻鐧惧垎姣�*/
-    private BigDecimal getRadio(Integer all, Long num) {
-        if (all.intValue() == 0) {
-            return new BigDecimal(0);
-        }
-        BigDecimal numBigDecimal = new BigDecimal(num);
-        BigDecimal allBigDecimal = new BigDecimal(all);
-        BigDecimal divide = numBigDecimal.divide(allBigDecimal, 4, BigDecimal.ROUND_HALF_UP);
-        return divide.multiply(new BigDecimal(100));
-    }
-}
diff --git a/inspect-server/src/main/resources/mapper/FinishedInspectMapper.xml b/inspect-server/src/main/resources/mapper/FinishedInspectMapper.xml
index bd34643..4c3684d 100644
--- a/inspect-server/src/main/resources/mapper/FinishedInspectMapper.xml
+++ b/inspect-server/src/main/resources/mapper/FinishedInspectMapper.xml
@@ -2,45 +2,119 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.yuanchu.mom.mapper.FinishedInspectMapper">
     <select id="selectFinishedInspectPage" resultType="map">
-        SELECT f.`id`, f.`order_number`, f.`customer_name`, f.`project_name`, f.`quality_traceability`,
-        f.`material_code`, f.`material`, f.`specifications_model`, f.`unit`,
-        f.`quantity`, u.`name`, DATE_FORMAT(f.`create_time`, '%Y-%m-%d') detectionPeriod, f.`result`
-        FROM finished_inspect f, `user` u
+        SELECT f.`id`,
+        f.`order_number`,
+        f.`customer_name`,
+        f.`project_name`,
+        f.`quality_traceability`,
+        f.`material_code`,
+        f.`material`,
+        f.`specifications_model`,
+        f.`unit`,
+        f.`quantity`,
+        u.`name`,
+        DATE_FORMAT(f.`create_time`, '%Y-%m-%d') detectionPeriod,
+        f.`result`
+        FROM mom_ocean.finished_inspect f, mom_ocean.`user` u
         WHERE f.`user_id` = u.`id`
         AND f.`state` = 1
-        <if test="inspectResult != null and inspectResult != ''">
-            AND f.result = #{inspectResult}
+        <if test="result != null ">
+            AND f.result = #{result}
         </if>
-        <if test="inspectDate != null and inspectDate != ''">
-            AND DATE_FORMAT(f.`create_time`, '%Y-%m-%d') = #{inspectDate}
-        </if>
-        <if test="inspectUsername != null and inspectUsername != ''">
-            AND u.`name` LIKE CONCAT('%',#{inspectUsername},'%')
+        <if test="material != null and material != ''">
+            AND f.`material` LIKE CONCAT('%',#{material},'%')
         </if>
     </select>
-    <select id="selCountFin" resultType="java.lang.Integer">
-        select count(id)
-        from mom_ocean.finished_inspect
-        where state=1
-        and result=#{result}
-        and type=#{type}
-        <if test="begin != null and begin!=''">
-            and finished_inspect.create_time &gt;= #{begin}
-        </if>
-        <if test="end != null and end!=''">
-            and finished_inspect.create_time &lt;= #{end}
-        </if>
+
+    <!--鏂板妫�楠屽崟-鏍规嵁璁㈠崟鍙烽�夋嫨浜у搧淇℃伅-->
+    <resultMap id="oneMap" type="map">
+        <id property="prname" column="prname"/>
+        <result property="sname" column="sname"/>
+        <collection property="children" resultMap="twoMap" javaType="List"/>
+    </resultMap>
+    <resultMap id="twoMap" type="map">
+        <id property="id" column="moid"/>
+        <result property="name" column="material"/>
+        <result property="mcode" column="mcode"/>
+        <result property="qualityTraceability" column="quality_traceability"/>
+        <result property="specifications" column="specifications"/>
+        <result property="unit" column="unit"/>
+        <collection property="children" resultMap="threeMap" javaType="List"/>
+    </resultMap>
+    <select id="chooseMater" resultMap="oneMap">
+        select s.proname prname,
+               s.name    sname,
+               quality_traceability,
+               m.code    mcode,
+               mo.name   material,
+               specifications,
+               unit,
+               mo.id     moid
+        from mom_ocean.manufacture_order mo
+                 left join mom_ocean.material m on m.name = mo.name
+                 left join mom_ocean.sale s on order_number = order_code
+        where mo.state = 1
+          and m.type = 1
+          and order_code = #{orderNumber}
     </select>
-    <select id="seAllCount" resultType="java.lang.Long">
-        select count(id)
-        from mom_ocean.finished_inspect
-        where state=1
-        and type=#{type}
-        <if test="begin != null and begin!=''">
-            and finished_inspect.create_time &gt;= #{begin}
-        </if>
-        <if test="end != null and end!=''">
-            and finished_inspect.create_time &lt;= #{end}
-        </if>
+
+    <!--鏍规嵁妫�楠屽崟id鏌ヨ鎴愬搧妫�楠屽崟璇︽儏-->
+    <resultMap id="seProInsListById" type="map">
+        <id property="name" column="order_number"/>
+        <result property="customerName" column="customer_name"/>
+        <result property="projectName" column="project_name"/>
+        <result property="qualityTraceability" column="quality_traceability"/>
+        <result property="materialCode" column="material_code"/>
+        <result property="material" column="material"/>
+        <result property="specifications" column="specifications_model"/>
+        <result property="funit" column="funit"/>
+        <result property="quantity" column="quantity"/>
+        <result property="fresult" column="fresult"/>
+        <collection property="children" resultMap="seProInsListByIdmap" javaType="List"/>
+    </resultMap>
+    <resultMap id="seProInsListByIdmap" type="map">
+        <result property="ifather" column="ifather"/>
+        <collection property="children" resultMap="seProInsListByIdmaps" javaType="List"/>
+    </resultMap>
+    <resultMap id="seProInsListByIdmaps" type="map">
+        <id property="iid" column="iid"/>
+        <result property="iname" column="iname"/>
+        <result property="iunit" column="iunit"/>
+        <result property="required" column="required"/>
+        <result property="internal" column="internal"/>
+        <result property="inspectionValue" column="inspection_value"/>
+        <result property="dname" column="dname"/>
+        <result property="iresult" column="iresult"/>
+        <result property="username" column="username"/>
+    </resultMap>
+    <select id="selectFinishInspectsListById" resultMap="seProInsListById">
+        select order_number,
+               customer_name,
+               project_name,
+               quality_traceability,
+               material_code,
+               material,
+               specifications_model,
+               fi.unit     funit,
+               quantity,
+               ii.id       iid,
+               ii.father   ifather,
+               ii.name     iname,
+               ii.unit     iunit,
+               required,
+               internal,
+               inspection_value,
+               device.name dname,
+               ii.result   iresult,
+               username,
+               fi.result   fresult
+        from mom_ocean.inspection_item ii
+                 left join mom_ocean.finished_inspect fi on fi.id = inspect_id
+                 left join mom_ocean.device
+                           on ii.device_id = device.id
+        where ii.type = 2
+          and ii.state = 1
+          and fi.state = 1
+          and fi.id = #{id}
     </select>
 </mapper>
diff --git a/inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml b/inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml
index 065f169..ad09614 100644
--- a/inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml
@@ -1,20 +1,7 @@
 <?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.mom.mapper.InspectUnacceptedMapper">
-    <!--鏍规嵁鍘熸潗鏂欐楠屽崟id鍒犻櫎鍘熸潗鏂欎笉鍚堟牸鍝�-->
-    <update id="updaRawIns">
-        update mom_ocean.inspect_unaccepted
-        set state=0
-        where raw_inspect_id = #{id}
-          and type = 0
-    </update>
-    <!--鏍规嵁鍘熸潗鏂欐楠屽崟id鎵归噺鍒犻櫎鍘熸潗鏂欎笉鍚堟牸鍝�-->
-    <update id="delAllRawIns">
-        update mom_ocean.inspect_unaccepted
-        set state=0
-        where raw_inspect_id in (${ids})
-          and type = 0
-    </update>
+
 
     <!--涓嶅悎鏍肩鐞�-->
     <select id="selectInsList" resultType="java.util.Map">
diff --git a/inspect-server/src/main/resources/mapper/InspectionItemMapper.xml b/inspect-server/src/main/resources/mapper/InspectionItemMapper.xml
index 4ee7346..b117cab 100644
--- a/inspect-server/src/main/resources/mapper/InspectionItemMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InspectionItemMapper.xml
@@ -1,12 +1,10 @@
 <?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.mom.mapper.InspectionItemMapper">
-
     <resultMap id="selectInspectionItemMap" type="inspectionItemDto">
-        <id property="father" column="father"/>
+        <id property="father" column="ifather"/>
         <association property="children" resultMap="selectInspectionItemDto2Map"/>
     </resultMap>
-
     <resultMap id="selectInspectionItemDto2Map" type="inspectionItemDto2">
         <id property="id" column="id"/>
         <result property="name" column="name"/>
@@ -14,14 +12,34 @@
         <result property="internal" column="internal"/>
         <result property="required" column="required"/>
         <result property="inspectionValue" column="inspection_value"/>
-        <result property="deviceId" column="device_id"/>
+        <result property="dname" column="dname"/>
         <result property="result" column="result"/>
+        <result property="username" column="username"/>
     </resultMap>
-
     <select id="selectInspectionItem" resultMap="selectInspectionItemMap">
-        SELECT i.`id`, IFNULL(i.`father`,i.`name`) father, i.`name`, i.`unit`, i.`internal`, i.`required`, i.`inspection_value`, i.`device_id`, i.`result`
-        FROM inspection_item i
-        WHERE i.`finish_inspect_id` = #{finishInspectId}
+        SELECT i.`id`,
+               i.`father` ifather,
+               i.`name`,
+               i.`unit`,
+               i.`internal`,
+               i.`required`,
+               i.`inspection_value`,
+               device.name                  dname,
+               i.`result`,
+               username
+        FROM mom_ocean.inspection_item i
+                 left join mom_ocean.device on i.device_id = device.id
+        WHERE i.`inspect_id` = #{id}
           AND i.`state` = 1
+          and i.type = #{type}
+    </select>
+
+    <!--鑾峰彇璇ユ楠屽崟涓嬫楠岄」鐩殑缁撴灉闆�-->
+    <select id="getResult" resultType="java.lang.Integer">
+        select distinct result
+        from mom_ocean.inspection_item
+        where state = 1
+          and type = #{type}
+          and inspect_id = #{id}
     </select>
 </mapper>
diff --git a/inspect-server/src/main/resources/mapper/ProcessInspectMapper.xml b/inspect-server/src/main/resources/mapper/ProcessInspectMapper.xml
new file mode 100644
index 0000000..ce020f7
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/ProcessInspectMapper.xml
@@ -0,0 +1,120 @@
+<?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.mom.mapper.ProcessInspectMapper">
+    <!--鏂板杩囩▼妫�楠屽崟-鏍规嵁璁㈠崟鍙烽�夋嫨浜у搧淇℃伅鍜屽伐鑹�-->
+    <resultMap id="oneMap" type="map">
+        <id property="name" column="material"/>
+        <result property="code" column="code"/>
+        <result property="specifications" column="specifications"/>
+        <result property="unit" column="unit"/>
+        <collection property="children" resultMap="twoMap" javaType="List"/>
+    </resultMap>
+    <resultMap id="twoMap" type="map">
+        <result property="name" column="techfather"/>
+        <collection property="children" resultMap="threeMap" javaType="List"/>
+    </resultMap>
+    <resultMap id="threeMap" type="map">
+        <id property="id" column="technologyId"/>
+        <result property="name" column="techname"/>
+    </resultMap>
+    <select id="chooseMater" resultMap="oneMap">
+        select mo.name       material,
+               code,
+               specifications,
+               unit,
+               technology_id technologyId,
+               techfather,
+               techname
+        from mom_ocean.manual_technology mt
+                 left join mom_ocean.manufacture_order mo on mt.manufacture_order_id = mo.id
+                 left join mom_ocean.material m on m.name = mo.name
+        where mo.state = 1
+          and type = 1
+          and order_code = #{orderNumber}
+    </select>
+
+    <!--鏍规嵁妫�楠屽崟id鏌ヨ杩囩▼妫�楠屽崟璇︽儏-->
+    <resultMap id="seProInsListById" type="map">
+        <id property="name" column="order_number"/>
+        <result property="materialCode" column="material_code"/>
+        <result property="material" column="material"/>
+        <result property="specifications" column="specifications_model"/>
+        <result property="techfather" column="techfather"/>
+        <result property="techname" column="techname"/>
+        <result property="punit" column="punit"/>
+        <result property="quantity" column="quantity"/>
+        <result property="presult" column="presult"/>
+        <collection property="children" resultMap="seProInsListByIdmap" javaType="List"/>
+    </resultMap>
+    <resultMap id="seProInsListByIdmap" type="map">
+        <result property="ifather" column="ifather"/>
+        <collection property="children" resultMap="seProInsListByIdmaps" javaType="List"/>
+    </resultMap>
+    <resultMap id="seProInsListByIdmaps" type="map">
+        <id property="iid" column="iid"/>
+        <result property="iname" column="iname"/>
+        <result property="iunit" column="iunit"/>
+        <result property="required" column="required"/>
+        <result property="internal" column="internal"/>
+        <result property="inspectionValue" column="inspection_value"/>
+        <result property="dname" column="dname"/>
+        <result property="iresult" column="iresult"/>
+        <result property="username" column="username"/>
+    </resultMap>
+    <select id="selectProcessInspectsListById" resultMap="seProInsListById">
+        select order_number,
+               material_code,
+               material,
+               specifications_model,
+               techfather,
+               techname,
+               pi.unit     punit,
+               quantity,
+               ii.id       iid,
+               ii.father   ifather,
+               ii.name     iname,
+               ii.unit     iunit,
+               required,
+               internal,
+               inspection_value,
+               device.name dname,
+               ii.result   iresult,
+               username,
+               pi.result   presult
+        from mom_ocean.inspection_item ii
+                 left join mom_ocean.process_inspect pi on pi.id = inspect_id
+                 left join mom_ocean.device on ii.device_id = device.id
+        where ii.type = 1
+          and ii.state = 1
+          and pi.state = 1
+          and pi.id = #{id}
+    </select>
+    <!--鍒嗛〉鏌ヨ杩囩▼妫�楠屽崟鍒楄〃-->
+    <select id="selectProcessInspectsList" resultType="java.util.Map">
+        select process_inspect.id,
+               order_number,
+               material_code,
+               material,
+               specifications_model,
+               techfather,
+               techname,
+               unit,
+               quantity,
+               DATE_FORMAT(process_inspect.create_time, '%Y-%m-%d') createTime,
+               name,
+               DATE_FORMAT(process_inspect.update_time, '%Y-%m-%d') updateTime,
+               result
+        from mom_ocean.process_inspect
+                 left join mom_ocean.user on process_inspect.user_id = user.id
+        where process_inspect.state = 1
+        <if test="techfather!=null and techfather!=''">
+            and techfather like  concat('%',#{techfather},'%')
+        </if>
+        <if test="material!=null and material!=''">
+            and material like  concat('%',#{name},'%')
+        </if>
+        <if test="result!=null ">
+            and result =#{result}
+        </if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/inspect-server/src/main/resources/mapper/RawInsProductMapper.xml b/inspect-server/src/main/resources/mapper/RawInsProductMapper.xml
index d8e0d2a..3c9a5d9 100644
--- a/inspect-server/src/main/resources/mapper/RawInsProductMapper.xml
+++ b/inspect-server/src/main/resources/mapper/RawInsProductMapper.xml
@@ -1,18 +1,6 @@
 <?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.mom.mapper.RawInsProductMapper">
-    <!--鏍规嵁鍘熸潗鏂欐楠屽崟id鍒犻櫎-->
-    <update id="updaRawInsById">
-        update mom_ocean.raw_ins_product
-        set state=0
-        where raw_inspect_id = #{id}
-    </update>
-    <!--鏍规嵁鍘熸潗鏂欐楠屽崟id鎵归噺鍒犻櫎鍘熸潗鏂欐楠岄」鐩�-->
-    <update id="delAllRawIns">
-        update mom_ocean.raw_ins_product
-        set state=0
-        where raw_inspect_id in (${ids})
-    </update>
     <!--鏍规嵁鍘熸潗鏂欐楠屽崟id鏌ヨ妫�楠岄」鐩�-->
     <select id="getresult" resultType="java.lang.Integer">
         select test_state
diff --git a/inspect-server/src/main/resources/mapper/RawInspectMapper.xml b/inspect-server/src/main/resources/mapper/RawInspectMapper.xml
index 327ba05..1c9b84b 100644
--- a/inspect-server/src/main/resources/mapper/RawInspectMapper.xml
+++ b/inspect-server/src/main/resources/mapper/RawInspectMapper.xml
@@ -3,12 +3,6 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.yuanchu.mom.mapper.RawInspectMapper">
-    <!--鏍规嵁鍘熸潗鏂欐楠屽崟id鎵归噺鍒犻櫎-->
-    <update id="delAllRawIns">
-        update mom_ocean.raw_inspect
-        set state=0
-        where id in (${ids})
-    </update>
     <select id="selCountRaw" resultType="java.lang.Integer">
         select count(id)
         from mom_ocean.raw_inspect
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/controller/SaleController.java b/inventory-server/src/main/java/com/yuanchu/mom/controller/SaleController.java
index 625e65f..55b47ec 100644
--- a/inventory-server/src/main/java/com/yuanchu/mom/controller/SaleController.java
+++ b/inventory-server/src/main/java/com/yuanchu/mom/controller/SaleController.java
@@ -3,6 +3,7 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.pojo.dto.SaleMaterialDto;
 import com.yuanchu.mom.pojo.vo.SaleVo;
 import com.yuanchu.mom.service.RepertoryService;
 import com.yuanchu.mom.utils.JackSonUtil;
@@ -40,8 +41,6 @@
     @Resource
     Jwt jwt;
 
-    @Resource
-    RepertoryService repertoryService;
 
     @ApiOperation(value = "鏌ヨ閿�鍞崟鍒楄〃")
     @ApiImplicitParams(value = {
@@ -63,9 +62,21 @@
 
     @ApiOperation(value = "鏂板閿�鍞崟")
     @PostMapping("/addSale")
-    public Result addSale(@RequestHeader("token") String token,@Validated @RequestBody SaleDto saleDto) throws Exception {
-            Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
-            saleService.addSale(data.get("name").replaceAll("\"", ""), saleDto);
+    public Result addSale(@RequestHeader("token") String token, @Validated @RequestBody SaleDto saleDto) throws Exception {
+        //鏍¢獙,鍚屼竴涓骇鍝佺殑瑙勬牸鍨嬪彿涓嶈兘鐩稿悓
+        List<SaleMaterialDto> saleMaterialList = saleDto.getSaleMaterialList();
+        // 浣跨敤鍝堝笇闆嗗悎鏉ュ垽鏂槸鍚﹀瓨鍦ㄧ浉鍚屽瓧娈靛�肩粍鍚�
+        Set<String> seen = new HashSet<>();
+        for (SaleMaterialDto saleMaterial: saleMaterialList) {
+            String key = saleMaterial.getName() + "," + saleMaterial.getSpecifications();
+            if (seen.contains(key)) {
+                return Result.fail("鍚屼竴涓骇鍝佺殑瑙勬牸鍨嬪彿涓嶈兘鐩稿悓");
+            } else {
+                seen.add(key);
+            }
+        }
+        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
+        saleService.addSale(data.get("name").replaceAll("\"", ""), saleDto);
         return Result.success("鏂板鎴愬姛!");
     }
 
@@ -84,10 +95,10 @@
             @ApiImplicitParam(name = "id", value = "json鏍煎紡鐨勯攢鍞崟鍐呭", dataTypeClass = Json.class, required = true)
     })
     @PostMapping("/updateSaleById")
-    public Result updateSaleById(@RequestHeader("token") String token,Integer id, String str) throws Exception {
+    public Result updateSaleById(@RequestHeader("token") String token, Integer id, String str) throws Exception {
         SaleVo saleVo = JackSonUtil.unmarshal(str, SaleVo.class);
         Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
-        saleService.updateSaleById(data.get("name").replaceAll("\"", ""),id, saleVo);
+        saleService.updateSaleById(data.get("name").replaceAll("\"", ""), id, saleVo);
         return Result.success("淇敼鎴愬姛!");
     }
 
@@ -103,10 +114,10 @@
 
     @ApiOperation(value = "鎵归噺鍒犻櫎")
     @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "ids", value = "ids", dataTypeClass = Integer.class, dataType = "List",required = true)
+            @ApiImplicitParam(name = "ids", value = "ids", dataTypeClass = Integer.class, dataType = "List", required = true)
     })
     @PostMapping("/delAllSale")
-    public Result delAllSale( @RequestParam("ids") List<Integer> ids) {
+    public Result delAllSale(@RequestParam("ids") List<Integer> ids) {
         saleService.delAllSale(ids);
         return Result.success();
     }
@@ -117,9 +128,9 @@
             @ApiImplicitParam(name = "type", value = "鐘舵��", dataTypeClass = Integer.class, required = true)
     })
     @PostMapping("/check")
-    public Result check(@RequestHeader("token") String token,Integer id,Integer type) throws Exception {
+    public Result check(@RequestHeader("token") String token, Integer id, Integer type) throws Exception {
         Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
-        saleService.check(data.get("name").replaceAll("\"", ""),id,type);
+        saleService.check(data.get("name").replaceAll("\"", ""), id, type);
         return Result.success("瀹℃牳鎴愬姛");
     }
 
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java
index 1b945e8..8fa48b7 100644
--- a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java
+++ b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java
@@ -6,12 +6,16 @@
 import com.yuanchu.mom.mapper.*;
 import com.yuanchu.mom.pojo.*;
 import com.yuanchu.mom.service.OrdersService;
+import com.yuanchu.mom.service.SpecificationsService;
+import com.yuanchu.mom.service.StandardService;
 import com.yuanchu.mom.utils.MyUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
 import javax.annotation.Resource;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * 璁㈠崟(Order)琛ㄦ湇鍔″疄鐜扮被
@@ -20,10 +24,19 @@
  * @since 2023-07-31 11:57:44
  */
 @Service("orderService")
-public class OrdersServiceImpl  implements OrdersService {
+public class OrdersServiceImpl implements OrdersService {
 
     @Resource
     SaleMapper saleMapper;
+
+    @Resource
+    MaterialMapper materialMapper;
+
+    @Resource
+    StandardService standardService;
+
+    @Resource
+    SpecificationsService specificationsService;
 
     @Resource
     SaleMaterialMapper saleMaterialMapper;
@@ -41,11 +54,10 @@
     TechnologyMapper technologyMapper;
 
 
-
     //鏌ヨ鎵�鏈夎鍗曞垪琛�
     @Override
-    public IPage<Map<String, Object>> selectAllOrder(Page<Object> page, String orderCode, String name, Integer type , String time) {
-        return saleMapper.selectAllOrder(page, orderCode,name,type, time);
+    public IPage<Map<String, Object>> selectAllOrder(Page<Object> page, String orderCode, String name, Integer type, String time) {
+        return saleMapper.selectAllOrder(page, orderCode, name, type, time);
     }
 
     //缂栧埗璁㈠崟BOM
@@ -75,10 +87,16 @@
                 .build();
         //鏂板鐢熶骇璁㈠崟
         manufactureOrderMapper.insert(manufactureOrder);
-        //鏌ヨ浜у搧鐨勫伐搴�
-        String[] split = manufactureOrder.getSpecifications().split("-");
-        Specifications specifications = specificationsMapper.selectOne(Wrappers.<Specifications>query().eq("name", split[1]));
-        List<Technology> technologyList = technologyMapper.selectList(Wrappers.<Technology>query().eq("specifications_id", specifications.getId()));
+        //鏌ヨ浜у搧鐨勬渶鏂板伐搴�
+        //浜у搧缂栫爜
+        String code = materialMapper.selMcode(manufactureOrder.getName());
+        //鍨嬪彿id
+        Integer specificationId = getSpecificationId(manufactureOrder.getName(), code, manufactureOrder.getSpecifications());
+        //榛樿鏈�鏂扮増鏈�
+        Integer version = technologyMapper.selectVerByTec(specificationId).get(0);
+        List<Technology> technologyList = technologyMapper.selectList(Wrappers.<Technology>query()
+                .eq("specifications_id", specificationId)
+                .eq("version", version));
         for (Technology technology : technologyList) {
             ManualTechnology manualTechnology = ManualTechnology.builder()
                     .techname(technology.getName())
@@ -86,11 +104,36 @@
                     .deviceGroup(technology.getDeviceGroup())
                     .manufactureOrderId(manufactureOrder.getId())
                     .productionQuota(technology.getProductionQuota())
+                    .technologyId(technology.getId())
                     .build();
             //鏂板缂栧埗宸ュ簭琛�
             manualTechnologyMapper.insert(manualTechnology);
         }
     }
 
+    /*鏍规嵁鏍峰搧鍚嶇О,鏍峰搧缂栧彿,鍨嬪彿瑙勬牸鑾峰彇鍨嬪彿id*/
+    private Integer getSpecificationId(String name, String mcode, String specification) {
+        //鑾峰彇鐗╂枡id
+        Material material = materialMapper.selectOne(Wrappers.<Material>query()
+                .eq("name", name)
+                .eq("code", mcode));
+        if (Objects.isNull(material)) {
+            return null;
+        }
+        //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉�
+        String[] split = specification.split("-");
+        String stName = split[0];
+        String spName = split[1];
+        //鑾峰彇瑙勬牸id
+        Standard standard = standardService.getOne(Wrappers.<Standard>query()
+                .eq("name", stName)
+                .eq("material_id", material.getId()));
+        //鑾峰彇鍨嬪彿id
+        Specifications specifications = specificationsService.getOne(Wrappers.<Specifications>query()
+                .eq("name", spName)
+                .eq("standard_id", standard.getId()));
+        return specifications.getId();
+    }
+
 }
 
diff --git a/production-server/src/main/java/com/yuanchu/mom/mapper/ManualTechnologyMapper.java b/production-server/src/main/java/com/yuanchu/mom/mapper/ManualTechnologyMapper.java
index 5a063a4..1fabcfa 100644
--- a/production-server/src/main/java/com/yuanchu/mom/mapper/ManualTechnologyMapper.java
+++ b/production-server/src/main/java/com/yuanchu/mom/mapper/ManualTechnologyMapper.java
@@ -18,5 +18,8 @@
     List<Map<String, Object>> seleDatil(Integer manOrdId);
 
     List<Map<String, Object>> selectListTowTree(Integer schedulingId);
+
+    //鏍规嵁鐢熶骇璁㈠崟鏌ヨ鎵�鏈�(鍊掑簭)
+    List<ManualTechnology> selAllByMoId(Integer id);
 }
 
diff --git a/production-server/src/main/java/com/yuanchu/mom/pojo/ManualTechnology.java b/production-server/src/main/java/com/yuanchu/mom/pojo/ManualTechnology.java
index 3373482..af362d2 100644
--- a/production-server/src/main/java/com/yuanchu/mom/pojo/ManualTechnology.java
+++ b/production-server/src/main/java/com/yuanchu/mom/pojo/ManualTechnology.java
@@ -55,6 +55,11 @@
      **/
     private Integer manufactureOrderId;
 
+    /**
+     * 鍏宠仈 鏍囧噯BOM宸ヨ壓璺嚎id
+     **/
+    private Integer technologyId;
+
     @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
     @TableLogic(value = "1", delval = "0")
     private Integer state;
diff --git a/production-server/src/main/resources/mapper/ManualTechnologyMapper.xml b/production-server/src/main/resources/mapper/ManualTechnologyMapper.xml
index 752abcd..b6fe2a0 100644
--- a/production-server/src/main/resources/mapper/ManualTechnologyMapper.xml
+++ b/production-server/src/main/resources/mapper/ManualTechnologyMapper.xml
@@ -1,7 +1,6 @@
 <?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.mom.mapper.ManualTechnologyMapper">
-
     <resultMap id="seleDatilMap" type="map">
         <id property="lable" column="techfather"/>
         <collection property="children" resultMap="seleDatilTowMap" javaType="List"/>
@@ -37,8 +36,13 @@
         <result property="period" column="period"/>
     </resultMap>
     <select id="selectListTowTree" resultMap="selectListTowTreeFirstMap">
-        SELECT p.`id`, t.`techfather`, t.`techname`, d.`name`, DATE_FORMAT(p.`start_time`, '%Y-%m-%d') start_time,
-               DATE_FORMAT(p.`end_time`, '%Y-%m-%d') end_time, p.`period`
+        SELECT p.`id`,
+               t.`techfather`,
+               t.`techname`,
+               d.`name`,
+               DATE_FORMAT(p.`start_time`, '%Y-%m-%d') start_time,
+               DATE_FORMAT(p.`end_time`, '%Y-%m-%d')   end_time,
+               p.`period`
         FROM manufacture_order_process p
                  LEFT JOIN device d ON d.`id` = p.`device_id`
                  LEFT JOIN manual_technology t ON t.`id` = p.`manual_technology_id`
@@ -46,4 +50,13 @@
           AND p.`manufacture_scheduling_id` = #{schedulingId}
         ORDER BY p.`create_time` DESC
     </select>
+
+    <!--鏍规嵁鐢熶骇璁㈠崟id鏌ヨ鎵�鏈�(鍊掑簭)-->
+    <select id="selAllByMoId" resultType="com.yuanchu.mom.pojo.ManualTechnology">
+        select *
+        from mom_ocean.manual_technology
+        where state = 1
+          and manufacture_order_id = #{id}
+        order by id desc
+    </select>
 </mapper>
diff --git a/standard-server/src/main/java/com/yuanchu/mom/controller/MaterialController.java b/standard-server/src/main/java/com/yuanchu/mom/controller/MaterialController.java
index f77ff53..8bde0da 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/controller/MaterialController.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/controller/MaterialController.java
@@ -42,8 +42,7 @@
     @ApiOperation("(1,2绾�)鏂板-->鐗╂枡,鏍囧噯,鍨嬪彿")
     @PostMapping("/add")
     public Result<?> addMaterial(@Validated @RequestBody MaterialDto materialDto) {
-        materialService.addMaterial(materialDto);
-        return Result.success("娣诲姞鐗╂枡銆�" + materialDto.getName() + "銆戞垚鍔�");
+        return Result.success(materialService.addMaterial(materialDto));
     }
 
     @ApiOperation(value = "鍙充晶鏁版嵁灞曠ず-->閫夋嫨鐗堟湰")
diff --git a/standard-server/src/main/java/com/yuanchu/mom/controller/SpecificationsController.java b/standard-server/src/main/java/com/yuanchu/mom/controller/SpecificationsController.java
index e9f2a46..a66ff40 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/controller/SpecificationsController.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/controller/SpecificationsController.java
@@ -29,8 +29,7 @@
     @ApiOperation("(4绾�)鏂板-->鍨嬪彿")
     @PostMapping("/add")
     public Result<?> addSpecifications(@Validated @RequestBody SpecificationsDto specificationsDto) {
-        specificationsService.addSpecifications(specificationsDto);
-        return Result.fail("娣诲姞鍨嬪彿銆�"+ specificationsDto.getSpecifications() +"銆戞垚鍔燂紒");
+        return Result.success(specificationsService.addSpecifications(specificationsDto));
     }
 
 }
diff --git a/standard-server/src/main/java/com/yuanchu/mom/controller/StandardController.java b/standard-server/src/main/java/com/yuanchu/mom/controller/StandardController.java
index cb39b4c..502539a 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/controller/StandardController.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/controller/StandardController.java
@@ -29,8 +29,7 @@
     @ApiOperation("(3绾�)鏂板-->鏍囧噯,鍨嬪彿")
     @PostMapping("/add")
     public Result<?> addStandard(@Validated @RequestBody StandardDto standardDto) {
-        standardService.addStandard(standardDto);
-        return Result.fail("娣诲姞鏍囧噯銆�"+ standardDto.getStandard() +"銆戞垚鍔燂紒");
+        return Result.success(standardService.addStandard(standardDto));
     }
 
 }
diff --git a/standard-server/src/main/java/com/yuanchu/mom/mapper/MaterialMapper.java b/standard-server/src/main/java/com/yuanchu/mom/mapper/MaterialMapper.java
index 8b18fae..d622d74 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/mapper/MaterialMapper.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/mapper/MaterialMapper.java
@@ -21,6 +21,9 @@
 
     //鏍规嵁鏍囧噯id鏌ヨ鐗╂枡
     Material selFath(Integer id);
+
+    //鏍规嵁鐗╂枡鍚嶇О鏌ヨ鎴愬搧浜у搧缂栧彿
+    String selMcode(String name);
 }
 
 
diff --git a/standard-server/src/main/java/com/yuanchu/mom/mapper/ProductMapper.java b/standard-server/src/main/java/com/yuanchu/mom/mapper/ProductMapper.java
index 465d9a0..7e12789 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/mapper/ProductMapper.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/mapper/ProductMapper.java
@@ -38,6 +38,9 @@
 
     //鏍规嵁鎶�鏈寚鏍噄d鎵归噺鍒犻櫎
     void delAllPro(String ids);
+
+    //鏌ヨ鏍囧噯BOM鎶�鏈寚鏍囦腑璇ュ瀷鍙峰伐鑹轰笅鏈�鏂扮増鏈殑妫�楠岄」鐩�
+    List<Product> selProByVerSpe(Integer technologyId, Integer ver);
 }
 
 
diff --git a/standard-server/src/main/java/com/yuanchu/mom/mapper/TechniqueMapper.java b/standard-server/src/main/java/com/yuanchu/mom/mapper/TechniqueMapper.java
index 6cfe76f..e53a42f 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/mapper/TechniqueMapper.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/mapper/TechniqueMapper.java
@@ -37,5 +37,11 @@
 
     //鏍规嵁鐢熶骇宸ヨ壓id鎵归噺鍒犻櫎
     void delAllTeq(String ids);
+
+    //鏍规嵁宸ヨ壓璺嚎id鏌ヨ鎵�鏈夌増鏈�
+    List<Integer> selectVerByTeId(Integer technologyId);
+
+    //鏌ヨ璇ュ伐鑹轰笅鏈�鏂扮増鏈湪涓�涓楠岄」鐩笅鍙互浣跨敤鍝簺璁惧
+    List<Map<String, Object>> selDevByVerTecIdFaNam(Integer technologyId, String father, String name, Integer ver);
 }
 
diff --git a/standard-server/src/main/java/com/yuanchu/mom/mapper/TechnologyMapper.java b/standard-server/src/main/java/com/yuanchu/mom/mapper/TechnologyMapper.java
index 3366794..3cdf711 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/mapper/TechnologyMapper.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/mapper/TechnologyMapper.java
@@ -30,4 +30,7 @@
 
     //鎵归噺鍒犻櫎
     void delAllTech(String ids);
+
+    //鏌ヨ璇ュ瀷鍙峰伐鑹轰笅鏈�鏂扮増鏈殑宸ヨ壓id
+    Integer selTech(String techfather, String techname, Integer version, Integer specificationId);
 }
diff --git a/standard-server/src/main/java/com/yuanchu/mom/service/MaterialService.java b/standard-server/src/main/java/com/yuanchu/mom/service/MaterialService.java
index 7102da9..b5fa40e 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/service/MaterialService.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/service/MaterialService.java
@@ -26,14 +26,7 @@
      * @param materialDto
      * @return
      */
-    void addMaterial(MaterialDto materialDto);
-
-
-    /**
-     * 妫�楠屾ā鍧�-->QMS绠$悊-->鎴愬搧妫�楠�-->鏂板(椤圭洰鍚嶇О涓嬫媺妗嗭細Id涓庡悕绉帮紝缂栫爜)
-     */
-    List<Map<String, Object>> selectMaterialIdAndNameAndCode();
-
+    String addMaterial(MaterialDto materialDto);
 
 
 }
diff --git a/standard-server/src/main/java/com/yuanchu/mom/service/ProductService.java b/standard-server/src/main/java/com/yuanchu/mom/service/ProductService.java
index 5c07376..5263a32 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/service/ProductService.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/service/ProductService.java
@@ -84,4 +84,12 @@
      * @param ids
      */
     void delAllPro(String ids);
+
+    /**
+     * 鏌ヨ鏍囧噯BOM鎶�鏈寚鏍囦腑璇ュ瀷鍙峰伐鑹轰笅鏈�鏂扮増鏈殑妫�楠岄」鐩�
+     * @param technologyId
+     * @param ver
+     * @return
+     */
+    List<Product> selProByVerSpe(Integer technologyId, Integer ver);
 }
diff --git a/standard-server/src/main/java/com/yuanchu/mom/service/SpecificationsService.java b/standard-server/src/main/java/com/yuanchu/mom/service/SpecificationsService.java
index 38e22e8..e2bb76f 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/service/SpecificationsService.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/service/SpecificationsService.java
@@ -28,6 +28,6 @@
      *   (4绾�)鏂板-->鍨嬪彿
      * @param specificationsDto
      */
-    void addSpecifications(SpecificationsDto specificationsDto);
+    String addSpecifications(SpecificationsDto specificationsDto);
 
 }
diff --git a/standard-server/src/main/java/com/yuanchu/mom/service/StandardService.java b/standard-server/src/main/java/com/yuanchu/mom/service/StandardService.java
index 8a8f37f..d8dff13 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/service/StandardService.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/service/StandardService.java
@@ -15,5 +15,5 @@
      * (3绾�)鏂板-->鏍囧噯,鍨嬪彿
      * @param standardDto
      */
-    void addStandard(StandardDto standardDto);
+    String addStandard(StandardDto standardDto);
 }
diff --git a/standard-server/src/main/java/com/yuanchu/mom/service/impl/MaterialServiceImpl.java b/standard-server/src/main/java/com/yuanchu/mom/service/impl/MaterialServiceImpl.java
index 924383c..f588796 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/service/impl/MaterialServiceImpl.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/service/impl/MaterialServiceImpl.java
@@ -70,7 +70,13 @@
     //(1,2绾�)鏂板-->鐗╂枡,鏍囧噯,鍨嬪彿
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void addMaterial(MaterialDto materialDto) {
+    public String addMaterial(MaterialDto materialDto) {
+        //鏍¢獙娣诲姞鐗╂枡鏄惁閲嶅
+        if (materialMapper.selectOne(Wrappers.<Material>query()
+                .eq("type", materialDto.getType())
+                .eq("father", materialDto.getFather())).getName().equals(materialDto.getName())) {
+            return "璇ョ被鍨嬩骇鍝佸ぇ绫讳笅鏈夎浜у搧鍚嶇О";
+        }
         /*鏂板鐗╂枡琛�*/
         Material material = new Material();
         material.setCode(MyUtil.getTimeSixNumberCode("ML", "ML"));
@@ -153,15 +159,9 @@
             }
         }
         techniqueService.saveBatch(techniqueList);
+        return "娣诲姞鐗╂枡銆�" + materialDto.getName() + "銆戞垚鍔�";
     }
 
-    //妫�楠屾ā鍧�-->QMS绠$悊-->鎴愬搧妫�楠�-->鏂板(椤圭洰鍚嶇О涓嬫媺妗嗭細Id涓庡悕绉帮紝缂栫爜)
-    @Override
-    public List<Map<String, Object>> selectMaterialIdAndNameAndCode() {
-        LambdaQueryWrapper<Material> wrapper = new LambdaQueryWrapper<>();
-        wrapper.select(Material::getId, Material::getName, Material::getCode);
-        return materialMapper.selectMaps(wrapper);
-    }
 
 }
 
diff --git a/standard-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java b/standard-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java
index 0a17c2f..1b3815d 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java
@@ -105,6 +105,12 @@
     public void delAllPro(String ids) {
         productMapper.delAllPro(ids);
     }
+
+    //鏌ヨ鏍囧噯BOM鎶�鏈寚鏍囦腑璇ュ瀷鍙峰伐鑹轰笅鏈�鏂扮増鏈殑妫�楠岄」鐩�
+    @Override
+    public List<Product> selProByVerSpe(Integer technologyId, Integer ver) {
+        return productMapper.selProByVerSpe(technologyId,ver);
+    }
 }
 
 
diff --git a/standard-server/src/main/java/com/yuanchu/mom/service/impl/SpecificationsServiceImpl.java b/standard-server/src/main/java/com/yuanchu/mom/service/impl/SpecificationsServiceImpl.java
index 9b37d8c..8c07dba 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/service/impl/SpecificationsServiceImpl.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/service/impl/SpecificationsServiceImpl.java
@@ -62,7 +62,15 @@
 
     //(4绾�)鏂板-->鍨嬪彿
     @Override
-    public void addSpecifications(SpecificationsDto specificationsDto) {
+    public String addSpecifications(SpecificationsDto specificationsDto) {
+        //鏍¢獙娣诲姞璇ユ爣鍑嗕笅鐨勫瀷鍙锋槸鍚﹂噸澶�
+        List<String> specificationsNameList = specificationsMapper.selectList(Wrappers.<Specifications>query().eq("standard_id", specificationsDto.getId())).stream().map(specifications -> {
+            String specificationsName = specifications.getName();
+            return specificationsName;
+        }).collect(Collectors.toList());
+        if (specificationsNameList.contains(specificationsDto.getSpecifications())){
+            return "璇ユ爣鍑嗕笅鏈夎鍨嬪彿";
+        }
         /*鏂板鍨嬪彿琛�*/
         Specifications specifications = new Specifications();
         specifications.setStandardId(specificationsDto.getId());
@@ -135,6 +143,7 @@
             }
         }
         techniqueService.saveBatch(techniqueList);
+        return "娣诲姞鍨嬪彿銆�"+ specificationsDto.getSpecifications() +"銆戞垚鍔燂紒";
     }
 
     /**
diff --git a/standard-server/src/main/java/com/yuanchu/mom/service/impl/StandardServiceImpl.java b/standard-server/src/main/java/com/yuanchu/mom/service/impl/StandardServiceImpl.java
index 647020d..bab7259 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/service/impl/StandardServiceImpl.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/service/impl/StandardServiceImpl.java
@@ -61,7 +61,15 @@
     //(3绾�)鏂板-->鏍囧噯,鍨嬪彿
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void addStandard(StandardDto standardDto) {
+    public String addStandard(StandardDto standardDto) {
+        //鏍¢獙娣诲姞璇ョ墿鏂欎笅鐨勬爣鍑嗘槸鍚﹂噸澶�
+        List<String> standNameList = standardMapper.selectList(Wrappers.<Standard>query().eq("material_id", standardDto.getId())).stream().map(standard -> {
+            String standardName = standard.getName();
+            return standardName;
+        }).collect(Collectors.toList());
+        if (standNameList.contains(standardDto.getStandard())){
+            return "璇ヤ骇鍝佷笅鏈夎鏍囧噯";
+        }
         /*鏂板鏍囧噯琛�*/
         Standard standard = new Standard();
         standard.setMaterial_id(standardDto.getId());
@@ -139,6 +147,7 @@
             }
         }
         techniqueService.saveBatch(techniqueList);
+        return "娣诲姞鏍囧噯銆�"+ standardDto.getStandard() +"銆戞垚鍔燂紒";
     }
 }
 
diff --git a/standard-server/src/main/resources/mapper/MaterialMapper.xml b/standard-server/src/main/resources/mapper/MaterialMapper.xml
index 50a30ae..e7fc290 100644
--- a/standard-server/src/main/resources/mapper/MaterialMapper.xml
+++ b/standard-server/src/main/resources/mapper/MaterialMapper.xml
@@ -52,4 +52,12 @@
                     where standard.state = 1
                       and standard.id = #{id})
     </select>
+    <!--鏍规嵁鐗╂枡鍚嶇О鏌ヨ鎴愬搧浜у搧缂栧彿-->
+    <select id="selMcode" resultType="java.lang.String">
+        select code
+        from mom_ocean.material
+        where state = 1
+          and type = 1
+          and name = #{name}
+    </select>
 </mapper>
diff --git a/standard-server/src/main/resources/mapper/ProductMapper.xml b/standard-server/src/main/resources/mapper/ProductMapper.xml
index 4a3bf35..8a0c049 100644
--- a/standard-server/src/main/resources/mapper/ProductMapper.xml
+++ b/standard-server/src/main/resources/mapper/ProductMapper.xml
@@ -88,6 +88,14 @@
                                 where technology.state = 1
                                   and specifications_id = #{specificationsId})
     </select>
+    <!--鏌ヨ鏍囧噯BOM鎶�鏈寚鏍囦腑璇ュ瀷鍙峰伐鑹轰笅鏈�鏂扮増鏈殑妫�楠岄」鐩�-->
+    <select id="selProByVerSpe" resultType="com.yuanchu.mom.pojo.Product">
+        select *
+        from mom_ocean.product
+        where state = 1
+          and version = #{ver}
+          and technology_id = #{technologyId}
+    </select>
 
     <!--鏍规嵁宸ヨ壓璺嚎id鍒犻櫎-->
     <update id="delProByTecId">
diff --git a/standard-server/src/main/resources/mapper/TechniqueMapper.xml b/standard-server/src/main/resources/mapper/TechniqueMapper.xml
index 8f15432..dfa3f44 100644
--- a/standard-server/src/main/resources/mapper/TechniqueMapper.xml
+++ b/standard-server/src/main/resources/mapper/TechniqueMapper.xml
@@ -88,6 +88,25 @@
                                 where technology.state = 1
                                   and specifications_id = #{specificationsId})
     </select>
+    <!--鏍规嵁宸ヨ壓璺嚎id鏌ヨ鎵�鏈夌増鏈�-->
+    <select id="selectVerByTeId" resultType="java.lang.Integer">
+        select distinct version
+        from mom_ocean.technique
+        where state = 1
+          and technology_id = #{technologyId}
+    </select>
+
+    <!--鏌ヨ璇ュ伐鑹轰笅鏈�鏂扮増鏈湪涓�涓楠岄」鐩笅鍙互浣跨敤鍝簺璁惧-->
+    <select id="selDevByVerTecIdFaNam" resultType="java.util.Map">
+        select device.id, device
+        from mom_ocean.technique
+                 left join mom_ocean.device on name = device
+        where technique.state = 1
+          and technology_id = #{technologyId}
+          and product_father = #{father}
+          and product = #{name}
+          and version = #{ver}
+    </select>
 
     <!--鏍规嵁宸ヨ壓璺嚎id鍒犻櫎鐢熶骇宸ヨ壓-->
     <update id="delTeqByTecId">
diff --git a/standard-server/src/main/resources/mapper/TechnologyMapper.xml b/standard-server/src/main/resources/mapper/TechnologyMapper.xml
index bfdd39d..c01980b 100644
--- a/standard-server/src/main/resources/mapper/TechnologyMapper.xml
+++ b/standard-server/src/main/resources/mapper/TechnologyMapper.xml
@@ -61,6 +61,16 @@
         where state = 1
           and specifications_id = #{specificationsId}
     </select>
+    <!--鏌ヨ璇ュ瀷鍙峰伐鑹轰笅鏈�鏂扮増鏈殑宸ヨ壓id-->
+    <select id="selTech" resultType="java.lang.Integer">
+        select id
+        from mom_ocean.technology
+        where state = 1
+          and father = #{techfather}
+          and name = #{techname}
+          and specifications_id = #{specificationId}
+          and version = #{version}
+    </select>
 
     <!--鎵归噺鍒犻櫎-->
     <update id="delAllTech">
diff --git a/user-server/src/main/java/com/yuanchu/mom/service/UserService.java b/user-server/src/main/java/com/yuanchu/mom/service/UserService.java
index b63b082..0d8b0f9 100644
--- a/user-server/src/main/java/com/yuanchu/mom/service/UserService.java
+++ b/user-server/src/main/java/com/yuanchu/mom/service/UserService.java
@@ -10,8 +10,7 @@
     /*鍒ゆ柇鏄惁鐧诲綍鎴愬姛*/
     User selectUserByPwd(String account, String password);
 
-    //鏍规嵁鐢ㄦ埛id鏌ヨ鐢ㄦ埛鍚�
-    String selectNameById(Integer id);
+
 
     /**
      * 妫�楠屾ā鍧�-->QMS绠$悊-->鎴愬搧妫�楠�-->鏂板(闇�瑕佺敤鎴稩d涓庡悕绉�)
diff --git a/user-server/src/main/java/com/yuanchu/mom/service/imp/UserServiceImp.java b/user-server/src/main/java/com/yuanchu/mom/service/imp/UserServiceImp.java
index b9b108f..980f6c1 100644
--- a/user-server/src/main/java/com/yuanchu/mom/service/imp/UserServiceImp.java
+++ b/user-server/src/main/java/com/yuanchu/mom/service/imp/UserServiceImp.java
@@ -26,13 +26,6 @@
         return list.size()>0?list.get(0):null;
     }
 
-    //鏍规嵁鐢ㄦ埛id鏌ヨ鐢ㄦ埛鍚�
-    @Override
-    public String selectNameById(Integer id) {
-        User user = userMapper.selectById(id);
-        return user.getName();
-    }
-
     @Override
     public List<Map<String, Object>> listUserIdAndName() {
         LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();

--
Gitblit v1.9.3