Prechádzať zdrojové kódy

Merge branch 'dev' of http://114.244.114.158:8802/siwei/sanya-data-management-back into dev

gushoubang 11 mesiacov pred
rodič
commit
efca3e6c2b
48 zmenil súbory, kde vykonal 3093 pridanie a 496 odobranie
  1. 2 10
      onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/controller/FzssController.java
  2. 2 2
      onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/HgxfxJgReportServiceImpl.java
  3. 3 3
      onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/ReportServiceImpl.java
  4. 1 1
      onemap-modules/onemap-apply/src/main/java/com/onemap/apply/service/impl/table/TableDataSelectServiceImpl.java
  5. 117 89
      onemap-modules/onemap-model/src/main/java/com/onemap/sanya/controller/SanYaController.java
  6. 17 54
      onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/BenchmarkLandPriceReport.java
  7. 38 0
      onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/BenchmarkLandPriceTotal.java
  8. 40 0
      onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/BCBZ.java
  9. 87 0
      onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/CompensateEstimateReport.java
  10. 21 0
      onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/CqZBData.java
  11. 13 0
      onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/GyList.java
  12. 19 0
      onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/QmResult.java
  13. 18 0
      onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/QmZBData.java
  14. 24 0
      onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/ZdResult.java
  15. 18 0
      onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/ZdZBData.java
  16. 31 0
      onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/cqResult.java
  17. 53 0
      onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/list.java
  18. 0 218
      onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CompensateEstimateReport.java
  19. 14 6
      onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/LandPriceEstimation.java
  20. 32 0
      onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/ghdkDetailedDjList.java
  21. 111 0
      onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/mergeCell/JZDJTableRenderPolicy.java
  22. 34 72
      onemap-modules/onemap-model/src/main/resources/template/word/03-征收补偿预估报告-02.docx
  23. 23 36
      onemap-modules/onemap-model/src/main/resources/template/word/04-基准地价报告-02.docx
  24. 98 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/controller/TTableController.java
  25. 99 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/controller/TTableFiledController.java
  26. 98 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/controller/TTableFiledRelationController.java
  27. 105 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/controller/TTableLayerController.java
  28. 152 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/domain/TTable.java
  29. 166 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/domain/TTableFiled.java
  30. 147 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/domain/TTableFiledRelation.java
  31. 164 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/domain/TTableLayer.java
  32. 61 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/mapper/TTableFiledMapper.java
  33. 62 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/mapper/TTableFiledRelationMapper.java
  34. 62 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/mapper/TTableLayerMapper.java
  35. 62 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/mapper/TTableMapper.java
  36. 62 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/service/ITTableFiledRelationService.java
  37. 62 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/service/ITTableFiledService.java
  38. 62 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/service/ITTableLayerService.java
  39. 62 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/service/ITTableService.java
  40. 91 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/service/impl/TTableFiledRelationServiceImpl.java
  41. 98 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/service/impl/TTableFiledServiceImpl.java
  42. 91 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/service/impl/TTableLayerServiceImpl.java
  43. 98 0
      onemap-modules/onemap-system/src/main/java/com/onemap/system/service/impl/TTableServiceImpl.java
  44. 102 0
      onemap-modules/onemap-system/src/main/resources/mapper/postgresql/system/TTableFiledMapper.xml
  45. 98 0
      onemap-modules/onemap-system/src/main/resources/mapper/postgresql/system/TTableFiledRelationMapper.xml
  46. 102 0
      onemap-modules/onemap-system/src/main/resources/mapper/postgresql/system/TTableLayerMapper.xml
  47. 97 0
      onemap-modules/onemap-system/src/main/resources/mapper/postgresql/system/TTableMapper.xml
  48. 74 5
      sql/pgsql/0_init.sql

+ 2 - 10
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/controller/FzssController.java

@@ -7,6 +7,7 @@ import com.onemap.analyse.domain.vo.DkReportVo;
 import com.onemap.analyse.domain.vo.SelectPilotVo;
 import com.onemap.analyse.service.IFzssService;
 import com.onemap.analyse.service.IReportService;
+import com.onemap.analyse.utils.DownloadUtils;
 import com.onemap.analyse.utils.UnitsUtil;
 import com.onemap.common.core.utils.file.FileUtils;
 import com.onemap.common.core.web.controller.BaseController;
@@ -112,15 +113,6 @@ public class FzssController extends BaseController {
     @GetMapping("/DownloadReport")
     public void fileDownload(String filePath, HttpServletResponse response) throws IOException {
         String realFileName = temp + filePath;
-        response.setCharacterEncoding("utf-8");
-        response.setContentType("multipart/form-data");
-        response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
-
-        String fileType = filePath.substring(filePath.lastIndexOf(".") + 1);
-        String time = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
-        String downloadName = time + "." + fileType;
-
-        response.setHeader("Content-Disposition", "attachment;fileName=\"" + downloadName + "\"");
-        FileUtils.writeBytes(realFileName, response.getOutputStream());
+        DownloadUtils.download(response, realFileName, null);
     }
 }

+ 2 - 2
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/HgxfxJgReportServiceImpl.java

