From 2dbc49184bd74845c8da694c20d6fd03d7ac87e0 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 21 九月 2023 16:16:21 +0800
Subject: [PATCH] 修改   9.21

---
 base-server/src/main/java/com/yuanchu/mom/service/DeviceService.java                       |    2 
 standard-server/src/main/java/com/yuanchu/mom/mapper/TechnologyMapper.java                 |    3 
 base-server/src/main/java/com/yuanchu/mom/service/TechnicalModelService.java               |    4 
 inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java         |   77 ++
 base-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java                         |    4 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java  |   26 
 production-server/src/main/java/com/yuanchu/mom/service/impl/ManualMbomServiceImpl.java    |   19 
 base-server/src/main/java/com/yuanchu/mom/mapper/TechnicalModelMapper.java                 |    4 
 standard-server/src/main/java/com/yuanchu/mom/controller/MaterialController.java           |   14 
 standard-server/src/main/java/com/yuanchu/mom/pojo/Mbom.java                               |    5 
 standard-server/src/main/java/com/yuanchu/mom/pojo/dto/MaterialDto.java                    |    2 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InspectionItemServiceImpl.java   |   45 +
 base-server/src/main/java/com/yuanchu/mom/controller/TechnologyTemplateController.java     |   17 
 base-server/src/main/resources/mapper/DeviceMapper.xml                                     |    6 
 standard-server/src/main/java/com/yuanchu/mom/pojo/dto/ProductDto.java                     |    1 
 standard-server/src/main/java/com/yuanchu/mom/controller/TechnologyController.java         |    2 
 production-server/src/main/java/com/yuanchu/mom/pojo/ManualProduct.java                    |   78 +++
 standard-server/src/main/java/com/yuanchu/mom/mapper/MbomMapper.java                       |    3 
 base-server/src/main/java/com/yuanchu/mom/mapper/TechnologyTemplateMapper.java             |    7 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/ProcessInspectServiceImpl.java   |   18 
 standard-server/src/main/java/com/yuanchu/mom/service/impl/StandardServiceImpl.java        |  178 ++++---
 standard-server/src/main/java/com/yuanchu/mom/service/impl/TechnologyServiceImpl.java      |   16 
 production-server/src/main/java/com/yuanchu/mom/pojo/ManualTechnology.java                 |    3 
 standard-server/src/main/java/com/yuanchu/mom/service/SpecificationsService.java           |    2 
 standard-server/src/main/java/com/yuanchu/mom/service/impl/MaterialServiceImpl.java        |  209 ++++----
 base-server/src/main/resources/mapper/TechnologyTemplateMapper.xml                         |   12 
 standard-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java         |   39 -
 base-server/src/main/java/com/yuanchu/mom/pojo/dto/TechnologyTemplateDto.java              |    7 
 production-server/src/main/java/com/yuanchu/mom/mapper/ManualMbomMapper.java               |   15 
 base-server/src/main/java/com/yuanchu/mom/pojo/dto/TechnicalModelDto.java                  |    1 
 inspect-server/src/main/java/com/yuanchu/mom/service/RawInspectService.java                |    2 
 standard-server/src/main/java/com/yuanchu/mom/pojo/dto/MbomDto2.java                       |    6 
 base-server/src/main/java/com/yuanchu/mom/service/TechnologyTemplateService.java           |   13 
 production-server/src/main/java/com/yuanchu/mom/service/ManualProductService.java          |   23 
 standard-server/src/main/resources/mapper/TechnologyMapper.xml                             |    9 
 production-server/src/main/resources/mapper/ManualProductMapper.xml                        |   11 
 inspect-server/src/main/java/com/yuanchu/mom/controller/InspectionItemController.java      |   16 
 standard-server/src/main/resources/mapper/MbomMapper.xml                                   |    8 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInsProductServiceImpl.java    |   21 
 standard-server/src/main/java/com/yuanchu/mom/mapper/TechniqueMapper.java                  |    4 
 base-server/src/main/java/com/yuanchu/mom/service/impl/TechnicalModelServiceImpl.java      |    9 
 inventory-server/src/main/java/com/yuanchu/mom/Task/DataPullTask.java                      |    6 
 standard-server/src/main/java/com/yuanchu/mom/service/impl/SpecificationsServiceImpl.java  |  181 ++++---
 standard-server/src/main/resources/mapper/TechniqueMapper.xml                              |    8 
 base-server/src/main/java/com/yuanchu/mom/controller/TechnicalModelController.java         |    8 
 standard-server/src/main/java/com/yuanchu/mom/controller/StandardController.java           |   10 
 base-server/src/main/java/com/yuanchu/mom/pojo/dto/MbomModelDto2.java                      |    4 
 production-server/src/main/java/com/yuanchu/mom/service/ManualMbomService.java             |   15 
 production-server/src/main/java/com/yuanchu/mom/service/impl/ManualProductServiceImpl.java |   30 +
 production-server/src/main/java/com/yuanchu/mom/service/ManualTechnologyService.java       |    1 
 inspect-server/src/main/java/com/yuanchu/mom/controller/RawInsProductController.java       |    2 
 inspect-server/src/main/java/com/yuanchu/mom/service/InspectionItemService.java            |    2 
 base-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java              |    2 
 inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/ProcessInspectVo.java                 |    4 
 standard-server/src/main/java/com/yuanchu/mom/service/MaterialService.java                 |    9 
 base-server/src/main/java/com/yuanchu/mom/pojo/TechnologyTemplate.java                     |    8 
 base-server/src/main/java/com/yuanchu/mom/pojo/MbomModel.java                              |    5 
 base-server/src/main/java/com/yuanchu/mom/service/impl/TechnologyTemplateServiceImpl.java  |   26 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java       |   30 
 production-server/src/main/java/com/yuanchu/mom/mapper/ManualProductMapper.java            |   19 
 production-server/src/main/java/com/yuanchu/mom/pojo/ManualMbom.java                       |   78 +++
 standard-server/src/main/java/com/yuanchu/mom/service/StandardService.java                 |    2 
 standard-server/src/main/java/com/yuanchu/mom/service/TechnologyService.java               |    2 
 standard-server/src/main/java/com/yuanchu/mom/controller/SpecificationsController.java     |   10 
 inspect-server/src/main/resources/mapper/ProcessInspectMapper.xml                          |    4 
 65 files changed, 909 insertions(+), 498 deletions(-)

diff --git a/base-server/src/main/java/com/yuanchu/mom/controller/TechnicalModelController.java b/base-server/src/main/java/com/yuanchu/mom/controller/TechnicalModelController.java
index 7df8a17..d10ec7e 100644
--- a/base-server/src/main/java/com/yuanchu/mom/controller/TechnicalModelController.java
+++ b/base-server/src/main/java/com/yuanchu/mom/controller/TechnicalModelController.java
@@ -31,11 +31,11 @@
 
     @ApiOperation(value = "鏌ヨ鎶�鏈寚鏍囩淮鎶ゅ垪琛�-->宸﹁竟浜岀骇灞曠ず宸ュ簭鍜屽伐鑹�")
     @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "type", value = "绫诲瀷(涓虹┖=0姗¤兌杩炴帴鍣�)", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "type", value = "绫诲瀷(涓虹┖=0姗¤兌杩炴帴鍣�)", dataTypeClass = String.class, required = true),
             @ApiImplicitParam(name = "message", value = "鎼滅储鍐呭", dataTypeClass = String.class)
     })
     @GetMapping("/selectAllTechTem")
-    public Result selectAllTechTem(Integer type, String message) {
+    public Result selectAllTechTem(String type, String message) {
         return Result.success(technicalModelService.selectAllTechTem(type, message));
     }
 
@@ -50,10 +50,10 @@
 
     @ApiOperation(value = "鏂板鎶�鏈寚鏍囩淮鎶�-->閫夋嫨宸ュ簭鍜屽伐鑹�")
     @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "type", value = "绫诲瀷", dataTypeClass = Integer.class, required = true)
+            @ApiImplicitParam(name = "type", value = "绫诲瀷", dataTypeClass = String.class, required = true)
     })
     @GetMapping("/chooseTechFath")
-    public Result chooseTechFath(Integer type) {
+    public Result chooseTechFath(String type) {
         return Result.success(technicalModelService.chooseTechFath(type));
     }
 
diff --git a/base-server/src/main/java/com/yuanchu/mom/controller/TechnologyTemplateController.java b/base-server/src/main/java/com/yuanchu/mom/controller/TechnologyTemplateController.java
index 9135dd4..fe10f0f 100644
--- a/base-server/src/main/java/com/yuanchu/mom/controller/TechnologyTemplateController.java
+++ b/base-server/src/main/java/com/yuanchu/mom/controller/TechnologyTemplateController.java
@@ -36,8 +36,13 @@
     @Autowired
     private TechnologyTemplateService technologyTemplateService;
 
+    @ApiOperation(value = "鏂板宸ヨ壓璺嚎缁存姢-->閫夋嫨绫诲瀷")
+    @GetMapping("/chooseType")
+    public Result chooseType() {
+        return Result.success(technologyTemplateService.chooseType());
+    }
 
-    @ApiOperation(value = "鏂板宸ヨ壓璺嚎缁存姢-->閫夋嫨璁惧缁�")
+    @ApiOperation(value = "鏂板宸ヨ壓璺嚎缁存姢-->閫夋嫨鐢熶骇璁惧缁�")
     @GetMapping("/chooseDevGroup")
     public Result chooseDevGroup() {
         return Result.success(technologyTemplateService.chooseDevGroup());
@@ -45,10 +50,10 @@
 
     @ApiOperation(value = "鏂板宸ヨ壓璺嚎缁存姢-->閫夋嫨宸ュ簭")
     @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "type", value = "绫诲瀷(涓虹┖=0姗¤兌杩炴帴鍣�)", dataTypeClass = Integer.class, required = true)
+            @ApiImplicitParam(name = "type", value = "绫诲瀷(涓虹┖=绗竴涓�)", dataTypeClass = String.class, required = true)
     })
     @GetMapping("/chooseTech")
-    public Result chooseTech(Integer type) {
+    public Result chooseTech(String type) {
         return Result.success(technologyTemplateService.chooseTech(type));
     }
 
@@ -61,11 +66,11 @@
 
     @ApiOperation(value = "鏌ヨ宸ヨ壓璺嚎鍒楄〃-->宸﹁竟浜岀骇灞曠ず")
     @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "type", value = "绫诲瀷(涓虹┖=0姗¤兌杩炴帴鍣�)", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "type", value = "绫诲瀷(涓虹┖=0姗¤兌杩炴帴鍣�)", dataTypeClass = String.class, required = true),
             @ApiImplicitParam(name = "message", value = "鎼滅储鍐呭", dataTypeClass = String.class)
     })
     @GetMapping("/selectAllTechTem")
-    public Result selectAllTechTem(Integer type, String message) {
+    public Result selectAllTechTem(String type, String message) {
         return Result.success(technologyTemplateService.selectAllTechTem(type, message));
     }
 
@@ -74,7 +79,7 @@
             @ApiImplicitParam(name = "father", value = "宸ュ簭(鐖剁被)", dataTypeClass = String.class, required = true)
     })
     @GetMapping("/selectAllTechNam")
-    public Result selectAllTechNam(String father,Integer id) {
+    public Result selectAllTechNam(String father) {
         return Result.success(technologyTemplateService.selectAllTechNam(father));
     }
 
diff --git a/base-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java b/base-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java
index 32b0c6c..4a06d81 100644
--- a/base-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java
+++ b/base-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java
@@ -25,13 +25,13 @@
     //鏍规嵁鍒嗙粍鏌ヨ璁惧鍚�
     List<Map<String, Object>> getDeviceNameByGroup(String deviceGroup);
 
-    //閫夋嫨鎵�鏈夎澶囩粍
+    //閫夋嫨鐢熶骇璁惧缁�
     List<Map<String, Object>> chooseDevGroup();
 
     //鎵归噺鍒犻櫎
     void delAllDevice(String ids);
 
-    //鍘熸潗鏂欐楠�-->閫夋嫨璁惧
+    //閫夋嫨妫�楠岃澶�
     List<Map<String, Object>> chooseDevice();
 
     //鏂板--閫夋嫨璁惧缁�
diff --git a/base-server/src/main/java/com/yuanchu/mom/mapper/TechnicalModelMapper.java b/base-server/src/main/java/com/yuanchu/mom/mapper/TechnicalModelMapper.java
index d189cc8..965a928 100644
--- a/base-server/src/main/java/com/yuanchu/mom/mapper/TechnicalModelMapper.java
+++ b/base-server/src/main/java/com/yuanchu/mom/mapper/TechnicalModelMapper.java
@@ -16,13 +16,13 @@
 public interface TechnicalModelMapper extends BaseMapper<TechnicalModel> {
 
     //鏌ヨ鎶�鏈寚鏍囩淮鎶ゅ垪琛�-->宸﹁竟浜岀骇灞曠ず宸ュ簭鍜屽伐鑹�
-    List<Map<String, Object>> selectAllTechTem(Integer type, String message);
+    List<Map<String, Object>> selectAllTechTem(String type, String message);
 
     //鏌ヨ鎶�鏈寚鏍囩淮鎶ゅ垪琛�-->鍙宠竟灞曠ず璇ュ伐鑹轰笅鐨勬楠岄」鐩�
     List<Map<String, Object>> selectAllTechNam(Integer id);
 
     //鏂板鎶�鏈寚鏍囩淮鎶�-->閫夋嫨宸ュ簭鍜屽伐鑹�
-    List<Map<String,Object>> chooseTechFath(Integer type);
+    List<Map<String,Object>> chooseTechFath(String type);
 
     //鏂板鎶�鏈寚鏍囩淮鎶�-->閫夋嫨椤圭洰鐖剁被
     List<String> chooseProFath(Integer id);
diff --git a/base-server/src/main/java/com/yuanchu/mom/mapper/TechnologyTemplateMapper.java b/base-server/src/main/java/com/yuanchu/mom/mapper/TechnologyTemplateMapper.java
index b6bd5f9..90ffb6b 100644
--- a/base-server/src/main/java/com/yuanchu/mom/mapper/TechnologyTemplateMapper.java
+++ b/base-server/src/main/java/com/yuanchu/mom/mapper/TechnologyTemplateMapper.java
@@ -17,10 +17,10 @@
 public interface TechnologyTemplateMapper extends BaseMapper<TechnologyTemplate> {
 
     //鏂板宸ヨ壓璺嚎-->閫夋嫨宸ュ簭
-    List<String> chooseTech(Integer type);
+    List<String> chooseTech(String type);
 
     //鏌ヨ宸ヨ壓璺嚎鍒楄〃-->宸﹁竟涓�绾у睍绀�
-    List<Map<String,Object>> selectAllTechTem(Integer type,String message);
+    List<Map<String,Object>> selectAllTechTem(String type,String message);
 
     //鏌ヨ宸ヨ壓璺嚎鍒楄〃-->鍙宠竟灞曠ず宸ヨ壓鍜岃澶囧拰鍏冧欢
     List<Map<String, Object>> selectAllTechNam(String father);
@@ -35,5 +35,8 @@
     //鎵归噺鍒犻櫎
     void delAllTech(String ids);
 
+    //鏂板宸ヨ壓璺嚎-->閫夋嫨绫诲瀷
+    List<String> chooseType();
+
 }
 
diff --git a/base-server/src/main/java/com/yuanchu/mom/pojo/MbomModel.java b/base-server/src/main/java/com/yuanchu/mom/pojo/MbomModel.java
index cc23d39..98ed008 100644
--- a/base-server/src/main/java/com/yuanchu/mom/pojo/MbomModel.java
+++ b/base-server/src/main/java/com/yuanchu/mom/pojo/MbomModel.java
@@ -48,11 +48,6 @@
     private String unit;
 
     /**
-     * 渚涘簲鍟�
-     **/
-    private String supplier;
-
-    /**
      * 璐ㄩ噺杩芥函鍙�
      **/
     private String qualityTraceability;
diff --git a/base-server/src/main/java/com/yuanchu/mom/pojo/TechnologyTemplate.java b/base-server/src/main/java/com/yuanchu/mom/pojo/TechnologyTemplate.java
index b014510..bbcba87 100644
--- a/base-server/src/main/java/com/yuanchu/mom/pojo/TechnologyTemplate.java
+++ b/base-server/src/main/java/com/yuanchu/mom/pojo/TechnologyTemplate.java
@@ -45,9 +45,9 @@
     private String father;
 
     /**
-     * 0锛氭鑳惰繛鎺ュ櫒锛�1锛氶噾灞炶繛鎺ュ櫒锛�2锛氭箍鎻掓嫈鐢佃繛鎺ュ櫒锛�3锛氬垎鏀粍浠�
+     * 绫诲瀷 姗¤兌杩炴帴鍣� 鎻掑ご锛涢噾灞炶繛鎺ュ櫒锛涙箍鎻掓嫈鐢佃繛鎺ュ櫒锛涘垎鏀粍浠�
      **/
-    private Integer type;
+    private String type;
 
     @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
     private Integer state;
@@ -68,9 +68,5 @@
      **/
     private String deviceGroup;
 
-    /**
-     * 鍏冧欢
-     **/
-    private String element;
 }
 
diff --git a/base-server/src/main/java/com/yuanchu/mom/pojo/dto/MbomModelDto2.java b/base-server/src/main/java/com/yuanchu/mom/pojo/dto/MbomModelDto2.java
index 2c69cb3..3460b5a 100644
--- a/base-server/src/main/java/com/yuanchu/mom/pojo/dto/MbomModelDto2.java
+++ b/base-server/src/main/java/com/yuanchu/mom/pojo/dto/MbomModelDto2.java
@@ -18,10 +18,6 @@
     private String unit;
 
     @JsonSerialize
-    @NotBlank(message = "渚涘簲鍟嗕笉鑳戒负绌�")
-    private String supplier;
-
-    @JsonSerialize
     @NotBlank(message = "璐ㄩ噺杩芥函鍙蜂笉鑳戒负绌�")
     private String qualityTraceability;
 
diff --git a/base-server/src/main/java/com/yuanchu/mom/pojo/dto/TechnicalModelDto.java b/base-server/src/main/java/com/yuanchu/mom/pojo/dto/TechnicalModelDto.java
index 2169e6a..d7def70 100644
--- a/base-server/src/main/java/com/yuanchu/mom/pojo/dto/TechnicalModelDto.java
+++ b/base-server/src/main/java/com/yuanchu/mom/pojo/dto/TechnicalModelDto.java
@@ -24,6 +24,5 @@
     private String name;
 
     @JsonSerialize
-    @NotBlank(message = "鍗曚綅涓嶈兘涓虹┖")
     private String unit;
 }
