lwhhszx 1 سال پیش
والد
کامیت
ba26332c69

+ 43 - 0
src/main/java/cn/cslg/pas/common/dto/CopyTreeNodeDTO.java

@@ -0,0 +1,43 @@
+package cn.cslg.pas.common.dto;
+
+
+
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 复制节点表
+ * </p>
+ *
+ * @author 李仁杰
+ * @since 2023-11-8
+ */
+@Data
+
+public class CopyTreeNodeDTO {
+
+    private Integer fromType;
+
+
+
+    private Integer fromTypeId;
+
+
+    private List<Integer> fromNodeIds;
+
+
+
+    private Integer toType;
+
+    private Integer toTypeId;
+
+
+    private Boolean ifDelete;
+
+    private Boolean ifCopyChild;
+
+}

+ 6 - 4
src/main/java/cn/cslg/pas/controller/CommonController.java

@@ -94,13 +94,15 @@ public class CommonController {
     }
     @GetMapping("/scenario")
     @Operation(summary = "查询应用场景")
-    public List<ScenarioVO> queryAllScenario(){
-        return scenarioService.queryAll();
+    public Response queryAllScenario(){
+        Records records =new Records();
+        records.setData(scenarioService.queryAll());
+        return Response.success(records);
     }
 
-    @GetMapping("/matter")
+    @PostMapping("/matter")
     @Operation(summary = "查询处理事项")
-    public List<Integer> queryMatter(List<Integer> scenarioIds){
+    public List<Integer> queryMatter(@RequestBody List<Integer> scenarioIds){
         return assoScenarioMatterService.queryMatterIds(scenarioIds);
     }
 }

+ 1 - 1
src/main/java/cn/cslg/pas/mapper/TreeNodeMapper.java

@@ -18,7 +18,7 @@ import java.util.List;
 @Repository
 public interface TreeNodeMapper extends BaseMapper<TreeNode> {
     List<TreeNodeVO> getTreeNode(@Param("queryTreeNodeDTO")QueryTreeNodeDTO queryTreeNodeDTO);
-    List<TreeNodeVO> getTreeNodeByIds(List<Integer> ids);
+    List<TreeNodeVO> getTreeNodeByIds(List<Integer> ids,Boolean ifCopyChild);
     List<TreeNodeVO> getTreeNodes(String sql1,String sql2,String sql3);
     public Long getTreeNodeCount(String sql);
 }

+ 0 - 14
src/main/java/cn/cslg/pas/service/business/ImportTaskConditionService.java

@@ -1,14 +0,0 @@
-package cn.cslg.pas.service.business;
-
-import cn.cslg.pas.domain.business.ImportTaskCondition;
-import cn.cslg.pas.mapper.ImportTaskConditionMapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * @Author xiexiang
- * @Date 2023/11/7
- */
-@Service
-public class ImportTaskConditionService {
-}

+ 0 - 11
src/main/java/cn/cslg/pas/service/business/ImportTaskService.java

@@ -1,11 +0,0 @@
-package cn.cslg.pas.service.business;
-
-import org.springframework.stereotype.Service;
-
-/**
- * @Author xiexiang
- * @Date 2023/11/7
- */
-@Service
-public class ImportTaskService {
-}

+ 69 - 68
src/main/java/cn/cslg/pas/service/business/TreeNodeService.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.service.business;
 
+import cn.cslg.pas.common.dto.CopyTreeNodeDTO;
 import cn.cslg.pas.common.dto.business.QueryAllTreePathDTO;
 import cn.cslg.pas.common.dto.business.QueryTreeNodeDTO;
 import cn.cslg.pas.common.dto.business.TreeNodeDTO;
@@ -135,7 +136,7 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
                 });
 
                 //返回树
-                List<TreeNodeVO> treeNodeVOS = treeNodeMapper.getTreeNodeByIds(ids);
+                List<TreeNodeVO> treeNodeVOS = treeNodeMapper.getTreeNodeByIds(ids,false);
                 this.loadTreeNode(treeNodeVOS);
                 reTreeNodeVOS = this.reTrees(treeNodeVOS);
                 records.setData(reTreeNodeVOS);
