From b9e2c1619cf61bcd5f24b858fff738244d20566e Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 05 九月 2023 17:04:29 +0800
Subject: [PATCH] 过程检验修改9-5

---
 standard-server/src/main/java/com/yuanchu/mom/mapper/TechnologyMapper.java                |    3 
 standard-server/src/main/resources/mapper/TechnologyMapper.xml                            |   10 
 inspect-server/src/main/resources/mapper/FinishedInspectMapper.xml                        |   31 ++
 inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java        |   59 ++++
 standard-server/src/main/java/com/yuanchu/mom/service/ProductService.java                 |    8 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java |  181 +++++++++++++++-
 standard-server/src/main/resources/mapper/MaterialMapper.xml                              |    8 
 standard-server/src/main/java/com/yuanchu/mom/controller/MaterialController.java          |    3 
 standard-server/src/main/java/com/yuanchu/mom/mapper/TechniqueMapper.java                 |    6 
 inspect-server/src/main/java/com/yuanchu/mom/mapper/FinishedInspectMapper.java            |    4 
 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 
 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/java/com/yuanchu/mom/service/impl/StandardServiceImpl.java       |   11 
 production-server/src/main/java/com/yuanchu/mom/pojo/ManualTechnology.java                |    5 
 standard-server/src/main/resources/mapper/ProductMapper.xml                               |    8 
 inventory-server/src/main/java/com/yuanchu/mom/controller/SaleController.java             |   33 ++-
 inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java          |   31 ++
 standard-server/src/main/java/com/yuanchu/mom/service/SpecificationsService.java          |    2 
 inspect-server/src/main/java/com/yuanchu/mom/pojo/FinishedInspect.java                    |   29 +-
 standard-server/src/main/java/com/yuanchu/mom/mapper/MaterialMapper.java                  |    3 
 standard-server/src/main/java/com/yuanchu/mom/mapper/ProductMapper.java                   |    3 
 standard-server/src/main/java/com/yuanchu/mom/service/impl/MaterialServiceImpl.java       |    9 
 standard-server/src/main/java/com/yuanchu/mom/service/MaterialService.java                |    2 
 standard-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java        |    6 
 system-run/src/main/resources/application-dev.yml                                         |    4 
 inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/FinishedInspectVo1.java              |   41 +++
 inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java    |   72 +++--
 standard-server/src/main/java/com/yuanchu/mom/service/StandardService.java                |    2 
 standard-server/src/main/java/com/yuanchu/mom/controller/SpecificationsController.java    |    3 
 32 files changed, 511 insertions(+), 109 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..ce2e053 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
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.mom.pojo.FinishedInspect;
+import com.yuanchu.mom.pojo.vo.FinishedInspectVo1;
 import com.yuanchu.mom.service.*;
 import com.yuanchu.mom.utils.JackSonUtil;
 import com.yuanchu.mom.utils.Jwt;
