1
0
Просмотр исходного кода

增加报批集成获取方法

chenendian 3 месяцев назад
Родитель
Сommit
7f9c09a890

+ 19 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/controller/YdbpDataController.java

@@ -2,6 +2,7 @@ package com.siwei.apply.controller;
 
 import com.siwei.apply.domain.NodeLand;
 import com.siwei.apply.domain.YdbpData;
+import com.siwei.apply.domain.res.YdbpDataRes;
 import com.siwei.apply.domain.vo.*;
 import com.siwei.apply.service.NodeLandService;
 import com.siwei.apply.service.YdbpDataService;
@@ -62,6 +63,24 @@ public class YdbpDataController {
         }
     }
 
+    /**
+     * 获取数据详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/getRes")
+    public R<YdbpDataRes> getRestById(@RequestParam String id,@RequestParam String projectId ) {
+        try {
+            YdbpDataRes data = ydbpDataService.getRestById(id,projectId);
+            return R.ok(data);
+        } catch (Exception e) {
+            return R.fail(e.getMessage());
+        }
+    }
+
+
+
     /**
      * 获取数据列表
      *

+ 19 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/domain/SearchProjectAndAttachment.java

@@ -0,0 +1,19 @@
+package com.siwei.apply.domain;
+
+import lombok.Data;
+
+
+/**
+ * 项目检索对象 t_project
+ *
+ * @author chened
+ * @date 2025-11-13
+ */
+@Data
+public class SearchProjectAndAttachment extends Project {
+    private String selectType;
+    private String attachmentId;
+    private String nodeId;
+    private String fileName;
+    private String filePath;
+}

+ 1 - 1
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/domain/vo/ProjectFilterVo.java