@@ -506,75 +507,75 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
 
     //复制节点
     @Transactional(rollbackFor = Exception.class)
-    public void copy(Integer copiedId, Integer toId, Integer type, Integer typeId) {
+    public void copy(CopyTreeNodeDTO copyTreeNodeDTO) {
 
 //根据id查出树
-        QueryTreeNodeDTO queryTreeNodeDTO1 = new QueryTreeNodeDTO();
-        queryTreeNodeDTO1.setId(copiedId);
-        List<TreeNodeVO> copiedTreeNodeVOs = treeNodeMapper.getTreeNode(queryTreeNodeDTO1);
-        List<ReTreeNodeVO> copiedReTreeNodeVOs = this.reTrees(copiedTreeNodeVOs);
-        Integer level = 0;
-
-        //根据copyId 查询节点
-        if (toId != null) {
-            TreeNode treeNode = this.getById(toId);
-            level = treeNode.getLevel();
-            for (ReTreeNodeVO item : copiedReTreeNodeVOs) {
-                item.setParentId(toId);
-                item.setPath(treeNode.getPath() + "/" + treeNode.getId());
-                item.setLevel(level);
-                item.setType(treeNode.getType());
-                item.setTypeId(treeNode.getTypeId());
-            }
-        } else {
-            for (ReTreeNodeVO item : copiedReTreeNodeVOs) {
-                item.setParentId(0);
-                item.setPath("");
-                item.setLevel(level);
-                item.setType(type);
-                item.setTypeId(typeId);
-            }
-
-        }
-
-        List<TreeNodeVO> toTreeNodeVOs = new ArrayList<>();
-        if (toId != null) {
-            QueryTreeNodeDTO queryTreeNodeDTO2 = new QueryTreeNodeDTO();
-            queryTreeNodeDTO2.setId(toId);
-            toTreeNodeVOs = treeNodeMapper.getTreeNode(queryTreeNodeDTO2);
-        }
-        while (copiedReTreeNodeVOs.size() != 0) {
-            List<ReTreeNodeVO> reTreeNodeVOS = new ArrayList<>();
-            for (ReTreeNodeVO reTreeNodeVO : copiedReTreeNodeVOs) {
-                //根据父id查找子节点
-                TreeNodeVO treeNodeVO = toTreeNodeVOs.stream().filter(item -> item.getParentId().equals(reTreeNodeVO.getParentId()) && reTreeNodeVO.getName().equals(reTreeNodeVO.getName())).findFirst().orElse(null);
-
-                //当有相同节点时
-                if (treeNodeVO != null) {
-                    BeanUtils.copyProperties(treeNodeVO, reTreeNodeVO);
-
-                } else {
-                    TreeNode treeNode1 = new TreeNode();
-                    BeanUtils.copyProperties(reTreeNodeVO, treeNode1);
-                    treeNode1.setId(null);
-                    treeNode1.insert();
-                    reTreeNodeVO.setId(treeNode1.getId());
-                }
-//TODO复制相关专利
-                List<ReTreeNodeVO> childNodes = reTreeNodeVO.getChild();
-                if (childNodes != null && childNodes.size() > 0) {
-                    childNodes.forEach(item -> {
-                        item.setParentId(reTreeNodeVO.getId());
-                        item.setPath(reTreeNodeVO.getPath() + "/" + reTreeNodeVO.getId());
-                        item.setTypeId(reTreeNodeVO.getTypeId());
-                        item.setType(reTreeNodeVO.getType());
-                    });
-                    reTreeNodeVOS.addAll(childNodes);
-
-                }
-            }
-            copiedReTreeNodeVOs = reTreeNodeVOS;
-        }
+//        QueryTreeNodeDTO queryTreeNodeDTO1 = new QueryTreeNodeDTO();
+//        queryTreeNodeDTO1.setId(copiedId);
+//        List<TreeNodeVO> copiedTreeNodeVOs = treeNodeMapper.getTreeNode(List<Integer> ids,);
+//        List<ReTreeNodeVO> copiedReTreeNodeVOs = this.reTrees(copiedTreeNodeVOs);
+//        Integer level = 0;
+//
+//        //根据copyId 查询节点
+//        if (toId != null) {
+//            TreeNode treeNode = this.getById(toId);
+//            level = treeNode.getLevel();
+//            for (ReTreeNodeVO item : copiedReTreeNodeVOs) {
+//                item.setParentId(toId);
+//                item.setPath(treeNode.getPath() + "/" + treeNode.getId());
+//                item.setLevel(level);
+//                item.setType(treeNode.getType());
+//                item.setTypeId(treeNode.getTypeId());
+//            }
+//        } else {
+//            for (ReTreeNodeVO item : copiedReTreeNodeVOs) {
+//                item.setParentId(0);
+//                item.setPath("");
+//                item.setLevel(level);
+//                item.setType(type);
+//                item.setTypeId(typeId);
+//            }
+//
+//        }
+//
+//        List<TreeNodeVO> toTreeNodeVOs = new ArrayList<>();
+//        if (toId != null) {
+//            QueryTreeNodeDTO queryTreeNodeDTO2 = new QueryTreeNodeDTO();
+//            queryTreeNodeDTO2.setId(toId);
+//            toTreeNodeVOs = treeNodeMapper.getTreeNode(queryTreeNodeDTO2);
+//        }
+//        while (copiedReTreeNodeVOs.size() != 0) {
+//            List<ReTreeNodeVO> reTreeNodeVOS = new ArrayList<>();
+//            for (ReTreeNodeVO reTreeNodeVO : copiedReTreeNodeVOs) {
+//                //根据父id查找子节点
+//                TreeNodeVO treeNodeVO = toTreeNodeVOs.stream().filter(item -> item.getParentId().equals(reTreeNodeVO.getParentId()) && reTreeNodeVO.getName().equals(reTreeNodeVO.getName())).findFirst().orElse(null);
+//
+//                //当有相同节点时
+//                if (treeNodeVO != null) {
+//                    BeanUtils.copyProperties(treeNodeVO, reTreeNodeVO);
+//
+//                } else {
+//                    TreeNode treeNode1 = new TreeNode();
+//                    BeanUtils.copyProperties(reTreeNodeVO, treeNode1);
+//                    treeNode1.setId(null);
+//                    treeNode1.insert();
+//                    reTreeNodeVO.setId(treeNode1.getId());
+//                }
+////TODO复制相关专利
+//                List<ReTreeNodeVO> childNodes = reTreeNodeVO.getChild();
+//                if (childNodes != null && childNodes.size() > 0) {
+//                    childNodes.forEach(item -> {
+//                        item.setParentId(reTreeNodeVO.getId());
+//                        item.setPath(reTreeNodeVO.getPath() + "/" + reTreeNodeVO.getId());
+//                        item.setTypeId(reTreeNodeVO.getTypeId());
+//                        item.setType(reTreeNodeVO.getType());
+//                    });
+//                    reTreeNodeVOS.addAll(childNodes);
+//
+//                }
+//            }
+//            copiedReTreeNodeVOs = reTreeNodeVOS;
+//        }
     }
 
     public void loadPath(List<TreeNodeVO> treeNodeVOS) {

+ 47 - 7
src/main/java/cn/cslg/pas/service/business/es/EsService.java

@@ -3,14 +3,19 @@ package cn.cslg.pas.service.business.es;
 import cn.cslg.pas.domain.School;
 import cn.cslg.pas.domain.es.Patent;
 import co.elastic.clients.elasticsearch.ElasticsearchClient;
+import co.elastic.clients.elasticsearch._types.SortOrder;
+import co.elastic.clients.elasticsearch._types.query_dsl.BoolQuery;
 import co.elastic.clients.elasticsearch.core.IndexResponse;
+import co.elastic.clients.elasticsearch.core.SearchRequest;
 import co.elastic.clients.elasticsearch.core.SearchResponse;
 import co.elastic.clients.elasticsearch.core.search.Hit;
 import co.elastic.clients.elasticsearch.core.search.TotalHits;
+import com.github.pagehelper.util.StringUtil;
 import lombok.RequiredArgsConstructor;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -36,14 +41,14 @@ public class EsService {
 
 
     /**
-     * 根据专利号获取专利
+     * 根据专利号获取专利id
      *
      * @param patentNo
      * @return
      * @throws Exception
      */
     public String getIdByPatentNo(String patentNo) throws Exception {
-      String id = null;
+        String id = null;
 
         SearchResponse<Patent> response = client.search(
                 s -> s.index("patent")
@@ -52,17 +57,52 @@ public class EsService {
                                         t -> t.field("patent_no")
                                                 .query(patentNo)
                                 )
-
                         )
-                ,
-                Patent.class
+                ,Patent.class
 
         );
-        TotalHits total = response.hits().total();
         List<Hit<Patent>> hits = response.hits().hits();
-        if(hits!=null&&hits.size()>0){  id= hits.get(0).id();}
+        if (hits != null && hits.size() > 0) {
+            id = hits.get(0).id();
+        }
         return id;
     }
 
 
+    public List<Patent> search(String key,Integer page,Integer limit) throws IOException {
+        SearchRequest.Builder builder = new SearchRequest.Builder();
+        //设置查询索引
+        builder.index("patent");
+        //组装查询条件
+        BoolQuery.Builder boolQuery = new BoolQuery.Builder();
+
+            boolQuery.should(q -> q.matchPhrasePrefix(m -> m
+                    .query(key)
+                    //字段名
+                    .field("title")
+            ));
+            //多字段匹配
+            boolQuery.should(q->q.matchPhrasePrefix(m->m.query(key).field("content")));
+
+
+        builder.query(q -> q.bool(boolQuery.build()));
+        //分页
+        if(page!=null && limit!=null){
+            builder.from(page).size(limit);
+        }
+        //排序
+        builder.sort(sortOptionsBuilder -> sortOptionsBuilder
+                .field(fieldSortBuilder -> fieldSortBuilder
+                        .field("createTime").order(SortOrder.Desc)));
+        SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
+        List<Patent> list = new ArrayList<>();
+        List<Hit<Patent>> hits = response.hits().hits();
+        for (Hit<Patent> hit : hits) {
+            Patent esMess = hit.source();
+            list.add(esMess);
+        }
+
+        return list;
+    }
+
 }

+ 0 - 15
src/main/java/cn/cslg/pas/service/query/FormatQueryService.java

@@ -205,21 +205,6 @@ public class FormatQueryService {
         return strCode;
     }
 
-    /**
-     * 格式化分组
-     *
-     * @param groupBy
-     * @return
-     */
-    public String groupToString(String groupBy) {
-        String json = CommonService.readJsonFile("event.json");
-        List<GroupConfig> groupConfigs = JSON.parseArray(json, GroupConfig.class);
-        GroupConfig groupConfig = groupConfigs.stream().filter(item -> item.getField().equals(groupBy)).findFirst().orElse(null);
-        if (groupConfig != null) {
-            return " group by " + groupConfig.getSqlField() + " ";
-        }
-        return "";
-    }
 
     /**
      * 返回sql列表

+ 30 - 22
src/main/resources/mapper/TreeNodeMapper.xml

@@ -6,40 +6,46 @@
         select *
         from tree_node as tree
         <where>
-        <if test="queryTreeNodeDTO.type!=null">
-            tree.type=#{queryTreeNodeDTO.type}
-        </if>
-        <if  test="queryTreeNodeDTO.typeId!=null">
-            and tree.type_id=#{queryTreeNodeDTO.typeId}
-        </if>
-<if test="queryTreeNodeDTO.id!=null">
-    and (tree.id=#{queryTreeNodeDTO.id} or  FIND_IN_SET(#{queryTreeNodeDTO.id},REPLACE(tree.path,'/',',')))
-</if>
-        <if test="queryTreeNodeDTO.name!=null">
-            and tree.name like   concat('%', #{queryTreeNodeDTO.name}, '%')
-        </if>
+            <if test="queryTreeNodeDTO.type!=null">
+                tree.type=#{queryTreeNodeDTO.type}
+            </if>
+            <if test="queryTreeNodeDTO.typeId!=null">
+                and tree.type_id=#{queryTreeNodeDTO.typeId}
+            </if>
+            <if test="queryTreeNodeDTO.id!=null">
+                and (tree.id=#{queryTreeNodeDTO.id} or FIND_IN_SET(#{queryTreeNodeDTO.id},REPLACE(tree.path,'/',',')))
+            </if>
+            <if test="queryTreeNodeDTO.name!=null">
+                and tree.name like concat('%', #{queryTreeNodeDTO.name}, '%')
+            </if>
 
         </where>
     </select>
 
 
-
     <select id="getTreeNodeByIds" resultType="cn.cslg.pas.common.vo.business.TreeNodeVO">
         select *
-        from tree_node as tree where id in
-        <foreach collection="ids" item="id" index="index" open="(" close=")" separator=",">
-            #{id}
-        </foreach>
-
+        from tree_node as tree
+        <where>
+            <foreach collection="ids" item="id" index="index" open="(" close=")" separator=" or ">
+                (id= #{id}
+                <if test="ifCopyChild==true">
+                    or FIND_IN_SET(#{id},REPLACE(tree.path,'/',','))
+
+                </if>
+                )
+            </foreach>
+        </where>
     </select>
 
 
-    <select id="getTreeNodes"  resultType="cn.cslg.pas.common.vo.business.TreeNodeVO">
-        select id,name,description,path,level ,create_id as createId,create_time as createTime,parent_id as parentId from tree_node
+    <select id="getTreeNodes" resultType="cn.cslg.pas.common.vo.business.TreeNodeVO">
+        select id,name,description,path,level ,create_id as createId,create_time as createTime,parent_id as parentId
+        from tree_node
 
         <if test="sql1!=''">
 
-            where    ${sql1}
+            where ${sql1}
         </if>
 
         ${sql2} ${sql3}
@@ -48,7 +54,9 @@
     <select id="getTreeNodeCount" resultType="java.lang.Long">
         select count(*) from tree_node
         <if test="sql!=''">
-            where    ${sql}
+            where ${sql}
         </if>
     </select>
+
+
 </mapper>

+ 2 - 1
src/test/java/cn/cslg/pas/service/CommonServiceTests.java

@@ -3,6 +3,7 @@ package cn.cslg.pas.service;
 import cn.cslg.pas.common.model.common.QueryCondition;
 import cn.cslg.pas.common.model.request.QueryRequest;
 import cn.cslg.pas.common.model.request.StringRequest;
+import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.common.vo.business.ScenarioVO;
 import cn.cslg.pas.controller.CommonController;
 import cn.cslg.pas.controller.EventController;
@@ -43,7 +44,7 @@ public class CommonServiceTests {
 
     @Test
     void getScenarios(){
-        List<ScenarioVO> scenarioVOS = commonController.queryAllScenario();
+        Response scenarioVOS = commonController.queryAllScenario();
         System.out.println(scenarioVOS);
     }
 

+ 3 - 3
src/test/java/cn/cslg/pas/service/TreeNodeServiceTests.java

@@ -31,13 +31,13 @@ public class TreeNodeServiceTests {
         queryTreeNodeDTO.setType(1);
         queryTreeNodeDTO.setTypeId(2);
         queryTreeNodeDTO.setName("名称10");
-//        List<ReTreeNodeVO> reTreeNodeVOS = treeNodeService.queryMessage(queryTreeNodeDTO);
-//        System.out.println(reTreeNodeVOS);
+        Records reTreeNodeVOS = treeNodeService.queryMessage(queryTreeNodeDTO);
+        System.out.println(reTreeNodeVOS);
     }
 
     @Test
     void testCopy() throws Exception {
-        treeNodeService.copy(2, null, 1, 4);
+//        treeNodeService.copy(2, null, 1, 4);
     }
 
     @Test