From 500b97419343704696420a44f4aad8892ebe66ba Mon Sep 17 00:00:00 2001
From: JYW <2013732181@qq.com>
Date: 星期五, 26 四月 2024 09:14:26 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 cnas-server/src/main/resources/mapper/DeviceMapper.xml                                    |   53 +---
 cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java                              |   26 ++
 cnas-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java            |   59 +++++
 framework/src/main/java/com/yuanchu/mom/controller/InformationNotificationController.java |   12 
 cnas-server/src/main/java/com/yuanchu/mom/pojo/StructureItemParameter.java                |   12 
 cnas-server/src/main/java/com/yuanchu/mom/controller/DepartmentController.java            |    8 
 cnas-server/src/main/java/com/yuanchu/mom/mapper/ProductMapper.java                       |   18 +
 cnas-server/src/main/java/com/yuanchu/mom/mapper/StructureItemParameterMapper.java        |    3 
 cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java             |    9 
 cnas-server/src/main/resources/mapper/ProductMapper.xml                                   |   23 ++
 cnas-server/src/main/java/com/yuanchu/mom/pojo/StructureTestObject.java                   |   12 
 cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java                      |    3 
 cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java         |   61 ++++
 cnas-server/src/main/java/com/yuanchu/mom/dto/TestItemDto.java                            |   16 +
 cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java                                |  152 +++++--------
 cnas-server/src/main/resources/mapper/StructureTestMapper.xml                             |    7 
 cnas-server/src/main/java/com/yuanchu/mom/service/ProductService.java                     |   24 ++
 cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java                        |    7 
 cnas-server/src/main/java/com/yuanchu/mom/dto/ProductDto.java                             |   11 +
 cnas-server/src/main/resources/mapper/StructureItemParameterMapper.xml                    |   14 +
 cnas-server/src/main/java/com/yuanchu/mom/mapper/DepartmentMapper.java                    |    2 
 cnas-server/src/main/java/com/yuanchu/mom/service/impl/CapacityScopeServiceImpl.java      |   12 +
 cnas-server/src/main/java/com/yuanchu/mom/controller/CertificationController.java         |    6 
 cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java                |    3 
 cnas-server/src/main/java/com/yuanchu/mom/service/CapacityScopeService.java               |    3 
 cnas-server/src/main/java/com/yuanchu/mom/pojo/Product.java                               |   61 +++++
 cnas-server/src/main/java/com/yuanchu/mom/dto/PageTestObjectDto.java                      |    5 
 27 files changed, 440 insertions(+), 182 deletions(-)

diff --git a/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java b/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java
index 9b01b9d..af6e52b 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java
@@ -3,9 +3,11 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.mom.annotation.ValueAuth;
 import com.yuanchu.mom.dto.PageTestObjectDto;
+import com.yuanchu.mom.pojo.Product;
 import com.yuanchu.mom.pojo.StructureItemParameter;
 import com.yuanchu.mom.pojo.StructureTestObject;
 import com.yuanchu.mom.service.CapacityScopeService;
+import com.yuanchu.mom.service.ProductService;
 import com.yuanchu.mom.utils.JackSonUtil;
 import com.yuanchu.mom.vo.Result;
 import io.swagger.annotations.Api;
@@ -29,7 +31,9 @@
 
     private CapacityScopeService capacityScopeService;
 
-    @ApiOperation(value = "鑾峰彇椤圭洰妫�楠屽弬鏁板垪琛�")
+    private ProductService productService;
+
+    @ApiOperation(value = "鑳藉姏鑼冨洿-鑾峰彇椤圭洰妫�楠屽弬鏁板垪琛�")
     @PostMapping("/selectItemParameterList")
     public Result selectItemParameterList(@RequestBody Map<String, Object> data) throws Exception {
         Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
@@ -37,25 +41,25 @@
         return Result.success(capacityScopeService.selectItemParameterList(page, itemParameter));
     }
 
-    @ApiOperation(value = "娣诲姞椤圭洰妫�楠屽弬鏁�")
+    @ApiOperation(value = "鑳藉姏鑼冨洿-娣诲姞椤圭洰妫�楠屽弬鏁�")
     @PostMapping("/addItemParameter")
     public Result addItemParameter(@RequestBody StructureItemParameter itemParameter) {
         return Result.success(capacityScopeService.addItemParameter(itemParameter));
     }
 
-    @ApiOperation(value = "鍒犻櫎椤圭洰妫�楠屽弬鏁�")
+    @ApiOperation(value = "鑳藉姏鑼冨洿-鍒犻櫎椤圭洰妫�楠屽弬鏁�")
     @PostMapping("/delItemParameter")
     public Result<?> delItemParameter(Integer id) {
         return Result.success(capacityScopeService.delItemParameter(id));
     }
 
-    @ApiOperation(value = "淇敼椤圭洰妫�楠屽弬鏁�")
+    @ApiOperation(value = "鑳藉姏鑼冨洿-淇敼椤圭洰妫�楠屽弬鏁�")
     @PostMapping("/upItemParameter")
     public Result<?> upItemParameter(@RequestBody StructureItemParameter itemParameter) {
         return Result.success(capacityScopeService.upItemParameter(itemParameter));
     }
 
-    @ApiOperation(value = "鑾峰彇妫�楠屽璞�")
+    @ApiOperation(value = "鑳藉姏鑼冨洿-鑾峰彇妫�楠屽璞�")
     @PostMapping("/selectTestObjectList")
     public Result selectTestObjectList(@RequestBody Map<String, Object> data) throws Exception {
         Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
@@ -63,35 +67,72 @@
         return Result.success(capacityScopeService.selectTestObjectList(page, pageTestObjectDto));
     }
 
