From 02dab566014a28bbcd6b2a2004a857562101e459 Mon Sep 17 00:00:00 2001
From: value <z1292839451@163.com>
Date: 星期五, 26 四月 2024 09:11:09 +0800
Subject: [PATCH] 检验项目绑定产品;检验对象绑定产品

---
 cnas-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java       |   59 +++++++++
 cnas-server/src/main/java/com/yuanchu/mom/dto/ProductDto.java                        |   11 +
 cnas-server/src/main/java/com/yuanchu/mom/pojo/StructureItemParameter.java           |   12 -
 cnas-server/src/main/resources/mapper/StructureItemParameterMapper.xml               |   14 ++
 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/CapacityScopeServiceImpl.java |   12 +
 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/CapacityScopeService.java          |    3 
 cnas-server/src/main/java/com/yuanchu/mom/pojo/Product.java                          |   61 ++++++++++
 cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java    |   41 ++++++
 cnas-server/src/main/java/com/yuanchu/mom/dto/TestItemDto.java                       |   16 ++
 cnas-server/src/main/java/com/yuanchu/mom/dto/PageTestObjectDto.java                 |    5 
 cnas-server/src/main/resources/mapper/StructureTestMapper.xml                        |    7 +
 cnas-server/src/main/java/com/yuanchu/mom/service/ProductService.java                |   24 ++++
 16 files changed, 304 insertions(+), 17 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..6e1b9ee 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;
@@ -28,6 +30,8 @@
 public class CapacityScopeController {
 
     private CapacityScopeService capacityScopeService;
+
+    private ProductService productService;
 
     @ApiOperation(value = "鑾峰彇椤圭洰妫�楠屽弬鏁板垪琛�")
     @PostMapping("/selectItemParameterList")
@@ -93,5 +97,42 @@
     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/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/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/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/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/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/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}

--
Gitblit v1.9.3