Browse Source

上链逻辑调整

chenendian 4 days ago
parent
commit
baebe03ee6

+ 18 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/controller/ProjectController.java

@@ -84,6 +84,24 @@ public class ProjectController extends BaseController {
         }
     }
 
+
+
+    /**
+     * 获取项目列表包含空间数据
+     *
+     * @return
+     */
+    @PostMapping("/listGeom")
+    public R<Map<String, Object>> GetListAndGeom(@RequestBody ProjectFilterVo projectFilterVo) {
+        try {
+            Map<String, Object> projects = projectService.getListAndGeom(projectFilterVo);
+            return R.ok(projects);
+        } catch (Exception e) {
+            return R.fail(e.getMessage());
+        }
+    }
+
+
     /**
      * 获取项目概览
      */

+ 11 - 7
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/controller/YdbpDataController.java

@@ -3,6 +3,7 @@ package com.siwei.apply.controller;
 import com.siwei.apply.domain.NodeLand;
 import com.siwei.apply.domain.YdbpData;
 import com.siwei.apply.domain.vo.*;
+import com.siwei.apply.service.NodeLandService;
 import com.siwei.apply.service.YdbpDataService;
 import com.siwei.common.core.domain.R;
 import com.siwei.common.core.utils.bean.BeanUtils;