-    @ApiOperation(value = "娣诲姞妫�楠屽璞�")
+    @ApiOperation(value = "鑳藉姏鑼冨洿-娣诲姞妫�楠屽璞�")
     @PostMapping("/addTestObject")
     public Result addTestObject(@RequestBody StructureTestObject testObject) {
         return Result.success(capacityScopeService.addTestObject(testObject));
     }
 
-    @ApiOperation(value = "鍒犻櫎妫�楠屽璞�")
+    @ApiOperation(value = "鑳藉姏鑼冨洿-鍒犻櫎妫�楠屽璞�")
     @PostMapping("/delTestObject")
     public Result<?> delTestObject(Integer id) {
         return Result.success(capacityScopeService.delTestObject(id));
     }
 
-    @ApiOperation(value = "淇敼妫�楠屽璞�")
+    @ApiOperation(value = "鑳藉姏鑼冨洿-淇敼妫�楠屽璞�")
     @PostMapping("/upTestObject")
     public Result upTestObject(@RequestBody StructureTestObject testObject) {
         return Result.success(capacityScopeService.upTestObject(testObject));
     }
 
-    @ApiOperation(value = "鑾峰彇妫�楠屽璞℃灇涓�")
+    @ApiOperation(value = "鑳藉姏鑼冨洿-鑾峰彇妫�楠屽璞℃灇涓�")
     @GetMapping("/selectTestObjectByName")
     @ValueAuth
     public Result selectTestObjectByName() {
         return Result.success(capacityScopeService.selectTestObjectByName());
     }
 
-    @ApiOperation(value = "璁惧閲岄潰閫夋嫨妫�楠岄」鐩�(鏍戝舰缁撴瀯)")
+    @ApiOperation(value = "鑳藉姏鑼冨洿-璁惧閲岄潰閫夋嫨妫�楠岄」鐩�(鏍戝舰缁撴瀯)")
     @PostMapping("/getInsProduction")
     public Result getInsProduction(){
         return Result.success(capacityScopeService.getInsProduction());
     }
+
+    @ApiOperation(value = "缁存姢妫�楠屽璞$殑浜у搧")
+    @PostMapping("/selectProductListByObjectId")
+    public Result selectProductListByObjectId(@RequestBody Map<String, Object> data) throws Exception {
+        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
+        Product product = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), Product.class);
+        return Result.success(productService.selectProductListByObjectId(page, product));
+    }
+
+    @ApiOperation(value = "娣诲姞浜у搧")
+    @PostMapping("/addProduct")
+    @ValueAuth
+    public Result addProduct(@RequestBody Product product) {
+        return Result.success(productService.addProduct(product));
+    }
+
+    @ApiOperation(value = "淇敼浜у搧")
+    @PostMapping("/upProduct")
+    @ValueAuth
+    public Result upProduct(@RequestBody Product product) {
+        return Result.success(productService.upProduct(product));
+    }
+
+    @ApiOperation(value = "鍒犻櫎浜у搧")
+    @PostMapping("/delProduct")
+    @ValueAuth
+    public Result delProduct(Integer id) {
+        return Result.success(productService.delProduct(id));
+    }
+
+    @ApiOperation(value = "鑾峰彇妫�楠屽璞℃爲")
+    @GetMapping("/getItemTree")
+    @ValueAuth
+    public Result getItemTree() {
+        return Result.success(capacityScopeService.getItemTree());
+    }
+
 }
 
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/controller/CertificationController.java b/cnas-server/src/main/java/com/yuanchu/mom/controller/CertificationController.java
index fa775fe..926449b 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/controller/CertificationController.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/controller/CertificationController.java
@@ -26,7 +26,7 @@
 
     private CertificationService certificationService;
 
-    @ApiOperation(value = "鏌ヨ璧勮川鏄庣粏鍒楄〃")
+    @ApiOperation(value = "璧勮川璇存槑-鏌ヨ璧勮川鏄庣粏鍒楄〃")
     @PostMapping("/getCertificationDetail")
     public Result getCertificationDetail(@RequestBody Map<String, Object> data) throws Exception {
         System.out.println(data);
@@ -35,13 +35,13 @@
         return Result.success(certificationService.getCertificationDetail(page, certification));
     }
 
-    @ApiOperation(value = "娣诲姞璧勮川鏄庣粏鍒楄〃")
+    @ApiOperation(value = "璧勮川璇存槑-娣诲姞璧勮川鏄庣粏鍒楄〃")
     @PostMapping("/addCertificationDetail")
     public Result addCertificationDetail(@RequestBody Certification certification) {
         return Result.success(certificationService.addCertificationDetail(certification));
     }
 