@@ -50,7 +50,7 @@ public class HgxfxJgReportServiceImpl implements HgxfxJgReportService {
         String timeStamp = new Date().getTime() + "";
         String tempPath = temp;
         String rootPath = File.separator + "合规性分析报告" + File.separator + hgxfxReportVo.getBsm();
-        String docxName = "合规性报告_" + timeStamp + ".docx";
+        String docxName = "合规性分析报告_" + timeStamp + ".docx";
         File f = new File(tempPath + rootPath);
         if (!f.exists()) {
             f.mkdirs();
@@ -115,7 +115,7 @@ public class HgxfxJgReportServiceImpl implements HgxfxJgReportService {
 
             int pos = 0;
             // 0、文本标题
-            NpoiHelper.title(document, hgxfxReportVo.getXmmc() + "合规性分析报告", pos++);
+            NpoiHelper.title(document, "合规性分析报告", pos++);
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
 
             // 1、项目选址信息

+ 3 - 3
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/ReportServiceImpl.java

@@ -82,7 +82,7 @@ public class ReportServiceImpl implements IReportService {
             if (!f.exists()) {
                 f.mkdirs();
             }
-            String reportPath = res.getXmmc() + "选址报告_" + timeStamp + ".docx";
+            String reportPath = "选址报告_" + timeStamp + ".docx";
             // TODO ###选址报告耗时,暂时隐藏###
             createReport(res, allPath + "/" + reportPath, dkIds);
             // 生成返回结果
@@ -120,7 +120,7 @@ public class ReportServiceImpl implements IReportService {
             document = new XWPFDocument();
             int pos = 0;
             // 0、文本标题
-            NpoiHelper.title(document, res.getXmmc() + "选址报告", pos++);
+            NpoiHelper.title(document, "选址报告", pos++);
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
             // NpoiHelper.Option optionCENTER = new NpoiHelper.Option();
             // optionCENTER.setAlign(ParagraphAlignment.CENTER);
@@ -209,7 +209,7 @@ public class ReportServiceImpl implements IReportService {
             for (int i = 0; i < fzxzJgGisDTOList.size(); i++) {
                 SelectionResDTO item = fzxzJgGisDTOList.get(i);
 
-                String dkidStr= item.getDkid().toString();
+                String dkidStr = item.getDkid().toString();
                 List<String> dkidList = Arrays.asList(dkidStr.split(","));
                 // 地块信息
                 List<Map<String, String>> dkList = getDkList(item.getSjyb(), dkidList.get(0));

+ 1 - 1
onemap-modules/onemap-apply/src/main/java/com/onemap/apply/service/impl/table/TableDataSelectServiceImpl.java

@@ -805,7 +805,7 @@ public class TableDataSelectServiceImpl implements TableDataSelectService {
                 // 面积
                 TableDataVo tableDataVo = new TableDataVo();
                 tableDataVo.setData(new BigDecimal(String.valueOf(siweiarea)).setScale(2, RoundingMode.HALF_UP).doubleValue());
-                tableDataVo.setFiledZH("空间面积(平方米)");
+                tableDataVo.setFiledZH("面积(平方米)");
                 tableDataVo.setFiled("siweiarea");
                 v_dataList.add(tableDataVo);
             }

+ 117 - 89
onemap-modules/onemap-model/src/main/java/com/onemap/sanya/controller/SanYaController.java

@@ -1,6 +1,5 @@
 package com.onemap.sanya.controller;
 
-import com.alibaba.cloud.commons.io.FileUtils;
 import com.alibaba.fastjson.util.IOUtils;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
@@ -14,17 +13,15 @@ import com.deepoove.poi.template.MetaTemplate;
 import com.deepoove.poi.template.run.RunTemplate;
 import com.onemap.common.core.utils.StringUtils;
 import com.onemap.common.core.web.controller.BaseController;
-import com.onemap.common.core.web.domain.AjaxResult;
 import com.onemap.sanya.domain.*;
+import com.onemap.sanya.domain.CQBC.CompensateEstimateReport;
 import com.onemap.sanya.domain.mergeCell.AnalyseDetailTablePolicy;
-import com.onemap.system.api.domain.SysUser;
-import com.onemap.system.api.factory.RemoteLogFallbackFactory;
+import com.onemap.sanya.domain.mergeCell.JZDJTableRenderPolicy;
 import org.apache.poi.xwpf.usermodel.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.util.ClassUtils;
-import org.springframework.util.ResourceUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
@@ -38,7 +35,7 @@ import java.util.stream.Collectors;
 /**
  * @author Zzz
  */
-@CrossOrigin(origins = "*")
+//@CrossOrigin(origins = "*")
 @RestController
 @RequestMapping("/sanya")
 public class SanYaController extends BaseController {
@@ -136,20 +133,34 @@ public class SanYaController extends BaseController {
      * @param response
      */
     @RequestMapping("/exportWord3")
-    private void exportWord3(HttpServletRequest request, HttpServletResponse response) {
+    private void exportWord3(@RequestBody CompensateEstimateReport compensateEstimateReport, HttpServletRequest request, HttpServletResponse response) {
         try {
-            CompensateEstimateReport compensateEstimateReport = setWordData3();
+
+//            CompensateEstimateReport compensateEstimateReport = setWordData3();
             if (compensateEstimateReport == null) {
                 log.info("征收补偿预估报告数据为空,导出失败!");
                 return;
             }
+            //总费用预估
+            Double feeETC=compensateEstimateReport.getZdResult().getTotalPay()+compensateEstimateReport.getQmResult().getTotalPay()+compensateEstimateReport.getCqResult().getTotalPay();
+            compensateEstimateReport.setFeeETC(feeETC);
+            //房屋拆迁补偿费预估
+            compensateEstimateReport.setFeeECLA(compensateEstimateReport.getZdResult().getTotalPay());
+            //征地费用预估
+            compensateEstimateReport.setFeeECHD(compensateEstimateReport.getCqResult().getTotalPay());
+            //青苗补偿费预估
+            compensateEstimateReport.setFeeECYC(compensateEstimateReport.getQmResult().getTotalPay());
+
+
 
             ClassPathResource classPathResource = new ClassPathResource("template/word/"+"03-征收补偿预估报告-02.docx");
             InputStream inputStream = classPathResource.getInputStream();
 
 
             Configure configure = Configure.builder()
-                    .bind("tableList01", new LoopRowTableRenderPolicy()).build();
+                    .bind("cqZBData.BCBZ", new LoopRowTableRenderPolicy())
+                    .bind("cqResult.list", new LoopRowTableRenderPolicy())
+                    .build();
             // 通过 XWPFTemplate 编译文件并渲染数据到模板中
             XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(compensateEstimateReport);
             //生成临时文件存放地址
@@ -171,46 +182,63 @@ public class SanYaController extends BaseController {
     @RequestMapping("/exportWord4")
     private void exportWord4(@RequestBody BenchmarkLandPriceReport benchmarkLandPriceReport, HttpServletRequest request, HttpServletResponse response) {
         try {
-//            BenchmarkLandPriceReport benchmarkLandPriceReport = setWordData4();
             if (benchmarkLandPriceReport == null) {
                 log.info("基准地价报告数据为空,导出失败!");
                 return ;
             }
             List<PicData> picList = new ArrayList<>();
-            //将base64图片转为PictureRenderData
-            for (String base64ImageData:benchmarkLandPriceReport.getPicBase64List()) {
-                System.out.println("base64ImageData::::::::::::"+base64ImageData);
-                PictureRenderData pictureRenderData =Pictures.ofBase64(base64ImageData, PictureType.JPEG).size(300, 200).create();
-                picList.add(new PicData(pictureRenderData));
+            if(benchmarkLandPriceReport.getPicBase64List().size()>0){
+                //将base64图片转为PictureRenderData
+                for (String base64ImageData:benchmarkLandPriceReport.getPicBase64List()) {
+
+                    PictureRenderData pictureRenderData =Pictures.ofBase64(base64ImageData, PictureType.JPEG).size(300, 200).create();
+                    picList.add(new PicData(pictureRenderData));
+                }
+                benchmarkLandPriceReport.setPicList(picList);
             }
-            benchmarkLandPriceReport.setPicList(picList);
 
+            //组合地块价格详情
             ClassPathResource classPathResource = new ClassPathResource("template/word/"+"04-基准地价报告-02.docx");
             InputStream inputStream = classPathResource.getInputStream();
+            List<LandPriceEstimation> landPriceEstimationList = new ArrayList<>();
+            for (ghdkDetailedDjList ghdkDetailedDj: benchmarkLandPriceReport.getGhdkDetailedDjList()){
+                for (LandPriceEstimation landPriceEstimation :ghdkDetailedDj.getZytdList()){
+                    landPriceEstimation.setDkbm(ghdkDetailedDj.getDkbm());
+                    landPriceEstimation.setGhyt(ghdkDetailedDj.getGhyt());
+                    landPriceEstimationList.add(landPriceEstimation);
 
+                }
+            }
+            benchmarkLandPriceReport.setDetailedDJList(landPriceEstimationList);
+
+            //组合地块类型分组计算分组总价
+            Map<String, Double[]> groupSums = new HashMap<>();
 
+            // 遍历数组并按groupName分组,同时初始化value1和value2的和为0
+            for (LandPriceEstimation item : landPriceEstimationList) {
+                groupSums.putIfAbsent(item.getGhyt(), new Double[]{0.0, 0.0});
+                Double[] sums = groupSums.get(item.getGhyt());
+                sums[0] += item.getArea(); // 更新value1的和
+                sums[1] += item.getZdj(); // 更新value2的和
+            }
+
+            // 将Map转换为ArrayList
+            List<BenchmarkLandPriceTotal> benchmarkLandPriceTotals = new ArrayList<>();
+            for (Map.Entry<String, Double[]> entry : groupSums.entrySet()) {
+                benchmarkLandPriceTotals.add(new BenchmarkLandPriceTotal(entry.getKey(), entry.getValue()[0], entry.getValue()[1]));
+            }
+            benchmarkLandPriceReport.setBenchmarkLandPriceTotalList(benchmarkLandPriceTotals);
 
+
+
+            //导入表格渲染配置
             Configure configure = Configure.builder()
-                    .bind("tableList01", new LoopRowTableRenderPolicy())
-                    .bind("tableList02", new LoopRowTableRenderPolicy()).build();
+                    .bind("benchmarkLandPriceTotalList", new LoopRowTableRenderPolicy())
+                    .bind("DetailedDJList", new JZDJTableRenderPolicy()).build();
             // 通过 XWPFTemplate 编译文件并渲染数据到模板中
             XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(benchmarkLandPriceReport);
-            List<MetaTemplate> elementTemplates = template.getElementTemplates();
-            for (MetaTemplate elementTemplate : elementTemplates) {
-                String variable = elementTemplate.variable();
-                if ("{{tableList01}}".equals(variable) || "{{tableList02}}".equals(variable)) {
-                    RunTemplate runTemplate = (RunTemplate) elementTemplate;
-                    XWPFRun run = runTemplate.getRun();
-                    XWPFTableCell cell = (XWPFTableCell) ((XWPFParagraph) run.getParent()).getBody();
-                    List<XWPFTableRow> rows = cell.getTableRow().getTable().getRows();
-                    int rowIndex = rows.indexOf(cell.getTableRow());
-                    XWPFTable table = cell.getTableRow().getTable();
-                    table.removeRow(rowIndex);
-                }
-            }
-            //生成文件存放地址
-//            String temDir = this.getClass().getClassLoader().getResource("template/storageword/").getPath();
-            //ClassUtils.getDefaultClassLoader().getResource("").getPath() + "template/storageword/";;
+
+
             //生成文件名
             String wordName = "04-基准地价报告-02" + "-" + System.currentTimeMillis();
             writeWord(response, null, wordName, template);
@@ -476,61 +504,61 @@ public class SanYaController extends BaseController {
      *
      * @return
      */
-    private CompensateEstimateReport setWordData3() {
-        try {
-            CompensateEstimateReport compensateEstimateReport = new CompensateEstimateReport();
-//            // 模拟数据 读取静态JSON文件填充数据  根据resource文件路径,生成文件
-//            File jsonFile = ResourceUtils.getFile("classpath:template/json/word.json");
-//            // 解析文件为指定编码的字符串
-//            String json = FileUtils.readFileToString(jsonFile, "UTF-8");
-
-            ClassPathResource classPathResource = new ClassPathResource("template/json/word.json");
-            InputStream inputStream = classPathResource.getInputStream();
-            String json = org.apache.commons.io.IOUtils.toString(inputStream, StandardCharsets.UTF_8);
-
-            // 转换格式
-            JSONObject jsonObject = JSON.parseObject(json);
-            // 读取模拟数据 并赋值给导出对象
-            String wordDataJson = jsonObject.get("wordData3").toString();
-            compensateEstimateReport = JSON.parseObject(wordDataJson, CompensateEstimateReport.class);
-            //模拟读取静态图片 赋值给导出对象
-            String imgPath = ClassUtils.getDefaultClassLoader().getResource("").getPath() + "template/img/test.png";
-            PictureRenderData pictureRenderData = Pictures.ofLocal(imgPath).size(300, 200).create();
-            List<PicData> picList = new ArrayList<>();
-            picList.add(new PicData(pictureRenderData));
-            picList.add(new PicData(pictureRenderData));
-            picList.add(new PicData(pictureRenderData));
-            compensateEstimateReport.setPicList(picList);
-
-            //模拟 3.2房屋补偿费预估->各个房屋补偿情况 数据
-            List<HouseCompensate> tableList01 = new ArrayList<>();
-            for (int i = 0; i < 10; i++) {
-                tableList01.add(new HouseCompensate(i, "房屋编号" + i, "产权人" + i, new Random().nextInt(100), "房屋结构" + i, new Random().nextInt(100), "房屋地址" + i));
-            }
-            //根据各个房屋补偿情况统计面积,拆迁款等内容 初始为0
-            int numberEHD = 0;
-            int feeECHD = 0;
-            int totalFA = 0;
-            int averageFeeECHD = 0;
-            if (tableList01 != null && tableList01.size() > 0) {
-                numberEHD = tableList01.size();
-                feeECHD = tableList01.stream().mapToInt(obj -> obj.getFeeCHD() != null ? obj.getFeeCHD() : 0).sum();
-                totalFA = tableList01.stream().mapToInt(obj -> obj.getFloorArea() != null ? obj.getFloorArea() : 0).sum();
-                averageFeeECHD = feeECHD / totalFA;
-            }
-            // 赋值导出对象
-            compensateEstimateReport.setTableList01(tableList01);
-            compensateEstimateReport.setNumberEHD(numberEHD);
-            compensateEstimateReport.setFeeECHD(feeECHD);
-            compensateEstimateReport.setTotalFA(totalFA);
-            compensateEstimateReport.setAverageFeeECHD(averageFeeECHD);
-            return compensateEstimateReport;
-        } catch (Exception e) {
-            e.printStackTrace();
-            log.error("征收补偿预估报告封装异常,{}" + e);
-        }
-        return null;
-    }
+//    private CompensateEstimateReport setWordData3() {
+//        try {
+//            CompensateEstimateReport compensateEstimateReport = new CompensateEstimateReport();
+////            // 模拟数据 读取静态JSON文件填充数据  根据resource文件路径,生成文件
+////            File jsonFile = ResourceUtils.getFile("classpath:template/json/word.json");
+////            // 解析文件为指定编码的字符串
+////            String json = FileUtils.readFileToString(jsonFile, "UTF-8");
+//
+//            ClassPathResource classPathResource = new ClassPathResource("template/json/word.json");
+//            InputStream inputStream = classPathResource.getInputStream();
+//            String json = org.apache.commons.io.IOUtils.toString(inputStream, StandardCharsets.UTF_8);
+//
+//            // 转换格式
+//            JSONObject jsonObject = JSON.parseObject(json);
+//            // 读取模拟数据 并赋值给导出对象
+//            String wordDataJson = jsonObject.get("wordData3").toString();
+//            compensateEstimateReport = JSON.parseObject(wordDataJson, CompensateEstimateReport.class);
+//            //模拟读取静态图片 赋值给导出对象
+//            String imgPath = ClassUtils.getDefaultClassLoader().getResource("").getPath() + "template/img/test.png";
+//            PictureRenderData pictureRenderData = Pictures.ofLocal(imgPath).size(300, 200).create();
+//            List<PicData> picList = new ArrayList<>();
+//            picList.add(new PicData(pictureRenderData));
+//            picList.add(new PicData(pictureRenderData));
+//            picList.add(new PicData(pictureRenderData));
+//            compensateEstimateReport.setPicList(picList);
+//
+//            //模拟 3.2房屋补偿费预估->各个房屋补偿情况 数据
+//            List<HouseCompensate> tableList01 = new ArrayList<>();
+//            for (int i = 0; i < 10; i++) {
+//                tableList01.add(new HouseCompensate(i, "房屋编号" + i, "产权人" + i, new Random().nextInt(100), "房屋结构" + i, new Random().nextInt(100), "房屋地址" + i));
+//            }
+//            //根据各个房屋补偿情况统计面积,拆迁款等内容 初始为0
+//            int numberEHD = 0;
+//            int feeECHD = 0;
+//            int totalFA = 0;
+//            int averageFeeECHD = 0;
+//            if (tableList01 != null && tableList01.size() > 0) {
+//                numberEHD = tableList01.size();
+//                feeECHD = tableList01.stream().mapToInt(obj -> obj.getFeeCHD() != null ? obj.getFeeCHD() : 0).sum();
+//                totalFA = tableList01.stream().mapToInt(obj -> obj.getFloorArea() != null ? obj.getFloorArea() : 0).sum();
+//                averageFeeECHD = feeECHD / totalFA;
+//            }
+//            // 赋值导出对象
+//            compensateEstimateReport.setTableList01(tableList01);
+//            compensateEstimateReport.setNumberEHD(numberEHD);
+//            compensateEstimateReport.setFeeECHD(feeECHD);
+//            compensateEstimateReport.setTotalFA(totalFA);
+//            compensateEstimateReport.setAverageFeeECHD(averageFeeECHD);
+//            return compensateEstimateReport;
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//            log.error("征收补偿预估报告封装异常,{}" + e);
+//        }
+//        return null;
+//    }
 
     /**
      * 封装-基准地价报告导出数据

+ 17 - 54
onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/BenchmarkLandPriceReport.java

@@ -27,10 +27,8 @@ public class BenchmarkLandPriceReport {
      * 分析时间
      */
     private String analysisDate;
-    /**
-     * 项目类型
-     */
-    private String projectType;
+
+
     /**
      * 建设单位
      */
@@ -40,71 +38,36 @@ public class BenchmarkLandPriceReport {
      */
     private String analysisArea;
     /**
-     * 总地价(万元)
-     * 国有+集体 总地价预估合计
+     * 规划地块计算面积(平方米)
      */
-    private Double totalLandPrice;
+    private String ParticipationArea;
     /**
-     * 国有建设用地面积(平方米)
-     * 国有 土地面积合计
-     */
-    private Double areaSCL;
-    /**
-     * 国有建设用地基准地价(万元)
-     */
-    private Double baseLandPriceSCL;
-    /**
-     * 集体建设用地面积(平方米)
-     * 集体 土地面积合计
-     */
-    private Double areaCCL;
-    /**
-     * 集体建设用地基准地价(万元)
+     * 总地价(万元)
+     * 总地价预估合计
      */
-    private Double baseLandPriceCCL;
-
+    private Double totalLandPrice;
     /**
      * 图片集 分析范围
      */
     private List<PicData> picList;
     private List<String> picBase64List;
     /**
-     * 报告类型名称
+     * 规划地块信息列表
      */
-    private String definitionBLP;
-
-    /**
-     * 国有+集体土地面积合计 平方米
-     * tableList01 土地面积 + tableList01土地面积
-     */
-    private Double totalArea;
+    @Name("ghdkDetailedDjList")
+    private List<ghdkDetailedDjList> ghdkDetailedDjList;
 
 
+    //整合后传入渲染的字段
     /**
-     * 国有土地地价预估  万元
-     * 国有 总地价预估合计
-     * tableList01 总地价预估 累加
+     * 地块分类总价
      */
-    private Double landPriceESCL;
+    @Name("benchmarkLandPriceTotalList")
+    private List<BenchmarkLandPriceTotal> benchmarkLandPriceTotalList;
 
     /**
-     * 集体土地地价预估  万元
-     * 集体 总地价预估合计
-     * tableList02 总地价预估 累加
+     * 具体地价
      */
-    private Double landPriceECCL;
-
-    /**
-     * 国有建设用地
-     */
-    @Name("tableList01")
-    private List<LandPriceEstimation> tableList01;
-
-    /**
-     * 集体建设用地
-     */
-    @Name("tableList02")
-    private List<LandPriceEstimation> tableList02;
-
-
+    @Name("DetailedDJList")
+    private List<LandPriceEstimation> DetailedDJList;
 }

+ 38 - 0
onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/BenchmarkLandPriceTotal.java

@@ -0,0 +1,38 @@
+package com.onemap.sanya.domain;
+
+import com.deepoove.poi.expression.Name;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * 基准地价报告
+ *
+ * @author Zzz
+ * @create 2024/6/13 13:17
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class BenchmarkLandPriceTotal {
+
+
+    /**
+     * 规划地块名称
+     */
+    private String ghdkName;
+    /**
+     * 计算地块的总面积
+     */
+    private Double JStotalArea;
+
+
+    /**
+     * 计算地块的总价格
+     */
+    private Double JSprice;
+
+
+}

+ 40 - 0
onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/BCBZ.java

@@ -0,0 +1,40 @@
+package com.onemap.sanya.domain.CQBC;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class BCBZ {
+    @JsonProperty("TDCZ")
+    private Integer TDCZ;
+    @JsonProperty("TDBCBS")
+    private Integer TDBCBS;
+    @JsonProperty("TDBCF")
+    private Integer TDBCF;
+    @JsonProperty("AZBCBS")
+    private Integer AZBCBS;
+    @JsonProperty("AZBCF")
+    private Integer AZBCF;
+    @JsonProperty("BCHJ")
+    private Integer BCHJ;
+    @JsonProperty("NZW")
+    private Integer NZW;
+    @JsonProperty("JJZW")
+    private Integer JJZW;
+    @JsonProperty("SM")
+    private Integer SM;
+    @JsonProperty("ID")
+    private Integer ID;
+    @JsonProperty("JG")
+    private String JG;
+    @JsonProperty("GRADE")
+    private Integer GRADE;
+    @JsonProperty("BZ")
+    private Integer BZ;
+    @JsonProperty("DES")
+    private String DES;
+}

+ 87 - 0
onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/CompensateEstimateReport.java

@@ -0,0 +1,87 @@
+package com.onemap.sanya.domain.CQBC;
+
+
+import com.deepoove.poi.expression.Name;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * 征收补偿预估报告
+ *
+ * @author Zzz
+ * @create 2024/6/13 13:15
+ */
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class CompensateEstimateReport {
+    /**
+     * 项目名称
+     */
+    private String name;
+    /**
+     * 分析时间
+     */
+    private String date;
+
+    /**
+     * 总费用预估(万元)
+     */
+    private Double feeETC;
+
+    /**
+     * 征地补偿费预估(万元)
+     */
+    private Double feeECLA;
+    /**
+     * 房屋拆迁补偿费预估(万元)
+     * 预计拆迁房屋 预计拆迁房屋合计
+     */
+    private Double feeECHD;
+
+    /**
+     * 青苗补偿费预估(万元)
+     */
+    private Double feeECYC;
+    /**
+     * 拆迁结果
+     */
+    @Name("cqResult")
+    private cqResult cqResult;
+
+    /**
+     * 拆迁标准
+     */
+    @Name("cqZBData")
+    private CqZBData cqZBData;
+
+    /**
+     * 青苗结果
+     */
+    @Name("qmResult")
+    private QmResult qmResult;
+
+    /**
+     * 青苗标准
+     */
+    @Name("qmZBData")
+    private QmZBData qmZBData;
+
+    /**
+     * 征地结果
+     */
+    @Name("zdResult")
+    private ZdResult zdResult;
+
+    /**
+     * 征地标准
+     */
+    @Name("zdZBData")
+    private ZdZBData zdZBData;
+
+
+}

+ 21 - 0
onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/CqZBData.java

@@ -0,0 +1,21 @@
+package com.onemap.sanya.domain.CQBC;
+
+import com.deepoove.poi.expression.Name;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class CqZBData {
+    private String label;
+    private String value;
+//    @Name("BCBZ")
+    @JsonProperty("BCBZ")
+    private List<BCBZ> BCBZ;
+}

+ 13 - 0
onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/GyList.java

@@ -0,0 +1,13 @@
+package com.onemap.sanya.domain.CQBC;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class GyList {
+    private String qsdwmc;
+    private Double mj;
+}

+ 19 - 0
onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/QmResult.java

@@ -0,0 +1,19 @@
+package com.onemap.sanya.domain.CQBC;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class QmResult {
+    private Double totalPay;
+    private Double totalMJ;
+    private Double nzwMJ;
+    private Double nzwPay;
+    private Double jjzwMJ;
+    private Double jjzwPay;
+    private Double smMJ;
+    private Double smPay;
+}

+ 18 - 0
onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/QmZBData.java

@@ -0,0 +1,18 @@
+package com.onemap.sanya.domain.CQBC;
+
+import com.deepoove.poi.expression.Name;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class QmZBData {
+    private String label;
+    private String value;
+//    @Name("BCBZ")
+    @JsonProperty("BCBZ")
+    private BCBZ BCBZ;
+}

+ 24 - 0
onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/ZdResult.java

@@ -0,0 +1,24 @@
+package com.onemap.sanya.domain.CQBC;
+
+import com.deepoove.poi.expression.Name;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ZdResult {
+    private Double gyMJ;
+    private Double jtMJ;
+    private Double totalZDMJ;
+    private Double totalPay;
+    private Double totalZDOay;
+    private Double totalAZPay;
+    @Name("list")
+    private List<list> list;
+    @Name("gyList")
+    private List<GyList> gyList;
+}

+ 18 - 0
onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/ZdZBData.java

@@ -0,0 +1,18 @@
+package com.onemap.sanya.domain.CQBC;
+
+import com.deepoove.poi.expression.Name;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ZdZBData {
+    private String label;
+    private String value;
+//    @Name("BCBZ")
+    @JsonProperty("BCBZ")
+    private BCBZ BCBZ;
+}

+ 31 - 0
onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/cqResult.java

@@ -0,0 +1,31 @@
+package com.onemap.sanya.domain.CQBC;
+
+
+import com.deepoove.poi.expression.Name;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * 拆迁结果
+ *
+ * @author Zzz
+ * @create 2024/6/13 13:15
+ */
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class cqResult {
+
+    private Double average;
+
+    private Integer count;
+    @Name("list")
+    private List<list> list;
+
+    private Double totalJZMJ;
+    private Double totalPay;
+}

+ 53 - 0
onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CQBC/list.java

@@ -0,0 +1,53 @@
+package com.onemap.sanya.domain.CQBC;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * 涉及房屋列表
+ *
+ * @author Zzz
+ * @create 2024/6/13 13:15
+ */
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class list {
+    /**
+     * 唯一值
+     */
+    private String id;
+    /**
+     * 结构
+     */
+    private String jg;
+    /**
+     * 房屋地址
+     */
+    private String address;
+
+    private String cqr;
+    /**
+     * 层数
+     */
+    private Integer floor;
+
+    /**
+     * 层数
+     */
+    private Integer fwdj;
+
+    private Double jzmj;
+    private Double zdmj;
+    private Double pay;
+    private Integer single;
+
+    private String dlbm;
+    private String dlmc;
+    private Double mj;
+}

+ 0 - 218
onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/CompensateEstimateReport.java

@@ -1,218 +0,0 @@
-package com.onemap.sanya.domain;
-
-
-import com.deepoove.poi.expression.Name;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.util.List;
-
-/**
- * 征收补偿预估报告
- *
- * @author Zzz
- * @create 2024/6/13 13:15
- */
-
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-public class CompensateEstimateReport {
-    /**
-     * 项目名称
-     */
-    private String projectName;
-    /**
-     * 分析时间
-     */
-    private String analysisDate;
-
-    /**
-     * 分析面积(平方米)
-     */
-    private String analysisArea;
-    /**
-     * 总费用预估(万元)
-     */
-    private String feeETC;
-
-    /**
-     * 征地补偿费预估(万元)
-     */
-    private String feeECLA;
-    /**
-     * 房屋拆迁补偿费预估(万元)
-     * 预计拆迁房屋 预计拆迁房屋合计
-     */
-    private Integer feeECHD;
-
-    /**
-     * 青苗补偿费预估(万元)
-     */
-    private String feeECYC;
-
-
-    /**
-     * 图片集
-     */
-    private List<PicData> picList;
-
-    /**
-     * 年产值(元/亩)
-     */
-    private String annualValue;
-
-    /**
-     * 土地补偿费
-     * 综合补偿倍数
-     */
-    private String multipleLC;
-    /**
-     * 土地补偿费
-     * 元/亩
-     */
-    private String priceLC;
-    /**
-     * 安置补助费
-     * 综合补偿倍数
-     */
-    private String multipleRC;
-
-    /**
-     * 安置补助费
-     * 元/亩
-     */
-    private String priceRC;
-
-    /**
-     * 土地补偿费及安置补助费合计(元/亩)
-     */
-    private String priceLCRC;
-
-
-    /**
-     * 土地补偿费合计
-     */
-    private String feeLC;
-    /**
-     * 安置补偿费合计万元
-     */
-    private String feeRC;
-
-
-    /**
-     * 框架结构1级
-     */
-    private String priceFrame01;
-
-    /**
-     * 框架结构2级
-     */
-    private String priceFrame02;
-
-    /**
-     * 混合结构1级
-     */
-    private String priceComposite01;
-
-    /**
-     * 混合结构3级
-     */
-    private String priceComposite03;
-
-    /**
-     * 砖木结构1级
-     */
-    private String priceBrickWood01;
-
-    /**
-     * 砖木结构2级
-     */
-    private String priceBrickWood02;
-
-    /**
-     * 简易结构1级
-     */
-    private String priceSimple01;
-
-    /**
-     * 简易结构2级
-     */
-    private String priceSimple02;
-
-    /**
-     * 凉棚1级
-     */
-    private String priceShelter01;
-
-    /**
-     * 凉棚2级
-     */
-    private String priceShelter02;
-
-    /**
-     * 预计拆迁房屋个数 合计/个
-     */
-    private Integer numberEHD;
-    /**
-     * 预计拆迁房屋 建筑面积合计 /平方米
-     */
-    private Integer totalFA;
-
-
-    /**
-     * 预计拆迁房屋 平均补偿费用 万元/平方米
-     * 拆迁补偿费用合计 / 建筑面积合计
-     */
-    private Integer averageFeeECHD;
-
-    /**
-     * 各个房屋补偿情况
-     */
-    @Name("tableList01")
-    private List<HouseCompensate> tableList01;
-
-    /**
-     * 青苗补偿费预估标准 农作物补偿标准(元/亩)
-     */
-    private String priceCC;
-    /**
-     * 青苗补偿费预估标准 经济作物补偿标准(元/亩)
-     */
-    private String priceECC;
-    /**
-     * 青苗补偿费预估标准 林木补偿标准(元/亩)
-     */
-    private String priceFC;
-
-
-    /**
-     * 青苗补偿费预估 预估农作物补偿面积 平方米
-     */
-    private String areaCC;
-    /**
-     * 青苗补偿费预估 预估农作物补偿金额 万元
-     */
-    private String feeCC;
-    /**
-     * 青苗补偿费预估 预估经济作物补偿面积 平方米
-     */
-    private String areaECC;
-    /**
-     * 青苗补偿费预估 预估经济作物补偿金额 万元
-     */
-    private String feeECC;
-
-    /**
-     * 青苗补偿费预估 预估林木补偿面积 平方米
-     */
-    private String areaFC;
-
-    /**
-     * 青苗补偿费预估 预估林木补偿金额 万元
-     */
-    private String feeFC;
-
-
-}

+ 14 - 6
onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/LandPriceEstimation.java

@@ -13,20 +13,28 @@ import lombok.NoArgsConstructor;
 @NoArgsConstructor
 @AllArgsConstructor
 public class LandPriceEstimation {
+    /**
+     * 地块编码
+     */
+    private String dkbm;
+    /**
+     * 规划用途名称
+     */
+    private String ghyt;
     /**
      * 级别
      */
-    private String lv;
+    private String tdjb;
     /**
-     * 地价(元/平方米)
+     * 地价(元/
      */
-    private Double landPrice;
+    private Double dj;
     /**
-     * 土地面积(平方米
+     * 土地面积(
      */
     private Double area;
     /**
-     * 土地面积(平方米
+     * 总地价(亩
      */
-    private Double landPriceES;
+    private Double zdj;
 }

+ 32 - 0
onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/ghdkDetailedDjList.java

@@ -0,0 +1,32 @@
+package com.onemap.sanya.domain;
+
+import com.deepoove.poi.expression.Name;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * 用地地价预估
+ * @author ldy
+ * @create 2024/7/19 15:12
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ghdkDetailedDjList {
+    /**
+     * 地块编码
+     */
+    private String dkbm;
+    /**
+     * 规划用途名称
+     */
+    private String ghyt;
+    /**
+     * 规划地块下具体地价
+     */
+    @Name("zytdList")
+    private List<LandPriceEstimation> zytdList;
+}

+ 111 - 0
onemap-modules/onemap-model/src/main/java/com/onemap/sanya/domain/mergeCell/JZDJTableRenderPolicy.java

@@ -0,0 +1,111 @@
+package com.onemap.sanya.domain.mergeCell;
+
+import com.deepoove.poi.data.RenderData;
+import com.deepoove.poi.data.RowRenderData;
+import com.deepoove.poi.data.Rows;
+import com.deepoove.poi.data.style.CellStyle;
+import com.deepoove.poi.data.style.ParagraphStyle;
+import com.deepoove.poi.data.style.RowStyle;
+import com.deepoove.poi.policy.DynamicTableRenderPolicy;
+
+import com.deepoove.poi.policy.TableRenderPolicy;
+import com.deepoove.poi.util.TableTools;
+import com.onemap.sanya.domain.AnalyseData;
+import com.onemap.sanya.domain.LandPriceEstimation;
+import com.onemap.sanya.domain.MageData;
+import com.onemap.sanya.domain.ghdkDetailedDjList;
+import org.apache.poi.xwpf.usermodel.*;
+
+
+        import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 表格动态行插入、渲染、合并单元格处理
+ *
+ * @author Zzz
+ */
+public class JZDJTableRenderPolicy extends DynamicTableRenderPolicy {
+
+    // 填充数据所在行数
+    int startRow = 1;
+
+    List<RowRenderData> rowList = new ArrayList<>();
+    List<MageData> mageList = new ArrayList<>();
+
+    @Override
+    public void render(XWPFTable table, Object data) throws Exception {
+        if (null == data) {
+            return;
+        }
+        //转换数据格式
+        List<LandPriceEstimation> dataList = (List<LandPriceEstimation>) data;
+        if (null != dataList && dataList.size() > 0) {
+            table.removeRow(startRow);
+            //设置表格样式
+            RowStyle rowStyle = new RowStyle();
+            CellStyle cellStyle = new CellStyle();
+            cellStyle.setDefaultParagraphStyle(ParagraphStyle.builder()
+                    .withIndentFirstLineChars(0)
+                    .withAlign(ParagraphAlignment.LEFT)
+                    .build());
+            rowStyle.setDefaultCellStyle(cellStyle);
+            for (LandPriceEstimation landPriceEstimation : dataList) {
+                    RowRenderData build = Rows.create(
+                            landPriceEstimation.getDkbm(),
+                            landPriceEstimation.getGhyt(),
+                            String.format("%.2f", landPriceEstimation.getArea()),
+                            landPriceEstimation.getTdjb(),
+                            String.format("%.2f", landPriceEstimation.getDj()),
+                            String.format("%.2f", landPriceEstimation.getZdj())
+                             );
+                    build.setRowStyle(rowStyle);
+                    rowList.add(build);
+
+            }
+            //设置合并列计数器
+            Map<String, Long> collectMap = dataList.stream().collect(Collectors.groupingBy(LandPriceEstimation::getDkbm, Collectors.counting()));
+
+
+
+            for (String key : collectMap.keySet()) {
+                Long aLong = collectMap.get(key);
+                MageData mageData = new MageData(key, aLong);
+                mageList.add(mageData);
+            }
+
+            if (null != rowList && rowList.size() > 0) {
+                //因为是一行行写入数据,所以采用倒序方式从最后一条数据开始 数据共6列 所以j<6
+                for (int i = rowList.size() - 1; i >= 0; i--) {
+                    XWPFTableRow insertNewTableRow = table.insertNewTableRow(startRow);
+                    for (int j = 0; j < 6; j++) {
+                        insertNewTableRow.createCell();
+                    }
+                    TableRenderPolicy.Helper.renderRow(table.getRow(startRow), rowList.get(i));
+                }
+                //处理合并
+                for (int i = 0; i < rowList.size(); i++) {
+                    RenderData renderData = rowList.get(i).getCells().get(0).getParagraphs().get(0).getContents().get(0);
+                    String renderDataStr = renderData.toString();
+                    for (int j = 0; j < mageList.size(); j++) {
+                        MageData mageData = mageList.get(j);
+                        String mageName = mageData.getMageName();
+                        Long size = mageData.getSize();
+                        if (renderDataStr.equals(mageName)) {
+                            if (size != null && size > 1) {
+                                // 合并第0,1列 的第i+1行到第i+size
+                                TableTools.mergeCellsVertically(table, 0, i + 1, i + size.intValue());
+                                TableTools.mergeCellsVertically(table, 1, i + 1, i + size.intValue());
+                                mageList.remove(j);
+                                break;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}

+ 34 - 72
onemap-modules/onemap-model/src/main/resources/template/word/03-征收补偿预估报告-02.docx

@@ -1,12 +1,9 @@
 征收补偿预估报告
 征收补偿信息
                                  项目名称
-                                {{projectName}}
+                                   {{name}}
                                  分析时间
-{{analysisDate}}
-                                 分析面积
-                                (平方米)
-                               {{analysisArea}}
+{{date}}
                                 总费用预估
                                  (万元)
 {{feeETC}}
@@ -19,8 +16,8 @@
                                   {{feeECYC}}
                                        
 
-分析范围
-{{?picList}}{{@img}}{{/picList}}
+
+
 征地补偿费预估
   征地补偿费预估标准
   按征地统一年产值土地补偿费、安置补助费标准,具体如下表:
@@ -34,85 +31,50 @@
                               综合补偿倍数
                                     元/亩
                                        
-                                {{annualValue}}
-                                {{multipleLC}}
-                                  {{priceLC}}
-                                {{multipleRC}}
-                                  {{priceRC}}
-{{priceLCRC}}
+                            {{zdZBData.BCBZ.TDCZ}}
+                           {{zdZBData.BCBZ.TDBCBS}}
+                            {{zdZBData.BCBZ.TDBCF}}
+                           {{zdZBData.BCBZ.AZBCBS}}
+                            {{zdZBData.BCBZ.AZBCF}}
+{{zdZBData.BCBZ.BCHJ}}
   征地补偿费预估
-  预计征地补偿费用合计{{feeECLA}},其中:土地补偿费共{{feeLC}}万元;安置补偿费共{{feeRC}}万元。
-                                       
-                    图1 项目土地现状补偿面积情况
+  预计征地补偿费用合计{{zdResult.totalPay}},其中:土地补偿费共{{zdResult.totalZDOay}}万元;安置补偿费共{{zdResult.totalAZPay}}万元。
 房屋拆迁补偿费预估
   房屋拆迁补偿费预估标准
- 按级别1进行评估,具体标准如下:
-                                 房屋结构
+ 按{{cqZBData.label}}标准进行评估,具体标准如下:
+                         {{cqZBData.BCBZ}}房屋结构
                                     级别
-                           单价(元/平方米)
-                                 框架结构
-                                       1
-{{priceFrame01}}
-                                       
-                                       2
-{{priceFrame02}}
-                                 混合结构
-                                       1
-{{priceComposite01}}
-                                       
-                                       3
-{{priceComposite03}}
-                                 砖木结构
-                                       1
-{{priceBrickWood01}}
-                                       
-                                       2
-{{priceBrickWood02}}
-                                 简易结构
-                                       1
-{{priceSimple01}}
-                                       
-                                       2
-{{priceSimple02}}
-                                    凉棚
-                                       1
-{{priceShelter01}}
-                                       
-                                       2
-{{priceShelter02}}
+                                    单价
+                                 (元/亩)
+                       结构及装饰特征(规格)
+                                     [JG]
+                                    [GRADE]
+                                     [BZ]
+[DES]
   房屋补偿费预估
-  预计拆迁房屋共{{numberEHD}}个,总建筑面积{{totalFA}}平方米,房屋拆迁补偿费用共{{feeECHD}}万元,平均补偿费用{{averageFeeECHD}}万元/平方米
+  预计拆迁房屋共{{cqResult.count}}个,总建筑面积{{cqResult.totalJZMJ}}亩,房屋拆迁补偿费用共{{cqResult.totalPay}}万元,平均补偿费用{{cqResult.average}}万元/亩。
   各个房屋补偿情况如下表。
-{{tableList01}}序号
-房屋编号
-产权人
+{{cqResult.list}}房屋结构
 拆迁补偿费用
-房屋结构
+层数
+占地面积(m²)
 建筑面积(m²)
 房屋地址
-[id]
-[bldCode]
-[propertyOwner]
-[feeCHD]
-[bldStructure]
-[floorArea]
-[bldAddress]
-
-
-
-
-
-
-
+[jg]
+[pay]
+[floor]
+[zdmj]
+[jzmj]
+[address]
 青苗补偿费预估
   青苗补偿费预估标准
                          农作物补偿(元/亩)
                         经济作物补偿(元/亩)
                            林木补偿(元/亩)
-                                  {{priceCC}}
-                                 {{priceECC}}
-                                  {{priceFC}}
+                             {{qmZBData.BCBZ.NZW}}
+                            {{qmZBData.BCBZ.JJZW}}
+                             {{qmZBData.BCBZ.SM}}
   青苗补偿费预估
-  预计青苗补偿费用合计{{feeECYC}}万元,其中:农作物补偿{{areaCC}}平方米,共{{feeCC}}万元;经济作物补偿{{areaECC}}平方米,共{{feeECC}}万元;林木{{areaFC}}平方米,补偿共{{feeFC}}万元。
+  预计青苗补偿费用合计{{qmResult.totalPay}}万元,其中:农作物补偿{{qmResult.nzwMJ}}亩,共{{qmResult.nzwPay}}万元;经济作物补偿{{qmResult.jjzwMJ}}亩,共{{qmResult.jjzwPay}}万元;林木{{qmResult.smMJ}}亩,补偿共{{qmResult.smPay}}万元。
   
   

+ 23 - 36
onemap-modules/onemap-model/src/main/resources/template/word/04-基准地价报告-02.docx

@@ -56,47 +56,34 @@
 {{analysisArea}}
 总地价(万元)
 {{totalLandPrice}}
-国有建设用地面积(亩)
-{{areaSCL}}
-国有建设用地基准地价(万元)
-{{baseLandPriceSCL}}
-集体建设用地面积(亩)
-{{areaCCL}}
-集体建设用地基准地价(万元)
-{{baseLandPriceCCL}}
 分析范围
 {{?picList}}{{@img}}{{/picList}}
-3 {{definitionBLP}}用地地价预估情况
-  {{definitionBLP}}用地共{{totalArea}}亩,土地地价预估{{totalLandPrice}}万元,其中:{{definitionBLP}}国有建设用地共{{areaSCL}}亩,土地地价预估{{landPriceESCL}}万元;{{definitionBLP}}集体建设用地共{{areaCCL}}亩,土地地价预估{{landPriceECCL}}万元。具体如下:
-                                        
-                                        
-表1 {{definitionBLP}}用地地价预估情况{{definitionBLP}}用地预估情况
-土地权属
-                                    级别
-                              地价(元/亩)
-                             土地面积(亩)
-                          总地价预估(万元)
-{{tableList01}}
-国有建设用地
-[lv]
-[landPrice]
-[area]
-[landPriceES]
-
-
+3 基准地价总体情况
+{{benchmarkLandPriceTotalList}}规划地块类型
+地价(万元)
+土地面积(亩)
+[ghdkName]
+[JSprice]
+[JStotalArea]
 
 
 
-{{tableList02}}
-集体建设用地
-[lv]
-[landPrice]
+  
+  具体如下:
+                         表1 用地地价预估情况
+{{DetailedDJList}}地块编码
+                                 地类名称
+                             土地面积(亩)
+                                    土地
+                                    级别
+                                    单价
+                                 (万元)
+                          总地价预估(万元)
+[dkbm]
+[ghyt]
 [area]
-[landPriceES]
-                                       
-                                       
-                                       
-                                       
-                                       
+[tdjb]
+[dj]
+[zdj]
                                         
  

+ 98 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/controller/TTableController.java

@@ -0,0 +1,98 @@
+package com.onemap.system.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.onemap.common.core.utils.poi.ExcelUtil;
+import com.onemap.common.core.web.controller.BaseController;
+import com.onemap.common.core.web.domain.AjaxResult;
+import com.onemap.common.core.web.page.TableDataInfo;
+import com.onemap.common.log.annotation.Log;
+import com.onemap.common.log.enums.BusinessType;
+import com.onemap.common.security.annotation.RequiresPermissions;
+import com.onemap.system.domain.TTable;
+import com.onemap.system.service.ITTableService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 【请填写功能名称】Controller
+ *
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+@RestController
+@RequestMapping("/table")
+public class TTableController extends BaseController {
+    @Autowired
+    private ITTableService tTableService;
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @RequiresPermissions("@ss.hasPermi('system:table:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TTable tTable) {
+        startPage();
+        List<TTable> list = tTableService.selectTTableList(tTable);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出【请填写功能名称】列表
+     */
+    @RequiresPermissions("@ss.hasPermi('system:table:export')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TTable tTable) {
+        List<TTable> list = tTableService.selectTTableList(tTable);
+        ExcelUtil<TTable> util = new ExcelUtil<TTable>(TTable.class);
+        util.exportExcel(response, list, "【请填写功能名称】数据");
+    }
+
+    /**
+     * 获取【请填写功能名称】详细信息
+     */
+    @RequiresPermissions("@ss.hasPermi('system:table:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return success(tTableService.selectTTableById(id));
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    @RequiresPermissions("@ss.hasPermi('system:table:add')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TTable tTable) {
+        return toAjax(tTableService.insertTTable(tTable));
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    @RequiresPermissions("@ss.hasPermi('system:table:edit')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TTable tTable) {
+        return toAjax(tTableService.updateTTable(tTable));
+    }
+
+    /**
+     * 删除【请填写功能名称】
+     */
+    @RequiresPermissions("@ss.hasPermi('system:table:remove')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(tTableService.deleteTTableByIds(ids));
+    }
+}

+ 99 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/controller/TTableFiledController.java

@@ -0,0 +1,99 @@
+package com.onemap.system.controller;
+
+import javax.servlet.http.HttpServletResponse;
+
+import com.onemap.common.core.utils.poi.ExcelUtil;
+import com.onemap.common.core.web.controller.BaseController;
+import com.onemap.common.core.web.domain.AjaxResult;
+import com.onemap.common.core.web.page.TableDataInfo;
+import com.onemap.common.log.annotation.Log;
+import com.onemap.common.log.enums.BusinessType;
+import com.onemap.common.security.annotation.RequiresPermissions;
+import com.onemap.system.domain.TTableFiled;
+import com.onemap.system.service.ITTableFiledService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Controller
+ *
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+@RestController
+@RequestMapping("/filed")
+public class TTableFiledController extends BaseController {
+    @Autowired
+    private ITTableFiledService tTableFiledService;
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @RequiresPermissions("@ss.hasPermi('system:filed:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TTableFiled tTableFiled) {
+        startPage();
+        List<TTableFiled> list = tTableFiledService.selectTTableFiledList(tTableFiled);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出【请填写功能名称】列表
+     */
+    @RequiresPermissions("@ss.hasPermi('system:filed:export')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TTableFiled tTableFiled) {
+        List<TTableFiled> list = tTableFiledService.selectTTableFiledList(tTableFiled);
+        ExcelUtil<TTableFiled> util = new ExcelUtil<TTableFiled>(TTableFiled.class);
+        util.exportExcel(response, list, "【请填写功能名称】数据");
+    }
+
+    /**
+     * 获取【请填写功能名称】详细信息
+     */
+    @RequiresPermissions("@ss.hasPermi('system:filed:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return success(tTableFiledService.selectTTableFiledById(id));
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    @RequiresPermissions("@ss.hasPermi('system:filed:add')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TTableFiled tTableFiled) {
+        return toAjax(tTableFiledService.insertTTableFiled(tTableFiled));
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    @RequiresPermissions("@ss.hasPermi('system:filed:edit')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TTableFiled tTableFiled) {
+        return toAjax(tTableFiledService.updateTTableFiled(tTableFiled));
+    }
+
+    /**
+     * 删除【请填写功能名称】
+     */
+    @RequiresPermissions("@ss.hasPermi('system:filed:remove')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(tTableFiledService.deleteTTableFiledByIds(ids));
+    }
+}

+ 98 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/controller/TTableFiledRelationController.java

@@ -0,0 +1,98 @@
+package com.onemap.system.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.onemap.common.core.utils.poi.ExcelUtil;
+import com.onemap.common.core.web.controller.BaseController;
+import com.onemap.common.core.web.domain.AjaxResult;
+import com.onemap.common.core.web.page.TableDataInfo;
+import com.onemap.common.log.annotation.Log;
+import com.onemap.common.log.enums.BusinessType;
+import com.onemap.common.security.annotation.RequiresPermissions;
+import com.onemap.system.domain.TTableFiledRelation;
+import com.onemap.system.service.ITTableFiledRelationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 【请填写功能名称】Controller
+ *
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+@RestController
+@RequestMapping("/relation")
+public class TTableFiledRelationController extends BaseController {
+    @Autowired
+    private ITTableFiledRelationService tTableFiledRelationService;
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @RequiresPermissions("@ss.hasPermi('system:relation:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TTableFiledRelation tTableFiledRelation) {
+        startPage();
+        List<TTableFiledRelation> list = tTableFiledRelationService.selectTTableFiledRelationList(tTableFiledRelation);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出【请填写功能名称】列表
+     */
+    @RequiresPermissions("@ss.hasPermi('system:relation:export')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TTableFiledRelation tTableFiledRelation) {
+        List<TTableFiledRelation> list = tTableFiledRelationService.selectTTableFiledRelationList(tTableFiledRelation);
+        ExcelUtil<TTableFiledRelation> util = new ExcelUtil<TTableFiledRelation>(TTableFiledRelation.class);
+        util.exportExcel(response, list, "【请填写功能名称】数据");
+    }
+
+    /**
+     * 获取【请填写功能名称】详细信息
+     */
+    @RequiresPermissions("@ss.hasPermi('system:relation:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return success(tTableFiledRelationService.selectTTableFiledRelationById(id));
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    @RequiresPermissions("@ss.hasPermi('system:relation:add')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TTableFiledRelation tTableFiledRelation) {
+        return toAjax(tTableFiledRelationService.insertTTableFiledRelation(tTableFiledRelation));
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    @RequiresPermissions("@ss.hasPermi('system:relation:edit')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TTableFiledRelation tTableFiledRelation) {
+        return toAjax(tTableFiledRelationService.updateTTableFiledRelation(tTableFiledRelation));
+    }
+
+    /**
+     * 删除【请填写功能名称】
+     */
+    @RequiresPermissions("@ss.hasPermi('system:relation:remove')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(tTableFiledRelationService.deleteTTableFiledRelationByIds(ids));
+    }
+}

+ 105 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/controller/TTableLayerController.java

@@ -0,0 +1,105 @@
+package com.onemap.system.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.onemap.common.core.utils.poi.ExcelUtil;
+import com.onemap.common.core.web.controller.BaseController;
+import com.onemap.common.core.web.domain.AjaxResult;
+import com.onemap.common.core.web.page.TableDataInfo;
+import com.onemap.common.log.annotation.Log;
+import com.onemap.common.log.enums.BusinessType;
+import com.onemap.common.security.annotation.RequiresPermissions;
+import com.onemap.system.domain.TTableLayer;
+import com.onemap.system.service.ITTableLayerService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 【请填写功能名称】Controller
+ * 
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+@RestController
+@RequestMapping("/layer")
+public class TTableLayerController extends BaseController
+{
+    @Autowired
+    private ITTableLayerService tTableLayerService;
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @RequiresPermissions("@ss.hasPermi('system:layer:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TTableLayer tTableLayer)
+    {
+        startPage();
+        List<TTableLayer> list = tTableLayerService.selectTTableLayerList(tTableLayer);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出【请填写功能名称】列表
+     */
+    @RequiresPermissions("@ss.hasPermi('system:layer:export')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TTableLayer tTableLayer)
+    {
+        List<TTableLayer> list = tTableLayerService.selectTTableLayerList(tTableLayer);
+        ExcelUtil<TTableLayer> util = new ExcelUtil<TTableLayer>(TTableLayer.class);
+        util.exportExcel(response, list, "【请填写功能名称】数据");
+    }
+
+    /**
+     * 获取【请填写功能名称】详细信息
+     */
+    @RequiresPermissions("@ss.hasPermi('system:layer:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(tTableLayerService.selectTTableLayerById(id));
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    @RequiresPermissions("@ss.hasPermi('system:layer:add')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TTableLayer tTableLayer)
+    {
+        return toAjax(tTableLayerService.insertTTableLayer(tTableLayer));
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    @RequiresPermissions("@ss.hasPermi('system:layer:edit')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TTableLayer tTableLayer)
+    {
+        return toAjax(tTableLayerService.updateTTableLayer(tTableLayer));
+    }
+
+    /**
+     * 删除【请填写功能名称】
+     */
+    @RequiresPermissions("@ss.hasPermi('system:layer:remove')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        return toAjax(tTableLayerService.deleteTTableLayerByIds(ids));
+    }
+}

+ 152 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/domain/TTable.java

@@ -0,0 +1,152 @@
+package com.onemap.system.domain;
+
+import java.util.Date;
+
+import com.onemap.common.core.annotation.Excel;
+import com.onemap.common.core.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 【请填写功能名称】对象 t_table
+ * 
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+public class TTable extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private String id;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String tableName;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String tableDescribe;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Integer tableType;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Integer isExist;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Date deleteTime;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String createUserId;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String deleteUserId;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String version;
+
+    public void setId(String id) 
+    {
+        this.id = id;
+    }
+
+    public String getId() 
+    {
+        return id;
+    }
+    public void setTableName(String tableName) 
+    {
+        this.tableName = tableName;
+    }
+
+    public String getTableName() 
+    {
+        return tableName;
+    }
+    public void setTableDescribe(String tableDescribe) 
+    {
+        this.tableDescribe = tableDescribe;
+    }
+
+    public String getTableDescribe() 
+    {
+        return tableDescribe;
+    }
+    public void setTableType(Integer tableType) 
+    {
+        this.tableType = tableType;
+    }
+
+    public Integer getTableType() 
+    {
+        return tableType;
+    }
+    public void setIsExist(Integer isExist) 
+    {
+        this.isExist = isExist;
+    }
+
+    public Integer getIsExist() 
+    {
+        return isExist;
+    }
+    public void setDeleteTime(Date deleteTime) 
+    {
+        this.deleteTime = deleteTime;
+    }
+
+    public Date getDeleteTime() 
+    {
+        return deleteTime;
+    }
+    public void setCreateUserId(String createUserId) 
+    {
+        this.createUserId = createUserId;
+    }
+
+    public String getCreateUserId() 
+    {
+        return createUserId;
+    }
+    public void setDeleteUserId(String deleteUserId) 
+    {
+        this.deleteUserId = deleteUserId;
+    }
+
+    public String getDeleteUserId() 
+    {
+        return deleteUserId;
+    }
+    public void setVersion(String version) 
+    {
+        this.version = version;
+    }
+
+    public String getVersion() 
+    {
+        return version;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("tableName", getTableName())
+            .append("tableDescribe", getTableDescribe())
+            .append("tableType", getTableType())
+            .append("isExist", getIsExist())
+            .append("createTime", getCreateTime())
+            .append("deleteTime", getDeleteTime())
+            .append("createUserId", getCreateUserId())
+            .append("deleteUserId", getDeleteUserId())
+            .append("version", getVersion())
+            .toString();
+    }
+}

+ 166 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/domain/TTableFiled.java

@@ -0,0 +1,166 @@
+package com.onemap.system.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.onemap.common.core.annotation.Excel;
+import com.onemap.common.core.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 【请填写功能名称】对象 t_table_filed
+ * 
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+public class TTableFiled extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private String id;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String filedName;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String filedZh;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String filedDescribe;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String filedType;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String filedTypeLen;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String filedDict;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Date deleteTime;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String createUserId;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String deleteUserId;
+
+    public void setId(String id) 
+    {
+        this.id = id;
+    }
+
+    public String getId() 
+    {
+        return id;
+    }
+    public void setFiledName(String filedName) 
+    {
+        this.filedName = filedName;
+    }
+
+    public String getFiledName() 
+    {
+        return filedName;
+    }
+    public void setFiledZh(String filedZh) 
+    {
+        this.filedZh = filedZh;
+    }
+
+    public String getFiledZh() 
+    {
+        return filedZh;
+    }
+    public void setFiledDescribe(String filedDescribe) 
+    {
+        this.filedDescribe = filedDescribe;
+    }
+
+    public String getFiledDescribe() 
+    {
+        return filedDescribe;
+    }
+    public void setFiledType(String filedType) 
+    {
+        this.filedType = filedType;
+    }
+
+    public String getFiledType() 
+    {
+        return filedType;
+    }
+    public void setFiledTypeLen(String filedTypeLen) 
+    {
+        this.filedTypeLen = filedTypeLen;
+    }
+
+    public String getFiledTypeLen() 
+    {
+        return filedTypeLen;
+    }
+    public void setFiledDict(String filedDict) 
+    {
+        this.filedDict = filedDict;
+    }
+
+    public String getFiledDict() 
+    {
+        return filedDict;
+    }
+    public void setDeleteTime(Date deleteTime) 
+    {
+        this.deleteTime = deleteTime;
+    }
+
+    public Date getDeleteTime() 
+    {
+        return deleteTime;
+    }
+    public void setCreateUserId(String createUserId) 
+    {
+        this.createUserId = createUserId;
+    }
+
+    public String getCreateUserId() 
+    {
+        return createUserId;
+    }
+    public void setDeleteUserId(String deleteUserId) 
+    {
+        this.deleteUserId = deleteUserId;
+    }
+
+    public String getDeleteUserId() 
+    {
+        return deleteUserId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("filedName", getFiledName())
+            .append("filedZh", getFiledZh())
+            .append("filedDescribe", getFiledDescribe())
+            .append("filedType", getFiledType())
+            .append("filedTypeLen", getFiledTypeLen())
+            .append("filedDict", getFiledDict())
+            .append("createTime", getCreateTime())
+            .append("deleteTime", getDeleteTime())
+            .append("createUserId", getCreateUserId())
+            .append("deleteUserId", getDeleteUserId())
+            .toString();
+    }
+}

+ 147 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/domain/TTableFiledRelation.java

@@ -0,0 +1,147 @@
+package com.onemap.system.domain;
+
+import com.onemap.common.core.annotation.Excel;
+import com.onemap.common.core.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 【请填写功能名称】对象 t_table_filed_relation
+ *
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+public class TTableFiledRelation extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * $column.columnComment
+     */
+    private String id;
+
+    /**
+     * $column.columnComment
+     */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String tableId;
+    private String tableName;
+
+
+    /**
+     * $column.columnComment
+     */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String filedId;
+    private String filedName;
+
+    /**
+     * $column.columnComment
+     */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Integer isRequited;
+
+    /**
+     * $column.columnComment
+     */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Integer isDisplay;
+
+    /**
+     * $column.columnComment
+     */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long sort;
+
+    /**
+     * $column.columnComment
+     */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String createUserId;
+
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setTableId(String tableId) {
+        this.tableId = tableId;
+    }
+
+    public String getTableId() {
+        return tableId;
+    }
+
+    public void setFiledId(String filedId) {
+        this.filedId = filedId;
+    }
+
+    public String getFiledId() {
+        return filedId;
+    }
+
+    public void setIsRequited(Integer isRequited) {
+        this.isRequited = isRequited;
+    }
+
+    public Integer getIsRequited() {
+        return isRequited;
+    }
+
+    public void setIsDisplay(Integer isDisplay) {
+        this.isDisplay = isDisplay;
+    }
+
+    public Integer getIsDisplay() {
+        return isDisplay;
+    }
+
+    public void setSort(Long sort) {
+        this.sort = sort;
+    }
+
+    public Long getSort() {
+        return sort;
+    }
+
+    public void setCreateUserId(String createUserId) {
+        this.createUserId = createUserId;
+    }
+
+    public String getCreateUserId() {
+        return createUserId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("tableId", getTableId())
+                .append("filedId", getFiledId())
+                .append("isRequited", getIsRequited())
+                .append("isDisplay", getIsDisplay())
+                .append("sort", getSort())
+                .append("createTime", getCreateTime())
+                .append("createUserId", getCreateUserId())
+                .toString();
+    }
+
+    public String getTableName() {
+        return tableName;
+    }
+
+    public void setTableName(String tableName) {
+        this.tableName = tableName;
+    }
+
+    public String getFiledName() {
+        return filedName;
+    }
+
+    public void setFiledName(String filedName) {
+        this.filedName = filedName;
+    }
+}

+ 164 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/domain/TTableLayer.java

@@ -0,0 +1,164 @@
+package com.onemap.system.domain;
+
+import com.onemap.common.core.annotation.Excel;
+import com.onemap.common.core.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 【请填写功能名称】对象 t_table_layer
+ * 
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+public class TTableLayer extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private String id;
+
+    /** 父级ID */
+    @Excel(name = "父级ID")
+    private String pid;
+
+    /** 名称 */
+    @Excel(name = "名称")
+    private String name;
+
+    /** 图层ID */
+    @Excel(name = "图层ID")
+    private String layerId;
+
+    /** 数据库表id */
+    @Excel(name = "数据库表id")
+    private String tableId;
+
+    /** 默认显示选中 0默认 */
+    @Excel(name = "默认显示选中 0默认")
+    private String defaultType;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private String createUserId;
+
+    /** 排序 */
+    @Excel(name = "排序")
+    private Long sort;
+
+    /** 分组字段,参数为3个用逗号分隔例如【a,b,c】。a用于分组,b用于汇总,c是空间数据 */
+    @Excel(name = "分组字段,参数为3个用逗号分隔例如【a,b,c】。a用于分组,b用于汇总,c是空间数据")
+    private String groupcolumn;
+
+    /** 0 前端显示 1可选择但前端不显示 */
+    @Excel(name = "0 前端显示 1可选择但前端不显示")
+    private String stateType;
+
+    public void setId(String id) 
+    {
+        this.id = id;
+    }
+
+    public String getId() 
+    {
+        return id;
+    }
+    public void setPid(String pid) 
+    {
+        this.pid = pid;
+    }
+
+    public String getPid() 
+    {
+        return pid;
+    }
+    public void setName(String name) 
+    {
+        this.name = name;
+    }
+
+    public String getName() 
+    {
+        return name;
+    }
+    public void setLayerId(String layerId) 
+    {
+        this.layerId = layerId;
+    }
+
+    public String getLayerId() 
+    {
+        return layerId;
+    }
+    public void setTableId(String tableId) 
+    {
+        this.tableId = tableId;
+    }
+
+    public String getTableId() 
+    {
+        return tableId;
+    }
+    public void setDefaultType(String defaultType) 
+    {
+        this.defaultType = defaultType;
+    }
+
+    public String getDefaultType() 
+    {
+        return defaultType;
+    }
+    public void setCreateUserId(String createUserId) 
+    {
+        this.createUserId = createUserId;
+    }
+
+    public String getCreateUserId() 
+    {
+        return createUserId;
+    }
+    public void setSort(Long sort) 
+    {
+        this.sort = sort;
+    }
+
+    public Long getSort() 
+    {
+        return sort;
+    }
+    public void setGroupcolumn(String groupcolumn) 
+    {
+        this.groupcolumn = groupcolumn;
+    }
+
+    public String getGroupcolumn() 
+    {
+        return groupcolumn;
+    }
+    public void setStateType(String stateType) 
+    {
+        this.stateType = stateType;
+    }
+
+    public String getStateType() 
+    {
+        return stateType;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("pid", getPid())
+            .append("name", getName())
+            .append("layerId", getLayerId())
+            .append("tableId", getTableId())
+            .append("defaultType", getDefaultType())
+            .append("createTime", getCreateTime())
+            .append("createUserId", getCreateUserId())
+            .append("sort", getSort())
+            .append("groupcolumn", getGroupcolumn())
+            .append("stateType", getStateType())
+            .toString();
+    }
+}

+ 61 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/mapper/TTableFiledMapper.java

@@ -0,0 +1,61 @@
+package com.onemap.system.mapper;
+
+import com.onemap.system.domain.TTableFiled;
+
+import java.util.List;
+/**
+ * 【请填写功能名称】Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+public interface TTableFiledMapper 
+{
+    /**
+     * 查询【请填写功能名称】
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    public TTableFiled selectTTableFiledById(String id);
+
+    /**
+     * 查询【请填写功能名称】列表
+     * 
+     * @param tTableFiled 【请填写功能名称】
+     * @return 【请填写功能名称】集合
+     */
+    public List<TTableFiled> selectTTableFiledList(TTableFiled tTableFiled);
+
+    /**
+     * 新增【请填写功能名称】
+     * 
+     * @param tTableFiled 【请填写功能名称】
+     * @return 结果
+     */
+    public int insertTTableFiled(TTableFiled tTableFiled);
+
+    /**
+     * 修改【请填写功能名称】
+     * 
+     * @param tTableFiled 【请填写功能名称】
+     * @return 结果
+     */
+    public int updateTTableFiled(TTableFiled tTableFiled);
+
+    /**
+     * 删除【请填写功能名称】
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    public int deleteTTableFiledById(String id);
+
+    /**
+     * 批量删除【请填写功能名称】
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTTableFiledByIds(String[] ids);
+}

+ 62 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/mapper/TTableFiledRelationMapper.java

@@ -0,0 +1,62 @@
+package com.onemap.system.mapper;
+
+import com.onemap.system.domain.TTableFiledRelation;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+public interface TTableFiledRelationMapper 
+{
+    /**
+     * 查询【请填写功能名称】
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    public TTableFiledRelation selectTTableFiledRelationById(String id);
+
+    /**
+     * 查询【请填写功能名称】列表
+     * 
+     * @param tTableFiledRelation 【请填写功能名称】
+     * @return 【请填写功能名称】集合
+     */
+    public List<TTableFiledRelation> selectTTableFiledRelationList(TTableFiledRelation tTableFiledRelation);
+
+    /**
+     * 新增【请填写功能名称】
+     * 
+     * @param tTableFiledRelation 【请填写功能名称】
+     * @return 结果
+     */
+    public int insertTTableFiledRelation(TTableFiledRelation tTableFiledRelation);
+
+    /**
+     * 修改【请填写功能名称】
+     * 
+     * @param tTableFiledRelation 【请填写功能名称】
+     * @return 结果
+     */
+    public int updateTTableFiledRelation(TTableFiledRelation tTableFiledRelation);
+
+    /**
+     * 删除【请填写功能名称】
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    public int deleteTTableFiledRelationById(String id);
+
+    /**
+     * 批量删除【请填写功能名称】
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTTableFiledRelationByIds(String[] ids);
+}

+ 62 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/mapper/TTableLayerMapper.java

@@ -0,0 +1,62 @@
+package com.onemap.system.mapper;
+
+import com.onemap.system.domain.TTableLayer;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+public interface TTableLayerMapper 
+{
+    /**
+     * 查询【请填写功能名称】
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    public TTableLayer selectTTableLayerById(String id);
+
+    /**
+     * 查询【请填写功能名称】列表
+     * 
+     * @param tTableLayer 【请填写功能名称】
+     * @return 【请填写功能名称】集合
+     */
+    public List<TTableLayer> selectTTableLayerList(TTableLayer tTableLayer);
+
+    /**
+     * 新增【请填写功能名称】
+     * 
+     * @param tTableLayer 【请填写功能名称】
+     * @return 结果
+     */
+    public int insertTTableLayer(TTableLayer tTableLayer);
+
+    /**
+     * 修改【请填写功能名称】
+     * 
+     * @param tTableLayer 【请填写功能名称】
+     * @return 结果
+     */
+    public int updateTTableLayer(TTableLayer tTableLayer);
+
+    /**
+     * 删除【请填写功能名称】
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    public int deleteTTableLayerById(String id);
+
+    /**
+     * 批量删除【请填写功能名称】
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTTableLayerByIds(String[] ids);
+}

+ 62 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/mapper/TTableMapper.java

@@ -0,0 +1,62 @@
+package com.onemap.system.mapper;
+
+import com.onemap.system.domain.TTable;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+public interface TTableMapper 
+{
+    /**
+     * 查询【请填写功能名称】
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    public TTable selectTTableById(String id);
+
+    /**
+     * 查询【请填写功能名称】列表
+     * 
+     * @param tTable 【请填写功能名称】
+     * @return 【请填写功能名称】集合
+     */
+    public List<TTable> selectTTableList(TTable tTable);
+
+    /**
+     * 新增【请填写功能名称】
+     * 
+     * @param tTable 【请填写功能名称】
+     * @return 结果
+     */
+    public int insertTTable(TTable tTable);
+
+    /**
+     * 修改【请填写功能名称】
+     * 
+     * @param tTable 【请填写功能名称】
+     * @return 结果
+     */
+    public int updateTTable(TTable tTable);
+
+    /**
+     * 删除【请填写功能名称】
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    public int deleteTTableById(String id);
+
+    /**
+     * 批量删除【请填写功能名称】
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTTableByIds(String[] ids);
+}

+ 62 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/service/ITTableFiledRelationService.java

@@ -0,0 +1,62 @@
+package com.onemap.system.service;
+
+import com.onemap.system.domain.TTableFiledRelation;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+public interface ITTableFiledRelationService 
+{
+    /**
+     * 查询【请填写功能名称】
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    public TTableFiledRelation selectTTableFiledRelationById(String id);
+
+    /**
+     * 查询【请填写功能名称】列表
+     * 
+     * @param tTableFiledRelation 【请填写功能名称】
+     * @return 【请填写功能名称】集合
+     */
+    public List<TTableFiledRelation> selectTTableFiledRelationList(TTableFiledRelation tTableFiledRelation);
+
+    /**
+     * 新增【请填写功能名称】
+     * 
+     * @param tTableFiledRelation 【请填写功能名称】
+     * @return 结果
+     */
+    public int insertTTableFiledRelation(TTableFiledRelation tTableFiledRelation);
+
+    /**
+     * 修改【请填写功能名称】
+     * 
+     * @param tTableFiledRelation 【请填写功能名称】
+     * @return 结果
+     */
+    public int updateTTableFiledRelation(TTableFiledRelation tTableFiledRelation);
+
+    /**
+     * 批量删除【请填写功能名称】
+     * 
+     * @param ids 需要删除的【请填写功能名称】主键集合
+     * @return 结果
+     */
+    public int deleteTTableFiledRelationByIds(String[] ids);
+
+    /**
+     * 删除【请填写功能名称】信息
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    public int deleteTTableFiledRelationById(String id);
+}

+ 62 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/service/ITTableFiledService.java

@@ -0,0 +1,62 @@
+package com.onemap.system.service;
+
+import com.onemap.system.domain.TTableFiled;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+public interface ITTableFiledService 
+{
+    /**
+     * 查询【请填写功能名称】
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    public TTableFiled selectTTableFiledById(String id);
+
+    /**
+     * 查询【请填写功能名称】列表
+     * 
+     * @param tTableFiled 【请填写功能名称】
+     * @return 【请填写功能名称】集合
+     */
+    public List<TTableFiled> selectTTableFiledList(TTableFiled tTableFiled);
+
+    /**
+     * 新增【请填写功能名称】
+     * 
+     * @param tTableFiled 【请填写功能名称】
+     * @return 结果
+     */
+    public int insertTTableFiled(TTableFiled tTableFiled);
+
+    /**
+     * 修改【请填写功能名称】
+     * 
+     * @param tTableFiled 【请填写功能名称】
+     * @return 结果
+     */
+    public int updateTTableFiled(TTableFiled tTableFiled);
+
+    /**
+     * 批量删除【请填写功能名称】
+     * 
+     * @param ids 需要删除的【请填写功能名称】主键集合
+     * @return 结果
+     */
+    public int deleteTTableFiledByIds(String[] ids);
+
+    /**
+     * 删除【请填写功能名称】信息
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    public int deleteTTableFiledById(String id);
+}

+ 62 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/service/ITTableLayerService.java

@@ -0,0 +1,62 @@
+package com.onemap.system.service;
+
+import com.onemap.system.domain.TTableLayer;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+public interface ITTableLayerService 
+{
+    /**
+     * 查询【请填写功能名称】
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    public TTableLayer selectTTableLayerById(String id);
+
+    /**
+     * 查询【请填写功能名称】列表
+     * 
+     * @param tTableLayer 【请填写功能名称】
+     * @return 【请填写功能名称】集合
+     */
+    public List<TTableLayer> selectTTableLayerList(TTableLayer tTableLayer);
+
+    /**
+     * 新增【请填写功能名称】
+     * 
+     * @param tTableLayer 【请填写功能名称】
+     * @return 结果
+     */
+    public int insertTTableLayer(TTableLayer tTableLayer);
+
+    /**
+     * 修改【请填写功能名称】
+     * 
+     * @param tTableLayer 【请填写功能名称】
+     * @return 结果
+     */
+    public int updateTTableLayer(TTableLayer tTableLayer);
+
+    /**
+     * 批量删除【请填写功能名称】
+     * 
+     * @param ids 需要删除的【请填写功能名称】主键集合
+     * @return 结果
+     */
+    public int deleteTTableLayerByIds(String[] ids);
+
+    /**
+     * 删除【请填写功能名称】信息
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    public int deleteTTableLayerById(String id);
+}

+ 62 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/service/ITTableService.java

@@ -0,0 +1,62 @@
+package com.onemap.system.service;
+
+import com.onemap.system.domain.TTable;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+public interface ITTableService 
+{
+    /**
+     * 查询【请填写功能名称】
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    public TTable selectTTableById(String id);
+
+    /**
+     * 查询【请填写功能名称】列表
+     * 
+     * @param tTable 【请填写功能名称】
+     * @return 【请填写功能名称】集合
+     */
+    public List<TTable> selectTTableList(TTable tTable);
+
+    /**
+     * 新增【请填写功能名称】
+     * 
+     * @param tTable 【请填写功能名称】
+     * @return 结果
+     */
+    public int insertTTable(TTable tTable);
+
+    /**
+     * 修改【请填写功能名称】
+     * 
+     * @param tTable 【请填写功能名称】
+     * @return 结果
+     */
+    public int updateTTable(TTable tTable);
+
+    /**
+     * 批量删除【请填写功能名称】
+     * 
+     * @param ids 需要删除的【请填写功能名称】主键集合
+     * @return 结果
+     */
+    public int deleteTTableByIds(String[] ids);
+
+    /**
+     * 删除【请填写功能名称】信息
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    public int deleteTTableById(String id);
+}

+ 91 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/service/impl/TTableFiledRelationServiceImpl.java

@@ -0,0 +1,91 @@
+package com.onemap.system.service.impl;
+
+import java.util.List;
+
+import com.onemap.common.core.utils.DateUtils;
+import com.onemap.common.core.utils.StringUtils;
+import com.onemap.system.domain.TTableFiledRelation;
+import com.onemap.system.mapper.TTableFiledRelationMapper;
+import com.onemap.system.service.ITTableFiledRelationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+@Service
+public class TTableFiledRelationServiceImpl implements ITTableFiledRelationService {
+    @Autowired
+    private TTableFiledRelationMapper tTableFiledRelationMapper;
+
+    /**
+     * 查询【请填写功能名称】
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    @Override
+    public TTableFiledRelation selectTTableFiledRelationById(String id) {
+        return tTableFiledRelationMapper.selectTTableFiledRelationById(id);
+    }
+
+    /**
+     * 查询【请填写功能名称】列表
+     *
+     * @param tTableFiledRelation 【请填写功能名称】
+     * @return 【请填写功能名称】
+     */
+    @Override
+    public List<TTableFiledRelation> selectTTableFiledRelationList(TTableFiledRelation tTableFiledRelation) {
+        return tTableFiledRelationMapper.selectTTableFiledRelationList(tTableFiledRelation);
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     *
+     * @param tTableFiledRelation 【请填写功能名称】
+     * @return 结果
+     */
+    @Override
+    public int insertTTableFiledRelation(TTableFiledRelation tTableFiledRelation) {
+        tTableFiledRelation.setId(StringUtils.getUUID());
+        tTableFiledRelation.setCreateTime(DateUtils.getNowDate());
+        return tTableFiledRelationMapper.insertTTableFiledRelation(tTableFiledRelation);
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     *
+     * @param tTableFiledRelation 【请填写功能名称】
+     * @return 结果
+     */
+    @Override
+    public int updateTTableFiledRelation(TTableFiledRelation tTableFiledRelation) {
+        return tTableFiledRelationMapper.updateTTableFiledRelation(tTableFiledRelation);
+    }
+
+    /**
+     * 批量删除【请填写功能名称】
+     *
+     * @param ids 需要删除的【请填写功能名称】主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTTableFiledRelationByIds(String[] ids) {
+        return tTableFiledRelationMapper.deleteTTableFiledRelationByIds(ids);
+    }
+
+    /**
+     * 删除【请填写功能名称】信息
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTTableFiledRelationById(String id) {
+        return tTableFiledRelationMapper.deleteTTableFiledRelationById(id);
+    }
+}

+ 98 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/service/impl/TTableFiledServiceImpl.java

@@ -0,0 +1,98 @@
+package com.onemap.system.service.impl;
+
+import java.util.List;
+
+import com.onemap.common.core.utils.DateUtils;
+import com.onemap.common.core.utils.StringUtils;
+import com.onemap.system.domain.TTableFiled;
+import com.onemap.system.mapper.TTableFiledMapper;
+import com.onemap.system.service.ITTableFiledService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+@Service
+public class TTableFiledServiceImpl implements ITTableFiledService
+{
+    @Autowired
+    private TTableFiledMapper tTableFiledMapper;
+
+    /**
+     * 查询【请填写功能名称】
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    @Override
+    public TTableFiled selectTTableFiledById(String id)
+    {
+        return tTableFiledMapper.selectTTableFiledById(id);
+    }
+
+    /**
+     * 查询【请填写功能名称】列表
+     * 
+     * @param tTableFiled 【请填写功能名称】
+     * @return 【请填写功能名称】
+     */
+    @Override
+    public List<TTableFiled> selectTTableFiledList(TTableFiled tTableFiled)
+    {
+        return tTableFiledMapper.selectTTableFiledList(tTableFiled);
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     * 
+     * @param tTableFiled 【请填写功能名称】
+     * @return 结果
+     */
+    @Override
+    public int insertTTableFiled(TTableFiled tTableFiled)
+    {
+        tTableFiled.setId(StringUtils.getUUID());
+        tTableFiled.setCreateTime(DateUtils.getNowDate());
+        return tTableFiledMapper.insertTTableFiled(tTableFiled);
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     * 
+     * @param tTableFiled 【请填写功能名称】
+     * @return 结果
+     */
+    @Override
+    public int updateTTableFiled(TTableFiled tTableFiled)
+    {
+        return tTableFiledMapper.updateTTableFiled(tTableFiled);
+    }
+
+    /**
+     * 批量删除【请填写功能名称】
+     * 
+     * @param ids 需要删除的【请填写功能名称】主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTTableFiledByIds(String[] ids)
+    {
+        return tTableFiledMapper.deleteTTableFiledByIds(ids);
+    }
+
+    /**
+     * 删除【请填写功能名称】信息
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTTableFiledById(String id)
+    {
+        return tTableFiledMapper.deleteTTableFiledById(id);
+    }
+}

+ 91 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/service/impl/TTableLayerServiceImpl.java

@@ -0,0 +1,91 @@
+package com.onemap.system.service.impl;
+
+import java.util.List;
+
+import com.onemap.common.core.utils.DateUtils;
+import com.onemap.common.core.utils.StringUtils;
+import com.onemap.system.domain.TTableLayer;
+import com.onemap.system.mapper.TTableLayerMapper;
+import com.onemap.system.service.ITTableLayerService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+@Service
+public class TTableLayerServiceImpl implements ITTableLayerService {
+    @Autowired
+    private TTableLayerMapper tTableLayerMapper;
+
+    /**
+     * 查询【请填写功能名称】
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    @Override
+    public TTableLayer selectTTableLayerById(String id) {
+        return tTableLayerMapper.selectTTableLayerById(id);
+    }
+
+    /**
+     * 查询【请填写功能名称】列表
+     *
+     * @param tTableLayer 【请填写功能名称】
+     * @return 【请填写功能名称】
+     */
+    @Override
+    public List<TTableLayer> selectTTableLayerList(TTableLayer tTableLayer) {
+        return tTableLayerMapper.selectTTableLayerList(tTableLayer);
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     *
+     * @param tTableLayer 【请填写功能名称】
+     * @return 结果
+     */
+    @Override
+    public int insertTTableLayer(TTableLayer tTableLayer) {
+        tTableLayer.setId(StringUtils.getUUID());
+        tTableLayer.setCreateTime(DateUtils.getNowDate());
+        return tTableLayerMapper.insertTTableLayer(tTableLayer);
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     *
+     * @param tTableLayer 【请填写功能名称】
+     * @return 结果
+     */
+    @Override
+    public int updateTTableLayer(TTableLayer tTableLayer) {
+        return tTableLayerMapper.updateTTableLayer(tTableLayer);
+    }
+
+    /**
+     * 批量删除【请填写功能名称】
+     *
+     * @param ids 需要删除的【请填写功能名称】主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTTableLayerByIds(String[] ids) {
+        return tTableLayerMapper.deleteTTableLayerByIds(ids);
+    }
+
+    /**
+     * 删除【请填写功能名称】信息
+     *
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTTableLayerById(String id) {
+        return tTableLayerMapper.deleteTTableLayerById(id);
+    }
+}

+ 98 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/service/impl/TTableServiceImpl.java

@@ -0,0 +1,98 @@
+package com.onemap.system.service.impl;
+
+import java.util.List;
+
+import com.onemap.common.core.utils.DateUtils;
+import com.onemap.common.core.utils.StringUtils;
+import com.onemap.system.domain.TTable;
+import com.onemap.system.mapper.TTableMapper;
+import com.onemap.system.service.ITTableService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-08-06
+ */
+@Service
+public class TTableServiceImpl implements ITTableService
+{
+    @Autowired
+    private TTableMapper tTableMapper;
+
+    /**
+     * 查询【请填写功能名称】
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    @Override
+    public TTable selectTTableById(String id)
+    {
+        return tTableMapper.selectTTableById(id);
+    }
+
+    /**
+     * 查询【请填写功能名称】列表
+     * 
+     * @param tTable 【请填写功能名称】
+     * @return 【请填写功能名称】
+     */
+    @Override
+    public List<TTable> selectTTableList(TTable tTable)
+    {
+        return tTableMapper.selectTTableList(tTable);
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     * 
+     * @param tTable 【请填写功能名称】
+     * @return 结果
+     */
+    @Override
+    public int insertTTable(TTable tTable)
+    {
+        tTable.setId(StringUtils.getUUID());
+        tTable.setCreateTime(DateUtils.getNowDate());
+        return tTableMapper.insertTTable(tTable);
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     * 
+     * @param tTable 【请填写功能名称】
+     * @return 结果
+     */
+    @Override
+    public int updateTTable(TTable tTable)
+    {
+        return tTableMapper.updateTTable(tTable);
+    }
+
+    /**
+     * 批量删除【请填写功能名称】
+     * 
+     * @param ids 需要删除的【请填写功能名称】主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTTableByIds(String[] ids)
+    {
+        return tTableMapper.deleteTTableByIds(ids);
+    }
+
+    /**
+     * 删除【请填写功能名称】信息
+     * 
+     * @param id 【请填写功能名称】主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTTableById(String id)
+    {
+        return tTableMapper.deleteTTableById(id);
+    }
+}

+ 102 - 0
onemap-modules/onemap-system/src/main/resources/mapper/postgresql/system/TTableFiledMapper.xml

@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.onemap.system.mapper.TTableFiledMapper">
+    
+    <resultMap type="TTableFiled" id="TTableFiledResult">
+        <result property="id"    column="id"    />
+        <result property="filedName"    column="filed_name"    />
+        <result property="filedZh"    column="filed_zh"    />
+        <result property="filedDescribe"    column="filed_describe"    />
+        <result property="filedType"    column="filed_type"    />
+        <result property="filedTypeLen"    column="filed_type_len"    />
+        <result property="filedDict"    column="filed_dict"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="deleteTime"    column="delete_time"    />
+        <result property="createUserId"    column="create_user_id"    />
+        <result property="deleteUserId"    column="delete_user_id"    />
+    </resultMap>
+
+    <sql id="selectTTableFiledVo">
+        select id, filed_name, filed_zh, filed_describe, filed_type, filed_type_len, filed_dict, create_time, delete_time, create_user_id, delete_user_id from t_table_filed
+    </sql>
+
+    <select id="selectTTableFiledList" parameterType="TTableFiled" resultMap="TTableFiledResult">
+        <include refid="selectTTableFiledVo"/>
+        <where>  
+            <if test="filedName != null  and filedName != ''"> and filed_name like concat('%', #{filedName}, '%')</if>
+            <if test="filedZh != null  and filedZh != ''"> and filed_zh = #{filedZh}</if>
+            <if test="filedDescribe != null  and filedDescribe != ''"> and filed_describe = #{filedDescribe}</if>
+            <if test="filedType != null  and filedType != ''"> and filed_type = #{filedType}</if>
+            <if test="filedTypeLen != null  and filedTypeLen != ''"> and filed_type_len = #{filedTypeLen}</if>
+            <if test="filedDict != null  and filedDict != ''"> and filed_dict = #{filedDict}</if>
+            <if test="deleteTime != null "> and delete_time = #{deleteTime}</if>
+            <if test="createUserId != null  and createUserId != ''"> and create_user_id = #{createUserId}</if>
+            <if test="deleteUserId != null  and deleteUserId != ''"> and delete_user_id = #{deleteUserId}</if>
+        </where>
+    </select>
+    
+    <select id="selectTTableFiledById" parameterType="String" resultMap="TTableFiledResult">
+        <include refid="selectTTableFiledVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertTTableFiled" parameterType="TTableFiled">
+        insert into t_table_filed
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="filedName != null and filedName != ''">filed_name,</if>
+            <if test="filedZh != null and filedZh != ''">filed_zh,</if>
+            <if test="filedDescribe != null">filed_describe,</if>
+            <if test="filedType != null and filedType != ''">filed_type,</if>
+            <if test="filedTypeLen != null">filed_type_len,</if>
+            <if test="filedDict != null">filed_dict,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="deleteTime != null">delete_time,</if>
+            <if test="createUserId != null and createUserId != ''">create_user_id,</if>
+            <if test="deleteUserId != null">delete_user_id,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="filedName != null and filedName != ''">#{filedName},</if>
+            <if test="filedZh != null and filedZh != ''">#{filedZh},</if>
+            <if test="filedDescribe != null">#{filedDescribe},</if>
+            <if test="filedType != null and filedType != ''">#{filedType},</if>
+            <if test="filedTypeLen != null">#{filedTypeLen},</if>
+            <if test="filedDict != null">#{filedDict},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="deleteTime != null">#{deleteTime},</if>
+            <if test="createUserId != null and createUserId != ''">#{createUserId},</if>
+            <if test="deleteUserId != null">#{deleteUserId},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTTableFiled" parameterType="TTableFiled">
+        update t_table_filed
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="filedName != null and filedName != ''">filed_name = #{filedName},</if>
+            <if test="filedZh != null and filedZh != ''">filed_zh = #{filedZh},</if>
+            <if test="filedDescribe != null">filed_describe = #{filedDescribe},</if>
+            <if test="filedType != null and filedType != ''">filed_type = #{filedType},</if>
+            <if test="filedTypeLen != null">filed_type_len = #{filedTypeLen},</if>
+            <if test="filedDict != null">filed_dict = #{filedDict},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="deleteTime != null">delete_time = #{deleteTime},</if>
+            <if test="createUserId != null and createUserId != ''">create_user_id = #{createUserId},</if>
+            <if test="deleteUserId != null">delete_user_id = #{deleteUserId},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTTableFiledById" parameterType="String">
+        delete from t_table_filed where id = #{id}
+    </delete>
+
+    <delete id="deleteTTableFiledByIds" parameterType="String">
+        delete from t_table_filed where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 98 - 0
onemap-modules/onemap-system/src/main/resources/mapper/postgresql/system/TTableFiledRelationMapper.xml

@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.onemap.system.mapper.TTableFiledRelationMapper">
+    
+    <resultMap type="TTableFiledRelation" id="TTableFiledRelationResult">
+        <result property="id"    column="id"    />
+        <result property="tableId"    column="table_id"    />
+        <result property="filedId"    column="filed_id"    />
+        <result property="tableName"    column="table_name"    />
+        <result property="filedName"    column="filed_name"    />
+        <result property="isRequited"    column="is_requited"    />
+        <result property="isDisplay"    column="is_display"    />
+        <result property="sort"    column="sort"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="createUserId"    column="create_user_id"    />
+    </resultMap>
+
+    <sql id="selectTTableFiledRelationVo">
+        select id,table_id, filed_id, is_requited, is_display,
+               sort,create_time, create_user_id from t_table_filed_relation
+    </sql>
+
+    <sql id="selectTTableFiledRelationListVo">
+        select d1.id, d1.table_id, d1.filed_id, d1.is_requited, d1.is_display, d1.sort,
+               d1.create_time, d1.create_user_id,d2.table_name,d3.filed_name
+        from t_table_filed_relation d1
+                 left join t_table d2 on d1.table_id = d2.id
+                 left join t_table_filed d3 on d1.filed_id = d3.id
+    </sql>
+
+    <select id="selectTTableFiledRelationList" parameterType="TTableFiledRelation" resultMap="TTableFiledRelationResult">
+        <include refid="selectTTableFiledRelationListVo"/>
+        <where>  
+            <if test="tableId != null  and tableId != ''"> and table_id = #{tableId}</if>
+            <if test="filedId != null  and filedId != ''"> and filed_id = #{filedId}</if>
+            <if test="isRequited != null "> and is_requited = #{isRequited}</if>
+            <if test="isDisplay != null "> and is_display = #{isDisplay}</if>
+            <if test="sort != null "> and sort = #{sort}</if>
+            <if test="createUserId != null  and createUserId != ''"> and create_user_id = #{createUserId}</if>
+        </where>
+    </select>
+    
+    <select id="selectTTableFiledRelationById" parameterType="String" resultMap="TTableFiledRelationResult">
+        <include refid="selectTTableFiledRelationVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertTTableFiledRelation" parameterType="TTableFiledRelation">
+        insert into t_table_filed_relation
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="tableId != null and tableId != ''">table_id,</if>
+            <if test="filedId != null and filedId != ''">filed_id,</if>
+            <if test="isRequited != null">is_requited,</if>
+            <if test="isDisplay != null">is_display,</if>
+            <if test="sort != null">sort,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="createUserId != null and createUserId != ''">create_user_id,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="tableId != null and tableId != ''">#{tableId},</if>
+            <if test="filedId != null and filedId != ''">#{filedId},</if>
+            <if test="isRequited != null">#{isRequited},</if>
+            <if test="isDisplay != null">#{isDisplay},</if>
+            <if test="sort != null">#{sort},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="createUserId != null and createUserId != ''">#{createUserId},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTTableFiledRelation" parameterType="TTableFiledRelation">
+        update t_table_filed_relation
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="tableId != null and tableId != ''">table_id = #{tableId},</if>
+            <if test="filedId != null and filedId != ''">filed_id = #{filedId},</if>
+            <if test="isRequited != null">is_requited = #{isRequited},</if>
+            <if test="isDisplay != null">is_display = #{isDisplay},</if>
+            <if test="sort != null">sort = #{sort},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="createUserId != null and createUserId != ''">create_user_id = #{createUserId},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTTableFiledRelationById" parameterType="String">
+        delete from t_table_filed_relation where id = #{id}
+    </delete>
+
+    <delete id="deleteTTableFiledRelationByIds" parameterType="String">
+        delete from t_table_filed_relation where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 102 - 0
onemap-modules/onemap-system/src/main/resources/mapper/postgresql/system/TTableLayerMapper.xml

@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.onemap.system.mapper.TTableLayerMapper">
+    
+    <resultMap type="TTableLayer" id="TTableLayerResult">
+        <result property="id"    column="id"    />
+        <result property="pid"    column="pid"    />
+        <result property="name"    column="name"    />
+        <result property="layerId"    column="layer_id"    />
+        <result property="tableId"    column="table_id"    />
+        <result property="defaultType"    column="default_type"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="createUserId"    column="create_user_id"    />
+        <result property="sort"    column="sort"    />
+        <result property="groupcolumn"    column="groupcolumn"    />
+        <result property="stateType"    column="state_type"    />
+    </resultMap>
+
+    <sql id="selectTTableLayerVo">
+        select id, pid, name, layer_id, table_id, default_type, create_time, create_user_id, sort, groupcolumn, state_type from t_table_layer
+    </sql>
+
+    <select id="selectTTableLayerList" parameterType="TTableLayer" resultMap="TTableLayerResult">
+        <include refid="selectTTableLayerVo"/>
+        <where>  
+            <if test="pid != null  and pid != ''"> and pid = #{pid}</if>
+            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
+            <if test="layerId != null  and layerId != ''"> and layer_id = #{layerId}</if>
+            <if test="tableId != null  and tableId != ''"> and table_id = #{tableId}</if>
+            <if test="defaultType != null  and defaultType != ''"> and default_type = #{defaultType}</if>
+            <if test="createUserId != null  and createUserId != ''"> and create_user_id = #{createUserId}</if>
+            <if test="sort != null "> and sort = #{sort}</if>
+            <if test="groupcolumn != null  and groupcolumn != ''"> and groupcolumn = #{groupcolumn}</if>
+            <if test="stateType != null  and stateType != ''"> and state_type = #{stateType}</if>
+        </where>
+    </select>
+    
+    <select id="selectTTableLayerById" parameterType="String" resultMap="TTableLayerResult">
+        <include refid="selectTTableLayerVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertTTableLayer" parameterType="TTableLayer">
+        insert into t_table_layer
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="pid != null">pid,</if>
+            <if test="name != null and name != ''">name,</if>
+            <if test="layerId != null">layer_id,</if>
+            <if test="tableId != null and tableId != ''">table_id,</if>
+            <if test="defaultType != null">default_type,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="createUserId != null and createUserId != ''">create_user_id,</if>
+            <if test="sort != null">sort,</if>
+            <if test="groupcolumn != null">groupcolumn,</if>
+            <if test="stateType != null">state_type,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="pid != null">#{pid},</if>
+            <if test="name != null and name != ''">#{name},</if>
+            <if test="layerId != null">#{layerId},</if>
+            <if test="tableId != null and tableId != ''">#{tableId},</if>
+            <if test="defaultType != null">#{defaultType},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="createUserId != null and createUserId != ''">#{createUserId},</if>
+            <if test="sort != null">#{sort},</if>
+            <if test="groupcolumn != null">#{groupcolumn},</if>
+            <if test="stateType != null">#{stateType},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTTableLayer" parameterType="TTableLayer">
+        update t_table_layer
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="pid != null">pid = #{pid},</if>
+            <if test="name != null and name != ''">name = #{name},</if>
+            <if test="layerId != null">layer_id = #{layerId},</if>
+            <if test="tableId != null and tableId != ''">table_id = #{tableId},</if>
+            <if test="defaultType != null">default_type = #{defaultType},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="createUserId != null and createUserId != ''">create_user_id = #{createUserId},</if>
+            <if test="sort != null">sort = #{sort},</if>
+            <if test="groupcolumn != null">groupcolumn = #{groupcolumn},</if>
+            <if test="stateType != null">state_type = #{stateType},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTTableLayerById" parameterType="String">
+        delete from t_table_layer where id = #{id}
+    </delete>
+
+    <delete id="deleteTTableLayerByIds" parameterType="String">
+        delete from t_table_layer where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 97 - 0
onemap-modules/onemap-system/src/main/resources/mapper/postgresql/system/TTableMapper.xml

@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.onemap.system.mapper.TTableMapper">
+    
+    <resultMap type="TTable" id="TTableResult">
+        <result property="id"    column="id"    />
+        <result property="tableName"    column="table_name"    />
+        <result property="tableDescribe"    column="table_describe"    />
+        <result property="tableType"    column="table_type"    />
+        <result property="isExist"    column="is_exist"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="deleteTime"    column="delete_time"    />
+        <result property="createUserId"    column="create_user_id"    />
+        <result property="deleteUserId"    column="delete_user_id"    />
+        <result property="version"    column="version"    />
+    </resultMap>
+
+    <sql id="selectTTableVo">
+        select id, table_name, table_describe, table_type, is_exist, create_time, delete_time, create_user_id, delete_user_id, version from t_table
+    </sql>
+
+    <select id="selectTTableList" parameterType="TTable" resultMap="TTableResult">
+        <include refid="selectTTableVo"/>
+        <where>  
+            <if test="tableName != null  and tableName != ''"> and table_name like concat('%', #{tableName}, '%')</if>
+            <if test="tableDescribe != null  and tableDescribe != ''"> and table_describe = #{tableDescribe}</if>
+            <if test="tableType != null "> and table_type = #{tableType}</if>
+            <if test="isExist != null "> and is_exist = #{isExist}</if>
+            <if test="deleteTime != null "> and delete_time = #{deleteTime}</if>
+            <if test="createUserId != null  and createUserId != ''"> and create_user_id = #{createUserId}</if>
+            <if test="deleteUserId != null  and deleteUserId != ''"> and delete_user_id = #{deleteUserId}</if>
+            <if test="version != null  and version != ''"> and version = #{version}</if>
+        </where>
+    </select>
+    
+    <select id="selectTTableById" parameterType="String" resultMap="TTableResult">
+        <include refid="selectTTableVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertTTable" parameterType="TTable">
+        insert into t_table
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="tableName != null and tableName != ''">table_name,</if>
+            <if test="tableDescribe != null">table_describe,</if>
+            <if test="tableType != null">table_type,</if>
+            <if test="isExist != null">is_exist,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="deleteTime != null">delete_time,</if>
+            <if test="createUserId != null and createUserId != ''">create_user_id,</if>
+            <if test="deleteUserId != null">delete_user_id,</if>
+            <if test="version != null and version != ''">version,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="tableName != null and tableName != ''">#{tableName},</if>
+            <if test="tableDescribe != null">#{tableDescribe},</if>
+            <if test="tableType != null">#{tableType},</if>
+            <if test="isExist != null">#{isExist},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="deleteTime != null">#{deleteTime},</if>
+            <if test="createUserId != null and createUserId != ''">#{createUserId},</if>
+            <if test="deleteUserId != null">#{deleteUserId},</if>
+            <if test="version != null and version != ''">#{version},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTTable" parameterType="TTable">
+        update t_table
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="tableName != null and tableName != ''">table_name = #{tableName},</if>
+            <if test="tableDescribe != null">table_describe = #{tableDescribe},</if>
+            <if test="tableType != null">table_type = #{tableType},</if>
+            <if test="isExist != null">is_exist = #{isExist},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="deleteTime != null">delete_time = #{deleteTime},</if>
+            <if test="createUserId != null and createUserId != ''">create_user_id = #{createUserId},</if>
+            <if test="deleteUserId != null">delete_user_id = #{deleteUserId},</if>
+            <if test="version != null and version != ''">version = #{version},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTTableById" parameterType="String">
+        delete from t_table where id = #{id}
+    </delete>
+
+    <delete id="deleteTTableByIds" parameterType="String">
+        delete from t_table where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 74 - 5
sql/pgsql/0_init.sql

@@ -1,10 +1,79 @@
 -- 7.24
 
 -- 修改表结构和数据,需要同步到现场
-base.t_jsc_sql
+-- 菜单 SQL
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3006','表管理', '1065', '10', 'table', 'system/table/index', 1, 0, 'C', '0', '0', 'system:table:list', '#', 'admin', now(), '', null, '表管理菜单');
 
-vector.TB_LSYD
-vector.TB_NZYSJ
+insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3007', '表字段管理', '1065', '11', 'filed', 'system/filed/index', 1, 0, 'C', '0', '0', 'system:filed:list', '#', 'admin', now(), '', null, '表字段管理菜单');
 
--- nacos
-onemap-spatial
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3008', '表与字段关联管理', '1065', '12', 'relation', 'system/relation/index', 1, 0, 'C', '0', '0', 'system:relation:list', '#', 'admin', now(), '', null, '表与字段关联管理菜单');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3024', '表与服务关联管理', '1065', '13', 'layer', 'system/layer/index', 1, 0, 'C', '0', '0', 'system:layer:list', '#', 'admin', now(), '', null, '表与服务关联管理,用于多级查询');
+
+
+-- 按钮 SQL
+-- 按钮 SQL
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3009','表管理查询', '3006', '1',  '#', '', 1, 0, 'F', '0', '0', 'system:table:query',        '#', 'admin', now(), '', null, '');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3010','表管理新增', '3006', '2',  '#', '', 1, 0, 'F', '0', '0', 'system:table:add',          '#', 'admin', now(), '', null, '');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3011','表管理修改', '3006', '3',  '#', '', 1, 0, 'F', '0', '0', 'system:table:edit',         '#', 'admin', now(), '', null, '');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3012','表管理删除', '3006', '4',  '#', '', 1, 0, 'F', '0', '0', 'system:table:remove',       '#', 'admin', now(), '', null, '');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3013','表管理导出', '3006', '5',  '#', '', 1, 0, 'F', '0', '0', 'system:table:export',       '#', 'admin', now(), '', null, '');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3014','表字段管理查询', '3007', '1',  '#', '', 1, 0, 'F', '0', '0', 'system:filed:query',        '#', 'admin', now(), '', null, '');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3015','表字段管理新增', '3007', '2',  '#', '', 1, 0, 'F', '0', '0', 'system:filed:add',          '#', 'admin', now(), '', null, '');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3016','表字段管理修改', '3007', '3',  '#', '', 1, 0, 'F', '0', '0', 'system:filed:edit',         '#', 'admin', now(), '', null, '');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3017','表字段管理删除', '3007', '4',  '#', '', 1, 0, 'F', '0', '0', 'system:filed:remove',       '#', 'admin', now(), '', null, '');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3018','表字段管理导出', '3007', '5',  '#', '', 1, 0, 'F', '0', '0', 'system:filed:export',       '#', 'admin', now(), '', null, '');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3019','表与字段关联管理查询', '3008', '1',  '#', '', 1, 0, 'F', '0', '0', 'system:relation:query',        '#', 'admin', now(), '', null, '');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3020','表与字段关联管理新增', '3008', '2',  '#', '', 1, 0, 'F', '0', '0', 'system:relation:add',          '#', 'admin', now(), '', null, '');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3021','表与字段关联管理修改', '3008', '3',  '#', '', 1, 0, 'F', '0', '0', 'system:relation:edit',         '#', 'admin', now(), '', null, '');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3022','表与字段关联管理删除', '3008', '4',  '#', '', 1, 0, 'F', '0', '0', 'system:relation:remove',       '#', 'admin', now(), '', null, '');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3023','表与字段关联管理导出', '3008', '5',  '#', '', 1, 0, 'F', '0', '0', 'system:relation:export',       '#', 'admin', now(), '', null, '');
+
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3025','表与服务关联管理查询', '3024', '1',  '#', '', 1, 0, 'F', '0', '0', 'system:layer:query',        '#', 'admin', now(), '', null, '');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3026','表与服务关联管理新增', '3024', '2',  '#', '', 1, 0, 'F', '0', '0', 'system:layer:add',          '#', 'admin', now(), '', null, '');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3027','表与服务关联管理修改', '3024', '3',  '#', '', 1, 0, 'F', '0', '0', 'system:layer:edit',         '#', 'admin', now(), '', null, '');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3028',,'表与服务关联管理删除', '3024', '4',  '#', '', 1, 0, 'F', '0', '0', 'system:layer:remove',       '#', 'admin', now(), '', null, '');
+
+insert into sys_menu (menu_id,menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('3029','表与服务关联管理导出', '3024', '5',  '#', '', 1, 0, 'F', '0', '0', 'system:layer:export',       '#', 'admin', now(), '', null, '');