Quellcode durchsuchen

4/22 修改查询架构相关专利数量

chendayu vor 2 Jahren
Ursprung
Commit
5ff1efd07c

+ 0 - 4
PAS/src/main/java/cn/cslg/pas/domain/Structure.java

@@ -43,10 +43,6 @@ public class Structure implements Serializable {
      */
     private Integer productId;
     /**
-     * 租户id
-     */
-    private Integer tenantId;
-    /**
      * 创建人id
      */
     private Integer createPersonId;

+ 14 - 8
PAS/src/main/java/cn/cslg/pas/mapper/StructureMapper.java

@@ -53,10 +53,9 @@ public interface StructureMapper extends BaseMapper<Structure> {
      * @param parentId      父级id
      * @param structureName 架构名称
      * @param structureId   架构id
-     * @param tenantId      租户id
      * @return 返回统计到的数量
      */
-    int countByparentIdAndStructureName(Integer parentId, String structureName, Integer structureId, Integer tenantId);
+    int countByparentIdAndStructureName(Integer parentId, String structureName, Integer structureId);
 
     /**
      * 根据id查询数据
@@ -80,10 +79,19 @@ public interface StructureMapper extends BaseMapper<Structure> {
      * @param parentId  父级id
      * @param productId 产品id
      * @param ids       架构ids(此为根据名称模糊查询架构树单一分支)
-     * @param tenantId  租户id
      * @return 返回查询到的数据
      */
-    List<StructureVO> selectByParentIdAndProductId(Integer parentId, Integer productId, List<Integer> ids, Integer tenantId);
+    List<StructureVO> selectByParentIdAndProductId(Integer parentId, Integer productId, List<Integer> ids);
+
+    /**
+     * 根据父级id和产品id查询数据
+     *
+     * @param parentId  父级id
+     * @param productId 产品id
+     * @param ids       架构ids(此为根据名称模糊查询架构树单一分支)
+     * @return 返回查询到的数据
+     */
+    List<StructureVO> selectTree(Integer parentId, Integer productId, List<Integer> ids);
 
     /**
      * 根据模糊路径查询数据
@@ -97,18 +105,16 @@ public interface StructureMapper extends BaseMapper<Structure> {
      * 根据产品id查询数据
      *
      * @param productId 产品id
-     * @param tenantId  租户id
      * @return 返回查询到的数据
      */
-    List<StructureVO> selectAllByProductId(Integer productId, Integer tenantId);
+    List<StructureVO> selectAllByProductId(Integer productId);
 
     /**
      * 根据架构id查询数据
      *
      * @param structureId 架构id
-     * @param tenantId    租户id
      * @return 返回查询到的数据
      */
-    List<StructureVO> selectAllByStructureId(Integer structureId, Integer tenantId);
+    List<StructureVO> selectAllByStructureId(Integer structureId);
 
 }

+ 24 - 32
PAS/src/main/java/cn/cslg/pas/service/impl/StructureServiceImpl.java

@@ -60,16 +60,11 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
     public void addNew(StructureAddNewDTO structureAddNewDTO, List<MultipartFile> files) {
         log.info("开始处理【新增架构】的业务,参数为:{}, {}", structureAddNewDTO, files);
 
-        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        Integer createPersonId = personnelVO.getId();
-        String createPersonName = personnelVO.getName();
-        Integer tenantId = personnelVO.getTenantId();
-
         Integer parentId = structureAddNewDTO.getParentId();
         String structureName = structureAddNewDTO.getStructureName();
         //检查名称是否被占用(检查当前架构父级下是否有同名架构)
         log.info("检查名称是否被占用(检查当前父级下是否有同名架构)");
-        int count = structureMapper.countByparentIdAndStructureName(parentId, structureName, null, tenantId);
+        int count = structureMapper.countByparentIdAndStructureName(parentId, structureName, null);
         if (count > 0) {
             String message = "新增架构失败,当前父级下已存在【" + structureName + "】,请尝试更换名称";
             log.info("{}", message);
@@ -80,10 +75,10 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
         Structure structure = new Structure();
         BeanUtils.copyProperties(structureAddNewDTO, structure);
 
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
         structure
-                .setCreatePersonId(createPersonId)
-                .setCreatePersonName(createPersonName)
-                .setTenantId(tenantId);
+                .setCreatePersonId(personnelVO.getId())
+                .setCreatePersonName(personnelVO.getName());
 
         //数据入架构表(此时数据暂不含路径path)
         log.info("数据入架构表");
@@ -146,9 +141,6 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
     public void update(StructureUpdateDTO structureUpdateDTO, List<MultipartFile> files) {
         log.info("开始处理【修改架构】的业务,参数为:{}, {}", structureUpdateDTO, files);
 
-        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        Integer tenantId = personnelVO.getTenantId();
-
         //检查尝试修改的数据是否存在
         Integer structureId = structureUpdateDTO.getId();
         log.info("检查尝试修改的数据是否存在");
@@ -170,7 +162,7 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
 
         //检查名称是否被占用(检查当前尝试修改的架构父级下是否有同名架构)
         log.info("检查名称是否被占用(检查当前尝试修改的架构的新父级下是否有同名架构)");
-        int count = structureMapper.countByparentIdAndStructureName(newParentId, newStructureName, structureId, tenantId);
+        int count = structureMapper.countByparentIdAndStructureName(newParentId, newStructureName, structureId);
         if (count > 0) {
             String message = "修改架构失败,当前尝试修改的架构父级下已存在【" + newStructureName + "】,请尝试更换名称";
             log.info("{}", message);
@@ -283,27 +275,27 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
     public StructureVO query(StructureQueryPageDTO structureQueryPageDTO) {
         log.info("开始处理【查询架构树】的业务,参数为:{}", structureQueryPageDTO);
 
-        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        Integer tenantId = personnelVO.getTenantId();
-
         //从DTO中取出产品id、架构id
         Integer productId = structureQueryPageDTO.getProductId();
         Integer structureId = structureQueryPageDTO.getStructureId();
         String structureName = structureQueryPageDTO.getStructureName();
 
         //查询出当前架构信息
-        StructureVO structureVO = null;
+        StructureVO structureVO;
         if (structureId == 0) {
             structureVO = new StructureVO();
         } else {
             structureVO = structureMapper.getStandardAndPictureById(structureId);
+            List<StructurePictureVO> pictures = assoStructurePictureMapper.selectByStructureId(structureId);
+            structureVO.setPictures(pictures);
         }
 
         //以下代码表示查询所有架构的路径和路径拼接成的架构名称并封装成map集合,从map集合中取值为后面给每一个架构的pathName中文路径赋值
-        HashMap<String, String> map = getStructureIdAndStructureNameMap(productId, tenantId);
+        HashMap<String, String> map = getStructureIdAndStructureNameMap(productId);
 
         //以下代码表示若架构名称structureName有值则要根据架构名称模糊查询树,若架构名称structureName为null则表示查询了所有架构(不受影响)
         LambdaQueryWrapper<Structure> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(Structure::getProductId, productId);
         if (structureName != null) {
             wrapper.like(Structure::getStructureName, structureName);
         }
@@ -325,9 +317,9 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
                 }
         );
         //若ids.size == 0,则表示根据名称模糊查询不到数据,则直接返回空structureVO
-        if (structureVO != null && ids.size() != 0) {
-            diGui(structureVO, map, structureId, productId, ids, tenantId);
-        }
+        //if (structureVO != null) {
+        diGui(structureVO, map, structureId, productId, ids);
+        //}
         return structureVO;
     }
 
@@ -341,22 +333,19 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
     public List<PathStructureNameVO> queryPathStructureName(QueryPathStructureNameDTO queryPathStructureNameDTO) {
         log.info("开始处理【查询所有架构路径和路径架构名称】的业务,参数为:{}", queryPathStructureNameDTO);
 
-        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        Integer tenantId = personnelVO.getTenantId();
-
         Integer productId = queryPathStructureNameDTO.getProductId();
         Integer structureId = queryPathStructureNameDTO.getStructureId();
 
         ArrayList<PathStructureNameVO> pathStructureNames = new ArrayList<>();
 
         log.info("根据产品id查询所有架构数据");
-        HashMap<String, String> map = getStructureIdAndStructureNameMap(productId, tenantId);
+        HashMap<String, String> map = getStructureIdAndStructureNameMap(productId);
         List<StructureVO> structures;
         //若有架构id则只查该架构底下的树,若没有架构id则查整棵产品的架构树
         if (structureId == null) {
-            structures = structureMapper.selectAllByProductId(productId, tenantId);
+            structures = structureMapper.selectAllByProductId(productId);
         } else {
-            structures = structureMapper.selectAllByStructureId(structureId, tenantId);
+            structures = structureMapper.selectAllByStructureId(structureId);
         }
         for (StructureVO structure : structures) {
             Integer id = structure.getId();
@@ -442,8 +431,9 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
     }
 
     //递归组装架构树集合
-    private void diGui(StructureVO structureVO, HashMap<String, String> map, Integer structureId, Integer productId, List<Integer> ids, Integer tenantId) {
-        List<StructureVO> structureVOs = structureMapper.selectByParentIdAndProductId(structureId, productId, ids, tenantId);
+    private void diGui(StructureVO structureVO, HashMap<String, String> map, Integer structureId, Integer productId, List<Integer> ids) {
+//        List<StructureVO> structureVOs = structureMapper.selectByParentIdAndProductId(structureId, productId, ids);
+        List<StructureVO> structureVOs = structureMapper.selectTree(structureId, productId, ids);
         if (structureVOs != null) {
             structureVO.setChildren(structureVOs);
             //给架构的路径名称pathName进行拼接赋值
@@ -459,13 +449,15 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
             }
             for (StructureVO n : structureVOs) {
                 structureId = n.getId();
-                diGui(n, map, structureId, productId, ids, tenantId);
+                List<StructurePictureVO> pictures = assoStructurePictureMapper.selectByStructureId(structureId);
+                n.setPictures(pictures);
+                diGui(n, map, structureId, productId, ids);
             }
         }
     }
 
-    private HashMap<String, String> getStructureIdAndStructureNameMap(Integer productId, Integer tenantId) {
-        List<StructureVO> structures = structureMapper.selectAllByProductId(productId, tenantId);
+    private HashMap<String, String> getStructureIdAndStructureNameMap(Integer productId) {
+        List<StructureVO> structures = structureMapper.selectAllByProductId(productId);
         //map存储所有架构id(key)和架构名称(value)
         HashMap<String, String> map = new HashMap<>();
         for (StructureVO structure : structures) {

+ 0 - 3
PAS/src/main/resources/mapper/ProductMapper.xml

@@ -136,9 +136,6 @@
             </otherwise>
         </choose>
     </select>
-    <!--            <if test="tenantId != null and tenantId != ''">-->
-    <!--                and p.create_person_id in (select id from PERSONNEL per where per.TENANT_ID = #{tenantId})-->
-    <!--            </if>-->
 
     <resultMap id="queryMap" type="cn.cslg.pas.common.model.vo.ProductVO">
         <id column="p_id" property="id"/>

+ 67 - 23
PAS/src/main/resources/mapper/StructureMapper.xml

@@ -63,7 +63,6 @@
         where
         parent_id = #{parentId}
         and structure_name = #{structureName}
-        and tenant_id = #{tenantId}
         <if test="structureId != null">
             and id != #{structureId}
         </if>
@@ -97,21 +96,35 @@
 
     <!--根据id查询数据和图片-->
     <!--StructureVO getStandAndPictureById(Integer id);-->
-    <select id="getStandardAndPictureById" resultMap="selectByParentIdMap">
-        select id s_id,
-               parent_id,
-               structure_name,
-               path,
-               remark,
-               product_id,
-               create_person_name,
-               create_time
-        from structure
-        where id = #{id}
+    <!--    <select id="getStandardAndPictureById" resultMap="selectByParentIdMap">-->
+    <!--        select id s_id,-->
+    <!--               parent_id,-->
+    <!--               structure_name,-->
+    <!--               path,-->
+    <!--               remark,-->
+    <!--               product_id,-->
+    <!--               create_person_name,-->
+    <!--               create_time-->
+    <!--        from structure-->
+    <!--        where id = #{id}-->
+    <!--    </select>-->
+    <select id="getStandardAndPictureById" resultMap="selectTreeMap">
+        select stru.id as stru_id,
+               stru.parent_id,
+               stru.structure_name,
+               stru.path,
+               stru.remark,
+               stru.product_id,
+               stru.create_person_name,
+               stru.create_time,
+               count(distinct struP.patent_no) as patent_num
+        from structure stru
+                 left join asso_structure_patent struP on find_in_set(stru.id, struP.path)
+        where stru.id = #{id}
     </select>
 
     <!--根据父级id和产品id查询数据-->
-    <!--List<StructureVO> selectByParentIdAndProductId(Integer parentId, Integer productId, List<Integer> ids, Integer tenantId);-->
+    <!--List<StructureVO> selectByParentIdAndProductId(Integer parentId, Integer productId, List<Integer> ids);-->
     <select id="selectByParentIdAndProductId" resultMap="selectByParentIdMap">
         select id s_id,
         parent_id,
@@ -130,7 +143,6 @@
                 #{item}
             </foreach>
         </if>
-        and tenant_id = #{tenantId}
         order by s_id
     </select>
 
@@ -170,17 +182,51 @@
         <result column="url" property="url"/>
     </resultMap>
 
-    <!--    <select id="selectByParentId3" resultType="integer">-->
-    <!--        select count(*)-->
-    <!--        from asso_structure_patent-->
-    <!--        where structure_id = #{s_id}-->
-    <!--    </select>-->
     <select id="selectByParentId3" resultType="integer">
         select count(*)
         from asso_structure_patent
         where structure_id in (select id from structure where find_in_set(#{s_id}, path))
     </select>
 
+    <!--根据父级id和产品id查询数据-->
+    <!--List<StructureVO> selectTree(Integer parentId, Integer productId, List<Integer> ids);-->
+    <select id="selectTree" resultMap="selectTreeMap">
+        select stru.id as stru_id,
+        stru.parent_id,
+        stru.structure_name,
+        stru.path,
+        stru.remark,
+        stru.product_id,
+        stru.create_person_name,
+        stru.create_time,
+        count(distinct struP.patent_no) as patent_num
+        from structure stru
+        left join asso_structure_patent struP on find_in_set(stru.id, struP.path)
+        where stru.parent_id = #{parentId}
+        and stru.product_id = #{productId}
+        <if test="ids != null">
+            and stru.id in (
+            <foreach collection="ids" item="item" separator=",">
+                #{item}
+            </foreach>
+            )
+        </if>
+        group by stru.id
+        order by stru.id
+    </select>
+
+    <resultMap id="selectTreeMap" type="cn.cslg.pas.common.model.vo.StructureVO">
+        <id column="stru_id" property="id"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="structure_name" property="structureName"/>
+        <result column="path" property="path"/>
+        <result column="remark" property="remark"/>
+        <result column="product_id" property="productId"/>
+        <result column="create_person_name" property="createPersonName"/>
+        <result column="create_time" property="createTime"/>
+        <result column="patent_num" property="patentNum"/>
+    </resultMap>
+
     <!--根据模糊路径查询数据-->
     <!--List<StructureVO> selectByFindInSetPath(String findInSetPath);-->
     <select id="selectByFindInSetPath" resultMap="selectByFindInSetPathMap">
@@ -206,7 +252,7 @@
 
 
     <!--根据产品id查询数据-->
-    <!--List<StructureVO> selectAllByProductId(Integer productId, Integer tenantId);-->
+    <!--List<StructureVO> selectAllByProductId(Integer productId);-->
     <select id="selectAllByProductId" resultMap="selectByFindInSetPathMap">
         select id,
                parent_id,
@@ -216,12 +262,11 @@
                product_id
         from structure
         where product_id = #{productId}
-          and tenant_id = #{tenantId}
         order by path
     </select>
 
     <!--根据架构id查询数据-->
-    <!--List<StructureVO> selectAllByStructureId(Integer structureId, Integer tenantId);-->
+    <!--List<StructureVO> selectAllByStructureId(Integer structureId);-->
     <select id="selectAllByStructureId" resultMap="selectByFindInSetPathMap">
         select id,
                parent_id,
@@ -231,7 +276,6 @@
                product_id
         from structure
         where find_in_set(#{structureId}, path)
-          and tenant_id = #{tenantId}
         order by path
     </select>