|
@@ -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;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
}
|