|
|
@@ -5,13 +5,20 @@ import com.siwei.apply.domain.LandType;
|
|
|
import com.siwei.apply.domain.ProjectWorkflow;
|
|
|
import com.siwei.apply.domain.YdbpData;
|
|
|
import com.siwei.apply.domain.res.TdgyRes;
|
|
|
+import com.siwei.apply.domain.vo.GyjsydscdjVo;
|
|
|
+import com.siwei.apply.domain.vo.GyjsydjfwscdjVo;
|
|
|
+import com.siwei.apply.domain.vo.JsgcghxkVo;
|
|
|
+import com.siwei.apply.domain.vo.JsydghxkVo;
|
|
|
import com.siwei.apply.domain.vo.ProjectVo;
|
|
|
import com.siwei.apply.domain.vo.TdgyVo;
|
|
|
+import com.siwei.apply.domain.vo.TdhyhsVo;
|
|
|
+import com.siwei.apply.domain.vo.TjyydhxVo;
|
|
|
import com.siwei.apply.domain.vo.YdbpDataVo;
|
|
|
+import com.siwei.apply.domain.vo.YdbpVo;
|
|
|
+import com.siwei.apply.domain.vo.YdysyxzVo;
|
|
|
import com.siwei.apply.enums.AloneWorkFlowEnum;
|
|
|
import com.siwei.apply.mapper.CadastreFileMapper;
|
|
|
import com.siwei.apply.mapper.LandTypeMapper;
|
|
|
-import com.siwei.apply.mapper.ProjectWorkflowMapper;
|
|
|
import com.siwei.apply.service.*;
|
|
|
import com.siwei.common.core.constant.SecurityConstants;
|
|
|
import com.siwei.common.core.domain.R;
|
|
|
@@ -21,11 +28,8 @@ import com.siwei.spatial.api.domain.file.TGeomDb;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.apache.commons.io.FileUtils;
|
|
|
-import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
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.IOException;
|
|
|
@@ -37,7 +41,6 @@ import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import static com.siwei.apply.common.Common.UserId;
|
|
|
|
|
|
/**
|
|
|
* excel 导入数据处理类
|
|
|
@@ -56,9 +59,6 @@ public class DealExcelServiceImpl {
|
|
|
@Autowired
|
|
|
private ProjectService projectService;
|
|
|
|
|
|
- @Autowired
|
|
|
- private ProjectWorkflowMapper projectWorkflowMapper;
|
|
|
-
|
|
|
@Autowired
|
|
|
private LandTypeMapper landTypeMapper;
|
|
|
|
|
|
@@ -81,6 +81,30 @@ public class DealExcelServiceImpl {
|
|
|
@Autowired
|
|
|
private CadastreFileMapper cadastreFileMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private YdysyxzService ydysyxzService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private YdbpService ydbpService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private GyjsydscdjService gyjsydscdjService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private JsydghxkService jsydghxkService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private JsgcghxkService jsgcghxkService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private TdhyhsService tdhyhsService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private GyjsydjfwscdjService gyjsydjfwscdjService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private TjyydhxService tjyydhxService;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 报批数据导入
|
|
|
@@ -441,6 +465,43 @@ public class DealExcelServiceImpl {
|
|
|
return dateStr.matches("^\\d{4}年\\d{1,2}月\\d{1,2}日$");
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 校验面积单位(用于addExcelDataToDb)
|
|
|
+ */
|
|
|
+ private String validateAreaUnit(String areaStr, String unitStr, String areaLabel, String unitLabel) {
|
|
|
+ if (StringUtils.isBlank(areaStr)) {
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ boolean isNum;
|
|
|
+ try {
|
|
|
+ Float.parseFloat(areaStr);
|
|
|
+ isNum = true;
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
+ return StringUtils.isNotBlank(unitStr) ? unitStr : "";
|
|
|
+ }
|
|
|
+ if (isNum && StringUtils.isBlank(unitStr)) {
|
|
|
+ log.warn("{}(值:{})有值时,{}不能为空", areaLabel, areaStr, unitLabel);
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ if (isNum && !"亩".equals(unitStr) && !"公顷".equals(unitStr) && !"平方米".equals(unitStr)) {
|
|
|
+ log.warn("{}不合法: {},仅支持亩/公顷/平方米,设置为空", unitLabel, unitStr);
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ return unitStr;
|
|
|
+ }
|
|
|
+
|
|
|
+ private Float parseFloatField(String value, String fieldName) {
|
|
|
+ if (StringUtils.isBlank(value)) {
|
|
|
+ return 0f;
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ return Float.parseFloat(value);
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
+ log.warn("{}格式不正确: {},默认设置为0", fieldName, value);
|
|
|
+ return 0f;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 添加excel数据到数据库
|
|
|
@@ -453,6 +514,14 @@ public class DealExcelServiceImpl {
|
|
|
List<Map<String, String>> xmList = dataMap.get("项目信息");
|
|
|
List<Map<String, String>> tdgyList = dataMap.get("土地供应");
|
|
|
List<Map<String, String>> jdList = dataMap.get("阶段");
|
|
|
+ List<Map<String, String>> ydysyxzList = dataMap.get("用地预审与选址");
|
|
|
+ List<Map<String, String>> ydbpList = dataMap.get("用地报批");
|
|
|
+ List<Map<String, String>> gyjsydscdjList = dataMap.get("国有建设用地使用权首次登记");
|
|
|
+ List<Map<String, String>> jsydghxkList = dataMap.get("建设用地规划许可");
|
|
|
+ List<Map<String, String>> jsgcghxkList = dataMap.get("建设工程规划许可");
|
|
|
+ List<Map<String, String>> tdhyhsList = dataMap.get("土地核验与规划核实");
|
|
|
+ List<Map<String, String>> gyjsydjfwscdjList = dataMap.get("国有建设用地使用权及房屋所有权首次登记(会有多个不动产权证)(界面新参数)");
|
|
|
+ List<Map<String, String>> tjyydhxList = dataMap.get("规划条件与用地红线出具");
|
|
|
|
|
|
int i = 0;
|
|
|
|
|
|
@@ -756,62 +825,234 @@ public class DealExcelServiceImpl {
|
|
|
|
|
|
*/
|
|
|
|
|
|
+ // ----- 国有建设用地使用权首次登记 -----
|
|
|
+ if (CollectionUtils.isNotEmpty(gyjsydscdjList) && i < gyjsydscdjList.size()) {
|
|
|
+ Map<String, String> excel = gyjsydscdjList.get(i);
|
|
|
+ if (!isAllFieldsEmpty(excel)) {
|
|
|
+ String bdcdyh = excel.get("不动产单元号(必填)");
|
|
|
+ String bdczh = excel.get("不动产证号(必填)");
|
|
|
+ if (StringUtils.isNotBlank(bdcdyh) && StringUtils.isNotBlank(bdczh)) {
|
|
|
+ GyjsydscdjVo vo = new GyjsydscdjVo();
|
|
|
+ vo.setProjectId(projectId);
|
|
|
+ vo.setBdcdyh(bdcdyh);
|
|
|
+ vo.setBdczh(bdczh);
|
|
|
+ vo.setQlr(excel.get("权利人"));
|
|
|
+ vo.setGyqk(excel.get("共有情况"));
|
|
|
+ vo.setZl(excel.get("坐落"));
|
|
|
+ vo.setQllx(excel.get("权利类型"));
|
|
|
+ vo.setQlxz(excel.get("权利性质"));
|
|
|
+ vo.setTdyt(excel.get("土地用途"));
|
|
|
+ vo.setArea(parseFloatField(excel.get("面积"), "国有建设用地使用权首次登记-面积"));
|
|
|
+ vo.setAreaUnit(validateAreaUnit(excel.get("面积"), excel.get("面积单位"), "面积", "面积单位"));
|
|
|
+ vo.setDjjg(excel.get("登记机构"));
|
|
|
+ vo.setDjDate(excel.get("登记日期"));
|
|
|
+ String nodeId = gyjsydscdjService.add(vo);
|
|
|
+ if (CollectionUtils.isNotEmpty(jdList) && i < jdList.size()) {
|
|
|
+ dealCurrentNodeAttachment(projectId, nodeId, jdList.get(i).get("数据治理文件名"), "04国有建设用地使用权首次登记阶段");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- //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日) 格式
|
|
|
+ // ----- 建设用地规划许可 -----
|
|
|
+ if (CollectionUtils.isNotEmpty(jsydghxkList) && i < jsydghxkList.size()) {
|
|
|
+ Map<String, String> excel = jsydghxkList.get(i);
|
|
|
+ if (!isAllFieldsEmpty(excel)) {
|
|
|
+ String zsbh = excel.get("证书编号(必填)");
|
|
|
+ String fzDate = excel.get("发证日期(必填)");
|
|
|
+ if (StringUtils.isNotBlank(zsbh) && StringUtils.isNotBlank(fzDate) && isValidChineseDate(fzDate)) {
|
|
|
+ JsydghxkVo vo = new JsydghxkVo();
|
|
|
+ vo.setProjectId(projectId);
|
|
|
+ vo.setZsbh(zsbh);
|
|
|
+ vo.setFzDate(fzDate);
|
|
|
+ vo.setYddw(excel.get("用地单位"));
|
|
|
+ vo.setYdwz(excel.get("用地位置"));
|
|
|
+ vo.setYdArea(parseFloatField(excel.get("用地面积"), "建设用地规划许可-用地面积"));
|
|
|
+ vo.setYdUnit(validateAreaUnit(excel.get("用地面积"), excel.get("用地面积单位"), "用地面积", "用地面积单位"));
|
|
|
+ vo.setTdyt(excel.get("土地用途"));
|
|
|
+ vo.setTdhqfs(excel.get("土地获取方式"));
|
|
|
+ vo.setPzydjg(excel.get("批准用地机关"));
|
|
|
+ vo.setPzydwh(excel.get("批准用地文号"));
|
|
|
+ vo.setJsgm(excel.get("建设规模"));
|
|
|
+ vo.setFzjg(excel.get("发证机关"));
|
|
|
+ String nodeId = jsydghxkService.add(vo);
|
|
|
+ if (CollectionUtils.isNotEmpty(jdList) && i < jdList.size()) {
|
|
|
+ dealCurrentNodeAttachment(projectId, nodeId, jdList.get(i).get("数据治理文件名"), "05建设用地规划许可阶段");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- // -----------------第七部分校验(规划条件与用地红线出具)环节数据开始-------------------------------
|
|
|
- //todo 需要校验 (出具编号,出具日期)字段不能为空 ,并且日期满足(2019年9月4日) 格式
|
|
|
+ // ----- 建设工程规划许可 -----
|
|
|
+ if (CollectionUtils.isNotEmpty(jsgcghxkList) && i < jsgcghxkList.size()) {
|
|
|
+ Map<String, String> excel = jsgcghxkList.get(i);
|
|
|
+ if (!isAllFieldsEmpty(excel)) {
|
|
|
+ String zsbh = excel.get("证书编号(必填)");
|
|
|
+ String fzDate = excel.get("发证日期(必填)");
|
|
|
+ if (StringUtils.isNotBlank(zsbh) && StringUtils.isNotBlank(fzDate) && isValidChineseDate(fzDate)) {
|
|
|
+ JsgcghxkVo vo = new JsgcghxkVo();
|
|
|
+ vo.setProjectId(projectId);
|
|
|
+ vo.setZsbh(zsbh);
|
|
|
+ vo.setFzDate(fzDate);
|
|
|
+ vo.setYddw(excel.get("用地单位"));
|
|
|
+ vo.setYdwz(excel.get("用地位置"));
|
|
|
+ String qsStr = excel.get("期数");
|
|
|
+ if (StringUtils.isNotBlank(qsStr)) {
|
|
|
+ try { vo.setQs(Integer.parseInt(qsStr)); } catch (NumberFormatException e) {
|
|
|
+ log.warn("建设工程规划许可-期数格式不正确: {}", qsStr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ vo.setJsgm(excel.get("建设规模"));
|
|
|
+ vo.setFzjg(excel.get("发证机关"));
|
|
|
+ String nodeId = jsgcghxkService.add(vo);
|
|
|
+ if (CollectionUtils.isNotEmpty(jdList) && i < jdList.size()) {
|
|
|
+ dealCurrentNodeAttachment(projectId, nodeId, jdList.get(i).get("数据治理文件名"), "06建设工程规划许可阶段");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ // ----- 土地核验与规划核实 -----
|
|
|
+ if (CollectionUtils.isNotEmpty(tdhyhsList) && i < tdhyhsList.size()) {
|
|
|
+ Map<String, String> excel = tdhyhsList.get(i);
|
|
|
+ if (!isAllFieldsEmpty(excel)) {
|
|
|
+ String hgzh = excel.get("合格证号(必填)");
|
|
|
+ String fzDate = excel.get("发证日期(必填)");
|
|
|
+ if (StringUtils.isNotBlank(hgzh) && StringUtils.isNotBlank(fzDate) && isValidChineseDate(fzDate)) {
|
|
|
+ TdhyhsVo vo = new TdhyhsVo();
|
|
|
+ vo.setProjectId(projectId);
|
|
|
+ vo.setHgzh(hgzh);
|
|
|
+ vo.setFzDate(fzDate);
|
|
|
+ vo.setYdwz(excel.get("用地位置"));
|
|
|
+ vo.setFzjg(excel.get("发证机关"));
|
|
|
+ vo.setJsdw(excel.get("建设单位"));
|
|
|
+ vo.setGljsgcghxkh(excel.get("关联建设工程规划许可号"));
|
|
|
+ String nodeId = tdhyhsService.add(vo);
|
|
|
+ if (CollectionUtils.isNotEmpty(jdList) && i < jdList.size()) {
|
|
|
+ dealCurrentNodeAttachment(projectId, nodeId, jdList.get(i).get("数据治理文件名"), "07土地核验与规划核实阶段");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ // ----- 国有建设用地使用权及房屋所有权首次登记 -----
|
|
|
+ if (CollectionUtils.isNotEmpty(gyjsydjfwscdjList) && i < gyjsydjfwscdjList.size()) {
|
|
|
+ Map<String, String> excel = gyjsydjfwscdjList.get(i);
|
|
|
+ if (!isAllFieldsEmpty(excel)) {
|
|
|
+ String ywh = excel.get("业务号(必填)");
|
|
|
+ if (StringUtils.isNotBlank(ywh)) {
|
|
|
+ GyjsydjfwscdjVo vo = new GyjsydjfwscdjVo();
|
|
|
+ vo.setProjectId(projectId);
|
|
|
+ vo.setYwh(ywh);
|
|
|
+ vo.setKfdw(excel.get("开发单位"));
|
|
|
+ vo.setBdcqk(excel.get("不动产情况"));
|
|
|
+ vo.setJzmj(excel.get("建筑面积"));
|
|
|
+ vo.setJzmjDw(excel.get("建筑面积单位"));
|
|
|
+ vo.setTnmj(excel.get("套内面积"));
|
|
|
+ vo.setTnmjDw(excel.get("套内面积单位"));
|
|
|
+ vo.setFtmj(excel.get("分摊面积"));
|
|
|
+ vo.setFtmjDw(excel.get("分摊面积单位"));
|
|
|
+ vo.setBz(excel.get("备注(数据清单)"));
|
|
|
+ String nodeId = gyjsydjfwscdjService.add(vo);
|
|
|
+ if (CollectionUtils.isNotEmpty(jdList) && i < jdList.size()) {
|
|
|
+ dealCurrentNodeAttachment(projectId, nodeId, jdList.get(i).get("数据治理文件名"), "08国有建设用地使用权及房屋所有权首次登记阶段");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ // ----- 用地报批 (仅单独选址) -----
|
|
|
+ if (projectVo.getProjectType() == 1 && CollectionUtils.isNotEmpty(ydbpList) && i < ydbpList.size()) {
|
|
|
+ Map<String, String> excel = ydbpList.get(i);
|
|
|
+ if (!isAllFieldsEmpty(excel)) {
|
|
|
+ String pfwh = excel.get("批复文号(必填)");
|
|
|
+ String pfDate = excel.get("批复日期(必填)");
|
|
|
+ if (StringUtils.isNotBlank(pfwh) && StringUtils.isNotBlank(pfDate) && isValidChineseDate(pfDate)) {
|
|
|
+ YdbpVo vo = new YdbpVo();
|
|
|
+ vo.setProjectId(projectId);
|
|
|
+ vo.setPfwh(pfwh);
|
|
|
+ vo.setPfDate(pfDate);
|
|
|
+ vo.setTdyt(excel.get("土地用途"));
|
|
|
+ vo.setYdArea(parseFloatField(excel.get("用地面积"), "用地报批-用地面积"));
|
|
|
+ vo.setYdUnit(validateAreaUnit(excel.get("用地面积"), excel.get("用地面积单位"), "用地面积", "用地面积单位"));
|
|
|
+ vo.setZsArea(parseFloatField(excel.get("征收面积"), "用地报批-征收面积"));
|
|
|
+ vo.setZsUnit(validateAreaUnit(excel.get("征收面积"), excel.get("征收面积单位"), "征收面积", "征收面积单位"));
|
|
|
+ String hasZz = excel.get("是否完成征转");
|
|
|
+ if (StringUtils.isNotBlank(hasZz)) {
|
|
|
+ if ("是".equals(hasZz)) hasZz = "已报已征";
|
|
|
+ else if ("否".equals(hasZz)) hasZz = "未报未征";
|
|
|
+ else hasZz = "";
|
|
|
+ }
|
|
|
+ vo.setHasZz(hasZz);
|
|
|
+ vo.setBpDate(excel.get("报批日期"));
|
|
|
+ String nodeId = ydbpService.add(vo);
|
|
|
+ if (CollectionUtils.isNotEmpty(jdList) && i < jdList.size()) {
|
|
|
+ dealCurrentNodeAttachment(projectId, nodeId, jdList.get(i).get("数据治理文件名"), "01用地报批阶段");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ // ----- 用地预审与选址 (仅单独选址) -----
|
|
|
+ if (projectVo.getProjectType() == 1 && CollectionUtils.isNotEmpty(ydysyxzList) && i < ydysyxzList.size()) {
|
|
|
+ Map<String, String> excel = ydysyxzList.get(i);
|
|
|
+ if (!isAllFieldsEmpty(excel)) {
|
|
|
+ String zzwh = excel.get("证书文号");
|
|
|
+ String fzDate = excel.get("发证日期");
|
|
|
+ if (StringUtils.isNotBlank(zzwh) && StringUtils.isNotBlank(fzDate) && isValidChineseDate(fzDate)) {
|
|
|
+ YdysyxzVo vo = new YdysyxzVo();
|
|
|
+ vo.setProjectId(projectId);
|
|
|
+ vo.setZzwh(zzwh);
|
|
|
+ vo.setFzDate(fzDate);
|
|
|
+ vo.setJsdd(excel.get("建设地点"));
|
|
|
+ vo.setArea(parseFloatField(excel.get("拟用地面积"), "用地预审与选址-拟用地面积"));
|
|
|
+ vo.setAreaUnit(validateAreaUnit(excel.get("拟用地面积"), excel.get("面积单位"), "拟用地面积", "面积单位"));
|
|
|
+ String hasZz = excel.get("是否完成征转");
|
|
|
+ if (StringUtils.isNotBlank(hasZz)) {
|
|
|
+ if ("是".equals(hasZz)) hasZz = "已报已征";
|
|
|
+ else if ("否".equals(hasZz)) hasZz = "未报未征";
|
|
|
+ else hasZz = "";
|
|
|
+ }
|
|
|
+ vo.setHasZz(hasZz);
|
|
|
+ vo.setXmjsyj(excel.get("项目建设依据"));
|
|
|
+ String nodeId = ydysyxzService.add(vo);
|
|
|
+ if (CollectionUtils.isNotEmpty(jdList) && i < jdList.size()) {
|
|
|
+ dealCurrentNodeAttachment(projectId, nodeId, jdList.get(i).get("数据治理文件名"), "00用地预审与选址阶段");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ // ----- 规划条件与用地红线出具 (仅批次报批) -----
|
|
|
+ if (projectVo.getProjectType() == 2 && CollectionUtils.isNotEmpty(tjyydhxList) && i < tjyydhxList.size()) {
|
|
|
+ Map<String, String> excel = tjyydhxList.get(i);
|
|
|
+ if (!isAllFieldsEmpty(excel)) {
|
|
|
+ String cjbh = excel.get("出具编号");
|
|
|
+ String cjDate = excel.get("出具日期");
|
|
|
+ if (StringUtils.isNotBlank(cjbh) && StringUtils.isNotBlank(cjDate) && isValidChineseDate(cjDate)) {
|
|
|
+ TjyydhxVo vo = new TjyydhxVo();
|
|
|
+ vo.setProjectId(projectId);
|
|
|
+ vo.setCjbh(cjbh);
|
|
|
+ vo.setCjDate(cjDate);
|
|
|
+ vo.setDkbm(excel.get("地块编码"));
|
|
|
+ vo.setArea(parseFloatField(excel.get("用地面积"), "规划条件与用地红线出具-用地面积"));
|
|
|
+ vo.setAreaUnit(validateAreaUnit(excel.get("用地面积"), excel.get("面积单位"), "用地面积", "面积单位"));
|
|
|
+ vo.setYdxz(excel.get("用地性质"));
|
|
|
+ vo.setYdwz(excel.get("用地位置"));
|
|
|
+ String nodeId = tjyydhxService.add(vo);
|
|
|
+ if (CollectionUtils.isNotEmpty(jdList) && i < jdList.size()) {
|
|
|
+ dealCurrentNodeAttachment(projectId, nodeId, jdList.get(i).get("数据治理文件名"), "09规划条件与用地红线出具阶段");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i++;
|
|
|
- if (i > 2) {
|
|
|
+ if (i > 9) {
|
|
|
log.warn("目前只支持处理一条土地供应数据,后续增加处理逻辑");
|
|
|
break;
|
|
|
}
|