diff --git a/base-server/src/main/java/com/yuanchu/mom/pojo/dto/TechnologyTemplateDto.java b/base-server/src/main/java/com/yuanchu/mom/pojo/dto/TechnologyTemplateDto.java
index 1baefff..61b4fed 100644
--- a/base-server/src/main/java/com/yuanchu/mom/pojo/dto/TechnologyTemplateDto.java
+++ b/base-server/src/main/java/com/yuanchu/mom/pojo/dto/TechnologyTemplateDto.java
@@ -11,8 +11,8 @@
 public class TechnologyTemplateDto {
 
     @JsonSerialize
-    @NotNull(message = "绫诲瀷涓嶈兘涓虹┖")
-    private Integer type;
+    @NotBlank(message = "绫诲瀷涓嶈兘涓虹┖")
+    private String type;
 
     @JsonSerialize
     @NotBlank(message = "宸ュ簭涓嶈兘涓虹┖")
@@ -22,9 +22,6 @@
     @NotBlank(message = "宸ヨ壓涓嶈兘涓虹┖")
     private String name;
 
-    @JsonSerialize
-    @NotBlank(message = "鍏冧欢涓嶈兘涓虹┖")
-    private String element;
 
     @JsonSerialize
     @NotBlank(message = "璁惧缁勪笉鑳戒负绌�")
diff --git a/base-server/src/main/java/com/yuanchu/mom/service/DeviceService.java b/base-server/src/main/java/com/yuanchu/mom/service/DeviceService.java
index 63d3499..6c31682 100644
--- a/base-server/src/main/java/com/yuanchu/mom/service/DeviceService.java
+++ b/base-server/src/main/java/com/yuanchu/mom/service/DeviceService.java
@@ -67,7 +67,7 @@
     void delAllDevice(String ids);
 
     /**
-     * 鍘熸潗鏂欐楠�-->閫夋嫨璁惧
+     * 閫夋嫨妫�楠岃澶�
      * @return
      */
     List<Map<String,Object>> chooseDevice();
diff --git a/base-server/src/main/java/com/yuanchu/mom/service/TechnicalModelService.java b/base-server/src/main/java/com/yuanchu/mom/service/TechnicalModelService.java
index eba56c2..21ac728 100644
--- a/base-server/src/main/java/com/yuanchu/mom/service/TechnicalModelService.java
+++ b/base-server/src/main/java/com/yuanchu/mom/service/TechnicalModelService.java
@@ -22,7 +22,7 @@
      * @param message
      * @return
      */
-    List<Map<String, Object>> selectAllTechTem(Integer type, String message);
+    List<Map<String, Object>> selectAllTechTem(String type, String message);
 
     /**
      * 鏌ヨ鎶�鏈寚鏍囩淮鎶ゅ垪琛�-->鍙宠竟灞曠ず璇ュ伐鑹轰笅鐨勬楠岄」鐩�
@@ -37,7 +37,7 @@
      *
      * @return
      */
-    List<Map<String, Object>> chooseTechFath(Integer type);
+    List<Map<String, Object>> chooseTechFath(String type);
 
     /**
      * 鏂板鎶�鏈寚鏍囩淮鎶�-->閫夋嫨椤圭洰(鐖剁被)
diff --git a/base-server/src/main/java/com/yuanchu/mom/service/TechnologyTemplateService.java b/base-server/src/main/java/com/yuanchu/mom/service/TechnologyTemplateService.java
index 22c1331..7f1ba0b 100644
--- a/base-server/src/main/java/com/yuanchu/mom/service/TechnologyTemplateService.java
+++ b/base-server/src/main/java/com/yuanchu/mom/service/TechnologyTemplateService.java
@@ -18,7 +18,13 @@
 public interface TechnologyTemplateService extends IService<TechnologyTemplate> {
 
     /**
-     * 鏂板宸ヨ壓璺嚎-->閫夋嫨璁惧缁�
+     * 鏂板宸ヨ壓璺嚎-->閫夋嫨绫诲瀷
+     * @return
+     */
+    List<String> chooseType();
+
+    /**
+     * 鏂板宸ヨ壓璺嚎-->閫夋嫨鐢熶骇璁惧缁�
      * @return
      */
     List<Map<String,Object>> chooseDevGroup();
@@ -27,7 +33,7 @@
      *鏂板宸ヨ壓璺嚎-->閫夋嫨宸ュ簭
      * @return
      */
-    List<String> chooseTech(Integer type);
+    List<String> chooseTech(String type);
 
     /**
      * 鏂板宸ヨ壓璺嚎
@@ -40,7 +46,7 @@
      * @param type
      * @return
      */
-    List<Map<String,Object>> selectAllTechTem(Integer type,String message);
+    List<Map<String,Object>> selectAllTechTem(String type,String message);
 
     /**
      * 鏌ヨ宸ヨ壓璺嚎鍒楄〃-->鍙宠竟灞曠ず宸ヨ壓鍜岃澶�
@@ -75,7 +81,6 @@
      * @param ids
      */
     void delAllTech(String ids);
-
 
 }
 
diff --git a/base-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java b/base-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
index db821e7..2660c44 100644
--- a/base-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
+++ b/base-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
@@ -78,7 +78,7 @@
         deviceMapper.delAllDevice(ids);
     }
 
-    //鍘熸潗鏂欐楠�-->閫夋嫨璁惧
+    //閫夋嫨妫�楠岃澶�
     @Override
     public List<Map<String, Object>> chooseDevice() {
         return deviceMapper.chooseDevice();
diff --git a/base-server/src/main/java/com/yuanchu/mom/service/impl/TechnicalModelServiceImpl.java b/base-server/src/main/java/com/yuanchu/mom/service/impl/TechnicalModelServiceImpl.java
index dc893c3..d1e3e0b 100644
--- a/base-server/src/main/java/com/yuanchu/mom/service/impl/TechnicalModelServiceImpl.java
+++ b/base-server/src/main/java/com/yuanchu/mom/service/impl/TechnicalModelServiceImpl.java
@@ -26,12 +26,10 @@
     @Resource
     TechnicalModelMapper technicalModelMapper;
 
-    @Resource
-    TechniqueModelMapper techniqueModelMapper;
 
     //鏌ヨ鎶�鏈寚鏍囩淮鎶ゅ垪琛�-->宸﹁竟浜岀骇灞曠ず宸ュ簭鍜屽伐鑹�
     @Override
-    public List<Map<String, Object>> selectAllTechTem(Integer type, String message) {
+    public List<Map<String, Object>> selectAllTechTem(String type, String message) {
         return technicalModelMapper.selectAllTechTem(type, message);
     }
 
@@ -43,7 +41,7 @@
 
     //鏂板鎶�鏈寚鏍囩淮鎶�-->閫夋嫨宸ュ簭鍜屽伐鑹�
     @Override
-    public List<Map<String, Object>> chooseTechFath(Integer type) {
+    public List<Map<String, Object>> chooseTechFath(String type) {
         return technicalModelMapper.chooseTechFath(type);
     }
 
@@ -90,8 +88,6 @@
         technicalModel.setState(0);
         technicalModel.setId(id);
         technicalModelMapper.updateById(technicalModel);
-        //鍒犻櫎鐢熶骇宸ヨ壓
-        techniqueModelMapper.delTechById(id);
     }
 
     //鎵归噺鍒犻櫎
@@ -99,7 +95,6 @@
     @Transactional(rollbackFor = Exception.class)
     public void delAllTech(String ids) {
         technicalModelMapper.delAllTech(ids);
-        techniqueModelMapper.delAllTech(ids);
     }
 }
 
diff --git a/base-server/src/main/java/com/yuanchu/mom/service/impl/TechnologyTemplateServiceImpl.java b/base-server/src/main/java/com/yuanchu/mom/service/impl/TechnologyTemplateServiceImpl.java
index ea472b8..3bbbdcc 100644
--- a/base-server/src/main/java/com/yuanchu/mom/service/impl/TechnologyTemplateServiceImpl.java
+++ b/base-server/src/main/java/com/yuanchu/mom/service/impl/TechnologyTemplateServiceImpl.java
@@ -34,19 +34,19 @@
     TechnicalModelMapper technicalModelMapper;
 
     @Resource
-    TechniqueModelMapper techniqueModelMapper;
-
-    @Resource
-    SelfcheckModelMapper selfcheckModelMapper;
-
-    @Resource
     RecordModelMapper recordModelMapper;
 
     @Resource
     MbomModelMapper mbomModelMapper;
 
 
-    //鏂板宸ヨ壓璺嚎-->閫夋嫨璁惧缁�
+    //鏂板宸ヨ壓璺嚎-->閫夋嫨绫诲瀷
+    @Override
+    public List<String> chooseType() {
+        return technologyTemplateMapper.chooseType();
+    }
+
+    //鏂板宸ヨ壓璺嚎-->閫夋嫨鐢熶骇璁惧缁�
     @Override
     public List<Map<String, Object>> chooseDevGroup() {
         return deviceMapper.chooseDevGroup();
@@ -54,7 +54,7 @@
 
     //鏂板宸ヨ壓璺嚎-->閫夋嫨宸ュ簭
     @Override
-    public List<String> chooseTech(Integer type) {
+    public List<String> chooseTech(String type) {
         return technologyTemplateMapper.chooseTech(type);
     }
 
@@ -80,7 +80,7 @@
 
     //鏌ヨ宸ヨ壓璺嚎鍒楄〃-->宸﹁竟涓�绾у睍绀�
     @Override
-    public List<Map<String, Object>> selectAllTechTem(Integer type, String message) {
+    public List<Map<String, Object>> selectAllTechTem(String type, String message) {
         return technologyTemplateMapper.selectAllTechTem(type, message);
     }
 
@@ -117,10 +117,6 @@
         technologyTemplateMapper.updateById(technologyTemplate);
         //鍒犻櫎鎶�鏈寚鏍囩淮鎶よ〃
         technicalModelMapper.delTeMoByTechId(id);
-        //鍒犻櫎鐢熶骇宸ヨ壓缁存姢琛�
-        techniqueModelMapper.delQueByTechId(id);
-        //鍒犻櫎鑷椤圭洰缁存姢琛�
-        selfcheckModelMapper.delSelfByTechId(id);
         //鍒犻櫎璁板綍鍐呭缁存姢琛�
         recordModelMapper.delRecordByTechId(id);
         //鍒犻櫎鐗╂枡娓呭崟缁存姢琛�
@@ -135,10 +131,6 @@
         technologyTemplateMapper.delAllTech(ids);
         //鎵归噺鍒犻櫎鎸囨爣缁存姢琛�
         technicalModelMapper.delAllByTechId(ids);
-        //鎵归噺鍒犻櫎鐢熶骇宸ヨ壓缁存姢琛�
-        techniqueModelMapper.delAllByTechId(ids);
-        //鎵归噺鍒犻櫎鑷椤圭洰缁存姢琛�
-        selfcheckModelMapper.delAllByTechId(ids);
         //鎵归噺鍒犻櫎璁板綍鍐呭缁存姢琛�
         recordModelMapper.delAllByTechId(ids);
         //鎵归噺鍒犻櫎鐗╂枡娓呭崟缁存姢琛�
diff --git a/base-server/src/main/resources/mapper/DeviceMapper.xml b/base-server/src/main/resources/mapper/DeviceMapper.xml
index 02e3d4f..f8f6a0e 100644
--- a/base-server/src/main/resources/mapper/DeviceMapper.xml
+++ b/base-server/src/main/resources/mapper/DeviceMapper.xml
@@ -41,15 +41,16 @@
           and father = #{deviceGroup}
           and device_status in (1, 5)
     </select>
-    <!--閫夋嫨璁惧缁�-->
+    <!--閫夋嫨鐢熶骇璁惧缁�-->
     <select id="chooseDevGroup" resultType="java.util.Map">
         select distinct father
         from mom_ocean.device
         where state = 1
           and device_status in (1, 5)
+          and type = 1
     </select>
 
-    <!--鍘熸潗鏂欐楠�-閫夋嫨璁惧-->
+    <!--閫夋嫨妫�楠岃澶�-->
     <resultMap id="oneMap" type="map">
         <result property="name" column="father"/>
         <collection property="children" resultMap="twoMap" javaType="List"/>
@@ -63,6 +64,7 @@
         from mom_ocean.device
         where state = 1
           and device_status in (1, 5)
+          and type = 2
     </select>
 
     <!--鏂板閫夋嫨璁惧缁�-->
diff --git a/base-server/src/main/resources/mapper/TechnologyTemplateMapper.xml b/base-server/src/main/resources/mapper/TechnologyTemplateMapper.xml
index 31bf07d..f8e3581 100644
--- a/base-server/src/main/resources/mapper/TechnologyTemplateMapper.xml
+++ b/base-server/src/main/resources/mapper/TechnologyTemplateMapper.xml
@@ -23,7 +23,6 @@
     <select id="selectAllTechNam" resultType="java.util.Map">
         select id,
                name,
-               element,
                device_group
         from mom_ocean.technology_template
         where state = 1
@@ -40,7 +39,16 @@
 
     <!--鏍规嵁id鏌ョ湅璇︽儏-->
     <select id="selecTechById" resultType="java.util.Map">
-        select * from mom_ocean.technology_template where state=1
+        select *
+        from mom_ocean.technology_template
+        where state = 1
+          and id = #{id}
     </select>
 
+    <!--鏂板宸ヨ壓璺嚎-閫夋嫨绫诲瀷-->
+    <select id="chooseType" resultType="java.lang.String">
+        select distinct type
+        from mom_ocean.technology_template
+        where state = 1
+    </select>
 </mapper>
\ No newline at end of file
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 d08c2a8..9964a0f 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
@@ -2,6 +2,7 @@
 
 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.yuanchu.mom.utils.JackSonUtil;
 import com.yuanchu.mom.utils.Jwt;
@@ -11,6 +12,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -31,6 +33,9 @@
     @Autowired
     private InspectionItemService inspectionItemService;
 
+    @Resource
+    DeviceService deviceService;
+
 
     @Autowired
     private Jwt jwt;
@@ -46,15 +51,10 @@
         return Result.success(inspectionItemDto);
     }
 
-    @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)
-    })
+    @ApiOperation(value = "鏂板妫�楠屽崟-->閫夋嫨妫�楠岃澶�")
     @GetMapping("/chooseDev")
