|
@@ -7,11 +7,13 @@ import com.siwei.apply.domain.YdbpData;
|
|
|
import com.siwei.apply.domain.res.TdgyRes;
|
|
import com.siwei.apply.domain.res.TdgyRes;
|
|
|
import com.siwei.apply.domain.vo.ProjectVo;
|
|
import com.siwei.apply.domain.vo.ProjectVo;
|
|
|
import com.siwei.apply.domain.vo.TdgyVo;
|
|
import com.siwei.apply.domain.vo.TdgyVo;
|
|
|
|
|
+import com.siwei.apply.domain.vo.YdbpDataVo;
|
|
|
import com.siwei.apply.enums.AloneWorkFlowEnum;
|
|
import com.siwei.apply.enums.AloneWorkFlowEnum;
|
|
|
import com.siwei.apply.mapper.CadastreFileMapper;
|
|
import com.siwei.apply.mapper.CadastreFileMapper;
|
|
|
import com.siwei.apply.mapper.LandTypeMapper;
|
|
import com.siwei.apply.mapper.LandTypeMapper;
|
|
|
import com.siwei.apply.mapper.ProjectWorkflowMapper;
|
|
import com.siwei.apply.mapper.ProjectWorkflowMapper;
|
|
|
import com.siwei.apply.service.*;
|
|
import com.siwei.apply.service.*;
|
|
|
|
|
+import com.siwei.common.core.constant.SecurityConstants;
|
|
|
import com.siwei.common.core.domain.R;
|
|
import com.siwei.common.core.domain.R;
|
|
|
import com.siwei.common.core.utils.StringUtils;
|
|
import com.siwei.common.core.utils.StringUtils;
|
|
|
import com.siwei.spatial.api.RemoteSpatialFilesDbService;
|
|
import com.siwei.spatial.api.RemoteSpatialFilesDbService;
|
|
@@ -19,8 +21,11 @@ import com.siwei.spatial.api.domain.file.TGeomDb;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.apache.commons.io.FileUtils;
|
|
import org.apache.commons.io.FileUtils;
|
|
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
+import org.springframework.web.bind.annotation.RequestHeader;
|
|
|
|
|
+import org.springframework.web.bind.annotation.RequestParam;
|
|
|
|
|
|
|
|
import java.io.File;
|
|
import java.io.File;
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
@@ -32,6 +37,8 @@ import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
+import static com.siwei.apply.common.Common.UserId;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* excel 导入数据处理类
|
|
* excel 导入数据处理类
|
|
|
*/
|
|
*/
|
|
@@ -41,6 +48,7 @@ public class DealExcelServiceImpl {
|
|
|
|
|
|
|
|
private final String rootPath2019 = Constant.IMPORT_EXCEL_DATA_FILE_PATH + "\\数据治理批量导入示例数据\\赣江新区项目文件夹建立\\1.出让项目\\2019";
|
|
private final String rootPath2019 = Constant.IMPORT_EXCEL_DATA_FILE_PATH + "\\数据治理批量导入示例数据\\赣江新区项目文件夹建立\\1.出让项目\\2019";
|
|
|
private final String rootPath2020 = Constant.IMPORT_EXCEL_DATA_FILE_PATH + "\\数据治理批量导入示例数据\\赣江新区项目文件夹建立\\1.出让项目\\2020";
|
|
private final String rootPath2020 = Constant.IMPORT_EXCEL_DATA_FILE_PATH + "\\数据治理批量导入示例数据\\赣江新区项目文件夹建立\\1.出让项目\\2020";
|
|
|
|
|
+ private final String rootPathZip = Constant.IMPORT_EXCEL_DATA_FILE_PATH + "\\zip";
|
|
|
private final String targectDir = Constant.FILE_UPLOAD_PATH;
|
|
private final String targectDir = Constant.FILE_UPLOAD_PATH;
|
|
|
|
|
|
|
|
private static List<LandType> allLandTypeList = new ArrayList<>();
|
|
private static List<LandType> allLandTypeList = new ArrayList<>();
|
|
@@ -67,7 +75,6 @@ public class DealExcelServiceImpl {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private YdbpDataService ydbpDataService;
|
|
private YdbpDataService ydbpDataService;
|
|
|
|
|
|
|
|
-
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private RemoteSpatialFilesDbService remoteSpatialFilesDbService;
|
|
private RemoteSpatialFilesDbService remoteSpatialFilesDbService;
|
|
|
|
|
|
|
@@ -75,6 +82,54 @@ public class DealExcelServiceImpl {
|
|
|
private CadastreFileMapper cadastreFileMapper;
|
|
private CadastreFileMapper cadastreFileMapper;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 报批数据导入
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param dataMap
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public String addBatchDateExcelDataToDb(Map<String, List<Map<String, String>>> dataMap) {
|
|
|
|
|
+ List<Map<String, String>> batchList = dataMap.get("新建(用地报批(批次)数据集成)");
|
|
|
|
|
+ for(Map<String, String> batch : batchList){
|
|
|
|
|
+ String projectName = batch.get("项目名称");
|
|
|
|
|
+ String reportStatus = batch.get("报征状态");
|
|
|
|
|
+ String batchApprovalNum = batch.get("批复文号");
|
|
|
|
|
+ String reportDate = batch.get("报批日期");
|
|
|
|
|
+ String approvalDate = batch.get("批复日期");
|
|
|
|
|
+
|
|
|
|
|
+ //todo 这里继续完善数据添加逻辑,目前先打印日志
|
|
|
|
|
+ log.info("项目名称:{},报征状态:{},批复文号:{},报批日期:{},批复日期:{}", projectName, reportStatus, batchApprovalNum, reportDate, approvalDate);
|
|
|
|
|
+
|
|
|
|
|
+ YdbpDataVo ydbpDataVo = new YdbpDataVo();
|
|
|
|
|
+ ydbpDataVo.setName(projectName+System.currentTimeMillis());
|
|
|
|
|
+ ydbpDataVo.setPfwh(batchApprovalNum);
|
|
|
|
|
+ ydbpDataVo.setBpDate(approvalDate);
|
|
|
|
|
+
|
|
|
|
|
+ String nodeId = ydbpDataService.add(ydbpDataVo);
|
|
|
|
|
+
|
|
|
|
|
+ String shpFileName = projectName+"shp.zip";
|
|
|
|
|
+ //数据治理文件名
|
|
|
|
|
+ if (StringUtils.isNotBlank(projectName)) {
|
|
|
|
|
+ Path filePath = Paths.get(rootPathZip + "\\" +shpFileName);
|
|
|
|
|
+ if (Files.exists(filePath) || !Files.isDirectory(filePath)) {
|
|
|
|
|
+ String fullFilePath = copyFileToDirectory(rootPathZip + "\\", targectDir , shpFileName);
|
|
|
|
|
+ R<TGeomDb> saveGeomRes = remoteSpatialFilesDbService.readShp(shpFileName,fullFilePath,"excel", SecurityConstants.INNER);
|
|
|
|
|
+ TGeomDb tGeomDb = saveGeomRes.getData();
|
|
|
|
|
+ log.info("远程调用geom保存,返回结果:{}", tGeomDb);
|
|
|
|
|
+ //这里保存geom映射关系
|
|
|
|
|
+ nodeLandService.createNodeLand(nodeId, tGeomDb.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ log.info("------------"+batchList);
|
|
|
|
|
+ return "successs";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 检查excel数据到数据库
|
|
* 检查excel数据到数据库
|
|
|
*
|
|
*
|
|
@@ -83,34 +138,316 @@ public class DealExcelServiceImpl {
|
|
|
*/
|
|
*/
|
|
|
public String checkExcelDataToDb(Map<String, List<Map<String, String>>> dataMap) {
|
|
public String checkExcelDataToDb(Map<String, List<Map<String, String>>> dataMap) {
|
|
|
List<Map<String, String>> xmList = dataMap.get("项目信息");
|
|
List<Map<String, String>> xmList = dataMap.get("项目信息");
|
|
|
- int i = 0;
|
|
|
|
|
|
|
+ int i = 4;
|
|
|
for (Map<String, String> xm : xmList) {
|
|
for (Map<String, String> xm : xmList) {
|
|
|
- ProjectVo projectVo = new ProjectVo();
|
|
|
|
|
- String projectType = xm.get("项目类型(必填)");
|
|
|
|
|
|
|
|
|
|
- if (projectType.equalsIgnoreCase("单独选址")) {
|
|
|
|
|
- projectVo.setProjectType(1);
|
|
|
|
|
- } else if (projectType.equalsIgnoreCase("批次报批")) {
|
|
|
|
|
- projectVo.setProjectType(2);
|
|
|
|
|
- } else {
|
|
|
|
|
- writeToLog("xm_err.log", "行(" + i + ")项目类型不合法,项目类型只能是单独选址或者批次报批");
|
|
|
|
|
|
|
+ String projectName = xm.get("项目名称");
|
|
|
|
|
+ if (StringUtils.isBlank(projectName)) {
|
|
|
|
|
+ writeToLog("xm_err.log", "excel行(" + i + ")项目名称为空,是否需要默认设置" );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ String projectType = xm.get("项目类型(必填)");
|
|
|
|
|
+ if (!(projectType.equalsIgnoreCase("单独选址") || projectType.equalsIgnoreCase("批次报批"))) {
|
|
|
|
|
+ writeToLog("xm_err.log", "excel行(" + i + ")项目类型不合法,项目类型只能是单独选址或者批次报批");
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ i++;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// -----------------第一部分增加项目结束-------------------------------
|
|
// -----------------第一部分增加项目结束-------------------------------
|
|
|
|
|
+
|
|
|
|
|
+ // -----------------第二部分校验(土地供应)环节数据开始-------------------------------
|
|
|
List<Map<String, String>> tdgyList = dataMap.get("土地供应");
|
|
List<Map<String, String>> tdgyList = dataMap.get("土地供应");
|
|
|
|
|
+ i = 4;
|
|
|
for (Map<String, String> tdgyExcel : tdgyList) {
|
|
for (Map<String, String> tdgyExcel : tdgyList) {
|
|
|
String tdyt = tdgyExcel.get("土地用途");
|
|
String tdyt = tdgyExcel.get("土地用途");
|
|
|
String tdytCode = getTdytCodeByName(tdyt);
|
|
String tdytCode = getTdytCodeByName(tdyt);
|
|
|
if (StringUtils.isBlank(tdytCode)) {
|
|
if (StringUtils.isBlank(tdytCode)) {
|
|
|
- writeToLog("tdgy_err.log", "行(" + i + ")项目类型不合法,项目类型只能是单独选址或者批次报批");
|
|
|
|
|
|
|
+ writeToLog("tdgy_err.log", "excel行(" + i + ")土地用途不合法,没有找到对应的code:" + tdyt);
|
|
|
|
|
+ }
|
|
|
|
|
+ String hetongCode = tdgyExcel.get("用地划拨/出让方案批复文号");
|
|
|
|
|
+ if (StringUtils.isBlank(hetongCode)) {
|
|
|
|
|
+ writeToLog("tdgy_err.log", "excel行(" + i + ")(用地划拨/出让方案批复文号)不能为空");
|
|
|
}
|
|
}
|
|
|
|
|
+ i++;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /* ------------------参考json数据结构-------------------------------
|
|
|
|
|
+ {
|
|
|
|
|
+ "阶段": [
|
|
|
|
|
+ {
|
|
|
|
|
+ "方式": "划拨",
|
|
|
|
|
+ "文件名序号": "2017-00195",
|
|
|
|
|
+ "提交项目文件名": "桑海综合性住宅小区",
|
|
|
|
|
+ "数据治理文件名": "2017-00195-桑海综合性住宅小区",
|
|
|
|
|
+ "规划号": "SH/J07-03"
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
|
|
+ "项目信息": [
|
|
|
|
|
+ {
|
|
|
|
|
+ "项目名称": "桑海综合性住宅小区",
|
|
|
|
|
+ "项目代码": "",
|
|
|
|
|
+ "建设单位": "",
|
|
|
|
|
+ "项目类型(必填)": "",
|
|
|
|
|
+ "第一位特征码": "",
|
|
|
|
|
+ "第二位特征码": ""
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
|
|
+ "用地预审与选址": [
|
|
|
|
|
+ {
|
|
|
|
|
+ "建设地点": "",
|
|
|
|
|
+ "拟用地面积(源)": "",
|
|
|
|
|
+ "拟用地面积": "",
|
|
|
|
|
+ "项目规模及内容": "",
|
|
|
|
|
+ "项目建设依据": "",
|
|
|
|
|
+ "证书文号": "",
|
|
|
|
|
+ "发证日期": "",
|
|
|
|
|
+ "面积单位": "",
|
|
|
|
|
+ "是否完成征转": ""
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
|
|
+ "规划条件与用地红线出具": [
|
|
|
|
|
+ {
|
|
|
|
|
+ "地块编码": "",
|
|
|
|
|
+ "用地面积": "",
|
|
|
|
|
+ "用地性质": "",
|
|
|
|
|
+ "用地位置": "",
|
|
|
|
|
+ "出具编号": "",
|
|
|
|
|
+ "出具日期": "",
|
|
|
|
|
+ "出具依据": "",
|
|
|
|
|
+ "面积单位": ""
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
|
|
+ "用地报批": [
|
|
|
|
|
+ {
|
|
|
|
|
+ "土地用途": "",
|
|
|
|
|
+ "用地面积": "",
|
|
|
|
|
+ "征收面积": "",
|
|
|
|
|
+ "是否完成征转": "",
|
|
|
|
|
+ "报批日期": "",
|
|
|
|
|
+ "批复文号(必填)": "",
|
|
|
|
|
+ "批复日期(必填)": "",
|
|
|
|
|
+ "用地面积单位": "",
|
|
|
|
|
+ "征收面积单位": ""
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
|
|
+ "土地供应": [
|
|
|
|
|
+ {
|
|
|
|
|
+ "土地受让人": "江西桑海经济开发区房产管理办公室",
|
|
|
|
|
+ "土地用途(源版)": "居住用地(保障性住房)",
|
|
|
|
|
+ "土地用途": "居住用地",
|
|
|
|
|
+ "建设位置": "赣江新区经开组团桑海开发区时珍北大道以北、樟坪路以东、济生北路以西",
|
|
|
|
|
+ "供地面积(平方米)(源数据)": "47332.4",
|
|
|
|
|
+ "供地面积": "47332.4",
|
|
|
|
|
+ "面积单位": "平方米",
|
|
|
|
|
+ "供地方式": "划拨",
|
|
|
|
|
+ "是否完成征转": "是",
|
|
|
|
|
+ "用地划拨/出让方案批复文号": "赣新管办字(2017〕12号",
|
|
|
|
|
+ "土地权属来源": "赣新管办字(2017〕12号",
|
|
|
|
|
+ "划拨决定书/出让合同编号(必填)": "H36201701030017",
|
|
|
|
|
+ "划拨决定书/出让合同日期": "2017年8月18日",
|
|
|
|
|
+ "供地单位": "赣江新区国土资源局"
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
|
|
+ "国有建设用地使用权及房屋所有权首次登记(会有多个不动产权证)(界面新参数)": [
|
|
|
|
|
+ {
|
|
|
|
|
+ "业务号(必填)": "",
|
|
|
|
|
+ "告知单盖章时间": "",
|
|
|
|
|
+ "开发单位": "",
|
|
|
|
|
+ "不动产情况": "",
|
|
|
|
|
+ "建筑面积": "",
|
|
|
|
|
+ "建筑面积单位": "",
|
|
|
|
|
+ "套内面积": "",
|
|
|
|
|
+ "套内面积单位": "",
|
|
|
|
|
+ "分摊面积": "",
|
|
|
|
|
+ "分摊面积单位": "",
|
|
|
|
|
+ "是否上链": "",
|
|
|
|
|
+ "备注(数据清单)": ""
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
|
|
+ "新建(用地报批(批次)数据集成)": [
|
|
|
|
|
+ {
|
|
|
|
|
+ "项目名称": "",
|
|
|
|
|
+ "用地面积": "",
|
|
|
|
|
+ "用地面积单位": "",
|
|
|
|
|
+ "征收面积": "",
|
|
|
|
|
+ "征收面积单位": "",
|
|
|
|
|
+ "报征状态": "",
|
|
|
|
|
+ "批复文号": "",
|
|
|
|
|
+ "报批日期": "",
|
|
|
|
|
+ "批复日期": ""
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
|
|
+ "国有建设用地使用权首次登记": [
|
|
|
|
|
+ {
|
|
|
|
|
+ "权利人": "",
|
|
|
|
|
+ "共有情况": "",
|
|
|
|
|
+ "坐落": "",
|
|
|
|
|
+ "权利类型": "",
|
|
|
|
|
+ "权利性质": "",
|
|
|
|
|
+ "土地用途": "",
|
|
|
|
|
+ "面积": "",
|
|
|
|
|
+ "面积单位": "",
|
|
|
|
|
+ "不动产单元号(必填)": "",
|
|
|
|
|
+ "登记机构": "",
|
|
|
|
|
+ "登记日期": "",
|
|
|
|
|
+ "不动产证号(必填)": ""
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
|
|
+ "建设用地规划许可": [
|
|
|
|
|
+ {
|
|
|
|
|
+ "用地单位": "",
|
|
|
|
|
+ "用地位置": "",
|
|
|
|
|
+ "用地面积": "",
|
|
|
|
|
+ "土地用途": "",
|
|
|
|
|
+ "土地获取方式": "",
|
|
|
|
|
+ "批准用地机关": "",
|
|
|
|
|
+ "批准用地文号": "",
|
|
|
|
|
+ "建设规模": "",
|
|
|
|
|
+ "证书编号(必填)": "",
|
|
|
|
|
+ "发证机关": "",
|
|
|
|
|
+ "发证日期(必填)": ""
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
|
|
+ "建设工程规划许可": [
|
|
|
|
|
+ {
|
|
|
|
|
+ "用地单位": "",
|
|
|
|
|
+ "期数": "",
|
|
|
|
|
+ "用地位置": "",
|
|
|
|
|
+ "建设规模": "",
|
|
|
|
|
+ "证书编号(必填)": "",
|
|
|
|
|
+ "发证机关": "",
|
|
|
|
|
+ "发证日期(必填)": ""
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
|
|
+ "土地核验与规划核实": [
|
|
|
|
|
+ {
|
|
|
|
|
+ "用地位置": "",
|
|
|
|
|
+ "合格证号(必填)": "",
|
|
|
|
|
+ "发证机关": "",
|
|
|
|
|
+ "发证日期(必填)": "",
|
|
|
|
|
+ "建设单位": "",
|
|
|
|
|
+ "关联建设工程规划许可号": ""
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
|
|
+ "国有建设用地使用权首次登记(会有多个不动产权证)(旧参数)": [
|
|
|
|
|
+ {
|
|
|
|
|
+ "权利人": "",
|
|
|
|
|
+ "共有情况": "",
|
|
|
|
|
+ "坐落": "",
|
|
|
|
|
+ "权利类型": "",
|
|
|
|
|
+ "权利性质": "",
|
|
|
|
|
+ "面积": "",
|
|
|
|
|
+ "不动产单元号": "",
|
|
|
|
|
+ "不动产证号": "",
|
|
|
|
|
+ "登记机构": "",
|
|
|
|
|
+ "登记日期": "",
|
|
|
|
|
+ "面积单位": "",
|
|
|
|
|
+ "土地用途": ""
|
|
|
|
|
+ }
|
|
|
|
|
+ ]
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ ------------------项目类型为:单独选址-------项目的环节----------------------------------
|
|
|
|
|
+ t_ydysyxz 用地预审与选址
|
|
|
|
|
+ t_ydbp 用地报批
|
|
|
|
|
+ t_tdgy 土地供应
|
|
|
|
|
+ t_gyjsydscdj 国有建设用地使用权首次登记
|
|
|
|
|
+ t_jsydghxk 建设用地规划许可
|
|
|
|
|
+ t_jsgcghxk 建设工程规划许可
|
|
|
|
|
+ t_tdhyhs 土地核验与规划核实
|
|
|
|
|
+ t_gyjsydjfwscdj 国有建设用地使用权及房屋所有权首次登记
|
|
|
|
|
+
|
|
|
|
|
+ ----------------项目类型为:批次报批---的环节-------------------------------------
|
|
|
|
|
+ t_tdgy 土地供应
|
|
|
|
|
+ t_gyjsydscdj 国有建设用地使用权首次登记
|
|
|
|
|
+ t_jsydghxk 建设用地规划许可
|
|
|
|
|
+ t_jsgcghxk 建设工程规划许可
|
|
|
|
|
+ t_tdhyhs 土地核验与规划核实
|
|
|
|
|
+ t_gyjsydjfwscdj 国有建设用地使用权及房屋所有权首次登记
|
|
|
|
|
+ t_tjyydhx 规划条件与用地红线出具
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ -----------各个环节的必传字段见下表----------------------------
|
|
|
|
|
+
|
|
|
|
|
+ 土地供应:(出让/划拨合同编号)
|
|
|
|
|
+
|
|
|
|
|
+ 国有建设用地使用权首次登记 (不动产单元号,不动产证号)
|
|
|
|
|
+
|
|
|
|
|
+ 建设用地规划许可 (证书编号,发证日期)
|
|
|
|
|
+
|
|
|
|
|
+ 建设工程规划许可 (证书编号,发证日期)
|
|
|
|
|
+
|
|
|
|
|
+ 土地核验与规划核实 (合格证号,发证日期)
|
|
|
|
|
+
|
|
|
|
|
+ 国有建设用地使用权及房屋所有权首次登记 (业务号)
|
|
|
|
|
+
|
|
|
|
|
+ 用地报批 (批复文号,批复日期)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ */
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //todo 读取excel中的数据然后做校验,excel字段对应,见上面参考json,这里继续完善其他部分的校验逻辑,按照上面两部分的示例进行编写,注意日志文件的命名和日志内容的准确性,方便后续排查问题
|
|
|
|
|
+ // 要求一,如果当前环节,如:String tdyt = tdgyExcel.get("土地用途"); 获取的所有字段都是空,直接跳过,不写日志
|
|
|
|
|
+ // 要求二,如果当前环节存在类似(供地面积,用地面积) 需要有(面积单位字段) ,用地面积的值都是数字,那么面积单位不能为空,并且需要校验面积单位是否合法(亩,公顷,平方米),如果不合法,记录日志
|
|
|
|
|
+ // 要求三,各个环节必填字段都没有满足要求的,记录日志,日志内容包括:excel行数,字段名称,字段值,错误描述等信息,方便后续排查问题
|
|
|
|
|
+ // 要求四,项目类型为空则直接跳过此数据
|
|
|
|
|
+ // 要求五, 若某个环节所有字段为空,或者必填字段不满足要求或为空,记录日志后,继续校验下一个环节,把当前环节跳过处理。
|
|
|
|
|
+
|
|
|
|
|
+ // -----------------第二部分校验(国有建设用地使用权首次登记)环节数据开始-------------------------------
|
|
|
|
|
+ //excel 字段:
|
|
|
|
|
+ //todo 需要校验 (不动产单元号,不动产证号) 字段不能为空
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // -----------------第三部分校验(建设用地规划许可)环节数据开始-------------------------------
|
|
|
|
|
+ //todo 需要校验 (证书编号,发证日期) 字段不能为空,并且日期满足(2019年9月4日) 格式
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // -----------------第四部分校验(建设工程规划许可)环节数据开始-------------------------------
|
|
|
|
|
+ //todo 需要校验 (证书编号,发证日期) 字段不能为空,并且日期满足(2019年9月4日) 格式
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // -----------------第五部分校验(土地核验与规划核实)环节数据开始-------------------------------
|
|
|
|
|
+ //todo 需要校验 (合格证号,发证日期) 字段不能为空,并且日期满足(2019年9月4日) 格式
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // -----------------第六部分校验(国有建设用地使用权及房屋所有权首次登记)环节数据开始-------------------------------
|
|
|
|
|
+ //todo 需要校验 (业务号) 字段不能为空
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // -----------------第六部分校验(用地报批)环节数据开始-------------------------------
|
|
|
|
|
+ //todo 需要校验 (批复文号,批复日期)字段不能为空 ,并且日期满足(2019年9月4日) 格式
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // -----------------第七部分校验(用地预审与选址)环节数据开始-------------------------------
|
|
|
|
|
+ //todo 需要校验 (证书文号,发证日期)字段不能为空 ,并且日期满足(2019年9月4日) 格式
|
|
|
|
|
+
|
|
|
|
|
+ // -----------------第七部分校验(规划条件与用地红线出具)环节数据开始-------------------------------
|
|
|
|
|
+ //todo 需要校验 (出具编号,出具日期)字段不能为空 ,并且日期满足(2019年9月4日) 格式
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
return "successs";
|
|
return "successs";
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 添加excel数据到数据库
|
|
* 添加excel数据到数据库
|
|
|
*
|
|
*
|
|
@@ -214,7 +551,7 @@ public class DealExcelServiceImpl {
|
|
|
Map<String, String> jdMap = jdList.get(i);
|
|
Map<String, String> jdMap = jdList.get(i);
|
|
|
String projectFileName = jdMap.get("数据治理文件名");
|
|
String projectFileName = jdMap.get("数据治理文件名");
|
|
|
String nodeFileName = "03土地供应阶段";
|
|
String nodeFileName = "03土地供应阶段";
|
|
|
- dealCurrentNodeAttachment(projectId,id,projectFileName,nodeFileName);
|
|
|
|
|
|
|
+ dealCurrentNodeAttachment(projectId, id, projectFileName, nodeFileName);
|
|
|
|
|
|
|
|
|
|
|
|
|
//矢量数据处理 -- 数据治理文件名
|
|
//矢量数据处理 -- 数据治理文件名
|
|
@@ -232,9 +569,8 @@ public class DealExcelServiceImpl {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
//附件数据处理 -- 数据治理文件名
|
|
//附件数据处理 -- 数据治理文件名
|
|
|
- public void dealCurrentNodeAttachment(String projectId, String nodeId,String projectFileName,String nodeFileName) {
|
|
|
|
|
|
|
+ public void dealCurrentNodeAttachment(String projectId, String nodeId, String projectFileName, String nodeFileName) {
|
|
|
if (StringUtils.isBlank(projectFileName)) {
|
|
if (StringUtils.isBlank(projectFileName)) {
|
|
|
log.info("数据治理文件名称--附件材料:{}", projectFileName);
|
|
log.info("数据治理文件名称--附件材料:{}", projectFileName);
|
|
|
return;
|
|
return;
|
|
@@ -262,10 +598,6 @@ public class DealExcelServiceImpl {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
//矢量数据处理 -- 数据治理文件名
|
|
//矢量数据处理 -- 数据治理文件名
|
|
|
public void dealCurrentNodeGeom(String dzjgh, String nodeId) {
|
|
public void dealCurrentNodeGeom(String dzjgh, String nodeId) {
|
|
|
if (StringUtils.isBlank(dzjgh)) {
|
|
if (StringUtils.isBlank(dzjgh)) {
|
|
@@ -299,6 +631,13 @@ public class DealExcelServiceImpl {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 把FileName 文件移动到targetDirectoryPath目录下,并且返回移动后的全路径,前提是sourceFilePath目录下存在FileName文件
|
|
|
|
|
+ * @param sourceFilePath
|
|
|
|
|
+ * @param targetDirectoryPath
|
|
|
|
|
+ * @param FileName
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
public static String copyFileToDirectory(String sourceFilePath, String targetDirectoryPath, String FileName) {
|
|
public static String copyFileToDirectory(String sourceFilePath, String targetDirectoryPath, String FileName) {
|
|
|
String fullTargetFilePath = "";
|
|
String fullTargetFilePath = "";
|
|
|
try {
|
|
try {
|
|
@@ -309,7 +648,11 @@ public class DealExcelServiceImpl {
|
|
|
targetDir.mkdirs();
|
|
targetDir.mkdirs();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- FileUtils.copyDirectoryToDirectory(sourceDir, targetDir);
|
|
|
|
|
|
|
+ if(sourceDir.isDirectory()){
|
|
|
|
|
+ FileUtils.copyDirectoryToDirectory(sourceDir, targetDir);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ FileUtils.copyFileToDirectory(sourceDir, targetDir);
|
|
|
|
|
+ }
|
|
|
fullTargetFilePath = Paths.get(targetDirectoryPath, FileName).toString();
|
|
fullTargetFilePath = Paths.get(targetDirectoryPath, FileName).toString();
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
} catch (IOException e) {
|