Browse Source

试验-规范管理-关联元素 查询结构重新设计

LHB 4 months ago
parent
commit
604b06a59c

+ 20 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/StandardElementVo.java

@@ -0,0 +1,20 @@
+package org.springblade.business.vo;
+
+import lombok.Data;
+
+
+/**
+ * @author LHB
+ */
+@Data
+public class StandardElementVo {
+    /**
+     * key
+     */
+    private String colKey;
+    /**
+     * name
+     */
+    private String colName;
+
+}

+ 6 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/StandardInfoGroupNameVO.java

@@ -10,6 +10,12 @@ import java.util.List;
  */
 @Data
 public class StandardInfoGroupNameVO {
+    /**
+     * 名称
+     */
     private String name;
+    /**
+     * ids
+     */
     private List<Long> ids;
 }

+ 38 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/StandardInfoPrivateJoinGroupVO.java

@@ -0,0 +1,38 @@
+package org.springblade.business.vo;
+
+import lombok.Data;
+import org.springblade.business.entity.StandardInfoPrivateJoin;
+
+import java.util.List;
+
+/**
+ * 项目组
+ * @author LHB
+ */
+@Data
+public class StandardInfoPrivateJoinGroupVO {
+    /**
+     * leftId
+     */
+    private Long standardInfoId;
+    /**
+     * 项目id
+     */
+    private Long privateId;
+
+    /**
+     * 项目名称
+     */
+    private String privateName;
+
+    /**
+     * 元素名称
+     */
+    private String elementNames;
+
+    /**
+     * 元素key集合
+     */
+    private List<StandardElementVo> keys;
+
+}

+ 5 - 3
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/StandardInfoPrivateJoinVO.java

@@ -16,7 +16,9 @@ import java.util.List;
 @Data
 @ApiModel(description = "关联元素对象-视图")
 public class StandardInfoPrivateJoinVO extends StandardInfo {
-
-    @ApiModelProperty(value = "关联元素副元素集合")
-    private List<StandardInfoPrivateJoin> privateJoins;
+    /**
+     * 项目组集合
+     */
+    @ApiModelProperty(value = "项目组集合")
+    private List<StandardInfoPrivateJoinGroupVO> group;
 }

+ 2 - 2
blade-service/blade-business/src/main/java/org/springblade/business/controller/StandardInfoController.java

