|
|
@@ -9,6 +9,7 @@ import com.siwei.apply.mapper.CadastreFileMapper;
|
|
|
import com.siwei.apply.mapper.ConvergeMapper;
|
|
|
import com.siwei.apply.service.ConvergeService;
|
|
|
import com.siwei.apply.service.cadastre.impl.FzssFxrwrzHandleService;
|
|
|
+import com.siwei.apply.utils.MdbUtil;
|
|
|
import com.siwei.apply.utils.ServiceFileUtil;
|
|
|
import com.siwei.common.core.exception.ServiceException;
|
|
|
import com.siwei.common.core.utils.uuid.IdUtils;
|
|
|
@@ -174,7 +175,7 @@ public class ConvergeServiceImpl implements ConvergeService {
|
|
|
converge.setReadMessage("正在生成。。");
|
|
|
converge.setFileCostTime("0");
|
|
|
convergeMapper.add(converge);
|
|
|
- log.info("==========="+convergeId);
|
|
|
+ log.info("====convergeId=======:"+convergeId);
|
|
|
fzssFxrwrzHandleService.insertFxrwrz(convergeId, "地籍库管理", "汇交任务创建", "info");
|
|
|
fzssFxrwrzHandleService.insertFxrwrz(convergeId, "地籍库管理", "汇交数据执行开始。。。", "info");
|
|
|
|
|
|
@@ -199,7 +200,7 @@ public class ConvergeServiceImpl implements ConvergeService {
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- String basePath = convergedir + "/" + converge.getName()+"/"+"012345赣江新区"+"/";
|
|
|
+ String basePath = convergedir + converge.getName()+"/"+"012345赣江新区"+"/";
|
|
|
List<ConvergeRes> subConvergeTableList = new ArrayList<>();//衍生出的数据
|
|
|
|
|
|
//如果有汇交数据,针对每张表,计算生成路径
|
|
|
@@ -218,26 +219,25 @@ public class ConvergeServiceImpl implements ConvergeService {
|
|
|
convergeRes.setFilePath(basePath+"矢量空间数据/统一坐标");
|
|
|
convergeRes.setFileName("03"+ConvergeTableEnum.TABLE_2.getTableName());
|
|
|
}
|
|
|
-// else if(ConvergeTableEnum.TABLE_3.getTableName().equals(convergeRes.getTableName())){
|
|
|
-// //宗地
|
|
|
-// convergeRes.setFilePath(basePath+"矢量空间数据/统一坐标");
|
|
|
-// convergeRes.setFileName("03"+ConvergeTableEnum.TABLE_3.getTableName());
|
|
|
-// //todo 这里需要对宗地,根据情况进行拆分,出来一个新的List
|
|
|
-// convergeRes.setValid(-1);
|
|
|
-// subConvergeTableList.add(convergeRes);
|
|
|
-// } else if(ConvergeTableEnum.TABLE_4.getTableName().equals(convergeRes.getTableName())){
|
|
|
-// //房屋
|
|
|
-// convergeRes.setFilePath(basePath+"矢量空间数据/统一坐标");
|
|
|
-// convergeRes.setFileName("04"+ConvergeTableEnum.TABLE_4.getTableName());
|
|
|
-// }else {
|
|
|
-// convergeRes.setFilePath(basePath+"矢量空间数据/统一坐标");
|
|
|
-// convergeRes.setFileName("00"+convergeRes.getTableName());
|
|
|
-// }
|
|
|
+ else if(ConvergeTableEnum.TABLE_3.getTableName().equals(convergeRes.getTableName())){
|
|
|
+ //宗地
|
|
|
+ convergeRes.setFilePath(basePath+"矢量空间数据/统一坐标");
|
|
|
+ convergeRes.setFileName("03"+ConvergeTableEnum.TABLE_3.getTableName());
|
|
|
+ //todo 这里需要对宗地,根据情况进行拆分,出来一个新的List
|
|
|
+ convergeRes.setValid(-1);
|
|
|
+ subConvergeTableList.add(convergeRes);
|
|
|
+ } else if(ConvergeTableEnum.TABLE_4.getTableName().equals(convergeRes.getTableName())){
|
|
|
+ //房屋
|
|
|
+ convergeRes.setFilePath(basePath+"矢量空间数据/统一坐标");
|
|
|
+ convergeRes.setFileName("04"+ConvergeTableEnum.TABLE_4.getTableName());
|
|
|
+ }else {
|
|
|
+ convergeRes.setFilePath(basePath+"属性数据");
|
|
|
+ convergeRes.setFileName("00"+convergeRes.getTableName());
|
|
|
+ }
|
|
|
}
|
|
|
if(!subConvergeTableList.isEmpty()){
|
|
|
convergeTableList.addAll(subConvergeTableList);
|
|
|
}
|
|
|
-
|
|
|
//这里进行数据汇交
|
|
|
try {
|
|
|
operationFileStrategy(convergeTableList);
|
|
|
@@ -258,17 +258,18 @@ public class ConvergeServiceImpl implements ConvergeService {
|
|
|
for(ConvergeRes convergeRes : convergeTableList){
|
|
|
if(convergeRes.getType()==1){
|
|
|
writeShapefileByTable(convergeRes.getTableName(),convergeRes.getFilePath(),convergeRes.getFileName(),convergeRes.getColumnsList(),convergeRes.getDataList());
|
|
|
+ log.info("----------------矢量数据处理end。。。。。");
|
|
|
} else if (convergeRes.getType()==2) {
|
|
|
- //todo 222
|
|
|
- log.info("----------------属性数据暂无处理。。。。。");
|
|
|
+ buildMdbFile(convergeRes.getTableName(),convergeRes.getFilePath(),convergeRes.getFileName(),convergeRes.getColumnsList(),convergeRes.getDataList());
|
|
|
+ log.info("----------------属性数据处理end。。。。。");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
+ *
|
|
|
* 动态传入表名称,根据表结构生成 SHP 文件
|
|
|
* @param tableName 表名
|
|
|
* @param filePath 生成路径
|
|
|
@@ -441,6 +442,29 @@ public class ConvergeServiceImpl implements ConvergeService {
|
|
|
return String.class;
|
|
|
}
|
|
|
|
|
|
+ public void buildMdbFile(String tableName, String filePath, String fileName,List<Map<String, String>> columns,List<Map<String, Object>> dataList) {
|
|
|
+ try {
|
|
|
+ // 1. 构造完整的文件路径
|
|
|
+ String mdbPath = filePath;
|
|
|
+ if (!mdbPath.endsWith(File.separator)) {
|
|
|
+ mdbPath += File.separator;
|
|
|
+ }
|
|
|
+ mdbPath += fileName;
|
|
|
+ if (!mdbPath.toLowerCase().endsWith(".mdb")) {
|
|
|
+ mdbPath += ".mdb";
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2. 调用工具类生成 MDB 文件并写入数据
|
|
|
+ MdbUtil.writeMdbByTable(mdbPath, tableName, columns, dataList);
|
|
|
+
|
|
|
+ log.info("MDB 文件生成成功: {}", mdbPath);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("生成 MDB 文件失败: {}", tableName, e);
|
|
|
+ throw new ServiceException("生成 MDB 文件失败: " + e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|