-    @ApiOperation(value = "鍒犻櫎璧勮川鏄庣粏鍒楄〃")
+    @ApiOperation(value = "璧勮川璇存槑-鍒犻櫎璧勮川鏄庣粏鍒楄〃")
     @PostMapping("/delCertificationDetail")
     public Result<?> delCertificationDetail( String ids) {
         return Result.success(certificationService.delCertificationDetail(ids));
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/controller/DepartmentController.java b/cnas-server/src/main/java/com/yuanchu/mom/controller/DepartmentController.java
index f02883a..444c062 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/controller/DepartmentController.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/controller/DepartmentController.java
@@ -32,25 +32,25 @@
 
     DepartmentService departmentService;
 
-    @ApiOperation(value = "娣诲姞閮ㄩ棬")
+    @ApiOperation(value = "浜哄憳鏄庣粏-娣诲姞閮ㄩ棬")
     @PostMapping("/addDepartment")
     public Result addDepartment(@RequestBody Department department) {
         return Result.success(departmentService.addDepartment(department));
     }
 
-    @ApiOperation(value = "鑾峰彇閮ㄩ棬鏍�")
+    @ApiOperation(value = "浜哄憳鏄庣粏-鑾峰彇閮ㄩ棬鏍�")
     @GetMapping("/selectDepartment")
     public Result selectDepartment() {
         return Result.success(departmentService.selectDepartment());
     }
 
-    @ApiOperation(value = "鍒犻櫎閮ㄩ棬")
+    @ApiOperation(value = "浜哄憳鏄庣粏-鍒犻櫎閮ㄩ棬")
     @PostMapping("/delDepartment")
     public Result delDepartment(Integer id) {
         return Result.success(departmentService.delDepartment(id));
     }
 
-    @ApiOperation(value = "鏍规嵁閫夋嫨鐨勬爲灞曠ず鐩稿叧鐨勪汉鍛�")
+    @ApiOperation(value = "浜哄憳鏄庣粏-鏍规嵁閫夋嫨鐨勬爲灞曠ず鐩稿叧鐨勪汉鍛�")
     @PostMapping("/showUserById")
     public Result showUserById(@RequestBody Map<String, Object> data) throws Exception {
         Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java b/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java
index 4110274..be6dbe7 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java
@@ -4,6 +4,7 @@
 import cn.hutool.core.lang.UUID;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.mom.annotation.ValueAuth;
+import com.yuanchu.mom.dto.DeviceDto;
 import com.yuanchu.mom.pojo.Device;
 import com.yuanchu.mom.service.DeviceService;
 import com.yuanchu.mom.utils.JackSonUtil;
@@ -40,7 +41,7 @@
     @PostMapping("/selectDeviceParameter")
     public Result selectDeviceParameter(@RequestBody Map<String, Object> data) throws Exception {
         Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
-        Device itemParameter = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), Device.class);
+        DeviceDto itemParameter = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceDto.class);
         return Result.success(deviceService.selectDeviceParameter(page, itemParameter));
     }
 
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java b/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java
new file mode 100644
index 0000000..8bd8ce8
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java
@@ -0,0 +1,26 @@
+package com.yuanchu.mom.dto;
+
+import com.yuanchu.mom.annotation.ValueTableShow;
+import com.yuanchu.mom.pojo.Device;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DeviceDto extends Device {
+
+    @ValueTableShow(10)
+    @ApiModelProperty(value = "绠$悊浜�")
+    private String equipmentManagerUser;
+
+    @ValueTableShow(value = 12, name = "鎵�灞為儴闂�")
+    @ApiModelProperty(value = "鎵�灞為儴闂�")
+    private String laboratoryName;
+
+    @ValueTableShow(13)
+    @ApiModelProperty(value = "妫�楠岄」鐩�")
+    private Integer insProductItem;
+}
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/dto/PageTestObjectDto.java b/cnas-server/src/main/java/com/yuanchu/mom/dto/PageTestObjectDto.java
index f613fb7..f6fb326 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/dto/PageTestObjectDto.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/dto/PageTestObjectDto.java
@@ -11,6 +11,11 @@
  */
 @Data
 public class PageTestObjectDto extends StructureTestObject {
+
+    @ValueTableShow(2)
+    @ApiModelProperty(value = "浜у搧")
+    private String product;
+
     @ValueTableShow(2)
     @ApiModelProperty(value = "鍒涘缓浜�")
     private String createUserName;
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/dto/ProductDto.java b/cnas-server/src/main/java/com/yuanchu/mom/dto/ProductDto.java
new file mode 100644
index 0000000..0d0625e
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/mom/dto/ProductDto.java
@@ -0,0 +1,11 @@
+package com.yuanchu.mom.dto;
+
+import lombok.Data;
+
+@Data
+public class ProductDto {
+
+    private Integer id;
+
+    private String name;
+}
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/dto/TestItemDto.java b/cnas-server/src/main/java/com/yuanchu/mom/dto/TestItemDto.java
new file mode 100644
index 0000000..3ae87b0
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/mom/dto/TestItemDto.java
@@ -0,0 +1,16 @@
+package com.yuanchu.mom.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class TestItemDto {
+
+    private Integer id;
+
+    private String name;
+
+    private List<ProductDto> children;
+
+}
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/mapper/DepartmentMapper.java b/cnas-server/src/main/java/com/yuanchu/mom/mapper/DepartmentMapper.java
index f998d90..f38205a 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/mapper/DepartmentMapper.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/mapper/DepartmentMapper.java
@@ -2,12 +2,10 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.mom.dto.DepartmentDto;
 import com.yuanchu.mom.dto.UserDto;
 import com.yuanchu.mom.pojo.Department;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.yuanchu.mom.pojo.User;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java b/cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java
index a07992d..b84efc7 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java
@@ -4,8 +4,9 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.dto.DeviceDto;
 import com.yuanchu.mom.pojo.Device;
-import org.springframework.data.repository.query.Param;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -16,9 +17,6 @@
 
     IPage<Device> selectDeviceParameter(Page page, QueryWrapper<Device> ew);
     List<Device> selectEquipmentOverview(Page page, QueryWrapper<Device> ew);
-
-    //鏇存柊
-    int upDeviceParameter(Device itemParameter);
 
     //鑾峰彇琚巿鏉冧汉
     List<Device> authorizedPerson();
@@ -33,5 +31,6 @@
     //鏌ヨ璁惧璐熻矗浜�
     List<Device> selectDevicePrincipal();
 
+    IPage<DeviceDto> selectDeviceParameterPage(Page page, @Param("ew") QueryWrapper<DeviceDto> queryWrappers);
 }
 
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/mapper/ProductMapper.java b/cnas-server/src/main/java/com/yuanchu/mom/mapper/ProductMapper.java
new file mode 100644
index 0000000..964c610
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/mom/mapper/ProductMapper.java
@@ -0,0 +1,18 @@
+package com.yuanchu.mom.mapper;
+
+import com.yuanchu.mom.pojo.Product;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author z1292
+* @description 閽堝琛ㄣ�恜roduct(浜у搧琛�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-04-26 01:11:02
+* @Entity com.yuanchu.mom.pojo.Product
+*/
+public interface ProductMapper extends BaseMapper<Product> {
+
+}
+
+
+
+
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/mapper/StructureItemParameterMapper.java b/cnas-server/src/main/java/com/yuanchu/mom/mapper/StructureItemParameterMapper.java
index 1132eab..03aa210 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/mapper/StructureItemParameterMapper.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/mapper/StructureItemParameterMapper.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.dto.TestItemDto;
 import com.yuanchu.mom.pojo.StructureItemParameter;
 
 import java.util.List;
@@ -20,5 +21,7 @@
     IPage<StructureItemParameter> selectItemParameterList(Page page, QueryWrapper<StructureItemParameter> ew);
 
     List<Map<String, Object>> getInsProduction();
+
+    List<TestItemDto> getItemTree();
 }
 
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java b/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java
index b67eb1b..03d5367 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java
@@ -8,6 +8,7 @@
 import lombok.Data;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 