@@ -23,7 +24,7 @@
 
 /**
  * <p>
- *  鍓嶇鎺у埗鍣�
+ * 鍓嶇鎺у埗鍣�
  * </p>
  *
  * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
@@ -49,50 +50,62 @@
     @Autowired
     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(finishedInspectService.chooseMater(orderNumber));
+    }
+
+    @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(finishedInspectService.chooseDev(technologyId,father,name));
+    }
+
+    @ApiOperation(value = "鏂板杩囩▼妫�楠屽崟")
+    @PostMapping("/addProcess")
+    public Result<?> addProcess(@RequestHeader("token") String token, @RequestBody FinishedInspectVo1 finishedInspectVo1) throws Exception {
+        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
+        return Result.success(finishedInspectService.addProcess(data.get("id").replaceAll("\"", ""), finishedInspectVo1));
+    }
+
+
     @ApiOperation(value = "鏂板鎸夐挳-->1銆佹柊澧炴垚鍝佹楠屽崟")
     @PostMapping("/add_process_inspection_sheet")
-    public Result<?> addProcessInspectionSheet(@Validated @RequestBody FinishedInspect finishedInspect){
+    public Result<?> addProcessInspectionSheet(@Validated @RequestBody FinishedInspect finishedInspect) {
         Integer isInsertSuccess = finishedInspectService.addProcessInspectionSheet(finishedInspect);
-        if (isInsertSuccess == 1){
+        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鏌ヨ")
-    @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "materialId",value = "椤圭洰鍚嶇ОID",dataTypeClass  = Integer.class,required = true)
-    })
-    @GetMapping("/list_specification")
-    public Result<?> selectSpecificationIdAndName(Integer materialId){
-        List<Map<String, Object>> maps = specificationsService.selectSpecificationIdAndName(materialId);
-        return Result.success(maps);
-    }
 
     @ApiOperation(value = "鏂板鎸夐挳-->1銆佹柊澧炶繃绋嬫楠屽崟-->1銆侀」鐩悕绉颁笅鎷夋")
     @GetMapping("/list_material")
-    public Result<?> selectMaterialIdAndNameAndCode(){
+    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),
+            @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 {
+    public Result<?> inspectionConclusion(@RequestHeader("token") String token, Integer finishedInspectId, Integer result) 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){
+        Integer isInsertSuccess = finishedInspectService.inspectionConclusion(data.get("name").replaceAll("\"", ""), finishedInspectId, result);
+        if (isInsertSuccess == 1) {
             return Result.success("涓婃姤鎴愬姛锛�");
         }
         return Result.fail("涓婃姤澶辫触锛�");
@@ -107,7 +120,7 @@
             @ApiImplicitParam(name = "inspectUsername", value = "涓绘満宸�", dataTypeClass = String.class)
     })
     @GetMapping("/list_page")
-    public Result<?> selectFinishedInspectPage(Integer pageNo, Integer pageSize, Integer inspectResult, String inspectDate, String inspectUsername){
+    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);
         Map<String, Object> map = new HashMap<>();
         map.put("total", page.getTotal());
@@ -115,10 +128,5 @@
         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/mapper/FinishedInspectMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/FinishedInspectMapper.java
index 1b970f7..87b4a99 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
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 import java.time.LocalDate;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -25,4 +26,7 @@
 
     //璁$畻鏈堜骇閲�
     Long seAllCount(String begin, String end, int type);
+
+    //鏂板杩囩▼妫�楠屽崟-->鏍规嵁璁㈠崟鍙烽�夋嫨浜у搧淇℃伅
+    List<Map<String, Object>> chooseMater(String orderNumber);
 }
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..052f517 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
@@ -34,58 +34,53 @@
     @TableId(value = "id", 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")
+    @ApiModelProperty(value = "浜у搧缂栫爜", required = true, example = "GX20230807")
     private String materialCode;
 
-    @NotNull(message = "璇烽�夋嫨椤圭洰鍚嶇О锛�")
-    @ApiModelProperty(value = "椤圭洰鍚嶇О", required = true, example = "鍏夌氦")
+
+    @ApiModelProperty(value = "浜у搧鍚嶇О", required = true, example = "鍏夌氦")
     private String material;
 
-    @NotNull(message = "璇烽�夋嫨涓绘満宸ワ紒")
-    @ApiModelProperty(value = "涓绘満宸�:鐢ㄦ埛id", required = true, example = "1")
+
+    @ApiModelProperty(value = "鎶ユ浜�:鐢ㄦ埛id", required = true, example = "1")
     private Integer userId;
 
     @ApiModelProperty(value = "妫�楠岀粨璁�", hidden = true, required = true, example = "DDH202308010001")
     private Integer result;
 
     @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
-    @TableLogic(value = "1", delval = "0")
     private Integer state;
 
     @TableField(fill = FieldFill.INSERT)
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/FinishedInspectVo1.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/FinishedInspectVo1.java
new file mode 100644
index 0000000..ffcd306
--- /dev/null
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/FinishedInspectVo1.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 FinishedInspectVo1 {
+
+    @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 = "鍏宠仈鐨勫伐鑹鸿矾绾縤d涓嶈兘涓虹┖!")
+    private Integer technologyId;
+
+    //妫�楠屽��
+    private String inspectionValue;
+
+    //璁惧id
+    private Integer deviceId;
+}
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..7a7ae4a 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
@@ -4,13 +4,15 @@
 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.vo.FinishedInspectVo1;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.List;
 import java.util.Map;
 
 /**
  * <p>
- *  鏈嶅姟绫�
+ * 鏈嶅姟绫�
  * </p>
  *
  * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
@@ -21,7 +23,32 @@
     @Transactional(rollbackFor = Exception.class)
     Integer addProcessInspectionSheet(FinishedInspect finishedInspect);
 
-    Integer inspectionConclusion(String username,Integer finishedInspectId, Integer result);
+    Integer inspectionConclusion(String username, Integer finishedInspectId, Integer result);
 
     IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer inspectResult, String inspectDate, String inspectUsername);
+
+    /**
+     * 鏂板杩囩▼妫�楠屽崟-->鏍规嵁璁㈠崟鍙烽�夋嫨浜у搧淇℃伅
+     *
+     * @param orderNumber
+     * @return
+     */
+    List<Map<String, Object>> chooseMater(String orderNumber);
+
+    /**
+     * 鏂板杩囩▼妫�楠屽崟
+     *
+     * @param finishedInspectVo1
+     * @return
+     */
+    String addProcess(String userId, FinishedInspectVo1 finishedInspectVo1);
+
+    /**
+     * 鏂板杩囩▼妫�楠屽崟-->閫夋嫨璁惧
+     * @param mtid
+     * @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/impl/FinishedInspectServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java
index ffb04db..b7466c0 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,26 +3,25 @@
 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.ObjectUtils;
+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.FinishedInspectVo1;
+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;
 
 import javax.annotation.Resource;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -38,11 +37,23 @@
     @Resource
     private FinishedInspectMapper finishedInspectMapper;
 
+    @Resource
+    MaterialMapper materialMapper;
+
+    @Resource
+    StandardService standardService;
+
+    @Resource
+    SpecificationsService specificationsService;
+
+    @Resource
+    InspectionItemService inspectionItemService;
+
     @Autowired
     private ProductService productService;
 
-    @Autowired
-    private InspectionItemService inspectionItemService;
+    @Resource
+    UserMapper userMapper;
 
     @Resource
     InspectUnacceptedMapper inspectUnacceptedMapper;
@@ -53,13 +64,19 @@
     @Resource
     ImportRepertoryMapper importRepertoryMapper;
 
+    @Resource
+    TechnologyMapper technologyMapper;
+
+    @Resource
+    TechniqueMapper techniqueMapper;
+
     @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);
+            /*List<Map<String, Object>> maps = productService.selectProductList(finishedInspect.getSpecificationsId());
+            inspectionItemService.insertList(finishedInspect.getId(), maps);*/
             return insert;
         }
         return 0;