@@ -25,6 +26,10 @@ public class YdbpDataController {
     @Autowired
     private YdbpDataService ydbpDataService;
 
+    @Autowired
+    private NodeLandService nodeLandService;
+
+
     /**
      * 新增数据
      *
@@ -123,22 +128,21 @@ public class YdbpDataController {
 
 
     /**
-     * 更新土地供应的上链状态
+     * 更新上链状态
      */
     @PutMapping("/onchain")
     public R<Void> updateHasOnchain(@RequestBody Map<String, Object> params) {
         try {
             String id = (String) params.get("id");
-//            String projectId = (String) params.get("projectId");
             Boolean hasOnchain = (Boolean) params.get("hasOnchain");
             if (StringUtils.isBlank(id)) {
                 return R.fail("Id不能为空");
             }
-//            NodeLand nodeLand = nodeLandService.getNodeLandByNodeId(id);
-//            if(Objects.isNull(nodeLand)){
-//                return R.fail(502,"数据空间信息不存在,请检查先导入空间数据");
-//            }
-//            tdgyService.updateHasOnchain(id, hasOnchain);
+            NodeLand nodeLand = nodeLandService.getCurrentNodeLandByNodeId(id);
+            if(Objects.isNull(nodeLand)){
+                return R.fail(502,"数据空间信息不存在,请检查先导入空间数据");
+            }
+            ydbpDataService.updateHasOnchain(id, hasOnchain);
             // 更新项目表的上链数量
 //            projectService.countOnChinaNum(projectId);
             return R.ok();

+ 8 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/domain/Project.java

@@ -26,4 +26,12 @@ public class Project extends BaseId {
     private Integer onChainNum;
     private String creatorId;
 
+    private String currentNode;
+    private String envelope;
+    private String shppath;
+    private String centroid;
+    private String geomDbId;
+    private String geoms;
+
+
 }

+ 4 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/mapper/YdbpDataMapper.java

@@ -48,4 +48,8 @@ public interface YdbpDataMapper {
 
     void batchDelete(@Param("ids") List<String> ids);
 
+    void updateHasOnchain(@Param("id") String id, @Param("hasOnchain") Boolean hasOnchain);
+
+
+
 }

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

@@ -45,4 +45,8 @@ public interface NodeLandService {
 
     NodeLand getNodeLandByNodeId(String nodeId) ;
 
+    NodeLand getCurrentNodeLandByNodeId(String nodeId);
+
+
+
 }

+ 1 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/ProjectService.java

@@ -38,6 +38,7 @@ public interface ProjectService {
      */
     Map<String, Object> getList(ProjectFilterVo projectFilterVo);
 
+    Map<String, Object> getListAndGeom(ProjectFilterVo projectFilterVo);
 
     /**
      * 更新项目

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

@@ -22,6 +22,8 @@ public interface YdbpDataService {
     List<YdbpExcelVo>  transformation(Map<String, Object> mapData);
     void batchDelete(List<String> ids) ;
 
+    void updateHasOnchain(String id, Boolean hasOnchain) ;
+
 
 
 }

+ 8 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/impl/NodeLandImpl.java

@@ -179,5 +179,13 @@ public class NodeLandImpl implements NodeLandService {
 
 
 
+    @Override
+    public NodeLand getCurrentNodeLandByNodeId(String nodeId) {
+        // 获取地块ID
+        NodeLand nodeLand = nodeLandMapper.selectByNodeId(nodeId);
+        return nodeLand;
+    }
+
+
 
 }

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

@@ -10,8 +10,10 @@ import com.siwei.apply.domain.res.*;
 import com.siwei.apply.domain.vo.ProjectFilterVo;
 import com.siwei.apply.domain.vo.ProjectUpdateVo;
 import com.siwei.apply.domain.vo.ProjectVo;
+import com.siwei.apply.enums.ProjectType;
 import com.siwei.apply.mapper.*;
 import com.siwei.apply.service.NodeAttachmentService;
+import com.siwei.apply.service.NodeLandService;
 import com.siwei.apply.service.ProjectService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
@@ -52,6 +54,9 @@ public class ProjectImpl implements ProjectService {
     @Autowired
     private NodeAttachmentService nodeAttachmentService;
 
+    @Autowired
+    private NodeLandService nodeLandService;
+
 
 
     @Override
@@ -77,6 +82,49 @@ public class ProjectImpl implements ProjectService {
     public Map<String, Object> getList(ProjectFilterVo projectFilterVo) {
         List<Project> projects = projectMapper.getList(projectFilterVo);
         Integer count = projectMapper.getCount(projectFilterVo);
+        Map<String, Object> map = new HashMap<>();
+        map.put("projects", projects);
+        map.put("count", count);
+        return map;
+    }
+
+
+    @Override
+    public Map<String, Object> getListAndGeom(ProjectFilterVo projectFilterVo) {
+        List<Project> projects = projectMapper.getList(projectFilterVo);
+        Integer count = projectMapper.getCount(projectFilterVo);
+        //todo这里需要调整关于增加图层信息
+        //todo增加当前项目所在的流程阶段
+        if(CollectionUtils.isNotEmpty(projects)) {
+            for (Project project : projects) {
+                ProjectWorkflow currentProjectWorkflow = this.getCurrentNode(project.getId());
+                //获取当前节点信息
+                project.setCurrentNode(currentProjectWorkflow.getWorkflowId());
+                String nodeId = currentProjectWorkflow.getNodeId();
+                String nodeTableName = currentProjectWorkflow.getNodeTableName();
+                Map<String, Object> geomInfo = null;
+                //单独时候,只有第一阶段使用t_ydysyxz的空间图形,其它节点都是继承t_ydbp用地报批的图形
+                if (ProjectType.ALONE.getCode().equals(String.valueOf(project.getProjectType()))) {
+                    //用地预审与选址
+                    if(!nodeTableName.equals("t_ydysyxz")){
+                        nodeTableName = "t_ydbp";
+                    }
+                    geomInfo = nodeLandService.getGeomByProjectAndNodeTable(project.getId(), nodeTableName);
+                }else if (ProjectType.BATCH.getCode().equals(String.valueOf(project.getProjectType()))) {
+                    //批次报批,只有一个图斑  (规划条件与用地红线出具	t_tjyydhx)
+                    nodeTableName = "t_tjyydhx";
+                    geomInfo = nodeLandService.getGeomByProjectAndNodeTable(project.getId(),nodeTableName);
+                }
+                if(Objects.nonNull(geomInfo)){
+                    project.setEnvelope(String.valueOf(geomInfo.get("envelope")));
+                    project.setShppath(String.valueOf(geomInfo.get("shppath")));
+                    project.setCentroid(String.valueOf(geomInfo.get("centroid")));
+                    project.setGeoms(String.valueOf(geomInfo.get("geoms")));
+                    project.setGeomDbId(String.valueOf(geomInfo.get("geomDbId")));
+                }
+            }
+
+        }
 
         Map<String, Object> map = new HashMap<>();
         map.put("projects", projects);
@@ -85,6 +133,9 @@ public class ProjectImpl implements ProjectService {
     }
 
 
+
+
+
     @Override
     public void update(ProjectUpdateVo projectUpdateVo) {
         projectMapper.update(projectUpdateVo);
@@ -115,16 +166,10 @@ public class ProjectImpl implements ProjectService {
         ProjectNumRes projectNumRes = projectMapper.countTypeStats();
         projectOverviewRes.setProjectNum(projectNumRes);
 
-
         // 获取项目供应
         List<ProjectSupplyRes> projectSupplyList = tdgyMapper.countAndSumByGdType(projectType);
         projectOverviewRes.setProjectSupplyList(projectSupplyList);
-
-
         // 获取项目进度
-        //List<ProjectProcessRes> projectProcessList = projectWorkflowMapper.countMaxWorkflowByName(projectType);
-        //projectOverviewRes.setProjectProcessList(projectProcessList);
-
         ProjectFilterVo projectFilterVo = new ProjectFilterVo();
         projectFilterVo.setIsOnchain(true);
         List<Project> projectList =   projectMapper.getList(projectFilterVo);
@@ -134,10 +179,8 @@ public class ProjectImpl implements ProjectService {
                 String projectId = project.getId();
                 List<ProjectWorkflow> projectWorkflowList =  projectWorkflowMapper.selectByProjectId(projectId);
                 //倒叙排序
-                //projectWorkflowList = projectWorkflowList.stream().sorted(s->s.getWorkflowId()).collect(Collectors.toList());
                 projectWorkflowList = projectWorkflowList.stream().sorted(Comparator.comparing(ProjectWorkflow::getWorkflowId).reversed())
                         .collect(Collectors.toList());
-
                 for(ProjectWorkflow projectWorkflow : projectWorkflowList){
                     String nodeTableName = projectWorkflow.getNodeTableName();
                     String nodeId = projectWorkflow.getNodeId();
@@ -153,7 +196,7 @@ public class ProjectImpl implements ProjectService {
                     }
                 }
             }
-            // 获取项目进度22222
+            // 获取项目进度
             List<ProjectProcessRes> projectProcessList = new ArrayList<>();
             for (Map.Entry<String, Integer> entry : progressMap.entrySet()) {
                 ProjectProcessRes projectProcessRes = new ProjectProcessRes();
@@ -302,6 +345,32 @@ public class ProjectImpl implements ProjectService {
     }
 
 
+    /**
+     * 根据项目id,获取该项目所在最新流程节点
+     * @param projectId
+     * @return
+     * @throws Exception
+     */
+    public  ProjectWorkflow getCurrentNode(String projectId) {
+            List<ProjectWorkflow> projectWorkflowList =  projectWorkflowMapper.selectByProjectId(projectId);
+            ProjectWorkflow currentProjectWorkflow = null;
+            //倒叙排序
+            projectWorkflowList = projectWorkflowList.stream().sorted(Comparator.comparing(ProjectWorkflow::getWorkflowId).reversed()).collect(Collectors.toList());
+            for(ProjectWorkflow projectWorkflow : projectWorkflowList){
+                String nodeTableName = projectWorkflow.getNodeTableName();
+                String nodeId = projectWorkflow.getNodeId();
+                Boolean hasOnchain = projectWorkflowMapper.isOnchain(nodeId, projectId,nodeTableName);
+                //最到当前最新上链后的流程节点
+                if(hasOnchain.equals(true)){
+                    currentProjectWorkflow = projectWorkflow;
+                    break;
+                }
+            }
+            return currentProjectWorkflow;
+        }
+
+
+
 
 
 }

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

@@ -100,4 +100,9 @@ public class YdbpDataImpl implements YdbpDataService {
     }
 
 
+    @Override
+    public void updateHasOnchain(String id, Boolean hasOnchain) {
+        ydbpDataMapper.updateHasOnchain(id, hasOnchain);
+    }
+
 }

+ 5 - 1
siwei-modules/siwei-apply/src/main/resources/mapper/YdbpDataMapper.xml

@@ -62,7 +62,6 @@
         SELECT COUNT(1) FROM t_ydbp_data
     </select>
 
-
     <delete id="batchDelete">
         DELETE FROM t_ydbp_data
         WHERE id IN
@@ -71,4 +70,9 @@
         </foreach>
     </delete>
 
+    <update id="updateHasOnchain">
+        UPDATE t_ydbp_data
+        SET has_onchain = #{hasOnchain}, updated_at = now()
+        WHERE id = #{id}
+    </update>
 </mapper>