@@ -21,113 +22,83 @@
     @TableId(type = IdType.AUTO)
     private Integer id;
 
-    //@ValueTableShow(2)
-    @ApiModelProperty(value = "澶х被")
-    private String largeCategory;
-
-    @ValueTableShow(13)
-    @ApiModelProperty(value = "鍑哄巶鏃ユ湡")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private String dateProduction;
-
-    @ValueTableShow(4)
-    @ApiModelProperty(value = "璁惧璐熻矗浜�")
-    private Integer equipmentManager;
-
-    @ValueTableShow(5)
-    @ApiModelProperty(value = "琚巿鏉冧汉")
-    private String authorizedPerson;
-
     @ValueTableShow(1)
     @ApiModelProperty(value = "璁惧鍚嶇О")
     private String deviceName;
 
-    @ValueTableShow(7)
-    @ApiModelProperty(value = "鍐呴儴缂栫爜")
-    private String internalCode;
+    @ValueTableShow(value = 2, name = "en璁惧鍚嶇О")
+    @ApiModelProperty(value = "en璁惧鍚嶇О")
+    private String enDeviceName;
 
-    @ValueTableShow(8)
-    @ApiModelProperty(value = "璧勪骇缂栫爜")
-    private String assetCode;
+    @ValueTableShow(3)
+    @ApiModelProperty(value = "瑙勬牸鍨嬪彿")
+    private String specificationModel;
 
-    @ValueTableShow(9)
-    @ApiModelProperty(value = "鏍″噯鏃ユ湡锛堟湀锛�")
-    private String calibrationDate;
+    @ValueTableShow(4)
+    @ApiModelProperty(value = "鐢熶骇鍘傚")
+    private String manufacturer;
 
-    @ValueTableShow(10)
-    @ApiModelProperty(value = "鎶ュ簾鏃ユ湡")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime scrapTime;
-
-    @ValueTableShow(11)
-    @ApiModelProperty(value = "楠屾敹璁板綍")
-    private String acceptanceRecords;
-
-    @ValueTableShow(12)
-    @ApiModelProperty(value = "缁嗙被")
-    private String subclass;
-
-    @ValueTableShow(13)
-    @ApiModelProperty(value = "璁惧缂栫爜")
+    @ValueTableShow(5)
+    @ApiModelProperty(value = "鍑哄巶缂栧彿")
     private String factoryNo;
 
-    @ValueTableShow(14)
+    @ValueTableShow(value = 6, name = "绠$悊缂栧彿")
+    @ApiModelProperty(value = "绠$悊缂栧彿")
+    private String managementNumber;
+
+    @ValueTableShow(value = 7, name = "鎶�鏈寚鏍�")
+    @ApiModelProperty(value = "鎶�鏈寚鏍�")
+    private String technicalIndicators;
+
+    @ValueTableShow(8)
     @ApiModelProperty(value = "璐疆鏃ユ湡")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private String acquisitionDate;
 
-    @ValueTableShow(15)
-    @ApiModelProperty(value = "鍑嗙‘搴﹂噺鍊�")
-    private String accurateMeasurement;
+    @ValueTableShow(value = 9, name = "鍚敤鏃ユ湡")
+    @ApiModelProperty(value = "鍚敤鏃ユ湡")
+    private LocalDateTime activationDate;
 
-    @ValueTableShow(16)
-    @ApiModelProperty(value = "澶囨敞")
-    private String notes;
+    @ApiModelProperty(value = "绠$悊浜篒d")
+    private Integer equipmentManager;
 
-    @ValueTableShow(17)
-    @ApiModelProperty(value = "瑙勬牸鍨嬪彿")
-    private String specificationModel;
-
-    @ValueTableShow(6)
-    @ApiModelProperty(value = "璁惧鐘舵��")
-    private Integer deviceStatus;
-
-    @ValueTableShow(19)
+    @ValueTableShow(11)
     @ApiModelProperty(value = "瀛樻斁鐐�")
     private String storagePoint;
 