@@ -167,7 +184,7 @@
                 }
             }
             //濡傛灉鏄繃绋嬫楠屽悎鏍�,闇�瑕佹柊澧炲崐鎴愬搧(1)搴撳瓨,妫�楠岀粨鏋滀负鍚堟牸1
-            if (finishedInspect.getType()==1) {
+            if (finishedInspect.getType() == 1) {
                 /*鏂板鍗婃垚鍝�(1)搴撳瓨*/
                 //濡傛灉鍏ュ簱鐨勪俊鎭竴鏍峰彧鏈夊簱瀛樹笉涓�鏍�,鍒欏湪鍘熸潵鐨勫簱瀛樻暟閲忎笂鍔犱笂鐩稿簲鐨勬暟閲�
                 LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
@@ -208,4 +225,136 @@
     public IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer inspectResult, String inspectDate, String inspectUsername) {
         return finishedInspectMapper.selectFinishedInspectPage(page, inspectResult, inspectDate, inspectUsername);
     }
+
+    //鏂板杩囩▼妫�楠屽崟-->鏍规嵁璁㈠崟鍙烽�夋嫨浜у搧淇℃伅
+    @Override
+    public List<Map<String, Object>> chooseMater(String orderNumber) {
+        return finishedInspectMapper.chooseMater(orderNumber);
+    }
+
+    //鏂板杩囩▼妫�楠屽崟
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String addProcess(String userId, FinishedInspectVo1 finishedInspectVo1) {
+        /*鏂板杩囩▼妫�楠屽崟*/
+        FinishedInspect finishedInspect = new FinishedInspect();
+        finishedInspect.setType(1);
+        finishedInspect.setUserId(Integer.parseInt(userId));
+        BeanUtils.copyProperties(finishedInspectVo1, finishedInspect);
+        finishedInspectMapper.insert(finishedInspect);
+        /*鎵归噺鏂板杩囩▼妫�楠岄」鐩〃*/
+        //鑾峰彇鍨嬪彿id
+        Integer specificationId = getSpecificationId(finishedInspectVo1.getMaterial(), finishedInspectVo1.getMaterialCode(), finishedInspectVo1.getSpecificationsModel());
+        //鏌ヨ鏍囧噯BOM鎶�鏈寚鏍囦腑璇ュ瀷鍙峰伐鑹轰笅鏈�鏂扮増鏈殑妫�楠岄」鐩�
+        Integer ver = productService.selectVerByPro(specificationId).get(0);//璇ュ瀷鍙蜂笅鎶�鏈寚鏍囨渶鏂扮増鏈�
+        List<Product> productList = productService.selProByVerSpe(finishedInspectVo1.getTechnologyId(), ver);
+        List<InspectionItem> inspectionItemList = productList.stream().map(product -> {
+            InspectionItem inspectionItem = new InspectionItem();
+            BeanUtils.copyProperties(product, inspectionItem);
+            inspectionItem.setFinishInspectId(finishedInspect.getId());
+            //濡傛灉鏂板鏃惰繕濉啓浜嗘楠屽�煎垯瑕佽繘琛屽垽鏂楠岀粨鏋�
+            if (ObjectUtils.isNotEmpty(finishedInspectVo1.getInspectionValue())) {
+                inspectionItem.setInspectionValue(finishedInspectVo1.getInspectionValue());
+                //鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�0
+                String required = product.getRequired();//鏍囧噯鍊�
+                String internal = product.getInternal();//鍐呮帶鍊�
+                String testValue = finishedInspectVo1.getInspectionValue();//妫�娴嬪��
+                List<Integer> list = Arrays.stream(testValue.split(",")).map(s -> {
+                    int values = checkValues(required, internal, s);
+                    return values;
+                }).collect(Collectors.toList());
+                if (list.contains(0)) {
+                    //濡傛灉鍏朵腑涓�涓楠屽�间笉鍚堟牸鍒欒椤圭洰妫�楠屼笉鍚堟牸
+                    inspectionItem.setResult(0);
+                } else {
+                    inspectionItem.setResult(1);
+                }
+                inspectionItem.setUsername(userMapper.selectById(userId).getName());
+            }
+            return inspectionItem;
+        }).collect(Collectors.toList());
+        inspectionItemService.saveBatch(inspectionItemList);
+        return "鏂板杩囩▼妫�楠屽崟"+finishedInspect.getId()+"鎴愬姛!";
+    }
+
+    //鏂板杩囩▼妫�楠屽崟-->閫夋嫨璁惧
+    @Override
+    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);
+    }
+
+
+    /*鏍规嵁鏍峰搧鍚嶇О,鏍峰搧缂栧彿,鍨嬪彿瑙勬牸鑾峰彇鍨嬪彿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/resources/mapper/FinishedInspectMapper.xml b/inspect-server/src/main/resources/mapper/FinishedInspectMapper.xml
index bd34643..5dc7ac5 100644
--- a/inspect-server/src/main/resources/mapper/FinishedInspectMapper.xml
+++ b/inspect-server/src/main/resources/mapper/FinishedInspectMapper.xml
@@ -43,4 +43,35 @@
             and finished_inspect.create_time &lt;= #{end}
         </if>
     </select>
+    <!--鏂板杩囩▼妫�楠屽崟-鏍规嵁璁㈠崟鍙烽�夋嫨浜у搧淇℃伅-->
+    <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>
 </mapper>
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/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/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..d597262 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,7 +26,7 @@
      * @param materialDto
      * @return
      */