-    public Result<?> chooseDev(Integer technologyId, String father, String name) {
-        return Result.success(inspectionItemService.chooseDev(technologyId, father, name));
+    public Result<?> chooseDev() {
+        return Result.success(deviceService.chooseDevice());
     }
 
     @ApiOperation(value = "妫�楠岄」鐩殑妫�楠屽��-->澶卞幓鐒︾偣鍙戣捣璇ヨ姹�")
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/RawInsProductController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/RawInsProductController.java
index 9bdff45..dc31efe 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/RawInsProductController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/RawInsProductController.java
@@ -36,7 +36,7 @@
     @Resource
     Jwt jwt;
 
-    @ApiOperation(value = "閫夋嫨璁惧")
+    @ApiOperation(value = "閫夋嫨妫�楠岃澶�")
     @GetMapping("/selectDevice")
     public Result selectDevice() {
         return Result.success(deviceService.chooseDevice());
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
index 1c14d31..5160daf 100644
--- 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
@@ -30,8 +30,8 @@
     @NotBlank(message = "宸ヨ壓涓嶈兘涓虹┖!")
     private String techname;
 
-    @NotNull(message = "宸ヨ壓璺嚎id涓嶈兘涓虹┖!")
-    private Integer techId;
+    @NotNull(message = "缂栧埗宸ュ簭id涓嶈兘涓虹┖!")
+    private Integer mtId;
 
     @NotNull(message = "鏁伴噺涓嶈兘涓虹┖!")
     private Integer quantity;
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 522d317..5812158 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
@@ -41,7 +41,7 @@
      * @param name
      * @return
      */
-    List<Map<String, Object>> chooseDev(Integer technologyId, String father, String name);
+    //List<Map<String, Object>> chooseDev(Integer technologyId, String father, 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 1ada456..d75f8c6 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
@@ -22,7 +22,7 @@
      * @param userId
      * @param rawInspectVo
      */
-    String addRawInspects(String userId, RawInspectVo rawInspectVo) throws Exception;
+    String addRawInspects(String userId, RawInspectVo rawInspectVo);
 
     /**
      * 鍒嗛〉鏌ヨ鍘熸潗鏂欐楠屽崟鍒楄〃
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 48708b0..17e5402 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
@@ -40,7 +40,7 @@
     ManualTechnologyMapper manualTechnologyMapper;
 
     @Resource
-    ProductService productService;
+    ManualProductService manualProductService;
 
     @Resource
     InspectionItemService inspectionItemService;
@@ -66,8 +66,8 @@
     public Integer addProcessInspectionSheet(String userId, FinishedInspectVo finishedInspectVo) {
         //鏍规嵁鐢熶骇璁㈠崟id鏌ヨ缂栧埗宸ュ簭鐨勬渶鍚庝竴閬撳伐鑹�
         List<ManualTechnology> manualTechnologyList = manualTechnologyMapper.selAllByMoId(finishedInspectVo.getId());
-        //鑾峰彇鏈�鍚庝竴閬撳伐鑹哄叧鑱旂殑宸ヨ壓璺嚎id
-        Integer technologyId = manualTechnologyList.get(0).getTechnologyId();
+        //鑾峰彇缂栧埗宸ヨ壓鏈�鍚庝竴閬撳伐鑹虹殑id
+        Integer mtId = manualTechnologyList.get(0).getId();
         /*鏂板鎴愬搧妫�楠屽崟*/
         FinishedInspect finishedInspect = new FinishedInspect();
         finishedInspect.setUserId(Integer.parseInt(userId));
@@ -80,16 +80,13 @@
         finishedInspect.setSpecificationsModel(finishedInspectVo.getSpecificationsModel());
         finishedInspect.setMaterial(finishedInspectVo.getMaterial());
         finishedInspect.setMaterialCode(finishedInspectVo.getMcode());
-        finishedInspect.setTechId(technologyId);
+        //finishedInspect.setTechId(technologyId);
         finishedInspectMapper.insert(finishedInspect);
         /*鎵归噺鏂板鎴愬搧妫�楠岄」鐩崟*/
-
-        /*//鏌ヨ鏍囧噯BOM鎶�鏈寚鏍囦腑璇ュ瀷鍙峰伐鑹轰笅鏈�鏂扮増鏈殑妫�楠岄」鐩�
-        Integer ver = productService.selectVerByPro(specificationId).get(0);//璇ュ瀷鍙蜂笅鎶�鏈寚鏍囨渶鏂扮増鏈�*/
-        List<Product> productList = productService.selProByVerSpe(technologyId);
-        List<InspectionItem> inspectionItemList = productList.stream().map(product -> {
+        List<ManualProduct> manualProductList = manualProductService.selByMtid(mtId);
+        List<InspectionItem> inspectionItemList = manualProductList.stream().map(manualProduct -> {
             InspectionItem inspectionItem = new InspectionItem();
-            BeanUtils.copyProperties(product, inspectionItem);
+            BeanUtils.copyProperties(manualProductList, inspectionItem);
             inspectionItem.setId(null);
             inspectionItem.setCreateTime(new Date());
             inspectionItem.setUpdateTime(new Date());
@@ -101,13 +98,14 @@
         return finishedInspect.getId();
     }
 
+
     //涓婃姤(鏇存柊妫�楠岀姸鎬�)
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public String updateFinishInspectsById(String username,Integer id) {
+    public String updateFinishInspectsById(String username, Integer id) {
         /*鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀粨璁�*/
         //鍏堝垽鏂楠岀粨鏋�
-        List<Integer> results = inspectionItemMapper.getResult(id,2);
+        List<Integer> results = inspectionItemMapper.getResult(id, 2);
         int count = 0;
         for (Integer result : results) {
             if (result != null && result == 1) {
@@ -144,7 +142,7 @@
                     .eq(Repertory::getUnit, finishedInspect.getUnit())
                     .eq(Repertory::getType, 1);
             Repertory rep = repertoryMapper.selectOne(queryWrapper);
-            if (rep != null ) {
+            if (rep != null) {
                 rep.setNumber(rep.getNumber() + finishedInspect.getQuantity());
                 rep.setUserName(username);
                 repertoryMapper.updateById(rep);
@@ -169,7 +167,7 @@
     //鍒嗛〉鏌ヨ鎴愬搧妫�楠屽崟鍒楄〃
     @Override
     public IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer result, String material) {
-        return finishedInspectMapper.selectFinishedInspectPage(page, result,material);
+        return finishedInspectMapper.selectFinishedInspectPage(page, result, material);
     }
 
     //鏍规嵁妫�楠屽崟id鏌ヨ鎴愬搧妫�楠屽崟璇︽儏
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 cf52951..cfe7b55 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
@@ -47,12 +47,12 @@
 
 
     //鏂板杩囩▼妫�楠屽崟-->閫夋嫨璁惧
-    @Override
+    /*@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);
-    }
+    }*/
 
     //鏇存敼璁惧
     @Override
@@ -73,15 +73,27 @@
         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 {
+        if (updateInspectionItemDto.getInspectionValue().equals("杩�")){
             inspectionItem.setResult(1);
+        }else if (updateInspectionItemDto.getInspectionValue().equals("涓嶈繃")){
+            inspectionItem.setResult(0);
+        }else {
+            char req = inspectionItem.getRequired().charAt(0);
+            List<Integer> list = Arrays.stream(updateInspectionItemDto.getInspectionValue().split(",")).map(s -> {
+                int values=2;
+                if (req == '>' || req == '<' || req == '=') {
+                    values = checkValues(inspectionItem.getRequired(),  inspectionItem.getInternal(), s);
+                }else {
+                    values = conValues(inspectionItem.getRequired(),  inspectionItem.getInternal(), s);
+                }
+                return values;
+            }).collect(Collectors.toList());
+            if (list.contains(0)) {
+                //濡傛灉鍏朵腑涓�涓楠屽�间笉鍚堟牸鍒欒椤圭洰妫�楠屼笉鍚堟牸
+                inspectionItem.setResult(0);
+            } else {
+                inspectionItem.setResult(1);
+            }
         }
         inspectionItem.setUsername(username);
         inspectionItemMapper.updateById(inspectionItem);
@@ -91,6 +103,19 @@
 
 
     /*鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�*/
+    //濡傛灉鏄辩殑鎿嶄綔
+    private int conValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
+        double standVar = Double.parseDouble(standardValueStr);
+        double controlVar = Double.parseDouble(controlValueStr);
+        double detecVar = Double.parseDouble(detectionValueStr);
+        double a = standVar + controlVar;
+        double b = standVar - controlVar;
+        if (detecVar >= b && detecVar <= a) {
+            return 1;
+        }
+        return 0;
+    }
+    //濡傛灉鏄�> , < ,=鐨勬搷浣�
     private int checkValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
         boolean isStandardValueSatisfied = isValueSatisfied(standardValueStr, detectionValueStr);
         boolean isControlValueSatisfied = isValueSatisfied(controlValueStr, 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
index 7469a36..540548e 100644
--- 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
@@ -32,7 +32,7 @@
     ProcessInspectMapper processInspectMapper;
 
     @Resource
-    ProductService productService;
+    ManualProductService manualProductService;
 
     @Resource
     InspectionItemMapper inspectionItemMapper;
@@ -59,14 +59,10 @@
         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.getTechId());
-        List<InspectionItem> inspectionItemList = productList.stream().map(product -> {
+        List<ManualProduct> manualProductList = manualProductService.selByMtid(processInspectVo.getMtId());
+        List<InspectionItem> inspectionItemList = manualProductList.stream().map(manualProduct -> {
             InspectionItem inspectionItem = new InspectionItem();
-            BeanUtils.copyProperties(product, inspectionItem);
+            BeanUtils.copyProperties(manualProduct, inspectionItem);
             inspectionItem.setCreateTime(new Date());
             inspectionItem.setUpdateTime(new Date());
             inspectionItem.setInspectId(processInspect.getId());
@@ -83,7 +79,7 @@
     public String updateProcessInspectsById(Integer id) {
         /*鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀粨璁�*/
         //鍏堝垽鏂楠岀粨鏋�
-        List<Integer> results = inspectionItemMapper.getResult(id,1);
+        List<Integer> results = inspectionItemMapper.getResult(id, 1);
         int count = 0;
         for (Integer result : results) {
             if (result != null && result == 1) {
@@ -103,7 +99,7 @@
         /*濡傛灉妫�楠岀粨璁轰负涓嶅悎鏍�,鍒欓渶瑕佹柊澧炰笉鍚堟牸妫�楠屽崟*/
         if (processInspect.getResult() == 0) {
             InspectUnaccepted processUnaccepted = InspectUnaccepted.builder()
-                    .reason(processInspect.getMaterial() +processInspect.getTechname()+ "涓嶅悎鏍�")  //鏆備笖瀹氫箟涓轰骇鍝佸悕绉�+宸ヨ壓涓嶅悎鏍�
+                    .reason(processInspect.getMaterial() + processInspect.getTechname() + "涓嶅悎鏍�")  //鏆備笖瀹氫箟涓轰骇鍝佸悕绉�+宸ヨ壓涓嶅悎鏍�
                     .rawInspectId(id)
                     .type(2)        //绫诲瀷涓鸿繃绋嬫楠�
                     .build();
@@ -121,7 +117,7 @@
     //鍒嗛〉鏌ヨ杩囩▼妫�楠屽崟鍒楄〃
     @Override
     public IPage<Map<String, Object>> selectProcessInspectsList(Page<Object> page, String techfather, Integer result, String name) {
-        return processInspectMapper.selectProcessInspectsList(page,techfather,result,name);
+        return processInspectMapper.selectProcessInspectsList(page, techfather, result, name);
     }
 
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInsProductServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInsProductServiceImpl.java
index 00de893..61ba2ce 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInsProductServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInsProductServiceImpl.java
@@ -52,8 +52,14 @@
         }else if (testValue.equals("涓嶈繃")){
             rawInsProduct.setTestState(0);
         }else {
+            char req = required.charAt(0);
             List<Integer> list = Arrays.stream(testValue.split(",")).map(s -> {
-                int values = checkValues(required, internal, s);
+                int values=2;
+                if (req == '>' || req == '<' || req == '=') {
+                    values = checkValues(required, internal, s);
+                }else {
+                    values = conValues(required, internal, s);
+                }
                 return values;
             }).collect(Collectors.toList());
             if (list.contains(0)) {
@@ -83,24 +89,28 @@
     }
 
     /*鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�*/
-    private int checkValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
+    //濡傛灉鏄辩殑鎿嶄綔
+    private int conValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
         double standVar = Double.parseDouble(standardValueStr);
         double controlVar = Double.parseDouble(controlValueStr);
         double detecVar = Double.parseDouble(detectionValueStr);
         double a = standVar + controlVar;
         double b = standVar - controlVar;
-        if (detecVar>=b && detecVar<=a){
+        if (detecVar >= b && detecVar <= a) {
             return 1;
         }
         return 0;
-        /*boolean isStandardValueSatisfied = isValueSatisfied(standardValueStr, detectionValueStr);
+    }
+    //濡傛灉鏄�> , < ,=鐨勬搷浣�
+    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) {
@@ -137,5 +147,6 @@
             }
         }
     }
+
 }
 
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 a5b5b19..5d1290b 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
@@ -42,21 +42,11 @@
     //鏂板鍘熸潗鏂欐楠屽崟
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public String addRawInspects(String userId, RawInspectVo rawInspectVo) throws Exception {
+    public String addRawInspects(String userId, RawInspectVo rawInspectVo) {
         //鎶ユ浜�(鏂板妫�楠屽崟鐨勪汉)
         rawInspectVo.setUserName(userMapper.selectById(userId).getName());
         //鏍¢獙鏍囧噯鍊�,鍐呮帶鍊兼牸寮�
         List<RawInsProductVo> rawInsProductVos = rawInspectVo.getRawInsProducts();
-        /*for (RawInsProductVo rawInsProductVo : rawInsProductVos) {
-            char internal = rawInsProductVo.getInternal().charAt(0);
-            char required = rawInsProductVo.getRequired().charAt(0);
-            if (internal != '>' && internal != '<' && internal != '=') {
-                return "鍐呮帶鍊艰緭鍏ユ牸寮忔湁闂!";
-            }
-            if (required != '>' && required != '<' && required != '=') {
-                return "鏍囧噯鍊艰緭鍏ユ牸寮忔湁闂!";
-            }
-        }*/
         /*鏂板鍘熸潗鏂欐楠屽崟*/
         RawInspect rawInspect = new RawInspect();
         BeanUtils.copyProperties(rawInspectVo, rawInspect);
@@ -75,8 +65,14 @@
                     String required = rawInsProduct.getRequired();//鏍囧噯鍊�
                     String internal = rawInsProduct.getInternal();//鍐呮帶鍊�
                     String testValue = rawInsProduct.getTestValue();//妫�娴嬪��
+                    char req = required.charAt(0);
                     List<Integer> list = Arrays.stream(testValue.split(",")).map(s -> {
-                        int values = checkValues(required, internal, s);
+                        int values=2;
+                        if (req == '>' || req == '<' || req == '=') {
+                            values = checkValues(required, internal, s);
+                        }else {
+                            values = conValues(required, internal, s);
+                        }
                         return values;
                     }).collect(Collectors.toList());
                     if (list.contains(0)) {
@@ -149,7 +145,8 @@
 
 
     /*鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�*/
-    private int checkValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
+    //濡傛灉鏄辩殑鎿嶄綔
+    private int conValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
         double standVar = Double.parseDouble(standardValueStr);
         double controlVar = Double.parseDouble(controlValueStr);
         double detecVar = Double.parseDouble(detectionValueStr);
@@ -159,14 +156,17 @@
             return 1;
         }
         return 0;
-        /*boolean isStandardValueSatisfied = isValueSatisfied(standardValueStr, detectionValueStr);
+    }
+    //濡傛灉鏄�> , < ,=鐨勬搷浣�
+    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) {
diff --git a/inspect-server/src/main/resources/mapper/ProcessInspectMapper.xml b/inspect-server/src/main/resources/mapper/ProcessInspectMapper.xml
index 1ec0742..68aea86 100644
--- a/inspect-server/src/main/resources/mapper/ProcessInspectMapper.xml
+++ b/inspect-server/src/main/resources/mapper/ProcessInspectMapper.xml
@@ -19,7 +19,7 @@
         <collection property="children" resultMap="threeMap" javaType="List"/>
     </resultMap>
     <resultMap id="threeMap" type="map">
-        <id property="id" column="technologyId"/>
+        <id property="id" column="mtId"/>
         <result property="name" column="techname"/>
     </resultMap>
     <select id="chooseMater" resultMap="oneMap">
@@ -27,7 +27,7 @@
                code,
                specifications,
                unit,
-               technology_id technologyId,
+               mt.id  mtId,
                techfather,
                techname
         from mom_ocean.manual_technology mt
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/Task/DataPullTask.java b/inventory-server/src/main/java/com/yuanchu/mom/Task/DataPullTask.java
index ed7a45b..6946b88 100644
--- a/inventory-server/src/main/java/com/yuanchu/mom/Task/DataPullTask.java
+++ b/inventory-server/src/main/java/com/yuanchu/mom/Task/DataPullTask.java
@@ -1,6 +1,8 @@
 package com.yuanchu.mom.Task;
 
 import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.yuanchu.mom.pojo.Sale;
 import com.yuanchu.mom.pojo.SaleMaterial;
 import com.yuanchu.mom.service.SaleMaterialService;
@@ -30,7 +32,7 @@
         //鑾峰彇鍓嶄竴澶╁噷鏅ㄦ椂闂�
         String pattern = "yyyy-MM-dd HH:mm:ss";
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
-        String dateTime = LocalDateTime.now().minusDays(1).with(LocalTime.of(0, 0, 0)).format(formatter);
+        String dateTime = LocalDateTime.now().minusDays(1).with(LocalTime.of(4, 0, 0)).format(formatter);
         //鑾峰彇涓婚攢鍞暟鎹�
         List<Map<String, Object>> order = SyncOrder.getMainOrder(dateTime);
         List<Sale> list = order.stream().map(orde -> {
@@ -46,6 +48,8 @@
             sale.setNote(String.valueOf(orde.get("comment")));//澶囨敞
             return sale;
         }).collect(Collectors.toList());
+        //鍘婚噸
+        list.removeIf(sale -> ObjectUtils.isNotEmpty(saleService.getOne(Wrappers.<Sale>query().eq("order_number", sale.getOrderNumber()))));
         saleService.saveBatch(list);
         for (Sale sale : list) {
             List<Map<String, Object>> innerOrder = SyncOrder.getInnerOrder(dateTime, sale.getOrderNumber());
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 55f90ed..7c6d1f2 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,17 +6,17 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 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.service.*;
 import com.yuanchu.mom.utils.MyUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 璁㈠崟(Order)琛ㄦ湇鍔″疄鐜扮被
@@ -46,10 +46,22 @@
     ManufactureOrderMapper manufactureOrderMapper;
 
     @Resource
-    ManualTechnologyMapper manualTechnologyMapper;
+    ManualTechnologyService manualTechnologyService;
 
     @Resource
     TechnologyMapper technologyMapper;
+
+    @Resource
+    ProductMapper productMapper;
+
+    @Resource
+    MbomMapper mbomMapper;
+
+    @Resource
+    ManualProductService manualProductService;
+
+    @Resource
+    ManualMbomService manualMbomService;
 
 
     //鏌ヨ鎵�鏈夎鍗曞垪琛�
@@ -97,17 +109,54 @@
         queryWrapper.eq(Technology::getVersion,version);
         queryWrapper.orderByAsc(Technology::getFather);
         List<Technology> technologyList = technologyMapper.selectList(queryWrapper);
-        for (Technology technology : technologyList) {
+        List<ManualTechnology> manualTechnologyList = technologyList.stream().map(technology -> {
             ManualTechnology manualTechnology = ManualTechnology.builder()
-                    .techname(technology.getName())
-                    .techfather(technology.getFather())
-                    .deviceGroup(technology.getDeviceGroup())
-                    .manufactureOrderId(manufactureOrder.getId())
-                    .productionQuota(technology.getProductionQuota())
-                    .technologyId(technology.getId())
+                    .techname(technology.getName()) //宸ヨ壓
+                    .techfather(technology.getFather()) //宸ュ簭
+                    .deviceGroup(technology.getDeviceGroup()) //鐢熶骇璁惧缁�
+                    .manufactureOrderId(manufactureOrder.getId()) //鐢熶骇璁㈠崟id
+                    .productionQuota(technology.getProductionQuota()) //鐢熶骇鏁堢巼
+                    .technologyId(technology.getId()) //鏍囧噯bom涓伐鑹鸿矾绾縤d
                     .build();
-            //鏂板缂栧埗宸ュ簭琛�
-            manualTechnologyMapper.insert(manualTechnology);
+            return manualTechnology;
+        }).collect(Collectors.toList());
+        /*鏂板缂栧埗宸ヨ壓琛�*/
+        manualTechnologyService.saveBatch(manualTechnologyList);
+        //鏍规嵁鏍囧噯bom鐨勫伐鑹鸿矾绾縤d鏌ヨ鏍囧噯bom涓殑鎶�鏈寚鏍�
+        for (ManualTechnology manualTechnology : manualTechnologyList) {
+            List<Product> productList = productMapper.selProByVerSpe(manualTechnology.getTechnologyId());
+            List<ManualProduct> manualProducts = new ArrayList<>();
+            for (Product product : productList) {
+                ManualProduct manualProduct = ManualProduct.builder()
+                        .manualTechnologyId(manualTechnology.getId()) //鍏宠仈 鐢熶骇璁㈠崟id
+                        .name(product.getName())
+                        .father(product.getFather())
+                        .unit(product.getUnit())
+                        .required(product.getRequired())
+                        .internal(product.getInternal())
+                        .build();
+                manualProducts.add(manualProduct);
+            }
+            /*鏂板缂栧埗鎶�鏈寚鏍囪〃*/
+            manualProductService.saveBatch(manualProducts);
+        }
+        //鏍规嵁鏍囧噯bom鐨勫伐鑹鸿矾绾縤d鏌ヨ鏍囧噯bom涓殑鐗╂枡娓呭崟
+        for (ManualTechnology manualTechnology : manualTechnologyList) {
+            List<Mbom> mbomList = mbomMapper.selectList(Wrappers.<Mbom>query().eq("technology_id",manualTechnology.getTechnologyId()));
+            List<ManualMbom> manualMboms = new ArrayList<>();
+            for (Mbom mbom : mbomList) {
+                ManualMbom manualMbom = ManualMbom.builder()
+                        .manualTechnologyId(manualTechnology.getId()) //鍏宠仈 鐢熶骇璁㈠崟id
+                        .name(mbom.getName())
+                        .unit(mbom.getUnit())
+                        .num(mbom.getNum())
+                        .qualityTraceability(mbom.getQualityTraceability())
+                        .specifications(mbom.getSpecifications())
+                        .build();
+                manualMboms.add(manualMbom);
+            }
+            /*鏂板缂栧埗鐗╂枡娓呭崟琛�*/
+            manualMbomService.saveBatch(manualMboms);
         }
     }
 
@@ -123,7 +172,7 @@
         //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉�
         String[] split = specification.split("-");
         String stName = split[0];
-        String spName = split[1];
+        String spName = split[1]+split[2];
         //鑾峰彇瑙勬牸id
         Standard standard = standardService.getOne(Wrappers.<Standard>query()
                 .eq("name", stName)
diff --git a/production-server/src/main/java/com/yuanchu/mom/mapper/ManualMbomMapper.java b/production-server/src/main/java/com/yuanchu/mom/mapper/ManualMbomMapper.java
new file mode 100644
index 0000000..50a87b7
--- /dev/null
+++ b/production-server/src/main/java/com/yuanchu/mom/mapper/ManualMbomMapper.java
@@ -0,0 +1,15 @@
+package com.yuanchu.mom.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yuanchu.mom.pojo.ManualMbom;
+
+/**
+ * 缂栧埗鐗╂枡娓呭崟琛�(ManualMbom)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author zss
+ * @since 2023-09-21 13:20:48
+ */
+public interface ManualMbomMapper extends BaseMapper<ManualMbom> {
+
+}
+
diff --git a/production-server/src/main/java/com/yuanchu/mom/mapper/ManualProductMapper.java b/production-server/src/main/java/com/yuanchu/mom/mapper/ManualProductMapper.java
new file mode 100644
index 0000000..d841188
--- /dev/null
+++ b/production-server/src/main/java/com/yuanchu/mom/mapper/ManualProductMapper.java
@@ -0,0 +1,19 @@
+package com.yuanchu.mom.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yuanchu.mom.pojo.ManualProduct;
+
+import java.util.List;
+
+/**
+ * 缂栧埗鎶�鏈寚鏍囪〃(ManualProduct)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author zss
+ * @since 2023-09-21 13:21:07
+ */
+public interface ManualProductMapper extends BaseMapper<ManualProduct> {
+
+    //鏍规嵁缂栧埗宸ヨ壓id鏌ヨ鎵�鏈�
+    List<ManualProduct> selByMtid(Integer mtId);
+}
+
diff --git a/production-server/src/main/java/com/yuanchu/mom/pojo/ManualMbom.java b/production-server/src/main/java/com/yuanchu/mom/pojo/ManualMbom.java
new file mode 100644
index 0000000..dd24640
--- /dev/null
+++ b/production-server/src/main/java/com/yuanchu/mom/pojo/ManualMbom.java
@@ -0,0 +1,78 @@
+package com.yuanchu.mom.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.io.Serializable;
+
+/**
+ * 缂栧埗鐗╂枡娓呭崟琛�(ManualMbom)琛ㄥ疄浣撶被
+ *
+ * @author zss
+ * @since 2023-09-21 13:20:48
+ */
+@Data
+@Accessors(chain = true)
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = false)
+@Builder
+@TableName("manual_mbom")
+public class ManualMbom implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓婚敭
+     **/
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 鍘熸潗鏂欏悕绉�
+     **/
+    private String name;
+
+    /**
+     * 鍗曚綅
+     **/
+    private String unit;
+
+    /**
+     * 鏁伴噺
+     **/
+    private Integer num;
+
+    /**
+     * 璐ㄩ噺杩芥函鍙�
+     **/
+    private String qualityTraceability;
+
+    /**
+     * (鍘熸潗鏂欑殑)瑙勬牸鍨嬪彿
+     **/
+    private String specifications;
+
+    /**
+     * 鍏宠仈 缂栧埗宸ヨ壓琛╥d
+     **/
+    private Integer manualTechnologyId;
+
+    @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/production-server/src/main/java/com/yuanchu/mom/pojo/ManualProduct.java b/production-server/src/main/java/com/yuanchu/mom/pojo/ManualProduct.java
new file mode 100644
index 0000000..513553e
--- /dev/null
+++ b/production-server/src/main/java/com/yuanchu/mom/pojo/ManualProduct.java
@@ -0,0 +1,78 @@
+package com.yuanchu.mom.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.io.Serializable;
+
+/**
+ * 缂栧埗鎶�鏈寚鏍囪〃(ManualProduct)琛ㄥ疄浣撶被
+ *
+ * @author zss
+ * @since 2023-09-21 13:21:07
+ */
+@Data
+@Accessors(chain = true)
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = false)
+@Builder
+@TableName("manual_product")
+public class ManualProduct implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓婚敭
+     **/
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 椤圭洰鍚嶇О
+     **/
+    private String name;
+
+    /**
+     * 椤圭洰鐖剁被
+     **/
+    private String father;
+
+    /**
+     * 鍗曚綅
+     **/
+    private String unit;
+
+    /**
+     * 鏍囧噯鍊�
+     **/
+    private String required;
+
+    /**
+     * 鍐呮帶鍊�
+     **/
+    private String internal;
+
+    /**
+     * 鍏宠仈 缂栧埗宸ヨ壓琛╥d
+     **/
+    private Integer manualTechnologyId;
+
+    @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/production-server/src/main/java/com/yuanchu/mom/pojo/ManualTechnology.java b/production-server/src/main/java/com/yuanchu/mom/pojo/ManualTechnology.java
index af362d2..56f3a72 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
@@ -14,7 +14,7 @@
  * 缂栧埗宸ュ簭琛�(ManualTechnology)琛ㄥ疄浣撶被
  *
  * @author zss
- * @since 2023-08-17 14:16:46
+ * @since 2023-09-21 12:51:31
  */
 @Data
 @Accessors(chain = true)
@@ -61,7 +61,6 @@
     private Integer technologyId;
 
     @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
-    @TableLogic(value = "1", delval = "0")
     private Integer state;
 
     @TableField(fill = FieldFill.INSERT)
diff --git a/production-server/src/main/java/com/yuanchu/mom/service/ManualMbomService.java b/production-server/src/main/java/com/yuanchu/mom/service/ManualMbomService.java
new file mode 100644
index 0000000..8c40537
--- /dev/null
+++ b/production-server/src/main/java/com/yuanchu/mom/service/ManualMbomService.java
@@ -0,0 +1,15 @@
+package com.yuanchu.mom.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yuanchu.mom.pojo.ManualMbom;
+
+/**
+ * 缂栧埗鐗╂枡娓呭崟琛�(ManualMbom)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author zss
+ * @since 2023-09-21 13:37:26
+ */
+public interface ManualMbomService extends IService<ManualMbom> {
+
+}
+
diff --git a/production-server/src/main/java/com/yuanchu/mom/service/ManualProductService.java b/production-server/src/main/java/com/yuanchu/mom/service/ManualProductService.java
new file mode 100644
index 0000000..94961ed
--- /dev/null
+++ b/production-server/src/main/java/com/yuanchu/mom/service/ManualProductService.java
@@ -0,0 +1,23 @@
+package com.yuanchu.mom.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yuanchu.mom.pojo.ManualProduct;
+
+import java.util.List;
+
+/**
+ * 缂栧埗鎶�鏈寚鏍囪〃(ManualProduct)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author zss
+ * @since 2023-09-21 13:37:17
+ */
+public interface ManualProductService extends IService<ManualProduct> {
+
+    /**
+     * 鏍规嵁缂栧埗宸ヨ壓id鏌ヨ鎵�鏈�
+     * @param mtId
+     * @return
+     */
+    List<ManualProduct> selByMtid(Integer mtId);
+}
+
diff --git a/production-server/src/main/java/com/yuanchu/mom/service/ManualTechnologyService.java b/production-server/src/main/java/com/yuanchu/mom/service/ManualTechnologyService.java
index a1fcd46..e77461a 100644
--- a/production-server/src/main/java/com/yuanchu/mom/service/ManualTechnologyService.java
+++ b/production-server/src/main/java/com/yuanchu/mom/service/ManualTechnologyService.java
@@ -5,7 +5,6 @@
 import com.yuanchu.mom.pojo.dto.ManualTechnologyDto;
 
 import java.text.ParseException;
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
diff --git a/production-server/src/main/java/com/yuanchu/mom/service/impl/ManualMbomServiceImpl.java b/production-server/src/main/java/com/yuanchu/mom/service/impl/ManualMbomServiceImpl.java
new file mode 100644
index 0000000..c923968
--- /dev/null
+++ b/production-server/src/main/java/com/yuanchu/mom/service/impl/ManualMbomServiceImpl.java
@@ -0,0 +1,19 @@
+package com.yuanchu.mom.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.mom.mapper.ManualMbomMapper;
+import com.yuanchu.mom.pojo.ManualMbom;
+import com.yuanchu.mom.service.ManualMbomService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 缂栧埗鐗╂枡娓呭崟琛�(ManualMbom)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author zss
+ * @since 2023-09-21 14:00:06
+ */
+@Service
+public class ManualMbomServiceImpl extends ServiceImpl<ManualMbomMapper, ManualMbom> implements ManualMbomService {
+
+}
+
diff --git a/production-server/src/main/java/com/yuanchu/mom/service/impl/ManualProductServiceImpl.java b/production-server/src/main/java/com/yuanchu/mom/service/impl/ManualProductServiceImpl.java
new file mode 100644
index 0000000..8ab9a2e
--- /dev/null
+++ b/production-server/src/main/java/com/yuanchu/mom/service/impl/ManualProductServiceImpl.java
@@ -0,0 +1,30 @@
+package com.yuanchu.mom.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.mom.mapper.ManualProductMapper;
+import com.yuanchu.mom.pojo.ManualProduct;
+import com.yuanchu.mom.service.ManualProductService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 缂栧埗鎶�鏈寚鏍囪〃(ManualProduct)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author zss
+ * @since 2023-09-21 14:00:40
+ */
+@Service
+public class ManualProductServiceImpl extends ServiceImpl<ManualProductMapper, ManualProduct> implements ManualProductService {
+
+    @Resource
+    ManualProductMapper manualProductMapper;
+
+    //鏍规嵁缂栧埗宸ヨ壓id鏌ヨ鎵�鏈�
+    @Override
+    public List<ManualProduct> selByMtid(Integer mtId) {
+        return manualProductMapper.selByMtid(mtId);
+    }
+}
+
diff --git a/production-server/src/main/resources/mapper/ManualProductMapper.xml b/production-server/src/main/resources/mapper/ManualProductMapper.xml
new file mode 100644
index 0000000..0496bc6
--- /dev/null
+++ b/production-server/src/main/resources/mapper/ManualProductMapper.xml
@@ -0,0 +1,11 @@
+<?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.ManualProductMapper">
+    <!--鏍规嵁缂栧埗宸ヨ壓id鏌ヨ鎵�鏈�-->
+    <select id="selByMtid" resultType="com.yuanchu.mom.pojo.ManualProduct">
+        select *
+        from mom_ocean.manual_product
+        where state = 1
+          and manual_technology_id = #{mtId}
+    </select>
+</mapper>
\ No newline at end of file
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 8870f1d..255c998 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
@@ -39,10 +39,20 @@
         return Result.success(materialService.selectTreeByMaterial());
     }
 
+    @ApiOperation(value = "鏂板-->閫夋嫨浜у搧澶х被")
+    @GetMapping("/chooseFather")
+    public Result chooseFather() {
+        return Result.success(materialService.chooseFather());
+    }
+
     @ApiOperation("(1,2绾�)鏂板-->鐗╂枡,鏍囧噯,鍨嬪彿")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "spId", value = "澶嶅埗閫夋嫨鐨勫瀷鍙穒d", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "ver", value = "澶嶅埗閫夋嫨鐨勭増鏈�", dataTypeClass = Integer.class)
+    })
     @PostMapping("/add")
-    public Result<?> addMaterial(@Validated @RequestBody MaterialDto materialDto) {
-        return Result.success(materialService.addMaterial(materialDto));
+    public Result<?> addMaterial(@Validated @RequestBody MaterialDto materialDto,Integer spId,Integer ver) {
+        return Result.success(materialService.addMaterial(materialDto,spId,ver));
     }
 
     @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 a66ff40..f213c91 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
@@ -5,6 +5,8 @@
 import com.yuanchu.mom.pojo.dto.StandardDto;
 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;
@@ -27,9 +29,13 @@
     private SpecificationsService specificationsService;
 
     @ApiOperation("(4绾�)鏂板-->鍨嬪彿")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "spId", value = "澶嶅埗閫夋嫨鐨勫瀷鍙穒d", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "ver", value = "澶嶅埗閫夋嫨鐨勭増鏈�", dataTypeClass = Integer.class)
+    })
     @PostMapping("/add")
-    public Result<?> addSpecifications(@Validated @RequestBody SpecificationsDto specificationsDto) {
-        return Result.success(specificationsService.addSpecifications(specificationsDto));
+    public Result<?> addSpecifications(@Validated @RequestBody SpecificationsDto specificationsDto,Integer spId,Integer ver) {
+        return Result.success(specificationsService.addSpecifications(specificationsDto,spId,ver));
     }
 
 }
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 502539a..840f4d5 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
@@ -5,6 +5,8 @@
 import com.yuanchu.mom.pojo.dto.StandardDto;
 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;
@@ -27,9 +29,13 @@
     private StandardService standardService;
 
     @ApiOperation("(3绾�)鏂板-->鏍囧噯,鍨嬪彿")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "spId", value = "澶嶅埗閫夋嫨鐨勫瀷鍙穒d", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "ver", value = "澶嶅埗閫夋嫨鐨勭増鏈�", dataTypeClass = Integer.class)
+    })
     @PostMapping("/add")
-    public Result<?> addStandard(@Validated @RequestBody StandardDto standardDto) {
-        return Result.success(standardService.addStandard(standardDto));
+    public Result<?> addStandard(@Validated @RequestBody StandardDto standardDto,Integer spId,Integer ver) {
+        return Result.success(standardService.addStandard(standardDto,spId,ver));
     }
 
 }
diff --git a/standard-server/src/main/java/com/yuanchu/mom/controller/TechnologyController.java b/standard-server/src/main/java/com/yuanchu/mom/controller/TechnologyController.java
index 4a94d01..b8824bd 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/controller/TechnologyController.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/controller/TechnologyController.java
@@ -29,7 +29,7 @@
     @Autowired
     private TechnologyService technologyService;
 
-    @ApiOperation("鍙充笂瑙掓柊澧�-->宸ヨ壓璺嚎-->閫夋嫨璁惧缁�")
+    @ApiOperation("鍙充笂瑙掓柊澧�-->宸ヨ壓璺嚎-->閫夋嫨鐢熶骇璁惧缁�")
     @GetMapping("/chooseDevice")
     public Result<?> chooseDevice() {
         return Result.success(technologyService.chooseDevice());
diff --git a/standard-server/src/main/java/com/yuanchu/mom/mapper/MbomMapper.java b/standard-server/src/main/java/com/yuanchu/mom/mapper/MbomMapper.java
index 15b71d6..03b566e 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/mapper/MbomMapper.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/mapper/MbomMapper.java
@@ -31,5 +31,8 @@
 
     //鏍规嵁鐗╂枡娓呭崟id鎵归噺鍒犻櫎
     void delAllMbom(String ids);
+
+    //鏍规嵁宸ヨ壓璺嚎id鏌ヨ鐗╂枡娓呭崟
+    List<Mbom> seleByTechId(Integer technologyId);
 }
 
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 759a7d4..ac0a3c0 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
@@ -39,10 +39,10 @@
     void delAllTeq(String ids);
 
     //鏍规嵁宸ヨ壓璺嚎id鏌ヨ鎵�鏈夌増鏈�
-    List<Integer> selectVerByTeId(Integer technologyId);
+    //List<Integer> selectVerByTeId(Integer technologyId);
 
     //鏌ヨ璇ュ伐鑹轰笅鏈�鏂扮増鏈湪涓�涓楠岄」鐩笅鍙互浣跨敤鍝簺璁惧
-    List<Map<String, Object>> selDevByVerTecIdFaNam(Integer technologyId, String father, String name, Integer ver);
+    //List<Map<String, Object>> selDevByVerTecIdFaNam(Integer technologyId, String father, String name, Integer ver);
 
     //鏍规嵁id鏌ョ湅璇︽儏
     List<Map<String, Object>> selTeqById(Integer id);
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 1063ace..0f74e7a 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
@@ -33,4 +33,7 @@
 
     //鏌ヨ璇ュ瀷鍙峰伐鑹轰笅鏈�鏂扮増鏈殑宸ヨ壓id
     Integer selTech(String techfather, String techname, Integer version, Integer specificationId);
+
+    //鏌ヨ璇ュ瀷鍙蜂笅鐗堟湰涓嬬殑鎵�鏈夋暟鎹�
+    List<Technology> selAllByVerSpId(Integer spId, Integer ver);
 }
diff --git a/standard-server/src/main/java/com/yuanchu/mom/pojo/Mbom.java b/standard-server/src/main/java/com/yuanchu/mom/pojo/Mbom.java
index be586bb..7c150aa 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/pojo/Mbom.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/pojo/Mbom.java
@@ -54,11 +54,6 @@
     private Integer num;
 
     /**
-     * 渚涘簲鍟�
-     **/
-    private String supplier;
-
-    /**
      * 璐ㄩ噺杩芥函鍙�
      **/
     private String qualityTraceability;
diff --git a/standard-server/src/main/java/com/yuanchu/mom/pojo/dto/MaterialDto.java b/standard-server/src/main/java/com/yuanchu/mom/pojo/dto/MaterialDto.java
index 4cfa724..72e22a0 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/pojo/dto/MaterialDto.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/pojo/dto/MaterialDto.java
@@ -15,7 +15,7 @@
     private Integer type;
 
     @JsonSerialize
-    @NotNull(message = "浜у搧澶х被(4澶х被)涓嶈兘涓虹┖")
+    @NotBlank(message = "浜у搧澶х被涓嶈兘涓虹┖")
     private String father;
 
     @JsonSerialize
diff --git a/standard-server/src/main/java/com/yuanchu/mom/pojo/dto/MbomDto2.java b/standard-server/src/main/java/com/yuanchu/mom/pojo/dto/MbomDto2.java
index 571b9ed..f52b952 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/pojo/dto/MbomDto2.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/pojo/dto/MbomDto2.java
@@ -26,12 +26,6 @@
     private Integer num;
 
     /**
-     * 渚涘簲鍟�
-     **/
-    @NotBlank(message = "渚涘簲鍟嗕笉鑳戒负绌�!")
-    private String supplier;
-
-    /**
      * 璐ㄩ噺杩芥函鍙�
      **/
     @NotBlank(message = "璐ㄩ噺杩芥函鍙蜂笉鑳戒负绌�!")
diff --git a/standard-server/src/main/java/com/yuanchu/mom/pojo/dto/ProductDto.java b/standard-server/src/main/java/com/yuanchu/mom/pojo/dto/ProductDto.java
index d57fba7..56aac0d 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/pojo/dto/ProductDto.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/pojo/dto/ProductDto.java
@@ -28,7 +28,6 @@
     /**
      * 鍗曚綅
      */
-    @NotBlank(message = "鍗曚綅涓嶈兘涓虹┖!")
     private String unit;
 
     /**
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 a9dea0c..a6f2520 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
@@ -14,6 +14,11 @@
 */
 public interface MaterialService extends IService<Material> {
 
+    /**
+     *鏂板-->閫夋嫨浜у搧澶х被
+     * @return
+     */
+    List<String> chooseFather();
 
     /**
      * 鏍囧噯MOM-->宸︿晶浜旂骇鏍戝睍绀�
@@ -26,7 +31,7 @@
      * @param materialDto
      * @return
      */
-    String addMaterial(MaterialDto materialDto);
+    String addMaterial(MaterialDto materialDto,Integer spId,Integer ver);
 
 
     /**
@@ -36,4 +41,6 @@
      * @return
      */
     Integer addVersion(Integer specificationsId, Integer version);
+
+
 }
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 b6cb65f..b560968 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
@@ -23,6 +23,6 @@
      *   (4绾�)鏂板-->鍨嬪彿
      * @param specificationsDto
      */
-    String addSpecifications(SpecificationsDto specificationsDto);
+    String addSpecifications(SpecificationsDto specificationsDto,Integer spId,Integer ver);
 
 }
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 d8dff13..a4219c3 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
      */
-    String addStandard(StandardDto standardDto);
+    String addStandard(StandardDto standardDto,Integer spId,Integer ver);
 }
diff --git a/standard-server/src/main/java/com/yuanchu/mom/service/TechnologyService.java b/standard-server/src/main/java/com/yuanchu/mom/service/TechnologyService.java
index f521111..221669a 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/service/TechnologyService.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/service/TechnologyService.java
@@ -32,7 +32,7 @@
     List<Map<String,Object>> selectAllTec(Integer specificationsId, Integer version,String message);
 
     /**
-     * 鍙充笂瑙掓柊澧�-->宸ヨ壓璺嚎-->閫夋嫨璁惧缁�
+     * 鍙充笂瑙掓柊澧�-->宸ヨ壓璺嚎-->閫夋嫨鐢熶骇璁惧缁�
      * @return
      */
     List<Map<String, Object>> chooseDevice();
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 35e9113..33ee29d 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
@@ -1,6 +1,7 @@
 package com.yuanchu.mom.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.mom.mapper.*;
@@ -13,6 +14,7 @@
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -53,15 +55,6 @@
     MbomModelMapper mbomModelMapper;
 
     @Resource
-    TechniqueService techniqueService;
-
-    @Resource
-    TechniqueModelMapper techniqueModelMapper;
-
-    @Resource
-    DeviceMapper deviceMapper;
-
-    @Resource
     TechnologyMapper technologyMapper;
 
     @Resource
@@ -70,8 +63,12 @@
     @Resource
     MbomMapper mbomMapper;
 
-    @Resource
-    TechniqueMapper techniqueMapper;
+
+    //鏂板-->閫夋嫨浜у搧澶х被
+    @Override
+    public List<String> chooseFather() {
+        return technologyTemplateMapper.chooseType();
+    }
 
     //鏍囧噯MOM-->宸︿晶浜旂骇鏍戝睍绀�
     @Override
@@ -82,7 +79,7 @@
     //(1,2绾�)鏂板-->鐗╂枡,鏍囧噯,鍨嬪彿
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public String addMaterial(MaterialDto materialDto) {
+    public String addMaterial(MaterialDto materialDto, Integer spId, Integer ver) {
         //鏍¢獙娣诲姞鐗╂枡鏄惁閲嶅
         List<Material> materialList = materialMapper.selectList(Wrappers.<Material>query()
                 .eq("type", materialDto.getType())
@@ -109,86 +106,111 @@
         specifications.setName(materialDto.getSpecifications());
         specifications.setStandardId(standard.getId());
         specificationsMapper.insert(specifications);
-        /*鏂板鏍囧噯BOM-->宸ヨ壓璺嚎(鎵归噺娣诲姞)*///0锛氭鑳惰繛鎺ュ櫒锛�1锛氶噾灞炶繛鎺ュ櫒锛�2锛氭箍鎻掓嫈鐢佃繛鎺ュ櫒锛�3锛氬垎鏀粍浠�
-        Integer type = null;
-        if (materialDto.getFather().equals("姗¤兌杩炴帴鍣�")){
-            type=0;
-        }else if (materialDto.getFather().equals("閲戝睘杩炴帴鍣�")){
-            type=1;
-        }else if(materialDto.getFather().equals("婀挎彃鎷旂數杩炴帴鍣�")){
-            type=2;
-        }else if(materialDto.getFather().equals("鍒嗘敮缁勪欢")){
-            type=3;
-        }else return "娣诲姞鐗╂枡銆�" + materialDto.getName() + "銆戞垚鍔�";
-        List<TechnologyTemplate> technologyTemplateList = technologyTemplateMapper.selectList(Wrappers.<TechnologyTemplate>query().eq("type", type));
-        List<Technology> technologyList = technologyTemplateList.stream().map(technologyTemplate -> {
-            Technology technology = new Technology();
-            technology.setSpecificationsId(specifications.getId());
-            technology.setFather(technologyTemplate.getFather());
-            technology.setName(technologyTemplate.getName());
-            technology.setDeviceGroup(technologyTemplate.getDeviceGroup());
-            return technology;
+        /**
+         * 鏍规嵁閫夋嫨鐨勬儏鍐�,鍒ゆ柇鏄媺鍙栧熀纭�鏁版嵁鐨勬暟鎹�,杩樻槸鏌愪竴涓骇鍝佷笅鏌愪竴涓瀷鍙风殑鏁版嵁
+         */
+        //濡傛灉spId浼犵殑鍙傛暟鏄�0,鍒欐媺鍙栧熀纭�鏁版嵁鐨勬暟鎹�
+        if (spId == 0) {
+            /*鏂板鏍囧噯BOM-->宸ヨ壓璺嚎(鎵归噺娣诲姞)*/
+            List<TechnologyTemplate> technologyTemplateList = technologyTemplateMapper.selectList(Wrappers.<TechnologyTemplate>query().eq("type", material.getFather()));
+            if (ObjectUtils.isEmpty(technologyTemplateList)) {
+                return "娣诲姞鐗╂枡銆�" + materialDto.getName() + "銆戞垚鍔�";
+            }
+            List<Technology> technologyList = technologyTemplateList.stream().map(technologyTemplate -> {
+                Technology technology = new Technology();
+                technology.setSpecificationsId(specifications.getId());
+                technology.setFather(technologyTemplate.getFather());
+                technology.setName(technologyTemplate.getName());
+                technology.setDeviceGroup(technologyTemplate.getDeviceGroup());
+                return technology;
+            }).collect(Collectors.toList());
+            technologyService.saveBatch(technologyList);
+            /*鏂板鏍囧噯BOM-->鎶�鏈寚鏍�(鎵归噺娣诲姞)*/
+            //鏂板鐨勫伐鑹鸿矾绾縤d闆嗗悎
+            List<Integer> technologyIds = technologyList.stream().map(Technology::getId).collect(Collectors.toList());
+            //鍩虹鏁版嵁涓伐鑹鸿矾绾縤d闆嗗悎
+            List<Integer> techTemIds = technologyTemplateList.stream().map(TechnologyTemplate::getId).collect(Collectors.toList());
+            //涓よ�呴暱搴︿竴瀹氫竴鏍�
+            List<Product> productList = new ArrayList<>();
+            for (int i = 0; i < technologyIds.size(); i++) {
+                List<TechnicalModel> technicalModelList = technicalModelMapper.selectList(Wrappers.<TechnicalModel>query().eq("tech_tem_id", techTemIds.get(i)));
+                for (TechnicalModel technicalModel : technicalModelList) {
+                    Product product = new Product();
+                    product.setFather(technicalModel.getFather());
+                    product.setName(technicalModel.getName());
+                    product.setUnit(technicalModel.getUnit());
+                    product.setTechnologyId(technologyIds.get(i));
+                    productList.add(product);
+                }
+            }
+            productService.saveBatch(productList);
+            /*鏂板鏍囧噯BOM-->鐗╂枡娓呭崟(鎵归噺娣诲姞)*/
+            List<Mbom> mbomList = new ArrayList<>();
+            for (int i = 0; i < technologyIds.size(); i++) {
+                List<MbomModel> mbomModelList = mbomModelMapper.selectList(Wrappers.<MbomModel>query().eq("tech_tem_id", techTemIds.get(i)));
+                for (MbomModel mbomModel : mbomModelList) {
+                    Mbom mbom = new Mbom();
+                    mbom.setUnit(mbomModel.getUnit());
+                    mbom.setName(mbomModel.getName());
+                    mbom.setQualityTraceability(mbomModel.getQualityTraceability());
+                    mbom.setSpecifications(mbomModel.getSpecifications());
+                    mbom.setTechnologyId(technologyIds.get(i));
+                    mbomList.add(mbom);
+                }
+            }
+            mbomService.saveBatch(mbomList);
+            return "娣诲姞鐗╂枡銆�" + materialDto.getName() + "銆戞垚鍔�";
+        }
+        //濡傛灉spId!=0,绛変簬閫夋嫨鐨勫叿浣撳瀷鍙�,鍒欐坊鍔犺鍨嬪彿鐗堟湰鐨勬暟鎹�
+        /*鏂板鏍囧噯BOM-->宸ヨ壓璺嚎(鎵归噺娣诲姞)*/
+        List<Technology> technologyList = technologyMapper.selAllByVerSpId(spId, ver);
+        List<Technology> technologys = technologyList.stream().map(technology -> {
+            Technology tec = new Technology();
+            tec.setSpecificationsId(specifications.getId());
+            tec.setName(technology.getName());
+            tec.setFather(technology.getFather());
+            tec.setDeviceGroup(technology.getDeviceGroup());
+            tec.setProductionQuota(technology.getProductionQuota());
+            return tec;
         }).collect(Collectors.toList());
-        technologyService.saveBatch(technologyList);
-        /*鏂板鏍囧噯BOM-->鎶�鏈寚鏍�(鎵归噺娣诲姞)*/
-        //鏂板鐨勫伐鑹鸿矾绾縤d闆嗗悎
-        List<Integer> technologyIds = technologyList.stream().map(Technology::getId).collect(Collectors.toList());
-        //鍩虹鏁版嵁涓伐鑹鸿矾绾縤d闆嗗悎
-        List<Integer> techTemIds = technologyTemplateList.stream().map(TechnologyTemplate::getId).collect(Collectors.toList());
+        technologyService.saveBatch(technologys);
         //涓よ�呴暱搴︿竴瀹氫竴鏍�
-        List<Product> productList = new ArrayList<>();
-        for (int i = 0; i < technologyIds.size(); i++) {
-            List<TechnicalModel> technicalModelList = technicalModelMapper.selectList(Wrappers.<TechnicalModel>query().eq("tech_tem_id", techTemIds.get(i)));
-            for (TechnicalModel technicalModel : technicalModelList) {
-                Product product = new Product();
-                product.setFather(technicalModel.getFather());
-                product.setName(technicalModel.getName());
-                product.setUnit(technicalModel.getUnit());
-                product.setTechnologyId(technologyIds.get(i));
-                productList.add(product);
+        for (int i = 0; i < technologyList.size(); i++) {
+            /*鏂板鏍囧噯BOM-->鎶�鏈寚鏍�(鎵归噺娣诲姞)*/
+            List<Product> productList = productMapper.selProByVerSpe(technologyList.get(i).getId());
+            List<Product> products = new ArrayList<>();
+            for (Product product : productList) {
+                Product pro = new Product();
+                pro.setTechnologyId(technologys.get(i).getId());
+                pro.setName(product.getName());
+                pro.setFather(product.getFather());
+                pro.setUnit(product.getUnit());
+                pro.setRequired(product.getRequired());
+                pro.setInternal(product.getInternal());
+                products.add(pro);
             }
-        }
-        productService.saveBatch(productList);
-        /*鏂板鏍囧噯BOM-->鐗╂枡娓呭崟(鎵归噺娣诲姞)*/
-        List<Mbom> mbomList = new ArrayList<>();
-        for (int i = 0; i < technologyIds.size(); i++) {
-            List<MbomModel> mbomModelList = mbomModelMapper.selectList(Wrappers.<MbomModel>query().eq("tech_tem_id", techTemIds.get(i)));
-            for (MbomModel mbomModel : mbomModelList) {
-                Mbom mbom = new Mbom();
-                mbom.setUnit(mbomModel.getUnit());
-                mbom.setName(mbomModel.getName());
-                mbom.setSupplier(mbomModel.getSupplier());
-                mbom.setQualityTraceability(mbomModel.getQualityTraceability());
-                mbom.setSpecifications(mbomModel.getSpecifications());
-                mbom.setTechnologyId(technologyIds.get(i));
-                mbomList.add(mbom);
+            productService.saveBatch(products);
+            /*鏂板鏍囧噯BOM-->鐗╂枡娓呭崟(鎵归噺娣诲姞)*/
+            List<Mbom> mbomList = mbomMapper.seleByTechId(technologyList.get(i).getId());
+            List<Mbom> mboms = new ArrayList<>();
+            for (Mbom mbom : mbomList) {
+                Mbom mbo = new Mbom();
+                mbo.setTechnologyId(technologys.get(i).getId());
+                mbo.setName(mbom.getName());
+                mbo.setUnit(mbom.getUnit());
+                mbo.setUnit(mbom.getUnit());
+                mbo.setNum(mbom.getNum());
+                mbo.setQualityTraceability(mbom.getQualityTraceability());
+                mbo.setSpecifications(mbom.getSpecifications());
+                mboms.add(mbo);
             }
+            mbomService.saveBatch(mboms);
         }
-        mbomService.saveBatch(mbomList);
-        /*鏂板鏍囧噯BOM-->鐢熶骇宸ヨ壓(鎵归噺娣诲姞)*/
-        List<Technique> techniqueList = new ArrayList<>();
-        for (int i = 0; i < technologyIds.size(); i++) {
-            List<TechniqueModel> techniqueModelList = techniqueModelMapper.selectList(Wrappers.<TechniqueModel>query().eq("tech_tem_id", techTemIds.get(i)));
-            for (TechniqueModel techniqueModel : techniqueModelList) {
-                //鏌ヨ璁惧鍚嶇О
-                Device device = deviceMapper.selectById(techniqueModel.getDeviceId());
-                //鏌ヨ鍩虹鐢熶骇宸ヨ壓涓瘡涓澶囩殑鍏蜂綋椤圭洰
-                TechnicalModel technicalModel = technicalModelMapper.selectById(techniqueModel.getTechnicalModelId());
-                Technique technique = new Technique();
-                technique.setTechnologyId(technologyIds.get(i));
-                technique.setDevice(device.getName());
-                technique.setProductFather(technicalModel.getFather());
-                technique.setProduct(technicalModel.getName());
-                technique.setUnit(technicalModel.getUnit());
-                techniqueList.add(technique);
-            }
-        }
-        techniqueService.saveBatch(techniqueList);
         return "娣诲姞鐗╂枡銆�" + materialDto.getName() + "銆戞垚鍔�";
     }
 
 
-    //娣诲姞鍚屼竴涓瀷鍙峰伐鑹鸿矾绾�,鎶�鏈寚鏍�,鐗╂枡娓呭崟,鐢熶骇宸ヨ壓鐨勭増鏈�
+    //娣诲姞鍚屼竴涓瀷鍙峰伐鑹鸿矾绾�,鎶�鏈寚鏍�,鐗╂枡娓呭崟鐨勭増鏈�
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Integer addVersion(Integer specificationsId, Integer version) {
@@ -217,7 +239,7 @@
                 product.setUnit(pro.getUnit());
                 product.setRequired(pro.getRequired());
                 product.setInternal(pro.getInternal());
-                product.setVersion(pro.getVersion()+1);
+                product.setVersion(pro.getVersion() + 1);
                 product.setTechnologyId(technologyIds.get(i));
                 productList.add(product);
             }
@@ -231,32 +253,15 @@
                 Mbom mbom = new Mbom();
                 mbom.setUnit(mb.getUnit());
                 mbom.setName(mb.getName());
-                mbom.setSupplier(mb.getSupplier());
                 mbom.setQualityTraceability(mb.getQualityTraceability());
                 mbom.setSpecifications(mb.getSpecifications());
-                mbom.setVersion(mb.getVersion()+1);
+                mbom.setVersion(mb.getVersion() + 1);
                 mbom.setNum(mb.getNum());
                 mbom.setTechnologyId(technologyIds.get(i));
                 mbomList.add(mbom);
             }
         }
         mbomService.saveBatch(mbomList);
-        /*鏂板鏍囧噯BOM-->鐢熶骇宸ヨ壓(鎵归噺娣诲姞)*/
-        List<Technique> techniqueList = new ArrayList<>();
-        for (int i = 0; i < technologyIds.size(); i++) {
-            List<Technique> techniques = techniqueMapper.selectList(Wrappers.<Technique>query().eq("technology_id", techTemIds.get(i)));
-            for (Technique teque : techniques) {
-                Technique technique = new Technique();
-                technique.setTechnologyId(technologyIds.get(i));
-                technique.setDevice(teque.getDevice());
-                technique.setProductFather(teque.getProductFather());
-                technique.setProduct(teque.getProduct());
-                technique.setUnit(teque.getUnit());
-                technique.setVersion(teque.getVersion()+1);
-                techniqueList.add(technique);
-            }
-        }
-        techniqueService.saveBatch(techniqueList);
         return technologyList.get(0).getVersion();
     }
 
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 7c484bb..77dfdb1 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
@@ -1,8 +1,6 @@
 package com.yuanchu.mom.service.impl;
 
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.yuanchu.mom.mapper.TechniqueMapper;
 import com.yuanchu.mom.mapper.TechnologyMapper;
 import com.yuanchu.mom.pojo.Product;
 import com.yuanchu.mom.pojo.dto.ProductDto;
@@ -11,7 +9,6 @@
 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;
@@ -29,9 +26,6 @@
 
     @Resource
     TechnologyMapper technologyMapper;
-
-    @Resource
-    TechniqueMapper techniqueMapper;
 
     //鏍规嵁鍨嬪彿id鏌ヨ椤圭洰(鎶�鏈寚鏍�)
     @Override
@@ -67,20 +61,6 @@
     @Override
     public String addProduct(ProductDto productDto) {
         Product product = new Product();
-        String required = productDto.getRequired();
-        String internal = productDto.getInternal();
-        if (ObjectUtils.isNotEmpty(required)) {
-            char requ = required.charAt(0);
-            if (requ != '>' && requ != '<' && requ != '=') {
-                return "鏍囧噯鍊艰緭鍏ユ牸寮忔湁闂!";
-            }
-        }
-        if (ObjectUtils.isNotEmpty(internal)) {
-            char inter = internal.charAt(0);
-            if (inter != '>' && inter != '<' && inter != '=') {
-                return "鍐呮帶鍊艰緭鍏ユ牸寮忔湁闂!";
-            }
-        }
         BeanUtils.copyProperties(productDto, product);
         productMapper.insert(product);
         return "鏂板鎴愬姛!";
@@ -89,19 +69,6 @@
     //濉啓鏍囧噯鍊间笌鍐呮帶鍊�,榧犳爣绉诲紑淇濆瓨
     @Override
     public String write(Integer id, String required, String internal) {
-        //鏍¢獙鏍囧噯鍊�,鍐呮帶鍊兼牸寮�
-        if (ObjectUtils.isNotEmpty(internal)) {
-            char inter = internal.charAt(0);
-            if (inter != '>' && inter != '<' && inter != '=') {
-                return "鍐呮帶鍊艰緭鍏ユ牸寮忔湁闂!";
-            }
-        }
-        if (ObjectUtils.isNotEmpty(required)) {
-            char requ = required.charAt(0);
-            if (requ != '>' && requ != '<' && requ != '=') {
-                return "鏍囧噯鍊艰緭鍏ユ牸寮忔湁闂!";
-            }
-        }
         Product product = new Product();
         product.setId(id);
         product.setRequired(required);
@@ -119,8 +86,6 @@
         product.setId(id);
         product.setState(0);
         productMapper.updateById(product);
-        //鍒犻櫎鐢熶骇宸ヨ壓
-        techniqueMapper.delByProId(id);
     }
 
     //鎵归噺鍒犻櫎
@@ -129,11 +94,9 @@
     public void delAllPro(String ids) {
         //鎵归噺鍒犻櫎鎶�鏈寚鏍�
         productMapper.delAllPro(ids);
-        //鍒犻櫎鐢熶骇宸ヨ壓
-        techniqueMapper.delAll(ids);
     }
 
-    //鏌ヨ鏍囧噯BOM鎶�鏈寚鏍囦腑璇ュ瀷鍙峰伐鑹轰笅鏈�鏂扮増鏈殑妫�楠岄」鐩�
+    //鏍规嵁宸ヨ壓璺嚎id鏌ヨ鎶�鏈寚鏍�
     @Override
     public List<Product> selProByVerSpe(Integer technologyId) {
         return productMapper.selProByVerSpe(technologyId);
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 714960b..42ae537 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
@@ -1,5 +1,6 @@
 package com.yuanchu.mom.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -53,24 +54,24 @@
     MbomModelMapper mbomModelMapper;
 
     @Resource
-    TechniqueService techniqueService;
+    ProductMapper productMapper;
 
     @Resource
-    TechniqueModelMapper techniqueModelMapper;
+    MbomMapper mbomMapper;
 
     @Resource
-    DeviceMapper deviceMapper;
+    TechnologyMapper technologyMapper;
 
     //(4绾�)鏂板-->鍨嬪彿
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public String addSpecifications(SpecificationsDto specificationsDto) {
+    public String addSpecifications(SpecificationsDto specificationsDto, Integer spId, Integer ver) {
         //鏍¢獙娣诲姞璇ユ爣鍑嗕笅鐨勫瀷鍙锋槸鍚﹂噸澶�
         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())){
+        if (specificationsNameList.contains(specificationsDto.getSpecifications())) {
             return "璇ユ爣鍑嗕笅鏈夎鍨嬪彿";
         }
         /*鏂板鍨嬪彿琛�*/
@@ -78,86 +79,110 @@
         specifications.setStandardId(specificationsDto.getId());
         specifications.setName(specificationsDto.getSpecifications());
         specificationsMapper.insert(specifications);
+        /**
+         * 鏍规嵁閫夋嫨鐨勬儏鍐�,鍒ゆ柇鏄媺鍙栧熀纭�鏁版嵁鐨勬暟鎹�,杩樻槸鏌愪竴涓骇鍝佷笅鏌愪竴涓瀷鍙风殑鏁版嵁
+         */
+        //濡傛灉spId浼犵殑鍙傛暟鏄�0,鍒欐媺鍙栧熀纭�鏁版嵁鐨勬暟鎹�
+        if (spId == 0) {
+            /*鏂板鏍囧噯BOM-->宸ヨ壓璺嚎(鎵归噺娣诲姞)*/
+            //鏍规嵁鏍囧噯id鏌ヨ鐗╂枡澶х被
+            Material material = materialMapper.selFath(specificationsDto.getId());
+            List<TechnologyTemplate> technologyTemplateList = technologyTemplateMapper.selectList(Wrappers.<TechnologyTemplate>query().eq("type", material.getFather()));
+            if (ObjectUtils.isEmpty(technologyTemplateList)) {
+                return "娣诲姞鍨嬪彿銆�" + specificationsDto.getSpecifications() + "銆戞垚鍔燂紒";
+            }
+            List<Technology> technologyList = technologyTemplateList.stream().map(technologyTemplate -> {
+                Technology technology = new Technology();
+                technology.setSpecificationsId(specifications.getId());
+                technology.setFather(technologyTemplate.getFather());
+                technology.setName(technologyTemplate.getName());
+                technology.setDeviceGroup(technologyTemplate.getDeviceGroup());
+                return technology;
+            }).collect(Collectors.toList());
+            technologyService.saveBatch(technologyList);
+            /*鏂板鏍囧噯BOM-->鎶�鏈寚鏍�(鎵归噺娣诲姞)*/
+            //鏂板鐨勫伐鑹鸿矾绾縤d闆嗗悎
+            List<Integer> technologyIds = technologyList.stream().map(Technology::getId).collect(Collectors.toList());
+            //鍩虹鏁版嵁涓伐鑹鸿矾绾縤d闆嗗悎
+            List<Integer> techTemIds = technologyTemplateList.stream().map(TechnologyTemplate::getId).collect(Collectors.toList());
+            //涓よ�呴暱搴︿竴瀹氫竴鏍�
+            List<Product> productList = new ArrayList<>();
+            for (int i = 0; i < technologyIds.size(); i++) {
+                List<TechnicalModel> technicalModelList = technicalModelMapper.selectList(Wrappers.<TechnicalModel>query().eq("tech_tem_id", techTemIds.get(i)));
+                for (TechnicalModel technicalModel : technicalModelList) {
+                    Product product = new Product();
+                    product.setFather(technicalModel.getFather());
+                    product.setName(technicalModel.getName());
+                    product.setUnit(technicalModel.getUnit());
+                    product.setTechnologyId(technologyIds.get(i));
+                    productList.add(product);
+                }
+            }
+            productService.saveBatch(productList);
+            /*鏂板鏍囧噯BOM-->鐗╂枡娓呭崟(鎵归噺娣诲姞)*/
+            List<Mbom> mbomList = new ArrayList<>();
+            for (int i = 0; i < technologyIds.size(); i++) {
+                List<MbomModel> mbomModelList = mbomModelMapper.selectList(Wrappers.<MbomModel>query().eq("tech_tem_id", techTemIds.get(i)));
+                for (MbomModel mbomModel : mbomModelList) {
+                    Mbom mbom = new Mbom();
+                    mbom.setUnit(mbomModel.getUnit());
+                    mbom.setName(mbomModel.getName());
+                    mbom.setQualityTraceability(mbomModel.getQualityTraceability());
+                    mbom.setSpecifications(mbomModel.getSpecifications());
+                    mbom.setTechnologyId(technologyIds.get(i));
+                    mbomList.add(mbom);
+                }
+            }
+            mbomService.saveBatch(mbomList);
+            return "娣诲姞鍨嬪彿銆�" + specificationsDto.getSpecifications() + "銆戞垚鍔燂紒";
+        }
+        //濡傛灉spId!=0,绛変簬閫夋嫨鐨勫叿浣撳瀷鍙�,鍒欐坊鍔犺鍨嬪彿鐗堟湰鐨勬暟鎹�
         /*鏂板鏍囧噯BOM-->宸ヨ壓璺嚎(鎵归噺娣诲姞)*/
-        //鏍规嵁鏍囧噯id鏌ヨ鐗╂枡澶х被
-        Material material = materialMapper.selFath(specificationsDto.getId());
-        Integer type = null;
-        if (material.getFather().equals("姗¤兌杩炴帴鍣�")){
-            type=0;
-        }else if (material.getFather().equals("閲戝睘杩炴帴鍣�")){
-            type=1;
-        }else if(material.getFather().equals("婀挎彃鎷旂數杩炴帴鍣�")){
-            type=2;
-        }else if(material.getFather().equals("鍒嗘敮缁勪欢")){
-            type=3;
-        }else return "娣诲姞鍨嬪彿銆�" + specificationsDto.getSpecifications() + "銆戞垚鍔�";
-        List<TechnologyTemplate> technologyTemplateList = technologyTemplateMapper.selectList(Wrappers.<TechnologyTemplate>query().eq("type",type));
-        List<Technology> technologyList = technologyTemplateList.stream().map(technologyTemplate -> {
-            Technology technology = new Technology();
-            technology.setSpecificationsId(specifications.getId());
-            technology.setFather(technologyTemplate.getFather());
-            technology.setName(technologyTemplate.getName());
-            technology.setDeviceGroup(technologyTemplate.getDeviceGroup());
-            return technology;
+        List<Technology> technologyList = technologyMapper.selAllByVerSpId(spId, ver);
+        List<Technology> technologys = technologyList.stream().map(technology -> {
+            Technology tec = new Technology();
+            tec.setSpecificationsId(specifications.getId());
+            tec.setName(technology.getName());
+            tec.setFather(technology.getFather());
+            tec.setDeviceGroup(technology.getDeviceGroup());
+            tec.setProductionQuota(technology.getProductionQuota());
+            return tec;
         }).collect(Collectors.toList());
-        technologyService.saveBatch(technologyList);
-        /*鏂板鏍囧噯BOM-->鎶�鏈寚鏍�(鎵归噺娣诲姞)*/
-        //鏂板鐨勫伐鑹鸿矾绾縤d闆嗗悎
-        List<Integer> technologyIds = technologyList.stream().map(Technology::getId).collect(Collectors.toList());
-        //鍩虹鏁版嵁涓伐鑹鸿矾绾縤d闆嗗悎
-        List<Integer> techTemIds = technologyTemplateList.stream().map(TechnologyTemplate::getId).collect(Collectors.toList());
+        technologyService.saveBatch(technologys);
         //涓よ�呴暱搴︿竴瀹氫竴鏍�
-        List<Product> productList = new ArrayList<>();
-        for (int i = 0; i < technologyIds.size(); i++) {
-            List<TechnicalModel> technicalModelList = technicalModelMapper.selectList(Wrappers.<TechnicalModel>query().eq("tech_tem_id", techTemIds.get(i)));
-            for (TechnicalModel technicalModel : technicalModelList) {
-                Product product = new Product();
-                product.setFather(technicalModel.getFather());
-                product.setName(technicalModel.getName());
-                product.setUnit(technicalModel.getUnit());
-                product.setTechnologyId(technologyIds.get(i));
-                productList.add(product);
+        for (int i = 0; i < technologyList.size(); i++) {
+            /*鏂板鏍囧噯BOM-->鎶�鏈寚鏍�(鎵归噺娣诲姞)*/
+            List<Product> productList = productMapper.selProByVerSpe(technologyList.get(i).getId());
+            List<Product> products = new ArrayList<>();
+            for (Product product : productList) {
+                Product pro = new Product();
+                pro.setTechnologyId(technologys.get(i).getId());
+                pro.setName(product.getName());
+                pro.setFather(product.getFather());
+                pro.setUnit(product.getUnit());
+                pro.setRequired(product.getRequired());
+                pro.setInternal(product.getInternal());
+                products.add(pro);
             }
-        }
-        productService.saveBatch(productList);
-        /*鏂板鏍囧噯BOM-->鐗╂枡娓呭崟(鎵归噺娣诲姞)*/
-        List<Mbom> mbomList = new ArrayList<>();
-        for (int i = 0; i < technologyIds.size(); i++) {
-            List<MbomModel> mbomModelList = mbomModelMapper.selectList(Wrappers.<MbomModel>query().eq("tech_tem_id", techTemIds.get(i)));
-            for (MbomModel mbomModel : mbomModelList) {
-                Mbom mbom = new Mbom();
-                mbom.setUnit(mbomModel.getUnit());
-                mbom.setName(mbomModel.getName());
-                mbom.setSupplier(mbomModel.getSupplier());
-                mbom.setQualityTraceability(mbomModel.getQualityTraceability());
-                mbom.setSpecifications(mbomModel.getSpecifications());
-                mbom.setTechnologyId(technologyIds.get(i));
-                mbomList.add(mbom);
+            productService.saveBatch(products);
+            /*鏂板鏍囧噯BOM-->鐗╂枡娓呭崟(鎵归噺娣诲姞)*/
+            List<Mbom> mbomList = mbomMapper.seleByTechId(technologyList.get(i).getId());
+            List<Mbom> mboms = new ArrayList<>();
+            for (Mbom mbom : mbomList) {
+                Mbom mbo = new Mbom();
+                mbo.setTechnologyId(technologys.get(i).getId());
+                mbo.setName(mbom.getName());
+                mbo.setUnit(mbom.getUnit());
+                mbo.setUnit(mbom.getUnit());
+                mbo.setNum(mbom.getNum());
+                mbo.setQualityTraceability(mbom.getQualityTraceability());
+                mbo.setSpecifications(mbom.getSpecifications());
+                mboms.add(mbo);
             }
+            mbomService.saveBatch(mboms);
         }
-        mbomService.saveBatch(mbomList);
-        /*鏂板鏍囧噯BOM-->鐢熶骇宸ヨ壓(鎵归噺娣诲姞)*/
-        List<Technique> techniqueList = new ArrayList<>();
-        for (int i = 0; i < technologyIds.size(); i++) {
-            List<TechniqueModel> techniqueModelList = techniqueModelMapper.selectList(Wrappers.<TechniqueModel>query().eq("tech_tem_id", techTemIds.get(i)));
-            for (TechniqueModel techniqueModel : techniqueModelList) {
-                //鏌ヨ璁惧鍚嶇О
-                Device device = deviceMapper.selectById(techniqueModel.getDeviceId());
-                //鏌ヨ鍩虹鐢熶骇宸ヨ壓涓瘡涓澶囩殑鍏蜂綋椤圭洰
-                TechnicalModel technicalModel = technicalModelMapper.selectById(techniqueModel.getTechnicalModelId());
-                Technique technique = new Technique();
-                technique.setTechnologyId(technologyIds.get(i));
-                technique.setDevice(device.getName());
-                technique.setProductFather(technicalModel.getFather());
-                technique.setProduct(technicalModel.getName());
-                technique.setUnit(technicalModel.getUnit());
-                techniqueList.add(technique);
-            }
-        }
-        techniqueService.saveBatch(techniqueList);
-        return "娣诲姞鍨嬪彿銆�"+ specificationsDto.getSpecifications() +"銆戞垚鍔燂紒";
+        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 ebb7772..6c3da85 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
@@ -1,5 +1,6 @@
 package com.yuanchu.mom.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.mom.mapper.*;
@@ -50,18 +51,18 @@
     MbomModelMapper mbomModelMapper;
 
     @Resource
-    TechniqueService techniqueService;
+    ProductMapper productMapper;
 
     @Resource
-    TechniqueModelMapper techniqueModelMapper;
+    MbomMapper mbomMapper;
 
     @Resource
-    DeviceMapper deviceMapper;
+    TechnologyMapper technologyMapper;
 
     //(3绾�)鏂板-->鏍囧噯,鍨嬪彿
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public String addStandard(StandardDto standardDto) {
+    public String addStandard(StandardDto standardDto,Integer spId,Integer ver) {
         //鏍¢獙娣诲姞璇ョ墿鏂欎笅鐨勬爣鍑嗘槸鍚﹂噸澶�
         List<String> standNameList = standardMapper.selectList(Wrappers.<Standard>query().eq("material_id", standardDto.getId())).stream().map(standard -> {
             String standardName = standard.getName();
@@ -80,84 +81,109 @@
         specifications.setStandardId(standard.getId());
         specifications.setName(standardDto.getSpecifications());
         specificationsMapper.insert(specifications);
+        /**
+         * 鏍规嵁閫夋嫨鐨勬儏鍐�,鍒ゆ柇鏄媺鍙栧熀纭�鏁版嵁鐨勬暟鎹�,杩樻槸鏌愪竴涓骇鍝佷笅鏌愪竴涓瀷鍙风殑鏁版嵁
+         */
+        //濡傛灉spId浼犵殑鍙傛暟鏄�0,鍒欐媺鍙栧熀纭�鏁版嵁鐨勬暟鎹�
+        if (spId == 0) {
+            /*鏂板鏍囧噯BOM-->宸ヨ壓璺嚎(鎵归噺娣诲姞)*/
+            //鏌ヨ鐗╂枡鐨勫ぇ绫�(鏍规嵁鐗╂枡id)
+            Material material = materialMapper.selectById(standardDto.getId());
+            List<TechnologyTemplate> technologyTemplateList = technologyTemplateMapper.selectList(Wrappers.<TechnologyTemplate>query().eq("type", material.getFather()));
+            if (ObjectUtils.isEmpty(technologyTemplateList)) {
+                return "娣诲姞鏍囧噯銆�" + standardDto.getStandard() + "銆戞垚鍔燂紒";
+            }
+            List<Technology> technologyList = technologyTemplateList.stream().map(technologyTemplate -> {
+                Technology technology = new Technology();
+                technology.setSpecificationsId(specifications.getId());
+                technology.setFather(technologyTemplate.getFather());
+                technology.setName(technologyTemplate.getName());
+                technology.setDeviceGroup(technologyTemplate.getDeviceGroup());
+                return technology;
+            }).collect(Collectors.toList());
+            technologyService.saveBatch(technologyList);
+            /*鏂板鏍囧噯BOM-->鎶�鏈寚鏍�(鎵归噺娣诲姞)*/
+            //鏂板鐨勫伐鑹鸿矾绾縤d闆嗗悎
+            List<Integer> technologyIds = technologyList.stream().map(Technology::getId).collect(Collectors.toList());
+            //鍩虹鏁版嵁涓伐鑹鸿矾绾縤d闆嗗悎
+            List<Integer> techTemIds = technologyTemplateList.stream().map(TechnologyTemplate::getId).collect(Collectors.toList());
+            //涓よ�呴暱搴︿竴瀹氫竴鏍�
+            List<Product> productList = new ArrayList<>();
+            for (int i = 0; i < technologyIds.size(); i++) {
+                List<TechnicalModel> technicalModelList = technicalModelMapper.selectList(Wrappers.<TechnicalModel>query().eq("tech_tem_id", techTemIds.get(i)));
+                for (TechnicalModel technicalModel : technicalModelList) {
+                    Product product = new Product();
+                    product.setFather(technicalModel.getFather());
+                    product.setName(technicalModel.getName());
+                    product.setUnit(technicalModel.getUnit());
+                    product.setTechnologyId(technologyIds.get(i));
+                    productList.add(product);
+                }
+            }
+            productService.saveBatch(productList);
+            /*鏂板鏍囧噯BOM-->鐗╂枡娓呭崟(鎵归噺娣诲姞)*/
+            List<Mbom> mbomList = new ArrayList<>();
+            for (int i = 0; i < technologyIds.size(); i++) {
+                List<MbomModel> mbomModelList = mbomModelMapper.selectList(Wrappers.<MbomModel>query().eq("tech_tem_id", techTemIds.get(i)));
+                for (MbomModel mbomModel : mbomModelList) {
+                    Mbom mbom = new Mbom();
+                    mbom.setUnit(mbomModel.getUnit());
+                    mbom.setName(mbomModel.getName());
+                    mbom.setQualityTraceability(mbomModel.getQualityTraceability());
+                    mbom.setSpecifications(mbomModel.getSpecifications());
+                    mbom.setTechnologyId(technologyIds.get(i));
+                    mbomList.add(mbom);
+                }
+            }
+            mbomService.saveBatch(mbomList);
+            return "娣诲姞鏍囧噯銆�" + standardDto.getStandard() + "銆戞垚鍔燂紒";
+        }
+        //濡傛灉spId!=0,绛変簬閫夋嫨鐨勫叿浣撳瀷鍙�,鍒欐坊鍔犺鍨嬪彿鐗堟湰鐨勬暟鎹�
         /*鏂板鏍囧噯BOM-->宸ヨ壓璺嚎(鎵归噺娣诲姞)*/
-        //鏌ヨ鐗╂枡鐨勫ぇ绫�(鏍规嵁鐗╂枡id)
-        Material material = materialMapper.selectById(standardDto.getId());
-        Integer type = null;
-        if (material.getFather().equals("姗¤兌杩炴帴鍣�")){
-            type=0;
-        }else if (material.getFather().equals("閲戝睘杩炴帴鍣�")){
-            type=1;
-        }else if(material.getFather().equals("婀挎彃鎷旂數杩炴帴鍣�")){
-            type=2;
-        }else if(material.getFather().equals("鍒嗘敮缁勪欢")){
-            type=3;
-        }else return "娣诲姞鏍囧噯銆�" + standardDto.getStandard() + "銆戞垚鍔�";
-        List<TechnologyTemplate> technologyTemplateList = technologyTemplateMapper.selectList(Wrappers.<TechnologyTemplate>query().eq("type", type));
-        List<Technology> technologyList = technologyTemplateList.stream().map(technologyTemplate -> {
-            Technology technology = new Technology();
-            technology.setSpecificationsId(specifications.getId());
-            technology.setFather(technologyTemplate.getFather());
-            technology.setName(technologyTemplate.getName());
-            technology.setDeviceGroup(technologyTemplate.getDeviceGroup());
-            return technology;
+        List<Technology> technologyList = technologyMapper.selAllByVerSpId(spId, ver);
+        List<Technology> technologys = technologyList.stream().map(technology -> {
+            Technology tec = new Technology();
+            tec.setSpecificationsId(specifications.getId());
+            tec.setName(technology.getName());
+            tec.setFather(technology.getFather());
+            tec.setDeviceGroup(technology.getDeviceGroup());
+            tec.setProductionQuota(technology.getProductionQuota());
+            return tec;
         }).collect(Collectors.toList());
-        technologyService.saveBatch(technologyList);
-        /*鏂板鏍囧噯BOM-->鎶�鏈寚鏍�(鎵归噺娣诲姞)*/
-        //鏂板鐨勫伐鑹鸿矾绾縤d闆嗗悎
-        List<Integer> technologyIds = technologyList.stream().map(Technology::getId).collect(Collectors.toList());
-        //鍩虹鏁版嵁涓伐鑹鸿矾绾縤d闆嗗悎
-        List<Integer> techTemIds = technologyTemplateList.stream().map(TechnologyTemplate::getId).collect(Collectors.toList());
+        technologyService.saveBatch(technologys);
         //涓よ�呴暱搴︿竴瀹氫竴鏍�
-        List<Product> productList = new ArrayList<>();
-        for (int i = 0; i < technologyIds.size(); i++) {
-            List<TechnicalModel> technicalModelList = technicalModelMapper.selectList(Wrappers.<TechnicalModel>query().eq("tech_tem_id", techTemIds.get(i)));
-            for (TechnicalModel technicalModel : technicalModelList) {
-                Product product = new Product();
-                product.setFather(technicalModel.getFather());
-                product.setName(technicalModel.getName());
-                product.setUnit(technicalModel.getUnit());
-                product.setTechnologyId(technologyIds.get(i));
-                productList.add(product);
+        for (int i = 0; i < technologyList.size(); i++) {
+            /*鏂板鏍囧噯BOM-->鎶�鏈寚鏍�(鎵归噺娣诲姞)*/
+            List<Product> productList = productMapper.selProByVerSpe(technologyList.get(i).getId());
+            List<Product> products = new ArrayList<>();
+            for (Product product : productList) {
+                Product pro = new Product();
+                pro.setTechnologyId(technologys.get(i).getId());
+                pro.setName(product.getName());
+                pro.setFather(product.getFather());
+                pro.setUnit(product.getUnit());
+                pro.setRequired(product.getRequired());
+                pro.setInternal(product.getInternal());
+                products.add(pro);
             }
-        }
-        productService.saveBatch(productList);
-        /*鏂板鏍囧噯BOM-->鐗╂枡娓呭崟(鎵归噺娣诲姞)*/
-        List<Mbom> mbomList = new ArrayList<>();
-        for (int i = 0; i < technologyIds.size(); i++) {
-            List<MbomModel> mbomModelList = mbomModelMapper.selectList(Wrappers.<MbomModel>query().eq("tech_tem_id", techTemIds.get(i)));
-            for (MbomModel mbomModel : mbomModelList) {
-                Mbom mbom = new Mbom();
-                mbom.setUnit(mbomModel.getUnit());
-                mbom.setName(mbomModel.getName());
-                mbom.setSupplier(mbomModel.getSupplier());
-                mbom.setQualityTraceability(mbomModel.getQualityTraceability());
-                mbom.setSpecifications(mbomModel.getSpecifications());
-                mbom.setTechnologyId(technologyIds.get(i));
-                mbomList.add(mbom);
+            productService.saveBatch(products);
+            /*鏂板鏍囧噯BOM-->鐗╂枡娓呭崟(鎵归噺娣诲姞)*/
+            List<Mbom> mbomList = mbomMapper.seleByTechId(technologyList.get(i).getId());
+            List<Mbom> mboms = new ArrayList<>();
+            for (Mbom mbom : mbomList) {
+                Mbom mbo = new Mbom();
+                mbo.setTechnologyId(technologys.get(i).getId());
+                mbo.setName(mbom.getName());
+                mbo.setUnit(mbom.getUnit());
+                mbo.setUnit(mbom.getUnit());
+                mbo.setNum(mbom.getNum());
+                mbo.setQualityTraceability(mbom.getQualityTraceability());
+                mbo.setSpecifications(mbom.getSpecifications());
+                mboms.add(mbo);
             }
+            mbomService.saveBatch(mboms);
         }
-        mbomService.saveBatch(mbomList);
-        /*鏂板鏍囧噯BOM-->鐢熶骇宸ヨ壓(鎵归噺娣诲姞)*/
-        List<Technique> techniqueList = new ArrayList<>();
-        for (int i = 0; i < technologyIds.size(); i++) {
-            List<TechniqueModel> techniqueModelList = techniqueModelMapper.selectList(Wrappers.<TechniqueModel>query().eq("tech_tem_id", techTemIds.get(i)));
-            for (TechniqueModel techniqueModel : techniqueModelList) {
-                //鏌ヨ璁惧鍚嶇О
-                Device device = deviceMapper.selectById(techniqueModel.getDeviceId());
-                //鏌ヨ鍩虹鐢熶骇宸ヨ壓涓瘡涓澶囩殑鍏蜂綋椤圭洰
-                TechnicalModel technicalModel = technicalModelMapper.selectById(techniqueModel.getTechnicalModelId());
-                Technique technique = new Technique();
-                technique.setTechnologyId(technologyIds.get(i));
-                technique.setDevice(device.getName());
-                technique.setProductFather(technicalModel.getFather());
-                technique.setProduct(technicalModel.getName());
-                technique.setUnit(technicalModel.getUnit());
-                techniqueList.add(technique);
-            }
-        }
-        techniqueService.saveBatch(techniqueList);
-        return "娣诲姞鏍囧噯銆�"+ standardDto.getStandard() +"銆戞垚鍔燂紒";
+        return "娣诲姞鏍囧噯銆�" + standardDto.getStandard() + "銆戞垚鍔燂紒";
     }
 }
 
diff --git a/standard-server/src/main/java/com/yuanchu/mom/service/impl/TechnologyServiceImpl.java b/standard-server/src/main/java/com/yuanchu/mom/service/impl/TechnologyServiceImpl.java
index a40cf8f..6e72bc2 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/service/impl/TechnologyServiceImpl.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/service/impl/TechnologyServiceImpl.java
@@ -1,6 +1,6 @@
 package com.yuanchu.mom.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.yuanchu.mom.mapper.*;
@@ -11,12 +11,10 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-
 import javax.annotation.Resource;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
+
 
 /**
  * <p>
@@ -41,10 +39,6 @@
     @Resource
     MbomMapper mbomMapper;
 
-    @Resource
-    TechniqueMapper techniqueMapper;
-
-
     //鏍规嵁鍨嬪彿id鏌ヨ鐗堟湰
     @Override
     public List<Integer> selectVerByTec(Integer specificationsId) {
@@ -57,7 +51,7 @@
         return technologyMapper.selectAllTec(specificationsId, version, message);
     }
 
-    //鍙充笂瑙掓柊澧�-->宸ヨ壓璺嚎-->閫夋嫨璁惧缁�
+    //鍙充笂瑙掓柊澧�-->宸ヨ壓璺嚎-->閫夋嫨鐢熶骇璁惧缁�
     @Override
     public List<Map<String, Object>> chooseDevice() {
         return deviceMapper.chooseDevGroup();
@@ -109,8 +103,6 @@
         productMapper.delProByTecId(id);
         //鍒犻櫎鐗╂枡娓呭崟琛�
         mbomMapper.delMbomByTecId(id);
-        //鍒犻櫎鐢熶骇宸ヨ壓琛�
-        techniqueMapper.delTeqByTecId(id);
     }
 
     //鎵归噺鍒犻櫎
@@ -123,8 +115,6 @@
         productMapper.delAllByTechId(ids);
         //鎵归噺鍒犻櫎鐗╂枡娓呭崟琛�
         mbomMapper.delAllByTecId(ids);
-        //鎵归噺鍒犻櫎鐢熶骇宸ヨ壓琛�
-        techniqueMapper.delAllByTecId(ids);
     }
 
     //閫夋嫨璁惧缁�,榧犳爣绉诲紑淇濆瓨
diff --git a/standard-server/src/main/resources/mapper/MbomMapper.xml b/standard-server/src/main/resources/mapper/MbomMapper.xml
index 341494c..c9b0b7d 100644
--- a/standard-server/src/main/resources/mapper/MbomMapper.xml
+++ b/standard-server/src/main/resources/mapper/MbomMapper.xml
@@ -59,6 +59,14 @@
                                   and specifications_id = #{specificationsId})
     </select>
 
+    <!--鏍规嵁宸ヨ壓璺嚎id鏌ヨ鐗╂枡娓呭崟-->
+    <select id="seleByTechId" resultType="com.yuanchu.mom.pojo.Mbom">
+        select *
+        from mom_ocean.mbom
+        where state = 1
+          and technology_id = #{technologyId}
+    </select>
+
     <!--鏍规嵁宸ヨ壓璺嚎id鍒犻櫎鐗╂枡娓呭崟-->
     <update id="delMbomByTecId">
         update mom_ocean.mbom
diff --git a/standard-server/src/main/resources/mapper/TechniqueMapper.xml b/standard-server/src/main/resources/mapper/TechniqueMapper.xml
index 8dd2a7b..4132bae 100644
--- a/standard-server/src/main/resources/mapper/TechniqueMapper.xml
+++ b/standard-server/src/main/resources/mapper/TechniqueMapper.xml
@@ -111,15 +111,15 @@
                                   and specifications_id = #{specificationsId})
     </select>
     <!--鏍规嵁宸ヨ壓璺嚎id鏌ヨ鎵�鏈夌増鏈�-->
-    <select id="selectVerByTeId" resultType="java.lang.Integer">
+   <!-- <select id="selectVerByTeId" resultType="java.lang.Integer">
         select distinct version
         from mom_ocean.technique
         where state = 1
           and technology_id = #{technologyId}
-    </select>
+    </select>-->
 
     <!--鏌ヨ璇ュ伐鑹轰笅鏈�鏂扮増鏈湪涓�涓楠岄」鐩笅鍙互浣跨敤鍝簺璁惧-->
-    <select id="selDevByVerTecIdFaNam" resultType="java.util.Map">
+    <!--<select id="selDevByVerTecIdFaNam" resultType="java.util.Map">
         select device.id, device
         from mom_ocean.technique
                  left join mom_ocean.device on name = device
@@ -129,7 +129,7 @@
           and product_father = #{father}
           and product = #{name}
           and version = #{ver}
-    </select>
+    </select>-->
 
     <!--鏍规嵁id鏌ョ湅璇︽儏-->
     <select id="selTeqById" resultType="java.util.Map">
diff --git a/standard-server/src/main/resources/mapper/TechnologyMapper.xml b/standard-server/src/main/resources/mapper/TechnologyMapper.xml
index 53d352f..ae9d8b8 100644
--- a/standard-server/src/main/resources/mapper/TechnologyMapper.xml
+++ b/standard-server/src/main/resources/mapper/TechnologyMapper.xml
@@ -74,6 +74,15 @@
           and version = #{version}
     </select>
 
+    <!--鏌ヨ璇ュ瀷鍙蜂笅鐗堟湰涓嬬殑鎵�鏈夋暟鎹�-->
+    <select id="selAllByVerSpId" resultType="com.yuanchu.mom.pojo.Technology">
+        select *
+        from mom_ocean.technology
+        where state = 1
+          and specifications_id = #{spId}
+          and version = #{ver}
+    </select>
+
     <!--鎵归噺鍒犻櫎-->
     <update id="delAllTech">
         update mom_ocean.technology

--
Gitblit v1.9.3