+    @ApiModelProperty(value = "鎵�灞為儴闂↖d")
+    private Integer subordinateDepartmentsId;
+
+    @ApiModelProperty(value = "妫�楠岄」鐩甀d")
+    private String insProductIds;
+
+    @ValueTableShow(value = 14, name = "鏍″噯鏈嶅姟鏈烘瀯")
+    @ApiModelProperty(value = "鏍″噯鏈嶅姟鏈烘瀯")
+    private String calibrationServices;
+
+    @ValueTableShow(value = 15, name = "鏈�杩戞牎鍑嗘棩鏈�")
+    @ApiModelProperty(value = "鏈�杩戞牎鍑嗘棩鏈�")
+    private LocalDateTime lastCalibrationDate;
+
+    @ValueTableShow(value = 16, name = "涓嬫鏍″噯鏃ユ湡")
+    @ApiModelProperty(value = "涓嬫鏍″噯鏃ユ湡")
+    private LocalDateTime nextCalibrationDate;
+
+    @ValueTableShow(value = 17, name = "璁惧鍒嗙被")
+    @ApiModelProperty(value = "璁惧绫诲瀷")
+    private String largeCategory;
+
+    @ValueTableShow(value = 18, name = "鍗曚环")
+    @ApiModelProperty(value = "鍗曚环")
+    private BigDecimal unitPrice;
+
+    @ValueTableShow(19)
+    @ApiModelProperty(value = "璁惧鐘舵��")
+    private Integer deviceStatus;
+
     @ValueTableShow(20)
-    @ApiModelProperty(value = "鏈�杩戣拷婧棩鏈�")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime latestTraceability;
-
-    @ValueTableShow(21)
-    @ApiModelProperty(value = "鍋滅敤鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime downTime;
-
-    @ValueTableShow(22)
-    @ApiModelProperty(value = "缁翠慨璁板綍")
-    private String maintenanceRecords;
-
-    @ValueTableShow(23)
-    @ApiModelProperty(value = "鐢熶骇鍘傚")
-    private String manufacturer;
-
-    @ValueTableShow(24)
-    @ApiModelProperty(value = "妫�娴嬬被鍨�")
-    private String detectionType;
-
-    @ValueTableShow(25)
-    @ApiModelProperty(value = "閲囪喘璐圭敤")
-    private String procurementCosts;
-
-    @ValueTableShow(26)
-    @ApiModelProperty(value = "鏍″噯璇佷功")
-    private String calibrationCerticate;
-
-    @ApiModelProperty(value = "鐘舵��")
-    private Integer status;
+    @ApiModelProperty(value = "鏍″噯鍛ㄦ湡锛堟湀锛�")
+    private String calibrationDate;
 
     @ApiModelProperty(value = "鍥剧墖涓婁紶")
     private String imageUpload;
@@ -148,9 +119,4 @@
     @TableField(fill = FieldFill.INSERT)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime createTime;
-
-    @ValueTableShow(12)
-    @ApiModelProperty(value = "妫�楠岄」鐩�")
-    private String insProductIds;
-
 }
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/pojo/Product.java b/cnas-server/src/main/java/com/yuanchu/mom/pojo/Product.java
new file mode 100644
index 0000000..1823052
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/mom/pojo/Product.java
@@ -0,0 +1,61 @@
+package com.yuanchu.mom.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yuanchu.mom.annotation.ValueTableShow;
+import com.yuanchu.mom.common.OrderBy;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 浜у搧琛�
+ * @TableName product
+ */
+@TableName(value ="product")
+@Data
+public class Product extends OrderBy implements Serializable {
+    /**
+     * 
+     */
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 浜у搧鍚嶇О
+     */
+    @ValueTableShow(value = 1,name = "浜у搧鍚嶇О")
+    private String name;
+
+    /**
+     * 浜у搧鍚嶇ОEN
+     */
+    @ValueTableShow(value = 2,name = "浜у搧鍚嶇ОEN")
+    private String nameEn;
+
+    @ApiModelProperty(value = "鍒涘缓浜篿d")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+
+    @ApiModelProperty(value = "淇敼浜篿d")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    /**
+     * 澶栭敭锛歴tructure_test_object琛╥d
+     */
+    private Integer objectId;
+}
\ No newline at end of file
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/pojo/StructureItemParameter.java b/cnas-server/src/main/java/com/yuanchu/mom/pojo/StructureItemParameter.java
index 4ce5560..8386d6c 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/pojo/StructureItemParameter.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/pojo/StructureItemParameter.java
@@ -1,16 +1,15 @@
 package com.yuanchu.mom.pojo;
 
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-import java.util.Date;
-
 import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yuanchu.mom.annotation.ValueTableShow;
 import com.yuanchu.mom.common.OrderBy;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
 
 /**
  * 妫�楠岄」鐩弬鏁�(StructureItemParameter)琛ㄥ璞�
@@ -47,13 +46,12 @@
 
     @ValueTableShow(3)
     @ApiModelProperty(value = "妫�楠屽璞�")
-    private Integer sample;
+    private String sample;
 
     @ValueTableShow(4)
     @ApiModelProperty(value = "鍗曚环(鍏�)")
     private BigDecimal price;
 
-    @ValueTableShow(4)
     @ApiModelProperty(value = "瀹為獙瀹�")
     private String laboratory;
 
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/pojo/StructureTestObject.java b/cnas-server/src/main/java/com/yuanchu/mom/pojo/StructureTestObject.java
index c85ec7c..6a6859a 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/pojo/StructureTestObject.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/pojo/StructureTestObject.java
@@ -1,15 +1,14 @@
 package com.yuanchu.mom.pojo;
 
-import java.io.Serializable;
-import java.time.LocalDateTime;
-import java.util.Date;
-
 import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yuanchu.mom.annotation.ValueTableShow;
 import com.yuanchu.mom.common.OrderBy;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
 
 /**
  * 妫�娴嬪璞�(StructureTestObject)琛ㄥ璞�
@@ -26,10 +25,7 @@
 
     @ValueTableShow(1)
     @ApiModelProperty(value = "鍦烘墍")
-    private Integer laboratory;
-
-    @TableField(exist = false)
-    private Integer laboratory_id;
+    private Integer laboratoryId;
 
     @ValueTableShow(1)
     @ApiModelProperty(value = "妫�楠屽璞�")
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/CapacityScopeService.java b/cnas-server/src/main/java/com/yuanchu/mom/service/CapacityScopeService.java
index 8c364a5..d43ed02 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/CapacityScopeService.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/CapacityScopeService.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yuanchu.mom.dto.PageTestObjectDto;
+import com.yuanchu.mom.dto.TestItemDto;
 import com.yuanchu.mom.pojo.StructureItemParameter;
 import com.yuanchu.mom.pojo.StructureTestObject;
 
@@ -37,5 +38,7 @@
 
     //璁惧閲岄潰閫夋嫨妫�楠岄」鐩�(鏍戝舰缁撴瀯)
     List<Map<String, Object>> getInsProduction();
+
+    List<TestItemDto> getItemTree();
 }
 
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java b/cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java
index a5a5816..1d2e3d3 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.yuanchu.mom.dto.DeviceDto;
 import com.yuanchu.mom.pojo.Device;
 
 import java.util.List;
@@ -12,7 +13,7 @@
  */
 public interface DeviceService extends IService<Device> {
 
-    Map<String, Object> selectDeviceParameter(Page page, Device itemParameter);
+    Map<String, Object> selectDeviceParameter(Page page, DeviceDto itemParameter);
 
     int addDeviceParameter(Device itemParameter);
 
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/ProductService.java b/cnas-server/src/main/java/com/yuanchu/mom/service/ProductService.java
new file mode 100644
index 0000000..a654735
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/ProductService.java
@@ -0,0 +1,24 @@
+package com.yuanchu.mom.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yuanchu.mom.pojo.Product;
+
+import java.util.Map;
+
+/**
+* @author z1292
+* @description 閽堝琛ㄣ�恜roduct(浜у搧琛�)銆戠殑鏁版嵁搴撴搷浣淪ervice
+* @createDate 2024-04-26 01:11:02
+*/
+public interface ProductService extends IService<Product> {
+
+    Map<String, Object> selectProductListByObjectId(Page page, Product product);
+
+    int addProduct(Product product);
+
+    int upProduct(Product product);
+
+    int delProduct(Integer id);
+
+}
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/CapacityScopeServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/CapacityScopeServiceImpl.java
index 7a0f451..f98ca4b 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/CapacityScopeServiceImpl.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/CapacityScopeServiceImpl.java
@@ -1,11 +1,13 @@
 package com.yuanchu.mom.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.common.PrintChina;
 import com.yuanchu.mom.dto.PageTestObjectDto;
+import com.yuanchu.mom.dto.TestItemDto;
 import com.yuanchu.mom.exception.ErrorException;
 import com.yuanchu.mom.mapper.StructureItemParameterMapper;
 import com.yuanchu.mom.mapper.StructureTestObjectMapper;
@@ -69,7 +71,10 @@
     @Override
     public int upItemParameter(StructureItemParameter itemParameter) {
         int i = structureItemParameterMapper.updateById(itemParameter);
-        standardTreeService.reTreeBySampleType(structureTestObjectMapper.selectById(itemParameter.getSample()).getSpecimenName());
+        if(itemParameter.getSample() != null){
+            List<String> list = JSON.parseArray(itemParameter.getSample(), String.class);
+            standardTreeService.reTreeBySampleType(list.get(0));
+        }
         return i;
     }
 
@@ -112,5 +117,10 @@
     public List<Map<String, Object>> getInsProduction() {
         return structureItemParameterMapper.getInsProduction();
     }
+
+    @Override
+    public List<TestItemDto> getItemTree() {
+        return structureItemParameterMapper.getItemTree();
+    }
 }
 
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
index 3286e6b..1edd34a 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
@@ -1,11 +1,13 @@
 package com.yuanchu.mom.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.common.PrintChina;