-    void addMaterial(MaterialDto materialDto);
+    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..5833ad8 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,6 +159,7 @@
             }
         }
         techniqueService.saveBatch(techniqueList);
+        return "娣诲姞鐗╂枡銆�" + materialDto.getName() + "銆戞垚鍔�";
     }
 
     //妫�楠屾ā鍧�-->QMS绠$悊-->鎴愬搧妫�楠�-->鏂板(椤圭洰鍚嶇О涓嬫媺妗嗭細Id涓庡悕绉帮紝缂栫爜)
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/system-run/src/main/resources/application-dev.yml b/system-run/src/main/resources/application-dev.yml
index c5fbcf7..9eccb15 100644
--- a/system-run/src/main/resources/application-dev.yml
+++ b/system-run/src/main/resources/application-dev.yml
@@ -34,7 +34,7 @@
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     driverClassName: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://192.168.73.113:3306/mom_ocean?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
+    url: jdbc:mysql://192.168.65.113:3306/mom_ocean?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
     username: user
     password: 123456
     druid:
@@ -59,7 +59,7 @@
     # redis鏁版嵁搴撶储寮�(榛樿涓�0)锛屾垜浠娇鐢ㄧ储寮曚负3鐨勬暟鎹簱锛岄伩鍏嶅拰鍏朵粬鏁版嵁搴撳啿绐�
     database: 0
     # redis鏈嶅姟鍣ㄥ湴鍧�锛堥粯璁や负localhost锛�
-    host: 192.168.73.113
+    host: 192.168.65.113
     # redis绔彛锛堥粯璁や负6379锛�
     port: 6379
     # redis璁块棶瀵嗙爜锛堥粯璁や负绌猴級
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