|
|
@@ -5,10 +5,13 @@ import com.siwei.apply.domain.Tdgy;
|
|
|
import com.siwei.apply.domain.res.TdgyRes;
|
|
|
import com.siwei.apply.domain.vo.TdgyUpdateVo;
|
|
|
import com.siwei.apply.domain.vo.TdgyVo;
|
|
|
+import com.siwei.apply.enums.ProjectType;
|
|
|
import com.siwei.apply.mapper.ProjectMapper;
|
|
|
import com.siwei.apply.mapper.TdgyMapper;
|
|
|
import com.siwei.apply.service.LandOneCodeService;
|
|
|
+import com.siwei.apply.service.NodeLandService;
|
|
|
import com.siwei.apply.service.TdgyService;
|
|
|
+import com.siwei.common.core.exception.ServiceException;
|
|
|
import com.siwei.common.core.utils.bean.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -16,8 +19,7 @@ import com.siwei.apply.domain.LandType;
|
|
|
import com.siwei.apply.domain.res.LandTypeTreeRes;
|
|
|
import com.siwei.apply.mapper.LandTypeMapper;
|
|
|
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.siwei.apply.common.Common.UserId;
|
|
|
@@ -48,6 +50,10 @@ public class TdgyImpl implements TdgyService {
|
|
|
@Autowired
|
|
|
private LandOneCodeService landOneCodeService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private NodeLandService nodeLandService;
|
|
|
+
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public Boolean isExit(String projectId) {
|
|
|
@@ -146,8 +152,45 @@ public class TdgyImpl implements TdgyService {
|
|
|
return roots;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
- public void updateHasOnchain(String id, Boolean hasOnchain) {
|
|
|
+ public void updateHasOnchain(String id,String projectId, Boolean hasOnchain) throws RuntimeException {
|
|
|
+ //这里区分不同类型,如果是批次报批,需要检查地块包含,然后再插入一条数据到流程表,并且,手动增加批次报批数据节点。
|
|
|
+ //todo 分成三步骤
|
|
|
+ // 1.校验是否存在地块。
|
|
|
+ // 2.插入土地供应节点到流程表。
|
|
|
+ // 3.调用赋码服务,增加赋码数据。
|
|
|
+ Integer pType = projectMapper.getProjectTypeById(projectId);
|
|
|
+ if(ProjectType.BATCH.getCode().equals(String.valueOf(pType))){
|
|
|
+ //这里检验空间图形是否包含批次数据
|
|
|
+ List<Map<String, String>> geomDetailsList= nodeLandService.selectTGeomDbDetailsByNodeId(id);
|
|
|
+ Map <String, String> resultMap = new HashMap<>();
|
|
|
+ for (Map<String, String> geomDetailsMap : geomDetailsList) {
|
|
|
+ String geomDetailsId = geomDetailsMap.get("id");
|
|
|
+ Map<String, String> geomDetailsAndNodeMap= nodeLandService.selectGeomContainsNode(geomDetailsId);
|
|
|
+ String nodeId = geomDetailsAndNodeMap.get("nodeId");
|
|
|
+ resultMap.put(nodeId, geomDetailsAndNodeMap.get("id"));
|
|
|
+ }
|
|
|
+ if(resultMap.isEmpty()){
|
|
|
+ throw new ServiceException("当前地块未包含审核过的批次报批空间信息,请检查后再上链!");
|
|
|
+ }
|
|
|
+ if(resultMap.size()>1){
|
|
|
+ throw new ServiceException("当前地块未包含多个地块,报批数据不在同一批次!");
|
|
|
+ }
|
|
|
+ //获取到对应的批次报批节点,插入到流程表中
|
|
|
+ String nodeId = String.valueOf(resultMap.keySet().stream().findFirst());
|
|
|
+ Workflow workflow = workflowMapper.selectByProjectTypeAndTableName(Integer.valueOf(ProjectType.BATCH.getCode()), "t_ydbp_data");
|
|
|
+ ProjectWorkflow projectWorkflow = new ProjectWorkflow();
|
|
|
+ //设置流程主键
|
|
|
+ projectWorkflow.generateId();
|
|
|
+ projectWorkflow.setParentId(id);
|
|
|
+ projectWorkflow.setWorkflowId(workflow.getId());
|
|
|
+ projectWorkflow.setProjectId(projectId);
|
|
|
+ projectWorkflow.setNodeId(nodeId);
|
|
|
+ projectWorkflow.setNodeTableName(workflow.getTableName());
|
|
|
+ projectWorkflow.setWorkflowName(workflow.getName());
|
|
|
+ projectWorkflowMapper.add(projectWorkflow);
|
|
|
+ }
|
|
|
tdgyMapper.updateHasOnchain(id, hasOnchain);
|
|
|
}
|
|
|
}
|