+import com.yuanchu.mom.dto.DeviceDto;
 import com.yuanchu.mom.mapper.DeviceMapper;
 import com.yuanchu.mom.mapper.StructureItemParameterMapper;
 import com.yuanchu.mom.pojo.Device;
@@ -34,12 +36,13 @@
     private StructureItemParameterMapper structureItemParameterMapper;
 
     @Override
-    public Map<String, Object> selectDeviceParameter(Page page, Device itemParameter) {
+    public Map<String, Object> selectDeviceParameter(Page page, DeviceDto itemParameter) {
         Map<String, Object> map = new HashMap<>();
-        map.put("head", PrintChina.printChina(Device.class));
+        map.put("head", PrintChina.printChina(DeviceDto.class));
         Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectDeviceParameter");
         if (map1.get("look") == 1) itemParameter.setCreateUser(map1.get("userId"));
-        map.put("body", deviceMapper.selectPage(page, QueryWrappers.queryWrappers(itemParameter)));
+        IPage<DeviceDto> iPage = deviceMapper.selectDeviceParameterPage(page, QueryWrappers.queryWrappers(itemParameter));
+        map.put("body", iPage);
         return map;
     }
 
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java
new file mode 100644
index 0000000..07fa0b5
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java
@@ -0,0 +1,59 @@
+package com.yuanchu.mom.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.mom.common.GetLook;
+import com.yuanchu.mom.common.PrintChina;
+import com.yuanchu.mom.mapper.ProductMapper;
+import com.yuanchu.mom.pojo.Product;
+import com.yuanchu.mom.service.ProductService;
+import com.yuanchu.mom.utils.QueryWrappers;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+* @author z1292
+* @description 閽堝琛ㄣ�恜roduct(浜у搧琛�)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+* @createDate 2024-04-26 01:11:02
+*/
+@Service
+@AllArgsConstructor
+public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product>
+    implements ProductService{
+
+    private ProductMapper productMapper;
+
+    private GetLook getLook;
+
+    @Override
+    public Map<String, Object> selectProductListByObjectId(Page page, Product product) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("head", PrintChina.printChina(Product.class));
+        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectProductListByObjectId");
+        if(map1.get("look")==1) product.setCreateUser(map1.get("userId"));
+        map.put("body", productMapper.selectPage(page, QueryWrappers.queryWrappers(product)));
+        return map;
+    }
+
+    @Override
+    public int addProduct(Product product) {
+        return productMapper.insert(product);
+    }
+
+    @Override
+    public int upProduct(Product product) {
+        return productMapper.updateById(product);
+    }
+
+    @Override
+    public int delProduct(Integer id) {
+        return productMapper.deleteById(id);
+    }
+}
+
+
+
+
diff --git a/cnas-server/src/main/resources/mapper/DeviceMapper.xml b/cnas-server/src/main/resources/mapper/DeviceMapper.xml
index f24ba1a..721840b 100644
--- a/cnas-server/src/main/resources/mapper/DeviceMapper.xml
+++ b/cnas-server/src/main/resources/mapper/DeviceMapper.xml
@@ -79,44 +79,6 @@
         </where>
     </select>
 
