|
|
@@ -173,47 +173,30 @@ public class TdgyImpl implements TdgyService {
|
|
|
Map <String, String> resultMap = new HashMap<>();
|
|
|
for (Map<String, String> geomDetailsMap : geomDetailsList) {
|
|
|
String geomDetailsId = geomDetailsMap.get("id");
|
|
|
- //校验图斑是否包含批次报批节点(重点)
|
|
|
- Map<String, String> geomDetailsAndNodeMap = nodeLandService.selectGeomContainsNode(geomDetailsId);
|
|
|
- if(!MapUtils.isEmpty(geomDetailsAndNodeMap)){
|
|
|
- String nodeId = geomDetailsAndNodeMap.get("node_id");
|
|
|
- resultMap.put(nodeId, geomDetailsAndNodeMap.get("id"));
|
|
|
+ //校验图斑是否与批次报批节点有交集支持多年份多批次的包含(重点)
|
|
|
+ List<Map<String, String>> geomDetailsAndNodeList = nodeLandService.selectGeomIntersectsNode(geomDetailsId);
|
|
|
+ if(CollectionUtils.isNotEmpty(geomDetailsAndNodeList)){
|
|
|
+ for(Map<String, String> geomDetailsAndNodeMap : geomDetailsAndNodeList){
|
|
|
+ String nodeId = geomDetailsAndNodeMap.get("node_id");
|
|
|
+ resultMap.put(nodeId, geomDetailsAndNodeMap.get("id"));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
if(resultMap.isEmpty()){
|
|
|
throw new ServiceException("当前地块未被包含审核过的批次报批空间数据中,请检查后再上链!");
|
|
|
}
|
|
|
- if(resultMap.size()>1){
|
|
|
- throw new ServiceException("当前地块未包含多个地块,报批数据不在同一批次!");
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+// if(resultMap.size()>1){
|
|
|
+// throw new ServiceException("当前地块未包含多个地块,报批数据不在同一批次!");
|
|
|
+// }
|
|
|
String tableName ="t_ydbp_data";
|
|
|
//获取到对应的批次报批节点,插入到流程表中
|
|
|
- String nodeId = resultMap.keySet().stream().findFirst().get();
|
|
|
Workflow workflow = workflowMapper.selectByProjectTypeAndTableName(Integer.valueOf(ProjectType.BATCH.getCode()), tableName);
|
|
|
- //先检查是否存在,避免重复上链插入多次
|
|
|
- ProjectWorkflow projectWorkflow = new ProjectWorkflow();
|
|
|
- List<ProjectWorkflow> projectWorkflowList = projectWorkflowMapper.selectByProjectId(projectId);
|
|
|
- if(!CollectionUtils.isEmpty(projectWorkflowList)){
|
|
|
- Optional<ProjectWorkflow> result = projectWorkflowList.stream().filter(o->o.getNodeTableName().equals(tableName)).findFirst();
|
|
|
- if(result.isPresent()){
|
|
|
- projectWorkflow = result.get();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //todo 这里需要调用附件信息全文检索方法维护列表附件名称数据
|
|
|
- if(Objects.nonNull(projectWorkflow.getId())){
|
|
|
- projectWorkflow.setParentId(id);
|
|
|
- //projectWorkflow.setWorkflowId(workflow.getId());
|
|
|
- projectWorkflow.setProjectId(projectId);
|
|
|
- projectWorkflow.setNodeId(nodeId);
|
|
|
- //projectWorkflow.setNodeTableName(workflow.getTableName());
|
|
|
- //projectWorkflow.setWorkflowName(workflow.getName());
|
|
|
- projectWorkflowMapper.update(projectWorkflow);
|
|
|
- }else {
|
|
|
+ Set<String> nodeIdSet = new HashSet<>(resultMap.keySet());
|
|
|
+ //首先删除当前项目的数据
|
|
|
+ projectWorkflowMapper.deleteByProjectId(projectId,null,workflow.getTableName());
|
|
|
+ for(String nodeId : nodeIdSet){
|
|
|
+ //先检查是否存在,避免重复上链插入多次
|
|
|
+ ProjectWorkflow projectWorkflow = new ProjectWorkflow();
|
|
|
//设置流程主键
|
|
|
projectWorkflow.generateId();
|
|
|
projectWorkflow.setParentId(id);
|