@@ -177,8 +177,8 @@ public class StandardInfoController {
     @ApiOperation(value = "查询关联元素")
     @ApiImplicitParam(name = "id", value = "规范文件id", required = true)
     @GetMapping("getElementJoin")
-    public R<List<StandardInfoPrivateJoinVO>> getElementJoin(Long id) {
-        List<StandardInfoPrivateJoinVO> list = this.uStandardInfoService.getElementJoin(id);
+    public R<List<StandardInfoPrivateJoinVO>> getElementJoin(Long id,Long leftId) {
+        List<StandardInfoPrivateJoinVO> list = this.uStandardInfoService.getElementJoin(id,leftId);
         return R.data(list);
     }
 

+ 2 - 1
blade-service/blade-business/src/main/java/org/springblade/business/mapper/StandardInfoMapper.java

@@ -27,7 +27,8 @@ public interface StandardInfoMapper extends BaseMapper<StandardInfo> {
     List<StandardInfoVO> getConditionSet(@Param("id") Long id,
                                          @Param("leftId") Long leftId);
 
-    List<StandardInfoPrivateJoinVO> getElementJoin(@Param("id") Long id);
+    List<StandardInfoPrivateJoinVO> getElementJoin(@Param("id") Long id,
+                                                   @Param("leftId") Long leftId);
 
     List<StandardInfoPrivateJoinVO> effectPreview(@Param("rightIds") List<Long> rightIds);
 }

+ 45 - 5
blade-service/blade-business/src/main/java/org/springblade/business/mapper/StandardInfoMapper.xml

@@ -171,7 +171,7 @@
         <result property="name" column="name"/>
         <result property="parentId" column="parent_id"/>
         <result property="type" column="type"/>
-        <collection property="privateJoins" ofType="org.springblade.business.entity.StandardInfoPrivateJoin" select="findByPrivateJoinLeftId" column="{leftId=id}">
+        <collection property="group" ofType="org.springblade.business.vo.StandardInfoPrivateJoinGroupVO" select="findByPrivateJoinLeftId" column="{leftId=id}">
         </collection>
     </resultMap>
 
@@ -194,22 +194,62 @@
             u_standard_info a
             INNER JOIN u_standard_info_private_join b on a.id = b.standard_info_id and a.is_deleted = b.is_deleted
         where
-            a.standard_id = #{id} and a.is_deleted = 0
+            a.is_deleted = 0
+            <if test="id != null">
+                and  a.standard_id = #{id}
+            </if>
+            <if test="leftId != null">
+                and  b.standard_info_id = #{leftId}
+            </if>
         GROUP BY
             b.standard_info_id
     </select>
 
-    <select id="findByPrivateJoinLeftId" resultType="org.springblade.business.entity.StandardInfoPrivateJoin">
+
+    <resultMap id="BaseResultElementGroupPrivate" type="org.springblade.business.vo.StandardInfoPrivateJoinGroupVO">
+        <result property="standardInfoId" column="standard_info_id"/>
+        <result property="privateId" column="private_id"/>
+        <result property="privateName" column="privateName"/>
+        <result property="elementNames" column="elementNames"/>
+        <collection property="keys" ofType="org.springblade.business.vo.StandardElementVo" select="findByPrivateGroupJoinLeftId" column="{standardInfoId=standard_info_id,privateId=private_id}">
+        </collection>
+    </resultMap>
+    <select id="findByPrivateJoinLeftId" resultMap="BaseResultElementGroupPrivate">
         SELECT
-            <include refid="Base_Private_Column_List"/>,
-            b.node_name privateName
+            a.standard_info_id,
+            a.private_id,
+            b.node_name privateName,
+            GROUP_CONCAT(col_name SEPARATOR ',') elementNames
         FROM
             u_standard_info_private_join a
             INNER JOIN m_wbs_tree_private b ON a.private_id = b.p_key_id AND a.is_deleted = b.is_deleted
         WHERE
             a.standard_info_id = #{leftId}
           AND a.is_deleted = 0
+        GROUP BY
+            a.private_id
     </select>
+
+    <select id="findByPrivateGroupJoinLeftId" resultType="org.springblade.business.vo.StandardElementVo">
+        SELECT
+            col_key,col_name
+        FROM
+        u_standard_info_private_join a
+        INNER JOIN m_wbs_tree_private b ON a.private_id = b.p_key_id AND a.is_deleted = b.is_deleted
+        WHERE
+        a.standard_info_id = #{standardInfoId} and a.private_id = #{privateId}
+        AND a.is_deleted = 0
+    </select>
+
+
+
+
+
+    <!-- ``````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````` -->
+
+
+
+
     <select id="effectPreview" resultMap="BaseResultElementJoin">
         SELECT
             a.*

+ 3 - 5
blade-service/blade-business/src/main/java/org/springblade/business/service/StandardInfoService.java

@@ -1,12 +1,10 @@
 package org.springblade.business.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import org.springblade.business.dto.StandardInfoJoinDTO;
-import org.springblade.business.dto.StandardInfoPrivateJoinDTO;
+import com.baomidou.mybatisplus.extension.service.IService;
 import org.springblade.business.dto.StandardInfoDTO;
+import org.springblade.business.dto.StandardInfoPrivateJoinDTO;
 import org.springblade.business.entity.StandardInfo;
-import com.baomidou.mybatisplus.extension.service.IService;
-import org.springblade.business.vo.StandardInfoDtoVo;
 import org.springblade.business.vo.StandardInfoPrivateJoinVO;
 import org.springblade.business.vo.StandardInfoVO;
 import org.springblade.core.mp.support.Query;
@@ -40,7 +38,7 @@ public interface StandardInfoService extends IService<StandardInfo> {
 
     List<StandardInfoVO> getConditionSet(Long id, Long leftId);
 
-    List<StandardInfoPrivateJoinVO> getElementJoin(Long id);
+    List<StandardInfoPrivateJoinVO> getElementJoin(Long id, Long leftId);
 
     List<StandardInfoPrivateJoinVO> effectPreview(String ids);
 

+ 2 - 2
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/UStandardInfoServiceImpl.java

@@ -285,8 +285,8 @@ public class UStandardInfoServiceImpl extends ServiceImpl<StandardInfoMapper, St
     }
 
     @Override
-    public List<StandardInfoPrivateJoinVO> getElementJoin(Long id) {
-        return baseMapper.getElementJoin(id);
+    public List<StandardInfoPrivateJoinVO> getElementJoin(Long id, Long leftId) {
+        return baseMapper.getElementJoin(id, leftId);
 
     }