-    <update id="upDeviceParameter" parameterType="com.yuanchu.mom.pojo.Device">
-        UPDATE device
-        <set>
-            <if test="largeCategory!=null and largeCategory!='' ">large_category=#{largeCategory},</if>
-            <if test="dateProduction!=null  ">date_production=#{dateProduction},</if>
-            <if test="equipmentManager!=null  ">equipment_manager=#{equipmentManager},</if>
-            <if test="authorizedPerson!=null  ">authorized_person=#{authorizedPerson}</if>
-            <if test="deviceName!=null  ">device_name=#{deviceName}</if>
-            <if test="internalCode!=null  ">internal_code=#{internalCode}</if>
-            <if test="assetCode!=null  ">asset_code=#{assetCode}</if>
-            <if test="calibrationDate!=null  ">calibration_date=#{calibrationDate}</if>
-            <if test="scrapTime!=null  ">scrap_time=#{scrapTime}</if>
-            <if test="acceptanceRecords!=null  ">acceptance_records=#{acceptanceRecords}</if>
-            <if test="subclass!=null  ">subclass=#{subclass}</if>
-            <if test="factoryNo!=null  ">factory_no=#{factoryNo}</if>
-            <if test="acquisitionDate!=null  ">create_time=#{acquisition_date}</if>
-            <if test="factoryNo!=null  ">create_time=#{factory_no}</if>
-            <if test="acquisitionDate!=null  ">acquisition_date=#{acquisitionDate}</if>
-            <if test="accurateMeasurement!=null  ">accurate_measurement=#{accurateMeasurement}</if>
-            <if test="notes!=null  ">notes=#{notes}</if>
-            <if test="specificationModel!=null  ">specification_model=#{specificationModel}</if>
-            <if test="deviceStatus!=null  ">device_status=#{deviceStatus}</if>
-            <if test="storagePoint!=null  ">storage_point=#{storagePoint}</if>
-            <if test="latestTraceability!=null  ">latest_traceability=#{latestTraceability}</if>
-            <if test="downTime!=null  ">down_time=#{downTime}</if>
-            <if test="maintenanceRecords!=null  ">maintenance_records=#{maintenanceRecords}</if>
-            <if test="manufacturer!=null  ">manufacturer=#{manufacturer}</if>
-            <if test="detectionType!=null  ">detection_type=#{detectionType}</if>
-            <if test="procurementCosts!=null  ">procurement_costs=#{procurementCosts}</if>
-            <if test="calibrationCerticate!=null  ">calibration_certicate=#{calibrationCerticate}</if>
-            <if test="status!=null  ">status=#{status}</if>
-            <if test="imageUpload!=null  ">image_upload=#{imageUpload}</if>
-            <if test="imageName!=null  ">image_name=#{imageName}</if>
-        </set>
-        <where>
-            id=#{id}
-        </where>
-    </update>
     <select id="selectDeviceImage" resultType="com.yuanchu.mom.pojo.Device">
         select (image_upload, create_user, create_time) values (#{image_upload}
              , #{createUser}
@@ -127,4 +89,19 @@
                equipment_manager
         from device
     </select>
+
+    <select id="selectDeviceParameterPage" resultType="com.yuanchu.mom.dto.DeviceDto">
+        select * from(
+        SELECT
+        d.*, u.name equipmentManagerUser, l.laboratory_name laboratoryName, i.inspection_item insProductItem
+        FROM
+        device d
+        left join `user` u on u.id = d.equipment_manager
+        left join laboratory l on l.id = d.subordinate_departments_id
+        left join ins_product i on i.id = d.ins_product_ids
+        ) a
+        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+            ${ew.customSqlSegment}
+        </if>
+    </select>
 </mapper>
diff --git a/cnas-server/src/main/resources/mapper/ProductMapper.xml b/cnas-server/src/main/resources/mapper/ProductMapper.xml
new file mode 100644
index 0000000..01d9a65
--- /dev/null
+++ b/cnas-server/src/main/resources/mapper/ProductMapper.xml
@@ -0,0 +1,23 @@
+<?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.ProductMapper">
+
+    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.Product">
+            <id property="id" column="id" jdbcType="INTEGER"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="nameEn" column="name_en" jdbcType="VARCHAR"/>
+            <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+            <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="objectId" column="object_id" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,name,name_en,
+        create_user,update_user,create_time,
+        update_time,object_id
+    </sql>
+</mapper>
diff --git a/cnas-server/src/main/resources/mapper/StructureItemParameterMapper.xml b/cnas-server/src/main/resources/mapper/StructureItemParameterMapper.xml
index 428ec1f..6062487 100644
--- a/cnas-server/src/main/resources/mapper/StructureItemParameterMapper.xml
+++ b/cnas-server/src/main/resources/mapper/StructureItemParameterMapper.xml
@@ -54,4 +54,18 @@
             else inspection_item_subclass end  as subclass
         from structure_item_parameter
     </select>
+    <select id="getItemTree" resultMap="itemDto">
+        select sto.id sId,sto.specimen_name sName,p.id pId,p.name pName from structure_test_object sto
+        left join product p on p.object_id = sto.id
+    </select>
+
+    <resultMap id="itemDto" type="com.yuanchu.mom.dto.TestItemDto">
+        <result column="sId" property="id"/>
+        <result column="sName" property="name"/>
+        <collection property="children" resultMap="productDto"/>
+    </resultMap>
+    <resultMap id="productDto" type="com.yuanchu.mom.dto.ProductDto">
+        <result column="pId" property="id"/>
+        <result column="pName" property="name"/>
+    </resultMap>
 </mapper>
diff --git a/cnas-server/src/main/resources/mapper/StructureTestMapper.xml b/cnas-server/src/main/resources/mapper/StructureTestMapper.xml
index 35ccaa1..1dac2c9 100644
--- a/cnas-server/src/main/resources/mapper/StructureTestMapper.xml
+++ b/cnas-server/src/main/resources/mapper/StructureTestMapper.xml
@@ -11,10 +11,15 @@
         u1.name create_user_name,
         sto.create_time,
         u2.name update_user_name,
-        sto.update_time
+        sto.update_time,
+        sto.code,
+        sto.laboratory_id,
+        GROUP_CONCAT(p.name) product
         from structure_test_object sto
         left join user u1 on sto.create_user = u1.id
         left join user u2 on sto.update_user = u2.id
+        left join product p on p.object_id = sto.id
+        group by sto.id
         ) a
         <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
             ${ew.customSqlSegment}