@@ -22,7 +22,7 @@ public class ProjectFilterVo {
 
     private Boolean isOnchain;
 
-    private Integer filterType;
+    private Boolean haveKeyWord;
 
     private List<String> keyWords;
 

+ 1 - 2
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/mapper/ProjectMapper.java

@@ -2,7 +2,6 @@ package com.siwei.apply.mapper;
 
 import com.siwei.apply.domain.Project;
 import com.siwei.apply.domain.SearchProject;
-import com.siwei.apply.domain.SearchProjectAndAttachment;
 import com.siwei.apply.domain.res.ProjectNumRes;
 import com.siwei.apply.domain.vo.ProjectFilterVo;
 import com.siwei.apply.domain.vo.ProjectUpdateVo;
@@ -67,7 +66,7 @@ public interface ProjectMapper {
     /**
      * 获取检索的项目列表
      */
-    List<SearchProjectAndAttachment> getListSearch(ProjectFilterVo projectFilterVo);
+    List<SearchProject> getListSearch(ProjectFilterVo projectFilterVo);
 
     Integer getSearchCount(ProjectFilterVo projectFilterVo);
 

+ 4 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/YdbpDataService.java

@@ -1,6 +1,7 @@
 package com.siwei.apply.service;
 
 import com.siwei.apply.domain.YdbpData;
+import com.siwei.apply.domain.res.YdbpDataRes;
 import com.siwei.apply.domain.vo.YdbpDataFilterVo;
 import com.siwei.apply.domain.vo.YdbpDataUpdateVo;
 import com.siwei.apply.domain.vo.YdbpDataVo;
@@ -15,6 +16,9 @@ public interface YdbpDataService {
 
     YdbpData getById(String id);
 
+    YdbpDataRes getRestById(String id,String projectId);
+
+
     Map<String, Object> getList(YdbpDataFilterVo filterVo);
 
     void update(YdbpDataUpdateVo ydbpDataVo);

+ 4 - 4
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/impl/ProjectImpl.java

@@ -284,15 +284,15 @@ public class ProjectImpl implements ProjectService {
 
     @Override
     public Map<String, Object> getListSearch(ProjectFilterVo projectFilterVo) {
-        if(Objects.isNull(projectFilterVo.getFilterType())){
-            projectFilterVo.setFilterType(0);
-        }
+        projectFilterVo.setHaveKeyWord(false);
         if(StringUtils.isNotBlank(projectFilterVo.getKeyWord())){
             List<String> keyWords = List.of(projectFilterVo.getKeyWord().trim().split("\\s+"));
             projectFilterVo.setKeyWords(keyWords);
+            projectFilterVo.setHaveKeyWord(true);
         }
+
         //todo 这里后期可以进行优化,把查询出的项目id写入redis中,分页时候可以取缓存
-        List<SearchProjectAndAttachment> projects = projectMapper.getListSearch(projectFilterVo);
+        List<SearchProject> projects = projectMapper.getListSearch(projectFilterVo);
         Integer count = projectMapper.getSearchCount(projectFilterVo);
         //根据项目id查询所有流程id
         List<String> projectIdList = projects.stream().map(BaseId::getId).collect(Collectors.toList());

+ 30 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/impl/YdbpDataImpl.java

@@ -1,10 +1,15 @@
 package com.siwei.apply.service.impl;
 
+import com.siwei.apply.domain.Project;
+import com.siwei.apply.domain.Tjyydhx;
 import com.siwei.apply.domain.YdbpData;
+import com.siwei.apply.domain.res.TjyydhxRes;
+import com.siwei.apply.domain.res.YdbpDataRes;
 import com.siwei.apply.domain.vo.YdbpDataFilterVo;
 import com.siwei.apply.domain.vo.YdbpDataUpdateVo;
 import com.siwei.apply.domain.vo.YdbpDataVo;
 import com.siwei.apply.domain.vo.YdbpExcelVo;
+import com.siwei.apply.mapper.ProjectMapper;
 import com.siwei.apply.mapper.YdbpDataMapper;
 import com.siwei.apply.service.YdbpDataService;
 import org.apache.commons.collections4.MapUtils;
@@ -16,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 import static com.siwei.apply.common.Common.UserId;
 
@@ -24,6 +30,12 @@ public class YdbpDataImpl implements YdbpDataService {
     @Autowired
     private YdbpDataMapper ydbpDataMapper;
 
+    @Autowired
+    private ProjectMapper projectMapper;
+
+
+
+
     @Override
     public String add(YdbpDataVo ydbpDataVo) {
         YdbpData entity = new YdbpData();
@@ -40,6 +52,24 @@ public class YdbpDataImpl implements YdbpDataService {
         return ydbpDataMapper.getById(id);
     }
 
+    @Override
+    public YdbpDataRes getRestById(String id,String projectId) {
+        YdbpData record = ydbpDataMapper.getById(id);
+        Project project = projectMapper.get(projectId);
+        YdbpDataRes res = new YdbpDataRes();
+        if(Objects.nonNull(project)){
+            res.setProjectId(projectId);
+            res.setProjectName(project.getName());
+            res.setProjectCode(project.getCode());
+            res.setProjectType(project.getProjectType());
+        }
+        BeanUtils.copyProperties(record, res);
+        return res;
+    }
+
+
+
+
     @Override
     public Map<String, Object> getList(YdbpDataFilterVo filterVo) {
         int pageNum = filterVo.getPageNum() == null ? 1 : filterVo.getPageNum();

+ 2 - 184
siwei-modules/siwei-apply/src/main/resources/mapper/ProjectMapper.xml

@@ -23,12 +23,6 @@
     </resultMap>
 
 
-    <!-- 扩展映射:继承基础映射并添加特有字段 -->
-    <resultMap id="SearchProjectUnionMap" type="com.siwei.apply.domain.SearchProjectAndAttachment">
-    </resultMap>
-
-
-
     <insert id="add" parameterType="com.siwei.apply.domain.Project">
         INSERT INTO t_project (id, name, code, company,
                                created_at, updated_at, project_type,first_plot_code,second_plot_code, creator_id)
@@ -211,7 +205,7 @@
         </where>
     </select>
 
-    <select id="getListSearchOld2" parameterType="com.siwei.apply.domain.vo.ProjectFilterVo"  resultMap="SearchProjectMap">
+    <select id="getListSearch" parameterType="com.siwei.apply.domain.vo.ProjectFilterVo"  resultMap="SearchProjectMap">
         SELECT
             P."id" AS id,
             P."name" AS  name,
@@ -279,7 +273,7 @@
             LIMIT #{pageSize} OFFSET #{offset}
     </select>
 
-    <select id="getSearchCountOld2" parameterType="com.siwei.apply.domain.vo.ProjectFilterVo" resultType="int">
+    <select id="getSearchCount" parameterType="com.siwei.apply.domain.vo.ProjectFilterVo" resultType="int">
         SELECT COUNT(*)
         FROM (
         SELECT DISTINCT
@@ -326,182 +320,6 @@
         ) AS distinct_projects
     </select>
 
-    <select id="getListSearch" parameterType="com.siwei.apply.domain.vo.ProjectFilterVo"  resultMap="SearchProjectUnionMap">
-            <if test="filterType==0 or filterType==1">
-                SELECT
-                P."id" AS ID,
-                P."name" AS NAME,
-                P."code" AS code,
-                P."company" AS company,
-                P."created_at" AS createAt,
-                P."updated_at" AS updateAt,
-                P."project_type" AS projectType,
-                P."on_chain_num" AS onChainNum,
-                P."creator_id" AS creatorId,
-                P."updated_at" AS updatedAt,
-                '1'  AS selectType,
-                '' AS attachmentId,
-                '' AS nodeId  ,
-                '' AS fileName,
-                '' AS  filePath
-                FROM  PUBLIC.t_project P
-
-                <where>
-                    <if test="keyWords != null and keyWords.size() > 0">
-                        regexp_like(P.name,
-                        REGEXP_REPLACE(
-                        <foreach collection="keyWords" item="word" open="'(" separator="|" close=")'" >${word}</foreach>
-                        , '[\r\n\s]+', '', 'g')
-                        , 'i')
-                        OR
-                        regexp_like(P.code,
-                        REGEXP_REPLACE(
-                        <foreach collection="keyWords" item="word" open="'(" separator="|" close=")'" >${word}</foreach>
-                        , '[\r\n\s]+', '', 'g')
-                        , 'i')
-                        OR
-                        regexp_like(P.company,
-                        REGEXP_REPLACE(
-                        <foreach collection="keyWords" item="word" open="'(" separator="|" close=")'" >${word}</foreach>
-                        , '[\r\n\s]+', '', 'g')
-                        , 'i')
-                    </if>
-                    <if test="isOnchain != null and isOnchain">
-                        AND on_chain_num > 0
-                    </if>
-                </where>
-            </if>
-
-                <if test="filterType==0">
-                    UNION
-                </if>
-
-            <if test="filterType==0 or filterType==2">
-                SELECT
-                project."id" AS ID,
-                project."name" AS NAME,
-                project."code" AS code,
-                project."company" AS company,
-                project."created_at" AS createAt,
-                project."updated_at" AS updateAt,
-                project."project_type" AS projectType,
-                project."on_chain_num" AS onChainNum,
-                project."creator_id" AS creatorId,
-                project."updated_at" AS updatedAt,
-                '2'  AS selectType,
-                info.ID AS attachmentId,
-                info.node_id AS nodeId,
-                info.file_name AS  fileName,
-                info.file_path AS filePath
-                FROM  PUBLIC.t_project_attachment_info info
-                LEFT JOIN t_project project   on  info.project_id=project.id
-                <where>
-                    <if test="keyWords != null and keyWords.size() > 0">
-                        regexp_like(info.file_name,
-                        REGEXP_REPLACE(
-                        <foreach collection="keyWords" item="word" open="'(" separator="|" close=")'" >${word}</foreach>
-                        , '[\r\n\s]+', '', 'g')
-                        , 'i')
-                    </if>
-                    AND  project.id is not null
-                    <if test="isOnchain != null and isOnchain">
-                        AND on_chain_num > 0
-                    </if>
-                </where>
-            </if>
-         ORDER BY
-            updatedAt DESC
-            LIMIT #{pageSize} OFFSET #{offset}
-    </select>
-
-    <select id="getSearchCount" parameterType="com.siwei.apply.domain.vo.ProjectFilterVo" resultType="int">
-        SELECT COUNT(*)
-        FROM (
-            <if test="filterType==0 or filterType==1">
-                SELECT
-                P."id" AS ID,
-                P."name" AS NAME,
-                P."code" AS code,
-                P."company" AS company,
-                P."created_at" AS createAt,
-                P."updated_at" AS updateAt,
-                P."project_type" AS projectType,
-                P."on_chain_num" AS onChainNum,
-                P."creator_id" AS creatorId,
-                P."updated_at" AS updatedAt,
-                '1'  AS selectType,
-                '' AS attachmentId,
-                '' AS nodeId  ,
-                '' AS fileName,
-                '' AS  filePath
-                FROM  PUBLIC.t_project P
-
-                <where>
-                    <if test="keyWords != null and keyWords.size() > 0">
-                        regexp_like(P.name,
-                        REGEXP_REPLACE(
-                        <foreach collection="keyWords" item="word" open="'(" separator="|" close=")'" >${word}</foreach>
-                        , '[\r\n\s]+', '', 'g')
-                        , 'i')
-                        OR
-                        regexp_like(P.code,
-                        REGEXP_REPLACE(
-                        <foreach collection="keyWords" item="word" open="'(" separator="|" close=")'" >${word}</foreach>
-                        , '[\r\n\s]+', '', 'g')
-                        , 'i')
-                        OR
-                        regexp_like(P.company,
-                        REGEXP_REPLACE(
-                        <foreach collection="keyWords" item="word" open="'(" separator="|" close=")'" >${word}</foreach>
-                        , '[\r\n\s]+', '', 'g')
-                        , 'i')
-                    </if>
-                    <if test="isOnchain != null and isOnchain">
-                        AND on_chain_num > 0
-                    </if>
-                </where>
-            </if>
-
-            <if test="filterType==0">
-                UNION
-            </if>
-
-            <if test="filterType==0 or filterType==2">
-                SELECT
-                project."id" AS ID,
-                project."name" AS NAME,
-                project."code" AS code,
-                project."company" AS company,
-                project."created_at" AS createAt,
-                project."updated_at" AS updateAt,
-                project."project_type" AS projectType,
-                project."on_chain_num" AS onChainNum,
-                project."creator_id" AS creatorId,
-                project."updated_at" AS updatedAt,
-                '2'  AS selectType,
-                info.ID AS attachmentId,
-                info.node_id AS nodeId,
-                info.file_name AS  fileName,
-                info.file_path AS filePath
-                FROM  PUBLIC.t_project_attachment_info info
-                LEFT JOIN t_project project   on  info.project_id=project.id
-                <where>
-                    <if test="keyWords != null and keyWords.size() > 0">
-                        regexp_like(info.file_name,
-                        REGEXP_REPLACE(
-                        <foreach collection="keyWords" item="word" open="'(" separator="|" close=")'" >${word}</foreach>
-                        , '[\r\n\s]+', '', 'g')
-                        , 'i')
-                    </if>
-                    AND  project.id is not null
-                    <if test="isOnchain != null and isOnchain">
-                        AND on_chain_num > 0
-                    </if>
-                </where>
-            </if>
-        ) AS distinct_projects
-    </select>
-
 
     <delete id="deleteNodeByTable">
         DELETE FROM ${tableName}