|
@@ -0,0 +1,178 @@
|
|
|
|
|
+package com.siwei.apply.service.third.impl;
|
|
|
|
|
+
|
|
|
|
|
+import com.siwei.apply.domain.Project;
|
|
|
|
|
+import com.siwei.apply.domain.ProjectWorkflow;
|
|
|
|
|
+import com.siwei.apply.domain.vo.ProjectVo;
|
|
|
|
|
+import com.siwei.apply.domain.vo.TdgyVo;
|
|
|
|
|
+import com.siwei.apply.enums.AloneWorkFlowEnum;
|
|
|
|
|
+import com.siwei.apply.mapper.ProjectWorkflowMapper;
|
|
|
|
|
+import com.siwei.apply.service.NodeLandService;
|
|
|
|
|
+import com.siwei.apply.service.ProjectService;
|
|
|
|
|
+import com.siwei.apply.service.TdgyService;
|
|
|
|
|
+import com.siwei.apply.utils.HttpClientUtil;
|
|
|
|
|
+import com.siwei.common.core.utils.StringUtils;
|
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
+import org.apache.commons.collections4.CollectionUtils;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
|
+
|
|
|
|
|
+import java.util.Collections;
|
|
|
|
|
+import java.util.LinkedHashMap;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+import java.util.Map;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * excel 导入数据处理类
|
|
|
|
|
+ */
|
|
|
|
|
+@Slf4j
|
|
|
|
|
+@Service
|
|
|
|
|
+public class DealExcelServiceImpl{
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ProjectService projectService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ProjectWorkflowMapper projectWorkflowMapper;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private NodeLandService nodeLandService;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private TdgyService tdgyService;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 添加excel数据到数据库
|
|
|
|
|
+ * @param dataMap
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public String addExcelDataToDb(Map<String, List<Map<String, String>>> dataMap) {
|
|
|
|
|
+ List<Map<String, String>> xmList = Collections.singletonList((Map<String, String>) dataMap.get("项目信息"));
|
|
|
|
|
+ List<Map<String, String>> tdgyList = Collections.singletonList((Map<String, String>) dataMap.get("土地供应"));
|
|
|
|
|
+
|
|
|
|
|
+ int i = 0;
|
|
|
|
|
+
|
|
|
|
|
+ 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 {
|
|
|
|
|
+ log.error("项目类型不合法,项目类型只能是单独选址或者批次报批{}", projectType);
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ String projectName = xm.get("项目名称");
|
|
|
|
|
+ if(StringUtils.isBlank(projectName)){
|
|
|
|
|
+ projectName = "xxxxx"+System.currentTimeMillis();
|
|
|
|
|
+ log.warn("项目名称为空,默认设置为{}", projectName);
|
|
|
|
|
+ }
|
|
|
|
|
+ projectVo.setName(projectName);
|
|
|
|
|
+
|
|
|
|
|
+ String code = xm.get("项目代码");
|
|
|
|
|
+ projectVo.setCode(code);
|
|
|
|
|
+
|
|
|
|
|
+ String company = xm.get("建设单位");
|
|
|
|
|
+ projectVo.setCompany(company);
|
|
|
|
|
+ projectVo.setOnChainNum(0);
|
|
|
|
|
+
|
|
|
|
|
+ String projectId = projectService.add(projectVo);
|
|
|
|
|
+
|
|
|
|
|
+ // -----------------第一部分增加项目结束-------------------------------
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ TdgyVo tdgyVo = new TdgyVo();
|
|
|
|
|
+ Map<String, String> tdgyExcel = tdgyList.get(i);
|
|
|
|
|
+ tdgyExcel.get("项目ID");
|
|
|
|
|
+
|
|
|
|
|
+ // 土地受让人 土地用途(源版) 土地用途 建设位置 供地面积(平方米)(源数据) 供地面积 面积单位 供地方式 是否完成征转
|
|
|
|
|
+ // 用地划拨/出让方案批复文号 土地权属来源 "划拨决定书/出让合同编号
|
|
|
|
|
+ // (必填)" 划拨决定书/出让合同日期 供地单位
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ String id = tdgyService.add(tdgyVo);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ i++;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ public Map<String, String> getImmobileCode(String projectId) {
|
|
|
|
|
+ Map<String, String> retMap = new LinkedHashMap<>();
|
|
|
|
|
+
|
|
|
|
|
+ Project project = projectService.get(projectId);
|
|
|
|
|
+ String firstPlotCode = project.getFirstPlotCode();
|
|
|
|
|
+ String secondPlotCode = project.getSecondPlotCode();
|
|
|
|
|
+ String tableName = AloneWorkFlowEnum.NODE_2.getTableName(); // 土地供应图斑
|
|
|
|
|
+
|
|
|
|
|
+ List<ProjectWorkflow> projectWorkflows = projectWorkflowMapper.selectByProjectIdAndNodeTableName(projectId, tableName);
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(projectWorkflows)) {
|
|
|
|
|
+ String nodeId = projectWorkflows.get(0).getNodeId();
|
|
|
|
|
+ Map<String, Object> paramMap = new LinkedHashMap<>();
|
|
|
|
|
+ paramMap.put("batchId", projectId);
|
|
|
|
|
+ paramMap.put("plotCode", firstPlotCode + secondPlotCode);
|
|
|
|
|
+ paramMap.put("geoms", "");
|
|
|
|
|
+ Map<String, Object> geomInfo = nodeLandService.getGeomByNodeId(nodeId);
|
|
|
|
|
+ if (geomInfo.get("geoms") instanceof List) {
|
|
|
|
|
+ List<String> geoms = (List<String>) geomInfo.get("geoms");
|
|
|
|
|
+ paramMap.put("geoms", geoms);
|
|
|
|
|
+ }
|
|
|
|
|
+ // todo 这里调用 httpClient 进行远程调用
|
|
|
|
|
+ String result = HttpClientUtil.doGet("https://www.baidu.com", paramMap);
|
|
|
|
|
+ // log.error("解析节点附件json失败",e);
|
|
|
|
|
+ log.info("获取解析数据为:{}", result);
|
|
|
|
|
+ // 构造结果进行入库
|
|
|
|
|
+ }
|
|
|
|
|
+ retMap.put("code", "12345678");
|
|
|
|
|
+ retMap.put("projectId", projectId);
|
|
|
|
|
+ return retMap;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+}
|