diff --git a/framework/src/main/java/com/yuanchu/mom/controller/InformationNotificationController.java b/framework/src/main/java/com/yuanchu/mom/controller/InformationNotificationController.java
index ed5f19b..296bbb2 100644
--- a/framework/src/main/java/com/yuanchu/mom/controller/InformationNotificationController.java
+++ b/framework/src/main/java/com/yuanchu/mom/controller/InformationNotificationController.java
@@ -32,14 +32,14 @@
     @Autowired
     private InformationNotificationService informationNotificationService;
 
-    @ApiOperation(value = "婊氬姩鍒嗛〉鏌ヨ")
+    @ApiOperation(value = "娑堟伅閫氱煡-婊氬姩鍒嗛〉鏌ヨ")
     @GetMapping("page")
     @ValueAuth
     public Result<?> getPage(Long size, Long current, String messageType) {
         return Result.success(informationNotificationService.getPage(new Page<>(current, size), messageType));
     }
 
-    @ApiOperation(value = "鏇存柊娑堟伅鐘舵�侊紙鎷掔粷銆佹帴鏀讹級")
+    @ApiOperation(value = "娑堟伅閫氱煡-鏇存柊娑堟伅鐘舵�侊紙鎷掔粷銆佹帴鏀讹級")
     @PutMapping("updateMessageStatus")
     @ValueAuth
     public Result<?> updateMessageStatus(@RequestBody InformationNotification informationNotification) {
@@ -47,7 +47,7 @@
         return Result.success();
     }
 
-    @ApiOperation(value = "鏍囪鎵�鏈変俊鎭负宸茶/鍒犻櫎鎵�鏈夊凡璇绘秷鎭�")
+    @ApiOperation(value = "娑堟伅閫氱煡-鏍囪鎵�鏈変俊鎭负宸茶/鍒犻櫎鎵�鏈夊凡璇绘秷鎭�")
     @PutMapping("informationReadOrDelete/{isMarkAllInformationRead}")
     @ValueAuth
     public Result<?> markAllInformationReadOrDeleteAllReadMessages(@PathVariable("isMarkAllInformationRead") Boolean isMarkAllInformationRead) {
@@ -55,7 +55,7 @@
         return Result.success();
     }
 
-    @ApiOperation(value = "鏍规嵁Id鍒犻櫎鏁版嵁")
+    @ApiOperation(value = "娑堟伅閫氱煡-鍒犻櫎鏁版嵁")
     @DeleteMapping("deleteDataBasedOnId")
     @ValueAuth
     public Result<?> deleteDataBasedOnId(Integer id) {
@@ -63,14 +63,14 @@
         return Result.success();
     }
 
-    @ApiOperation(value = "鏌ヨ鏄惁瀛樺湪鏈鏁版嵁")
+    @ApiOperation(value = "娑堟伅閫氱煡-鏌ヨ鏄惁瀛樺湪鏈鏁版嵁")
     @GetMapping("checkForUnreadData")
     @ValueAuth
     public Result<?> checkForUnreadData() {
         return Result.success(informationNotificationService.checkForUnreadData());
     }
 
-    @ApiOperation(value = "鐐瑰嚮璇︽儏瑙﹀彂淇敼鐘舵�佷负宸茶")
+    @ApiOperation(value = "娑堟伅閫氱煡-鐐瑰嚮璇︽儏瑙﹀彂淇敼鐘舵�佷负宸茶")
     @PutMapping("triggerModificationStatusToRead/{id}")
     @ValueAuth
     public Result<?> triggerModificationStatusToRead(@PathVariable("id") Integer id) {

--
Gitblit v1.9.3