Browse Source

数字林业

hanfucheng 11 months ago
parent
commit
bea51274d5
64 changed files with 8240 additions and 0 deletions
  1. 52 0
      data-ui/src/api/data/dict/dict.js
  2. 44 0
      data-ui/src/api/data/digitalforest/area/area.js
  3. 44 0
      data-ui/src/api/data/digitalforest/cyry/cyry.js
  4. 44 0
      data-ui/src/api/data/digitalforest/gdzcwc/gdzcwc.js
  5. 51 0
      data-ui/src/api/data/digitalforest/lycyzcz/lycyzcz.js
  6. 44 0
      data-ui/src/api/data/digitalforest/ylscsjj/ylscsjj.js
  7. 44 0
      data-ui/src/api/data/digitalforest/zylcpcl/zylcpcl.js
  8. 42 0
      data-ui/src/router/index.js
  9. 257 0
      data-ui/src/views/data/dict/dictFour.vue
  10. 246 0
      data-ui/src/views/data/dict/dictThree.vue
  11. 256 0
      data-ui/src/views/data/dict/dictTwo.vue
  12. 249 0
      data-ui/src/views/data/dict/index.vue
  13. 364 0
      data-ui/src/views/data/digitalforest/area/index.vue
  14. 419 0
      data-ui/src/views/data/digitalforest/cyry/index.vue
  15. 359 0
      data-ui/src/views/data/digitalforest/gdzcwc/index.vue
  16. 334 0
      data-ui/src/views/data/digitalforest/lycyzcz/index.vue
  17. 377 0
      data-ui/src/views/data/digitalforest/ylscsjj/index.vue
  18. 359 0
      data-ui/src/views/data/digitalforest/zylcpcl/index.vue
  19. 134 0
      src/main/java/com/sooka/sponest/data/dict/controller/DataDictController.java
  20. 62 0
      src/main/java/com/sooka/sponest/data/dict/domain/DataDict.java
  21. 61 0
      src/main/java/com/sooka/sponest/data/dict/domain/vo/DataDictVO.java
  22. 96 0
      src/main/java/com/sooka/sponest/data/dict/mapper/DataDictMapper.java
  23. 76 0
      src/main/java/com/sooka/sponest/data/dict/service/IDataDictService.java
  24. 191 0
      src/main/java/com/sooka/sponest/data/dict/service/impl/DataDictServiceImpl.java
  25. 91 0
      src/main/java/com/sooka/sponest/data/digitalforest/controller/CenterdataTForestCyryController.java
  26. 98 0
      src/main/java/com/sooka/sponest/data/digitalforest/controller/CenterdataTForestForestationAreaController.java
  27. 91 0
      src/main/java/com/sooka/sponest/data/digitalforest/controller/CenterdataTForestGdzcwcController.java
  28. 98 0
      src/main/java/com/sooka/sponest/data/digitalforest/controller/CenterdataTForestLycyzczController.java
  29. 91 0
      src/main/java/com/sooka/sponest/data/digitalforest/controller/CenterdataTForestYlscsjjController.java
  30. 91 0
      src/main/java/com/sooka/sponest/data/digitalforest/controller/CenterdataTForestZylcpclController.java
  31. 222 0
      src/main/java/com/sooka/sponest/data/digitalforest/domain/CenterdataTForestCyry.java
  32. 118 0
      src/main/java/com/sooka/sponest/data/digitalforest/domain/CenterdataTForestDict.java
  33. 132 0
      src/main/java/com/sooka/sponest/data/digitalforest/domain/CenterdataTForestForestationArea.java
  34. 162 0
      src/main/java/com/sooka/sponest/data/digitalforest/domain/CenterdataTForestGdzcwc.java
  35. 126 0
      src/main/java/com/sooka/sponest/data/digitalforest/domain/CenterdataTForestLycyzcz.java
  36. 192 0
      src/main/java/com/sooka/sponest/data/digitalforest/domain/CenterdataTForestYlscsjj.java
  37. 162 0
      src/main/java/com/sooka/sponest/data/digitalforest/domain/CenterdataTForestZylcpcl.java
  38. 61 0
      src/main/java/com/sooka/sponest/data/digitalforest/mapper/CenterdataTForestCyryMapper.java
  39. 61 0
      src/main/java/com/sooka/sponest/data/digitalforest/mapper/CenterdataTForestDictMapper.java
  40. 61 0
      src/main/java/com/sooka/sponest/data/digitalforest/mapper/CenterdataTForestForestationAreaMapper.java
  41. 61 0
      src/main/java/com/sooka/sponest/data/digitalforest/mapper/CenterdataTForestGdzcwcMapper.java
  42. 61 0
      src/main/java/com/sooka/sponest/data/digitalforest/mapper/CenterdataTForestLycyzczMapper.java
  43. 61 0
      src/main/java/com/sooka/sponest/data/digitalforest/mapper/CenterdataTForestYlscsjjMapper.java
  44. 61 0
      src/main/java/com/sooka/sponest/data/digitalforest/mapper/CenterdataTForestZylcpclMapper.java
  45. 61 0
      src/main/java/com/sooka/sponest/data/digitalforest/service/ICenterdataTForestCyryService.java
  46. 61 0
      src/main/java/com/sooka/sponest/data/digitalforest/service/ICenterdataTForestDictService.java
  47. 61 0
      src/main/java/com/sooka/sponest/data/digitalforest/service/ICenterdataTForestForestationAreaService.java
  48. 61 0
      src/main/java/com/sooka/sponest/data/digitalforest/service/ICenterdataTForestGdzcwcService.java
  49. 61 0
      src/main/java/com/sooka/sponest/data/digitalforest/service/ICenterdataTForestLycyzczService.java
  50. 61 0
      src/main/java/com/sooka/sponest/data/digitalforest/service/ICenterdataTForestYlscsjjService.java
  51. 61 0
      src/main/java/com/sooka/sponest/data/digitalforest/service/ICenterdataTForestZylcpclService.java
  52. 101 0
      src/main/java/com/sooka/sponest/data/digitalforest/service/impl/CenterdataTForestCyryServiceImpl.java
  53. 102 0
      src/main/java/com/sooka/sponest/data/digitalforest/service/impl/CenterdataTForestForestationAreaServiceImpl.java
  54. 101 0
      src/main/java/com/sooka/sponest/data/digitalforest/service/impl/CenterdataTForestGdzcwcServiceImpl.java
  55. 101 0
      src/main/java/com/sooka/sponest/data/digitalforest/service/impl/CenterdataTForestLycyzczServiceImpl.java
  56. 101 0
      src/main/java/com/sooka/sponest/data/digitalforest/service/impl/CenterdataTForestYlscsjjServiceImpl.java
  57. 101 0
      src/main/java/com/sooka/sponest/data/digitalforest/service/impl/CenterdataTForestZylcpclServiceImpl.java
  58. 133 0
      src/main/resources/mapper/dict/DataDictMapper.xml
  59. 149 0
      src/main/resources/mapper/digitalforest/CenterdataTForestCyryMapper.xml
  60. 120 0
      src/main/resources/mapper/digitalforest/CenterdataTForestForestationAreaMapper.xml
  61. 129 0
      src/main/resources/mapper/digitalforest/CenterdataTForestGdzcwcMapper.xml
  62. 107 0
      src/main/resources/mapper/digitalforest/CenterdataTForestLycyzczMapper.xml
  63. 133 0
      src/main/resources/mapper/digitalforest/CenterdataTForestYlscsjjMapper.xml
  64. 129 0
      src/main/resources/mapper/digitalforest/CenterdataTForestZylcpclMapper.xml

+ 52 - 0
data-ui/src/api/data/dict/dict.js

@@ -0,0 +1,52 @@
+import request from '@/utils/request'
+
+// 查询字典列表
+export function listDataDict(query) {
+  return request({
+    url: '/center-data/dataDict/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询字典详细
+export function getDataDict(id) {
+  return request({
+    url: '/center-data/dataDict/' + id,
+    method: 'get'
+  })
+}
+
+// 新增字典
+export function addDataDict(data) {
+  return request({
+    url: '/center-data/dataDict',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改字典
+export function updateDataDict(data) {
+  return request({
+    url: '/center-data/dataDict',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除字典
+export function delDataDict(id) {
+  return request({
+    url: '/center-data/dataDict/' + id,
+    method: 'delete'
+  })
+}
+
+// 字典树形
+export function dictTree(type) {
+  return request({
+    url: '/center-data/dataDict/dictTree?type=' + type,
+    method: 'get'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalforest/area/area.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询造林面积列表
+export function listArea(query) {
+  return request({
+    url: '/center-data/area/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询造林面积详细
+export function getArea(id) {
+  return request({
+    url: '/center-data/area/' + id,
+    method: 'get'
+  })
+}
+
+// 新增造林面积
+export function addArea(data) {
+  return request({
+    url: '/center-data/area',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改造林面积
+export function updateArea(data) {
+  return request({
+    url: '/center-data/area',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除造林面积
+export function delArea(id) {
+  return request({
+    url: '/center-data/area/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalforest/cyry/cyry.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询从业人员情况列表
+export function listCyry(query) {
+  return request({
+    url: '/center-data/cyry/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询从业人员情况详细
+export function getCyry(id) {
+  return request({
+    url: '/center-data/cyry/' + id,
+    method: 'get'
+  })
+}
+
+// 新增从业人员情况
+export function addCyry(data) {
+  return request({
+    url: '/center-data/cyry',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改从业人员情况
+export function updateCyry(data) {
+  return request({
+    url: '/center-data/cyry',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除从业人员情况
+export function delCyry(id) {
+  return request({
+    url: '/center-data/cyry/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalforest/gdzcwc/gdzcwc.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询固定资产投资完成额列表
+export function listGdzcwc(query) {
+  return request({
+    url: '/center-data/gdzcwc/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询固定资产投资完成额详细
+export function getGdzcwc(id) {
+  return request({
+    url: '/center-data/gdzcwc/' + id,
+    method: 'get'
+  })
+}
+
+// 新增固定资产投资完成额
+export function addGdzcwc(data) {
+  return request({
+    url: '/center-data/gdzcwc',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改固定资产投资完成额
+export function updateGdzcwc(data) {
+  return request({
+    url: '/center-data/gdzcwc',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除固定资产投资完成额
+export function delGdzcwc(id) {
+  return request({
+    url: '/center-data/gdzcwc/' + id,
+    method: 'delete'
+  })
+}

+ 51 - 0
data-ui/src/api/data/digitalforest/lycyzcz/lycyzcz.js

@@ -0,0 +1,51 @@
+import request from '@/utils/request'
+
+// 查询林业产业总产值列表
+export function listLycyzcz(query) {
+  return request({
+    url: '/center-data/lycyzcz/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询林业产业总产值详细
+export function getLycyzcz(id) {
+  return request({
+    url: '/center-data/lycyzcz/' + id,
+    method: 'get'
+  })
+}
+
+// 新增林业产业总产值
+export function addLycyzcz(data) {
+  return request({
+    url: '/center-data/lycyzcz',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改林业产业总产值
+export function updateLycyzcz(data) {
+  return request({
+    url: '/center-data/lycyzcz',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除林业产业总产值
+export function delLycyzcz(id) {
+  return request({
+    url: '/center-data/lycyzcz/' + id,
+    method: 'delete'
+  })
+}
+
+export function DictOptions() {
+  return request({
+    url: `/center-data/dataDict/dictTree?type=forest_cyzcz`,
+    method: 'get'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalforest/ylscsjj/ylscsjj.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询营林生产数据集列表
+export function listYlscsjj(query) {
+  return request({
+    url: '/center-data/ylscsjj/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询营林生产数据集详细
+export function getYlscsjj(id) {
+  return request({
+    url: '/center-data/ylscsjj/' + id,
+    method: 'get'
+  })
+}
+
+// 新增营林生产数据集
+export function addYlscsjj(data) {
+  return request({
+    url: '/center-data/ylscsjj',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改营林生产数据集
+export function updateYlscsjj(data) {
+  return request({
+    url: '/center-data/ylscsjj',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除营林生产数据集
+export function delYlscsjj(id) {
+  return request({
+    url: '/center-data/ylscsjj/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
data-ui/src/api/data/digitalforest/zylcpcl/zylcpcl.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询主要林产品产量列表
+export function listZylcpcl(query) {
+  return request({
+    url: '/center-data/zylcpcl/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询主要林产品产量详细
+export function getZylcpcl(id) {
+  return request({
+    url: '/center-data/zylcpcl/' + id,
+    method: 'get'
+  })
+}
+
+// 新增主要林产品产量
+export function addZylcpcl(data) {
+  return request({
+    url: '/center-data/zylcpcl',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改主要林产品产量
+export function updateZylcpcl(data) {
+  return request({
+    url: '/center-data/zylcpcl',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除主要林产品产量
+export function delZylcpcl(id) {
+  return request({
+    url: '/center-data/zylcpcl/' + id,
+    method: 'delete'
+  })
+}

+ 42 - 0
data-ui/src/router/index.js

@@ -238,6 +238,48 @@ export const dynamicRoutes = [
         meta: { title: '修改生成配置', activeMenu: '/tool/gen' }
       }
     ]
+  },
+  {
+    path: '/center-data/data/dict/dictTwo',
+    component: Layout,
+    hidden: true,
+    permissions: ['dict:dict:list'],
+    children: [
+      {
+        path: 'index/:id(\\d+)',
+        component: () => import('@/views/data/dict/dictTwo'),
+        name: 'dataDict',
+        meta: { title: '二级分类', activeMenu: '/dict/dataDict' }
+      }
+    ]
+  },
+  {
+    path: '/center-data/data/dict/dictThree',
+    component: Layout,
+    hidden: true,
+    permissions: ['dict:dict:list'],
+    children: [
+      {
+        path: 'index/:id(\\d+)',
+        component: () => import('@/views/data/dict/dictThree.vue'),
+        name: 'dataDict',
+        meta: { title: '三级分类', activeMenu: '/dict/dataDict' }
+      }
+    ]
+  },
+  {
+    path: '/center-data/data/dict/dictFour',
+    component: Layout,
+    hidden: true,
+    permissions: ['dict:dict:list'],
+    children: [
+      {
+        path: 'index/:id(\\d+)',
+        component: () => import('@/views/data/dict/dictFour.vue'),
+        name: 'dataDict',
+        meta: { title: '四级分类', activeMenu: '/dict/dataDict' }
+      }
+    ]
   }
 ]
 

+ 257 - 0
data-ui/src/views/data/dict/dictFour.vue

@@ -0,0 +1,257 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent>
+      <el-form-item label="名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入字典名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['dict:dict:add']"
+        >新增</el-button>
+      </el-col>
+      <!--      <el-col :span="1.5">-->
+      <!--        <el-button-->
+      <!--          type="warning"-->
+      <!--          plain-->
+      <!--          icon="el-icon-download"-->
+      <!--          size="mini"-->
+      <!--          @click="handleExport"-->
+      <!--          v-hasPermi="['event:evenType:export']"-->
+      <!--        >导出</el-button>-->
+      <!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="dataDictList">
+      <el-table-column label="编号" align="center"  prop="code" />
+      <el-table-column label="名称" align="center" prop="name" />
+      <el-table-column label="字典类型" align="center"  prop="type"/>
+      <el-table-column label="创建人" align="center" prop="createName" />
+      <el-table-column label="创建时间" align="center" prop="createTime" />
+      <el-table-column label="修改人" align="center" prop="updateName" />
+      <el-table-column label="修改时间" align="center" prop="updateTime" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['dict:dict:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['dict:dict:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改数据字典对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+        <el-form-item label="编号" prop="code">
+          <el-input v-model="form.code" placeholder="请输入编号" maxlength="10"/>
+        </el-form-item>
+        <el-form-item label="名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入名称" maxlength="50"/>
+        </el-form-item>
+        <el-form-item label="字典类型" prop="type">
+          <el-input v-model="form.type" placeholder="请输入字典类型" maxlength="50" :disabled="true"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {addDataDict, delDataDict, getDataDict, listDataDict, updateDataDict} from '@/api/data/dict/dict'
+
+export default {
+  name: "DataDict",
+  data() {
+    return {
+      //父ID
+      parentId: null,
+      //是否显示新增修改页面的parentId
+      showParentId:false,
+      // 遮罩层
+      loading: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 字典表格数据
+      dataDictList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: null,
+        code: null,
+        type: null,
+        level: null,
+        parentId: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        name: [
+          {required: true, message: '名称不能为空', trigger: 'blur'}
+        ],
+        code: [
+          {required: true, message: '编号不能为空', trigger: 'blur'}
+        ],
+        type: [
+          {required: true, message: '字典类型不能为空', trigger: 'blur'}
+        ],
+      }
+    };
+  },
+  created() {
+    this.parentId = this.$route.params && this.$route.params.id;
+    this.getDataDict(this.parentId);
+    // this.getList();
+  },
+  methods: {
+    /** 查询事件类型详细 */
+    getDataDict(id) {
+      getDataDict(id).then(response => {
+        this.type = response.data.type;
+        this.queryParams.parentId = id;
+        this.queryParams.type = this.type;
+        this.getList();
+      });
+    },
+    /** 查询事件分类列表 */
+    getList() {
+      this.loading = true;
+      // this.queryParams.type = this.type;
+      this.queryParams.level = 3;
+      listDataDict(this.queryParams).then(response => {
+        this.dataDictList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        code: null,
+        name: null,
+        type: null,
+        parentId: null,
+        level: null,
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加数据字典分类";
+      this.form.id = this.queryParams.id;
+      this.form.type = this.type;
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      getDataDict(row.id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改数据字典分类";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.form.level = 3;
+          this.form.parentId = this.parentId;
+          if (this.form.id != null) {
+            updateDataDict(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addDataDict(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      this.$modal.confirm('是否确认删除已选择的数据项').then(function() {
+        return delDataDict(row.id);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    // handleExport() {
+    //   this.download('center-comprehensive/evenType/export', {
+    //     ...this.queryParams
+    //   }, `事件分类_${new Date().getTime()}.xlsx`)
+    // }
+  }
+};
+</script>

+ 246 - 0
data-ui/src/views/data/dict/dictThree.vue

@@ -0,0 +1,246 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent>
+      <el-form-item label="名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入字典名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['dict:dict:add']"
+        >新增</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="dataDictList">
+      <el-table-column label="编号" align="center"  prop="code" />
+      <el-table-column label="名称" align="center" prop="name" >
+        <template slot-scope="scope">
+          <router-link :to="'/center-data/data/dict/dictFour/index/' + scope.row.id" class="link-type">
+            <span>{{ scope.row.name }}</span>
+          </router-link>
+        </template>
+      </el-table-column>
+      <el-table-column label="字典类型" align="center"  prop="type"/>
+      <el-table-column label="创建人" align="center" prop="createName" />
+      <el-table-column label="创建时间" align="center" prop="createTime" />
+      <el-table-column label="修改人" align="center" prop="updateName" />
+      <el-table-column label="修改时间" align="center" prop="updateTime" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['dict:dict:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['dict:dict:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改数据字典对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+        <el-form-item label="编号" prop="code">
+          <el-input v-model="form.code" placeholder="请输入编号" maxlength="10"/>
+        </el-form-item>
+        <el-form-item label="名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入名称" maxlength="50"/>
+        </el-form-item>
+        <el-form-item label="字典类型" prop="type">
+          <el-input v-model="form.type" placeholder="请输入字典类型" maxlength="50" :disabled="true"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {addDataDict, delDataDict, getDataDict, listDataDict, updateDataDict} from '@/api/data/dict/dict'
+
+export default {
+  name: "DataDict",
+  data() {
+    return {
+      //父ID
+      parentId: null,
+      //是否显示新增修改页面的parentId
+      showParentId:false,
+      // 遮罩层
+      loading: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 字典表格数据
+      dataDictList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: null,
+        code: null,
+        type: null,
+        level: null,
+        parentId: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        name: [
+          {required: true, message: '名称不能为空', trigger: 'blur'}
+        ],
+        code: [
+          {required: true, message: '编号不能为空', trigger: 'blur'}
+        ],
+        type: [
+          {required: true, message: '字典类型不能为空', trigger: 'blur'}
+        ],
+      }
+    };
+  },
+  created() {
+    this.parentId = this.$route.params && this.$route.params.id;
+    this.getDataDict(this.parentId);
+    // this.getList();
+  },
+  methods: {
+    /** 查询事件类型详细 */
+    getDataDict(id) {
+      getDataDict(id).then(response => {
+        this.type = response.data.type;
+        this.queryParams.parentId = id;
+        this.queryParams.type = this.type;
+        this.getList();
+      });
+    },
+    /** 查询事件分类列表 */
+    getList() {
+      this.loading = true;
+      // this.queryParams.type = this.type;
+      this.queryParams.level = 2;
+      listDataDict(this.queryParams).then(response => {
+        this.dataDictList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        code: null,
+        name: null,
+        type: null,
+        parentId: null,
+        level: null,
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加数据字典分类";
+      this.form.type = this.type;
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      getDataDict(row.id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改数据字典分类";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.form.level = 2;
+          this.form.parentId = this.parentId;
+          if (this.form.id != null) {
+            updateDataDict(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addDataDict(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      this.$modal.confirm('是否确认删除已选择的数据项').then(function() {
+        return delDataDict(row.id);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+  }
+};
+</script>

+ 256 - 0
data-ui/src/views/data/dict/dictTwo.vue

@@ -0,0 +1,256 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent>
+      <el-form-item label="名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入字典名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['dict:dict:add']"
+        >新增</el-button>
+      </el-col>
+      <!--      <el-col :span="1.5">-->
+      <!--        <el-button-->
+      <!--          type="warning"-->
+      <!--          plain-->
+      <!--          icon="el-icon-download"-->
+      <!--          size="mini"-->
+      <!--          @click="handleExport"-->
+      <!--          v-hasPermi="['event:evenType:export']"-->
+      <!--        >导出</el-button>-->
+      <!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="dataDictList">
+      <el-table-column label="编号" align="center"  prop="code" />
+      <el-table-column label="名称" align="center" prop="name" >
+        <template slot-scope="scope">
+          <router-link :to="'/center-data/data/dict/dictThree/index/' + scope.row.id" class="link-type">
+            <span>{{ scope.row.name }}</span>
+          </router-link>
+        </template>
+      </el-table-column>
+      <el-table-column label="字典类型" align="center"  prop="type"/>
+      <el-table-column label="创建人" align="center" prop="createName" />
+      <el-table-column label="创建时间" align="center" prop="createTime" />
+      <el-table-column label="修改人" align="center" prop="updateName" />
+      <el-table-column label="修改时间" align="center" prop="updateTime" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['dict:dict:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['dict:dict:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改数据字典对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+        <el-form-item label="编号" prop="code">
+          <el-input v-model="form.code" placeholder="请输入编号" maxlength="10"/>
+        </el-form-item>
+        <el-form-item label="名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入名称" maxlength="50"/>
+        </el-form-item>
+        <el-form-item label="字典类型" prop="type">
+          <el-input v-model="form.type" placeholder="请输入字典类型" maxlength="50" :disabled="true"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {addDataDict, delDataDict, getDataDict, listDataDict, updateDataDict} from '@/api/data/dict/dict'
+
+export default {
+  name: "DataDict",
+  data() {
+    return {
+      //父ID
+      parentId: null,
+      //是否显示新增修改页面的parentId
+      showParentId:false,
+      // 遮罩层
+      loading: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 字典表格数据
+      dataDictList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: null,
+        code: null,
+        type: null,
+        level: null,
+        parentId: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        name: [
+          {required: true, message: '名称不能为空', trigger: 'blur'}
+        ],
+        code: [
+          {required: true, message: '编号不能为空', trigger: 'blur'}
+        ],
+        type: [
+          {required: true, message: '字典类型不能为空', trigger: 'blur'}
+        ],
+      }
+    };
+  },
+  created() {
+    this.parentId = this.$route.params && this.$route.params.id;
+    this.getDataDict(this.parentId);
+    // this.getList();
+  },
+  methods: {
+    /** 查询事件类型详细 */
+    getDataDict(id) {
+      getDataDict(id).then(response => {
+        this.type = response.data.type;
+        this.queryParams.parentId = id;
+        this.queryParams.type = this.type;
+        this.getList();
+      });
+    },
+    /** 查询事件分类列表 */
+    getList() {
+      this.loading = true;
+      // this.queryParams.type = this.type;
+      this.queryParams.level = 2;
+      listDataDict(this.queryParams).then(response => {
+        this.dataDictList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        code: null,
+        name: null,
+        type: null,
+        parentId: null,
+        level: null,
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加数据字典分类";
+      this.form.type = this.type;
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      getDataDict(row.id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改数据字典分类";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.form.level = 2;
+          this.form.parentId = this.parentId;
+          if (this.form.id != null) {
+            updateDataDict(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addDataDict(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      this.$modal.confirm('是否确认删除已选择的数据项').then(function() {
+        return delDataDict(row.id);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+  }
+};
+</script>

+ 249 - 0
data-ui/src/views/data/dict/index.vue

@@ -0,0 +1,249 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent>
+      <el-form-item label="名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入字典名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['dict:dict:add']"
+        >新增</el-button>
+      </el-col>
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          @click="handleExport"-->
+<!--          v-hasPermi="['event:evenType:export']"-->
+<!--        >导出</el-button>-->
+<!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="dataDictList">
+      <el-table-column label="编号" align="center"  prop="code" />
+      <el-table-column label="名称" align="center" prop="name" >
+        <template slot-scope="scope">
+          <router-link :to="'/center-data/data/dict/dictTwo/index/' + scope.row.id" class="link-type">
+            <span>{{ scope.row.name }}</span>
+          </router-link>
+        </template>
+      </el-table-column>
+      <el-table-column label="字典类型" align="center"  prop="type"/>
+      <el-table-column label="创建人" align="center" prop="createName" />
+      <el-table-column label="创建时间" align="center" prop="createTime" />
+      <el-table-column label="修改人" align="center" prop="updateName" />
+      <el-table-column label="修改时间" align="center" prop="updateTime" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['dict:dict:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['dict:dict:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改数据字典对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+        <el-form-item label="编号" prop="code">
+          <el-input v-model="form.code" placeholder="请输入编号" maxlength="10"/>
+        </el-form-item>
+        <el-form-item label="名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入名称" maxlength="50"/>
+        </el-form-item>
+        <el-form-item label="字典类型" prop="type">
+          <el-input v-model="form.type" placeholder="请输入字典类型" maxlength="50" :disabled="isEdit"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {addDataDict, delDataDict, getDataDict, listDataDict, updateDataDict} from '@/api/data/dict/dict'
+
+export default {
+  name: "DataDict",
+  data() {
+    return {
+      //编辑禁用
+      isEdit: false,
+      //是否显示新增修改页面的parentId
+      showParentId:false,
+      // 遮罩层
+      loading: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 字典表格数据
+      dataDictList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: null,
+        code: null,
+        type: null,
+        level: null,
+        parentId: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        name: [
+          {required: true, message: '名称不能为空', trigger: 'blur'}
+        ],
+        code: [
+          {required: true, message: '编号不能为空', trigger: 'blur'}
+        ],
+        type: [
+          {required: true, message: '字典类型不能为空', trigger: 'blur'}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询事件分类列表 */
+    getList() {
+      this.loading = true;
+      // this.queryParams.type = this.type;
+      this.queryParams.level = 1;
+      listDataDict(this.queryParams).then(response => {
+        this.dataDictList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        //编辑禁用
+        isEdit: false,
+        id: null,
+        code: null,
+        name: null,
+        type: null,
+        parentId: null,
+        level: null,
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      //编辑禁用
+      this.isEdit = false;
+      this.title = "添加数据字典分类";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      this.isEdit = true
+      getDataDict(row.id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改数据字典分类";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.form.level = 1;
+          this.form.parentId = 0;
+          if (this.form.id != null) {
+            updateDataDict(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addDataDict(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      this.$modal.confirm('是否确认删除已选择的数据项').then(function() {
+        return delDataDict(row.id);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+  }
+};
+</script>

+ 364 - 0
data-ui/src/views/data/digitalforest/area/index.vue

@@ -0,0 +1,364 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="年份" prop="year">
+        <el-date-picker clearable size="small"
+                        v-model="queryParams.year"
+                        type="year"
+                        value-format="yyyy"
+                        placeholder="选择年份">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="部门名称" prop="deptName">
+        <el-input
+          v-model="queryParams.deptName"
+          placeholder="请输入部门名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:area:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:area:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:area:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:area:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="areaList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="年份" align="center" prop="year"/>
+      <el-table-column label="造林方式" align="center" prop="forestationType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.centerdata_forestation_type" :value="scope.row.forestationType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="林种用途" align="center" prop="forestType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.centerdata_forest_type" :value="scope.row.forestType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="面积" align="center" prop="area"/>
+      <el-table-column label="所属部门" align="center" prop="deptName"/>
+      <el-table-column label="创建人" align="center" prop="createName"/>
+      <el-table-column label="创建时间" align="center" prop="createTime"/>
+      <el-table-column label="修改人" align="center" prop="updateName"/>
+      <el-table-column label="修改时间" align="center" prop="updateTime"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:area:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:area:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改造林面积对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="600px" class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="110px">
+        <el-form-item label="年份" prop="year">
+          <el-date-picker clearable size="small"
+                          v-model="form.year"
+                          type="year"
+                          value-format="yyyy"
+                          placeholder="选择年份">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="造林方式" prop="forestationType">
+          <el-select v-model="form.forestationType" placeholder="请选择造林方式" filterable>
+            <el-option
+              v-for="dict in dict.type.centerdata_forestation_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="林种用途" prop="forestType">
+          <el-select v-model="form.forestType" placeholder="请选择林种用途" filterable>
+            <el-option
+              v-for="dict in dict.type.centerdata_forest_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="面积(公顷)" prop="area">
+          <el-input v-model="form.area" placeholder="请输入面积" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="所属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                      placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {listArea, getArea, delArea, addArea, updateArea} from "@/api/data/digitalforest/area/area";
+import Treeselect from "@riophae/vue-treeselect";
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {checkPositiveDecimal4} from "@/api/rules/rules";
+import {format_date} from "@/views/data/common/dateExport";
+
+export default {
+  name: "Area",
+  dicts:['centerdata_forest_type','centerdata_forestation_type'],
+  components: {Treeselect},
+  data() {
+    return {
+      // 部门树选项
+      deptOptions: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 造林面积表格数据
+      areaList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        deptId: null,
+        deptName: null,
+        createName: null,
+        updateName: null,
+        year: null,
+        forestationType: null,
+        forestType: null,
+        area: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        year: [
+          {required: true, message: "年份不能为空", trigger: "change"}
+        ],
+        forestationType: [
+          {required: true, message: "造林方式不能为空", trigger: "change"}
+        ],
+        forestType: [
+          {required: true, message: "林种用途不能为空", trigger: "change"}
+        ],
+        area: [
+          {required: true, message: "面积不能为空", trigger: "change"},
+          {validator: checkPositiveDecimal4, trigger: 'blur'}
+        ],
+        deptId: [
+          {required: true, message: "所属部门不能为空", trigger: "change"},
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    /** 查询部门下拉树结构 */
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    /** 查询造林面积列表 */
+    getList() {
+      this.loading = true;
+      listArea(this.queryParams).then(response => {
+        this.areaList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createName: null,
+        createTime: null,
+        updateBy: null,
+        updateName: null,
+        updateTime: null,
+        year: null,
+        forestationType: null,
+        forestType: null,
+        area: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加造林面积";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getArea(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改造林面积";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateArea(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addArea(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否删除选中的数据?').then(function () {
+        return delArea(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/area/export', {
+        ...this.queryParams
+      }, `造林面积_${format_date(new Date())}.xlsx`)
+    }
+  }
+};
+</script>

+ 419 - 0
data-ui/src/views/data/digitalforest/cyry/index.vue

@@ -0,0 +1,419 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"
+             @submit.native.prevent>
+      <el-form-item label="企业名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入企业名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="企业编号" prop="number">
+        <el-input
+          v-model="queryParams.number"
+          placeholder="请输入企业编号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="年份" prop="year">
+        <el-date-picker clearable size="small"
+                        v-model="queryParams.year"
+                        type="year"
+                        value-format="yyyy"
+                        placeholder="选择年份">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="部门名称" prop="deptName">
+        <el-input
+          v-model="queryParams.deptName"
+          placeholder="请输入部门名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:cyry:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:cyry:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:cyry:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:cyry:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="cyryList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="企业名称" align="center" prop="name"/>
+      <el-table-column label="企业编号" align="center" prop="number"/>
+      <el-table-column label="年份" align="center" prop="year"/>
+      <el-table-column label="从业人员人数" align="center" prop="cyryNum"/>
+      <el-table-column label="在岗职工人数" align="center" prop="zgzgNum"/>
+      <el-table-column label="在岗专业技术人员" align="center" prop="zgjsryNum"/>
+      <el-table-column label="保留劳动关系人员" align="center" prop="blldgxNum"/>
+      <el-table-column label="离退休人员" align="center" prop="ltxryNum"/>
+      <el-table-column label="在岗平均人数" align="center" prop="zgpjrs"/>
+      <el-table-column label="在岗劳动报酬" align="center" prop="zgldbc"/>
+      <el-table-column label="所属部门" align="center" prop="deptName"/>
+      <el-table-column label="创建人" align="center" prop="createName"/>
+      <el-table-column label="创建时间" align="center" prop="createTime"/>
+      <el-table-column label="修改人" align="center" prop="updateName"/>
+      <el-table-column label="修改时间" align="center" prop="updateTime"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:cyry:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:cyry:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改从业人员情况对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="1000px" class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="125px">
+        <el-row :gutter="20">
+          <el-col :span="12">
+            <el-form-item label="企业名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入企业名称" maxlength="32"/>
+            </el-form-item>
+            <el-form-item label="年份" prop="year">
+              <el-date-picker clearable size="small"
+                              v-model="form.year"
+                              type="year"
+                              value-format="yyyy"
+                              placeholder="选择年份">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="保留劳动关系人员" prop="blldgxNum">
+              <el-input v-model="form.blldgxNum" placeholder="请输入保留劳动关系人员" maxlength="20"/>
+            </el-form-item>
+            <el-form-item label="从业人员人数" prop="cyryNum">
+              <el-input v-model="form.cyryNum" placeholder="请输入从业人员人数" maxlength="20"/>
+            </el-form-item>
+            <el-form-item label="在岗职工人数" prop="zgzgNum">
+              <el-input v-model="form.zgzgNum" placeholder="请输入在岗职工人数" maxlength="20"/>
+            </el-form-item>
+            <el-form-item label="所属部门" prop="deptId">
+              <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                          placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="企业编号" prop="number">
+              <el-input v-model="form.number" placeholder="请输入企业编号" maxlength="32"/>
+            </el-form-item>
+            <el-form-item label="在岗专业技术人员" prop="zgjsryNum">
+              <el-input v-model="form.zgjsryNum" placeholder="请输入在岗专业技术人员" maxlength="20"/>
+            </el-form-item>
+            <el-form-item label="离退休人员" prop="ltxryNum">
+              <el-input v-model="form.ltxryNum" placeholder="请输入离退休人员" maxlength="20"/>
+            </el-form-item>
+            <el-form-item label="在岗平均人数" prop="zgpjrs">
+              <el-input v-model="form.zgpjrs" placeholder="请输入在岗平均人数" maxlength="20"/>
+            </el-form-item>
+            <el-form-item label="在岗劳动报酬" prop="zgldbc">
+              <el-input v-model="form.zgldbc" placeholder="请输入在岗劳动报酬" maxlength="20"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {listCyry, getCyry, delCyry, addCyry, updateCyry} from "@/api/data/digitalforest/cyry/cyry";
+import Treeselect from "@riophae/vue-treeselect";
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {checkNonnegativeInteger} from "@/api/rules/rules";
+import {format_date} from "@/views/data/common/dateExport";
+
+export default {
+  name: "Cyry",
+  components: {Treeselect},
+  data() {
+    return {
+      // 部门树选项
+      deptOptions: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 从业人员情况表格数据
+      cyryList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        deptId: null,
+        deptName: null,
+        createName: null,
+        updateName: null,
+        name: null,
+        number: null,
+        year: null,
+        cyryNum: null,
+        zgzgNum: null,
+        zgjsryNum: null,
+        blldgxNum: null,
+        ltxryNum: null,
+        zgpjrs: null,
+        zgldbc: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        name: [
+          {required: true, message: "企业名称不能为空", trigger: "change"}
+        ],
+        number: [
+          {required: true, message: "企业编号不能为空", trigger: "change"}
+        ],
+        year: [
+          {required: true, message: "年份不能为空", trigger: "change"}
+        ],
+        cyryNum: [
+          {validator: checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        zgzgNum: [
+          {validator: checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        zgjsryNum: [
+          {validator: checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        blldgxNum: [
+          {validator: checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        ltxryNum: [
+          {validator: checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        zgpjrs: [
+          {validator: checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        zgldbc: [
+          {validator: checkNonnegativeInteger, trigger: 'blur'}
+        ],
+        deptId: [
+          {required: true, message: "所属部门不能为空", trigger: "change"},
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    /** 查询部门下拉树结构 */
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    /** 查询从业人员情况列表 */
+    getList() {
+      this.loading = true;
+      listCyry(this.queryParams).then(response => {
+        this.cyryList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createName: null,
+        createTime: null,
+        updateBy: null,
+        updateName: null,
+        updateTime: null,
+        name: null,
+        number: null,
+        year: null,
+        cyryNum: null,
+        zgzgNum: null,
+        zgjsryNum: null,
+        blldgxNum: null,
+        ltxryNum: null,
+        zgpjrs: null,
+        zgldbc: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加从业人员情况";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getCyry(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改从业人员情况";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateCyry(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addCyry(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否删除选中的数据?').then(function () {
+        return delCyry(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/cyry/export', {
+        ...this.queryParams
+      }, `从业人员情况_${format_date(new Date())}.xlsx`)
+    }
+  }
+};
+</script>

+ 359 - 0
data-ui/src/views/data/digitalforest/gdzcwc/index.vue

@@ -0,0 +1,359 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"
+             @submit.native.prevent>
+      <el-form-item label="年份" prop="year">
+        <el-date-picker clearable size="small"
+                        v-model="queryParams.year"
+                        type="year"
+                        value-format="yyyy"
+                        placeholder="选择年份">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="部门名称" prop="deptName">
+        <el-input
+          v-model="queryParams.deptName"
+          placeholder="请输入部门名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:gdzcwc:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:gdzcwc:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:gdzcwc:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:gdzcwc:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="gdzcwcList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="年份" align="center" prop="year"/>
+      <el-table-column label="国家投资" align="center" prop="gjInvest"/>
+      <el-table-column label="国债投资" align="center" prop="gzInvest"/>
+      <el-table-column label="中央财政专项资金" align="center" prop="zyczzxInvest"/>
+      <el-table-column label="基本建设投资" align="center" prop="jbjsInvest"/>
+      <el-table-column label="更新改造及其他投资" align="center" prop="gxgzInvest"/>
+      <el-table-column label="所属部门" align="center" prop="deptName"/>
+      <el-table-column label="创建人" align="center" prop="createName"/>
+      <el-table-column label="创建时间" align="center" prop="createTime"/>
+      <el-table-column label="修改人" align="center" prop="updateName"/>
+      <el-table-column label="修改时间" align="center" prop="updateTime"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:gdzcwc:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:gdzcwc:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改固定资产投资完成额对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="800px" class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="195px">
+        <el-form-item label="年份" prop="year">
+          <el-date-picker clearable size="small"
+                          v-model="form.year"
+                          type="year"
+                          value-format="yyyy"
+                          placeholder="选择年份">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="国家投资(万元)" prop="gjInvest">
+          <el-input v-model="form.gjInvest" placeholder="请输入国家投资" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="国债投资(万元)" prop="gzInvest">
+          <el-input v-model="form.gzInvest" placeholder="请输入国债投资" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="中央财政专项资金(万元)" prop="zyczzxInvest">
+          <el-input v-model="form.zyczzxInvest" placeholder="请输入中央财政专项资金" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="基本建设投资(万元)" prop="jbjsInvest">
+          <el-input v-model="form.jbjsInvest" placeholder="请输入基本建设投资" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="更新改造及其他投资(万元)" prop="gxgzInvest">
+          <el-input v-model="form.gxgzInvest" placeholder="请输入更新改造及其他投资" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="所属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                      placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {listGdzcwc, getGdzcwc, delGdzcwc, addGdzcwc, updateGdzcwc} from "@/api/data/digitalforest/gdzcwc/gdzcwc";
+import Treeselect from "@riophae/vue-treeselect";
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {checkPositiveDecimal} from "@/api/rules/rules";
+import {format_date} from "@/views/data/common/dateExport";
+
+export default {
+  name: "Gdzcwc",
+  components: {Treeselect},
+  data() {
+    return {
+      // 部门树选项
+      deptOptions: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 固定资产投资完成额表格数据
+      gdzcwcList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        deptId: null,
+        deptName: null,
+        createName: null,
+        updateName: null,
+        year: null,
+        gjInvest: null,
+        gzInvest: null,
+        zyczzxInvest: null,
+        jbjsInvest: null,
+        gxgzInvest: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        year: [
+          {required: true, message: "年份不能为空", trigger: "change"}
+        ],
+        gjInvest: [
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        gzInvest: [
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        zyczzxInvest: [
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        jbjsInvest: [
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        gxgzInvest: [
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        deptId: [
+          {required: true, message: "所属部门不能为空", trigger: "change"},
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    /** 查询部门下拉树结构 */
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    /** 查询固定资产投资完成额列表 */
+    getList() {
+      this.loading = true;
+      listGdzcwc(this.queryParams).then(response => {
+        this.gdzcwcList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createName: null,
+        createTime: null,
+        updateBy: null,
+        updateName: null,
+        updateTime: null,
+        year: null,
+        gjInvest: null,
+        gzInvest: null,
+        zyczzxInvest: null,
+        jbjsInvest: null,
+        gxgzInvest: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加固定资产投资完成额";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getGdzcwc(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改固定资产投资完成额";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateGdzcwc(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addGdzcwc(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否删除选中的数据?').then(function () {
+        return delGdzcwc(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/gdzcwc/export', {
+        ...this.queryParams
+      }, `固定资产投资完成额_${format_date(new Date())}.xlsx`)
+    }
+  }
+};
+</script>

+ 334 - 0
data-ui/src/views/data/digitalforest/lycyzcz/index.vue

@@ -0,0 +1,334 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"
+             @submit.native.prevent>
+      <el-form-item label="年份" prop="year">
+        <el-date-picker clearable size="small"
+                        v-model="queryParams.year"
+                        type="year"
+                        value-format="yyyy"
+                        placeholder="选择年份">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:lycyzcz:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:lycyzcz:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:lycyzcz:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:lycyzcz:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="lycyzczList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="年份" align="center" prop="year"/>
+      <el-table-column label="产业类型" align="center" prop="industryTypeLabel"/>
+      <el-table-column label="产业金额" align="center" prop="industrySum"/>
+      <el-table-column label="所属部门" align="center" prop="deptName"/>
+      <el-table-column label="创建人" align="center" prop="createName"/>
+      <el-table-column label="创建时间" align="center" prop="createTime"/>
+      <el-table-column label="修改人" align="center" prop="updateName"/>
+      <el-table-column label="修改时间" align="center" prop="updateTime"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:lycyzcz:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:lycyzcz:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改林业产业总产值对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="年份" prop="year">
+          <el-date-picker clearable size="small"
+                          v-model="form.year"
+                          type="year"
+                          value-format="yyyy"
+                          placeholder="选择年份">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="产业类型" prop="industryType">
+          <treeselect v-model="form.industryType" :noOptionsText="'空'"
+                      :noResultsText="'空'" :options="cityOptions" placeholder="请选择发生地" @select="hc"
+                      :disable-branch-nodes="false"/>
+        </el-form-item>
+        <el-form-item label="产业金额" prop="industrySum">
+          <el-input v-model="form.industrySum" placeholder="请输入产业金额"/>
+        </el-form-item>
+        <el-form-item label="所属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                      placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {listLycyzcz, getLycyzcz, delLycyzcz, addLycyzcz, updateLycyzcz, DictOptions} from "@/api/data/digitalforest/lycyzcz/lycyzcz";
+import Treeselect from "@riophae/vue-treeselect";
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {checkPositiveDecimal} from "@/api/rules/rules";
+import {format_date} from "@/views/data/common/dateExport";
+
+export default {
+  name: "Lycyzcz",
+  components: {Treeselect},
+  data() {
+    return {
+      // 部门树选项
+      deptOptions: undefined,
+      cityOptions:[],
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 林业产业总产值表格数据
+      lycyzczList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        year: null,
+        industryType: null,
+        industrySum: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        year: [
+          {required: true, message: "年份不能为空", trigger: "change"}
+        ],
+        industryType: [
+          {required: true, message: "产业类型不能为空", trigger: "change"}
+        ],
+        industrySum: [
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        deptId: [
+          {required: true, message: "所属部门不能为空", trigger: "change"},
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+    this.getDictselect();
+  },
+  methods: {
+    /** 查询部门下拉树结构 */
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    getDictselect(){
+      DictOptions().then(response => {
+        this.cityOptions =response;
+      });
+    },
+    hc(node){
+      // this.form.occurPlace = node.id
+      this.form.placeId = node.id
+      this.form.place = node.label
+      this.$refs.form.validateField("placeId")
+    },
+    /** 查询林业产业总产值列表 */
+    getList() {
+      this.loading = true;
+      listLycyzcz(this.queryParams).then(response => {
+        this.lycyzczList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createName: null,
+        createTime: null,
+        updateBy: null,
+        updateName: null,
+        updateTime: null,
+        year: null,
+        industryType: null,
+        industrySum: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加林业产业总产值";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getLycyzcz(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改林业产业总产值";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateLycyzcz(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addLycyzcz(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否删除选中的数据?').then(function () {
+        return delLycyzcz(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/lycyzcz/export', {
+        ...this.queryParams
+      }, `林业产业总产值_${format_date(new Date())}.xlsx`)
+    }
+  }
+};
+</script>

+ 377 - 0
data-ui/src/views/data/digitalforest/ylscsjj/index.vue

@@ -0,0 +1,377 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"
+             @submit.native.prevent>
+      <el-form-item label="年份" prop="year">
+        <el-date-picker clearable size="small"
+                        v-model="queryParams.year"
+                        type="year"
+                        value-format="yyyy"
+                        placeholder="选择年份">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="部门名称" prop="deptName">
+        <el-input
+          v-model="queryParams.deptName"
+          placeholder="请输入部门名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:ylscsjj:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:ylscsjj:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:ylscsjj:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:ylscsjj:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="ylscsjjList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="年份" align="center" prop="year"/>
+      <el-table-column label="迹地更新面积" align="center" prop="jdgxArea"/>
+      <el-table-column label="人工更新面积" align="center" prop="rggxArea"/>
+      <el-table-column label="低产林改造面积" align="center" prop="dclgzArea"/>
+      <el-table-column label="育苗面积" align="center" prop="ymArea"/>
+      <el-table-column label="封山育林面积" align="center" prop="fsArea"/>
+      <el-table-column label="森林管护面积" align="center" prop="slghArea"/>
+      <el-table-column label="中、幼龄林抚育面积" align="center" prop="zylfuArea"/>
+      <el-table-column label="所属部门" align="center" prop="deptName"/>
+      <el-table-column label="创建人" align="center" prop="createName"/>
+      <el-table-column label="创建时间" align="center" prop="createTime"/>
+      <el-table-column label="修改人" align="center" prop="updateName"/>
+      <el-table-column label="修改时间" align="center" prop="updateTime"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:ylscsjj:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:ylscsjj:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改营林生产数据集对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="800px" class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="195px">
+        <el-form-item label="年份" prop="year">
+          <el-date-picker clearable size="small"
+                          v-model="form.year"
+                          type="year"
+                          value-format="yyyy"
+                          placeholder="选择年份">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="迹地更新面积(公顷)" prop="jdgxArea">
+          <el-input v-model="form.jdgxArea" placeholder="请输入迹地更新面积" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="人工更新面积(公顷)" prop="rggxArea">
+          <el-input v-model="form.rggxArea" placeholder="请输入人工更新面积" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="低产林改造面积(公顷)" prop="dclgzArea">
+          <el-input v-model="form.dclgzArea" placeholder="请输入低产林改造面积" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="育苗面积(公顷)" prop="ymArea">
+          <el-input v-model="form.ymArea" placeholder="请输入育苗面积" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="封山育林面积(公顷)" prop="fsArea">
+          <el-input v-model="form.fsArea" placeholder="请输入封山育林面积" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="森林管护面积(公顷)" prop="slghArea">
+          <el-input v-model="form.slghArea" placeholder="请输入森林管护面积" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="中、幼龄林抚育面积(公顷)" prop="zylfuArea">
+          <el-input v-model="form.zylfuArea" placeholder="请输入中、幼龄林抚育面积" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="所属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                      placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {listYlscsjj, getYlscsjj, delYlscsjj, addYlscsjj, updateYlscsjj} from "@/api/data/digitalforest/ylscsjj/ylscsjj";
+import Treeselect from "@riophae/vue-treeselect";
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {checkPositiveDecimal} from "@/api/rules/rules";
+import {format_date} from "@/views/data/common/dateExport";
+
+export default {
+  name: "Ylscsjj",
+  components: {Treeselect},
+  data() {
+    return {
+      // 部门树选项
+      deptOptions: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 营林生产数据集表格数据
+      ylscsjjList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        deptId: null,
+        deptName: null,
+        createName: null,
+        updateName: null,
+        year: null,
+        jdgxArea: null,
+        rggxArea: null,
+        dclgzArea: null,
+        ymArea: null,
+        fsArea: null,
+        slghArea: null,
+        zylfuArea: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        year: [
+          {required: true, message: "年份不能为空", trigger: "change"}
+        ],
+        jdgxArea: [
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        rggxArea: [
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        dclgzArea: [
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        ymArea: [
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        fsArea: [
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        slghArea: [
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        zylfuArea: [
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        deptId: [
+          {required: true, message: "所属部门不能为空", trigger: "change"},
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    /** 查询部门下拉树结构 */
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    /** 查询营林生产数据集列表 */
+    getList() {
+      this.loading = true;
+      listYlscsjj(this.queryParams).then(response => {
+        this.ylscsjjList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createName: null,
+        createTime: null,
+        updateBy: null,
+        updateName: null,
+        updateTime: null,
+        year: null,
+        jdgxArea: null,
+        rggxArea: null,
+        dclgzArea: null,
+        ymArea: null,
+        fsArea: null,
+        slghArea: null,
+        zylfuArea: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加营林生产数据集";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getYlscsjj(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改营林生产数据集";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateYlscsjj(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addYlscsjj(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否删除选中的数据?').then(function () {
+        return delYlscsjj(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/ylscsjj/export', {
+        ...this.queryParams
+      }, `营林生产数据集_${format_date(new Date())}.xlsx`)
+    }
+  }
+};
+</script>

+ 359 - 0
data-ui/src/views/data/digitalforest/zylcpcl/index.vue

@@ -0,0 +1,359 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"
+             @submit.native.prevent>
+      <el-form-item label="年份" prop="year">
+        <el-date-picker clearable size="small"
+                        v-model="queryParams.year"
+                        type="year"
+                        value-format="yyyy"
+                        placeholder="选择年份">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="部门名称" prop="deptName">
+        <el-input
+          v-model="queryParams.deptName"
+          placeholder="请输入部门名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['data:zylcpcl:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['data:zylcpcl:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['data:zylcpcl:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['data:zylcpcl:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="zylcpclList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="年份" align="center" prop="year"/>
+      <el-table-column label="主要林产品产量" align="center" prop="zylcpYield"/>
+      <el-table-column label="木材产量" align="center" prop="mcYield"/>
+      <el-table-column label="锯材产量" align="center" prop="jcYield"/>
+      <el-table-column label="人造板产量" align="center" prop="rzbYield"/>
+      <el-table-column label="松香产量" align="center" prop="sxYield"/>
+      <el-table-column label="所属部门" align="center" prop="deptName"/>
+      <el-table-column label="创建人" align="center" prop="createName"/>
+      <el-table-column label="创建时间" align="center" prop="createTime"/>
+      <el-table-column label="修改人" align="center" prop="updateName"/>
+      <el-table-column label="修改时间" align="center" prop="updateTime"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['data:zylcpcl:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['data:zylcpcl:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改主要林产品产量对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="600px" class="form-style">
+      <el-form ref="form" :model="form" :rules="rules" label-width="155px">
+        <el-form-item label="年份" prop="year">
+          <el-date-picker clearable size="small"
+                          v-model="form.year"
+                          type="year"
+                          value-format="yyyy"
+                          placeholder="选择年份">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="主要林产品产量(吨)" prop="zylcpYield">
+          <el-input v-model="form.zylcpYield" placeholder="请输入主要林产品产量" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="木材产量(立方米)" prop="mcYield">
+          <el-input v-model="form.mcYield" placeholder="请输入木材产量" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="锯材产量(立方米)" prop="jcYield">
+          <el-input v-model="form.jcYield" placeholder="请输入锯材产量" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="人造板产量(立方米)" prop="rzbYield">
+          <el-input v-model="form.rzbYield" placeholder="请输入人造板产量" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="松香产量(吨)" prop="sxYield">
+          <el-input v-model="form.sxYield" placeholder="请输入松香产量" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="所属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true"
+                      placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {listZylcpcl, getZylcpcl, delZylcpcl, addZylcpcl, updateZylcpcl} from "@/api/data/digitalforest/zylcpcl/zylcpcl";
+import Treeselect from "@riophae/vue-treeselect";
+import {treeselect} from "@/api/system/dept";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {checkPositiveDecimal} from "@/api/rules/rules";
+import {format_date} from "@/views/data/common/dateExport";
+
+export default {
+  name: "Zylcpcl",
+  components: {Treeselect},
+  data() {
+    return {
+      // 部门树选项
+      deptOptions: undefined,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 主要林产品产量表格数据
+      zylcpclList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        deptId: null,
+        deptName: null,
+        createName: null,
+        updateName: null,
+        year: null,
+        zylcpYield: null,
+        mcYield: null,
+        jcYield: null,
+        rzbYield: null,
+        sxYield: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        year: [
+          {required: true, message: "年份不能为空", trigger: "change"}
+        ],
+        zylcpYield: [
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        mcYield: [
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        jcYield: [
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        rzbYield: [
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        sxYield: [
+          {validator: checkPositiveDecimal, trigger: 'blur'}
+        ],
+        deptId: [
+          {required: true, message: "所属部门不能为空", trigger: "change"},
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    /** 查询部门下拉树结构 */
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    hx(node) {
+      this.form.dataDeptId = node.id
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    /** 查询主要林产品产量列表 */
+    getList() {
+      this.loading = true;
+      listZylcpcl(this.queryParams).then(response => {
+        this.zylcpclList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deptId: null,
+        deptName: null,
+        createBy: null,
+        createName: null,
+        createTime: null,
+        updateBy: null,
+        updateName: null,
+        updateTime: null,
+        year: null,
+        zylcpYield: null,
+        mcYield: null,
+        jcYield: null,
+        rzbYield: null,
+        sxYield: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加主要林产品产量";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getZylcpcl(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改主要林产品产量";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateZylcpcl(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addZylcpcl(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否删除选中的数据?').then(function () {
+        return delZylcpcl(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-data/zylcpcl/export', {
+        ...this.queryParams
+      }, `主要林产品产量_${format_date(new Date())}.xlsx`)
+    }
+  }
+};
+</script>

+ 134 - 0
src/main/java/com/sooka/sponest/data/dict/controller/DataDictController.java

@@ -0,0 +1,134 @@
+package com.sooka.sponest.data.dict.controller;
+
+import com.ruoyi.common.core.utils.BuildTreeUtil;
+import com.ruoyi.common.core.utils.SpringUtils;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.redis.service.RedisService;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.dict.domain.DataDict;
+import com.sooka.sponest.data.dict.service.IDataDictService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 数据字典控制器
+ */
+@Api(tags = "数据字典控制器")
+@RestController
+@RequestMapping("/dataDict")
+public class DataDictController extends BaseController {
+
+    @Autowired
+    private IDataDictService dataDictService;
+
+    /**
+     * 查询字典列表
+     */
+    @ApiOperation(value = "查询字典列表", notes = "查询字典列表")
+    @RequiresPermissions("dict:dict:list")
+    @GetMapping("/list")
+    public TableDataInfo list(DataDict dataDict) {
+        startPage();
+        List<DataDict> list = dataDictService.selectDataDictList(dataDict);
+        return getDataTable(list);
+    }
+
+    /**
+     * 根据id获取详细信息
+     */
+    @ApiOperation(value = "根据id获取详细信息", notes = "根据id获取详细信息")
+    @RequiresPermissions("dict:dict:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getDataDictInfoById(@PathVariable Long id) {
+        return AjaxResult.success(dataDictService.getDataDictInfoById(id));
+    }
+
+    /**
+     * 新增字典
+     */
+    @ApiOperation(value = "新增字典", notes = "新增字典")
+    @RequiresPermissions("dict:dict:add")
+    @PostMapping
+    public AjaxResult addDataDict(@Validated @RequestBody DataDict dict) {
+        int i = dataDictService.addDataDict(dict);
+        if (i == -10086) {
+            return AjaxResult.error("编号或字典类型不唯一");
+        }
+        return AjaxResult.success(i);
+    }
+
+    /**
+     * 修改字典
+     */
+    @ApiOperation(value = "修改字典", notes = "修改字典")
+    @RequiresPermissions("dict:dict:edit")
+    @PutMapping
+    public AjaxResult editDataDict(@Validated @RequestBody DataDict dict) {
+        int i = dataDictService.editDataDict(dict);
+        if (i == -10086) {
+            return AjaxResult.error("编号或字典类型不唯一");
+        }
+        return AjaxResult.success(i);
+    }
+
+    /**
+     * 批量删除字典
+     */
+    @ApiOperation(value = "批量删除字典", notes = "批量删除字典")
+    @RequiresPermissions("dict:dict:remove")
+    @DeleteMapping("/{id}")
+    public AjaxResult deleteDataDictByIds(@Validated @PathVariable Long id) {
+        int i = dataDictService.deleteDataDictByIds(id);
+        if (i == -10086) {
+            return AjaxResult.error("存在下级");
+        }
+        return AjaxResult.success(i);
+    }
+
+    /**
+     * 查询字典树形列表
+     */
+    @ApiOperation(value = "查询字典树形列表", notes = "查询字典树形列表")
+    @GetMapping("/dictTree")
+    public List<Map<String, Object>> dictTree(DataDict dataDict) {
+        //查询redis中是否存在所需字典值
+        RedisService redisService = SpringUtils.getBean(RedisService.class);
+        String resultKey = "sys_dict:DataDict:type:" + dataDict.getType();
+        List<Map<String, Object>> cacheObject = redisService.getCacheObject(resultKey);
+        if (cacheObject != null) {
+            //存在,判断是否需要树形结构,返回redis中的内容
+            if ("list".equals(dataDict.getResultType())) {
+                return cacheObject;
+            } else {
+                return BuildTreeUtil.buildDeptTree(cacheObject);
+            }
+        } else {
+            //不存在,判断是否需要树形结构,返回查询内容
+            dataDictService.dictTree(dataDict);
+            List<Map<String, Object>> result = redisService.getCacheObject(resultKey);
+            if ("list".equals(dataDict.getResultType())) {
+                return result;
+            } else {
+                return BuildTreeUtil.buildDeptTree(result);
+            }
+        }
+    }
+
+    /**
+     * 根据Tpye和Pid查询字典
+     */
+    @ApiOperation(value = "根据Tpye和Pid查询字典", notes = "根据Tpye和Pid查询字典")
+    @GetMapping("/dictByPid")
+    public List dictByPid(DataDict dataDict) {
+        return dataDictService.dictByPid(dataDict);
+    }
+
+}

+ 62 - 0
src/main/java/com/sooka/sponest/data/dict/domain/DataDict.java

@@ -0,0 +1,62 @@
+package com.sooka.sponest.data.dict.domain;
+
+import com.ruoyi.common.datascope.base.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 数据字典实体类对象
+ */
+@Data
+@ApiModel(description = "数据字典实体类对象")
+public class DataDict extends BaseBusinessEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @ApiModelProperty(value = "主键id", required = false)
+    private Long id;
+
+    /**
+     * 编码值
+     */
+    @ApiModelProperty(value = "编码值", required = true)
+    @NotBlank( message = "编码值不能为空" )
+    private String code;
+
+    /**
+     * 编码名称
+     */
+    @ApiModelProperty(value = "编码名称", required = true)
+    @NotBlank( message = "编码名称不能为空" )
+    private String name;
+
+    /**
+     * 类型
+     */
+    @ApiModelProperty(value = "类型", required = true)
+    private String type;
+
+    /**
+     * 级别
+     */
+    @ApiModelProperty(value = "级别", required = false)
+    private int level;
+
+    /**
+     * 父ID
+     */
+    @ApiModelProperty(value = "父ID", required = false)
+    private Long parentId;
+
+    /**
+     * resultType
+     */
+    @ApiModelProperty(value = "resultType", required = false)
+    private String resultType;
+}

+ 61 - 0
src/main/java/com/sooka/sponest/data/dict/domain/vo/DataDictVO.java

@@ -0,0 +1,61 @@
+package com.sooka.sponest.data.dict.domain.vo;
+
+import com.ruoyi.common.datascope.base.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+@Data
+@ApiModel(description = "数据字典VO实体类对象")
+public class DataDictVO extends BaseBusinessEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @ApiModelProperty(value = "主键id", required = false)
+    private Long id;
+
+    /**
+     * 编码值
+     */
+    @ApiModelProperty(value = "编码值", required = true)
+    @NotBlank( message = "编码值不能为空" )
+    private String code;
+
+    /**
+     * 编码名称
+     */
+    @ApiModelProperty(value = "编码名称", required = true)
+    @NotBlank( message = "编码名称不能为空" )
+    private String name;
+
+    /**
+     * 类型
+     */
+    @ApiModelProperty(value = "类型", required = true)
+    private String type;
+
+    /**
+     * 级别
+     */
+    @ApiModelProperty(value = "级别", required = false)
+    private Integer level;
+
+    /**
+     * 父ID
+     */
+    @ApiModelProperty(value = "父ID", required = false)
+    private Long parentId;
+
+    /**
+     * 子级
+     */
+    @ApiModelProperty(value = "子级", required = false)
+    private List children;
+
+}

+ 96 - 0
src/main/java/com/sooka/sponest/data/dict/mapper/DataDictMapper.java

@@ -0,0 +1,96 @@
+package com.sooka.sponest.data.dict.mapper;
+
+import com.sooka.sponest.data.dict.domain.DataDict;
+
+import java.util.List;
+import java.util.Map;
+
+public interface DataDictMapper {
+
+    /**
+     * 查询字典列表
+     *
+     * @param dataDict
+     * @return
+     */
+    List<DataDict> selectDataDictList(DataDict dataDict);
+
+    /**
+     * 根据id获取详细信息
+     *
+     * @param id
+     * @return
+     */
+    DataDict getDataDictInfoById(Long id);
+
+    /**
+     * 根据parentId获取详细信息
+     *
+     * @param parentId
+     * @return
+     */
+    List<DataDict> getDataDictListByParentId(Long parentId);
+
+    /**
+     * 新增字典
+     *
+     * @param dataDict
+     * @return
+     */
+    int addDataDict(DataDict dataDict);
+
+    /**
+     * 修改字典
+     *
+     * @param dataDict
+     * @return
+     */
+    int editDataDict(DataDict dataDict);
+
+    /**
+     * 删除字典
+     *
+     * @param id
+     * @return
+     */
+    int deleteDataDictByIds(Long id);
+
+    /**
+     * 唯一性校验
+     *
+     * @param dataDict
+     * @return
+     */
+    int isOnly(DataDict dataDict);
+
+    /**
+     * 唯一性校验code
+     *
+     * @param dataDict
+     * @return
+     */
+    int isOnlyCode(DataDict dataDict);
+
+    /**
+     * 查询字典树形列表
+     *
+     * @param dataDict
+     * @return
+     */
+    List<Map<String, Object>> dictTree(DataDict dataDict);
+
+    /**
+     * 查询所有字典类别
+     *
+     * @return
+     */
+    List<String> selectDataDictType();
+
+    /**
+     * 根据Pid查询字典
+     *
+     * @param dataDict
+     * @return
+     */
+    List<DataDict> dictByPid(DataDict dataDict);
+}

+ 76 - 0
src/main/java/com/sooka/sponest/data/dict/service/IDataDictService.java

@@ -0,0 +1,76 @@
+package com.sooka.sponest.data.dict.service;
+
+
+import com.sooka.sponest.data.dict.domain.DataDict;
+
+import java.util.List;
+
+public interface IDataDictService {
+
+    /**
+     * 查询字典列表
+     *
+     * @param dataDict
+     * @return
+     */
+    List<DataDict> selectDataDictList(DataDict dataDict);
+
+    /**
+     * 根据id获取详细信息
+     *
+     * @param id
+     * @return
+     */
+    DataDict getDataDictInfoById(Long id);
+
+    /**
+     * 新增字典
+     *
+     * @param dataDict
+     * @return
+     */
+    int addDataDict(DataDict dataDict);
+
+    /**
+     * 修改字典
+     *
+     * @param dataDict
+     * @return
+     */
+    int editDataDict(DataDict dataDict);
+
+    /**
+     * 批量删除字典
+     *
+     * @param id
+     * @return
+     */
+    int deleteDataDictByIds(Long id);
+
+    /**
+     * 查询字典树形列表
+     *
+     * @param dataDict
+     */
+    void dictTree(DataDict dataDict);
+
+    /**
+     * 加载字典缓存数据
+     */
+    public void loadingDictCache(String type);
+
+    /**
+     * 清空字典缓存数据
+     */
+    public void clearDictCache(String type);
+
+    /**
+     * 重置字典缓存数据
+     */
+    public void resetDictCache(String type);
+
+    /**
+     * 根据Pid查询字典
+     */
+    public List dictByPid(DataDict dataDict);
+}

+ 191 - 0
src/main/java/com/sooka/sponest/data/dict/service/impl/DataDictServiceImpl.java

@@ -0,0 +1,191 @@
+package com.sooka.sponest.data.dict.service.impl;
+
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.SpringUtils;
+import com.ruoyi.common.datascope.base.service.BaseService;
+import com.ruoyi.common.redis.service.RedisService;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.sooka.sponest.data.dict.domain.DataDict;
+import com.sooka.sponest.data.dict.mapper.DataDictMapper;
+import com.sooka.sponest.data.dict.service.IDataDictService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+import java.util.Collection;
+import java.util.List;
+
+import static com.ruoyi.common.security.utils.DictUtils.getCacheKey;
+
+@Service
+public class DataDictServiceImpl extends BaseService implements IDataDictService {
+
+    @Resource
+    private DataDictMapper dataDictMapper;
+
+    public final static String R_KEY = "DataDict:type:";
+
+    /**
+     * 项目启动时,初始化字典到缓存
+     */
+    @PostConstruct
+    public void init() {
+        loadingDictCache(null);
+    }
+
+    /**
+     * 查询字典列表
+     *
+     * @param dict
+     * @return
+     */
+    @Override
+    public List<DataDict> selectDataDictList(DataDict dict) {
+        loadingDictCache(null);
+        return dataDictMapper.selectDataDictList(dict);
+    }
+
+    /**
+     * 根据id获取详细信息
+     *
+     * @param id
+     * @return
+     */
+    @Override
+    public DataDict getDataDictInfoById(Long id) {
+        return dataDictMapper.getDataDictInfoById(id);
+    }
+
+    /**
+     * 新增字典
+     *
+     * @param dataDict
+     * @return
+     */
+    @Override
+    public int addDataDict(DataDict dataDict) {
+        //查询数据进行唯一性校验
+        int only = dataDictMapper.isOnly(dataDict);
+        if (only > 0) {
+            return -10086;
+        }
+        dataDict.setCreateBy(SecurityUtils.getUserId().toString());
+        dataDict.setCreateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
+        dataDict.setCreateTime(DateUtils.getNowDate());
+        resetDictCache(dataDict.getType());
+        return dataDictMapper.addDataDict(dataDict);
+    }
+
+    /**
+     * 修改字典
+     *
+     * @param dataDict
+     * @return
+     */
+    @Override
+    public int editDataDict(DataDict dataDict) {
+        //查询数据进行唯一性校验
+        int only = dataDictMapper.isOnly(dataDict);
+        int onlyCode = dataDictMapper.isOnlyCode(dataDict);
+        if (only > 1 || onlyCode > 0) {
+            return -10086;
+        }
+        dataDict.setUpdateBy(SecurityUtils.getUserId());
+        dataDict.setUpdateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
+        dataDict.setUpdateTime(DateUtils.getNowDate());
+        resetDictCache(dataDict.getType());
+        return dataDictMapper.editDataDict(dataDict);
+    }
+
+    /**
+     * 批量删除字典
+     *
+     * @param id
+     * @return 结果
+     */
+    @Override
+    public int deleteDataDictByIds(Long id) {
+        //根据传入Id查询数据
+        DataDict dataDictInfoById = dataDictMapper.getDataDictInfoById(id);
+        //查找对应下级判断是否为空
+        if (!dataDictMapper.getDataDictListByParentId(dataDictInfoById.getId()).isEmpty()) {
+            return -10086;
+        }
+        DataDict infoById = dataDictMapper.getDataDictInfoById(id);
+        resetDictCache(infoById.getType());
+        return dataDictMapper.deleteDataDictByIds(id);
+    }
+
+    /**
+     * 查询字典树形列表
+     *
+     * @param dataDict
+     */
+    @Override
+    public void dictTree(DataDict dataDict) {
+        resetDictCache(dataDict.getType());
+    }
+
+    /**
+     * 加载字典缓存数据
+     */
+    @Override
+    public void loadingDictCache(String type) {
+        if (null == type || "".equals(type)) {
+            // 获取所有字典类别
+            List<String> types = dataDictMapper.selectDataDictType();
+            if (!types.isEmpty()) {
+                for (String t : types) {
+                    DataDict dataDict = new DataDict();
+                    dataDict.setType(t);
+                    // 将查询结果放入redis中
+                    SpringUtils.getBean(RedisService.class).setCacheObject(getCacheKey(R_KEY + t), dataDictMapper.dictTree(dataDict));
+                }
+            }
+        } else {
+            DataDict dataDict = new DataDict();
+            dataDict.setType(type);
+            // 将查询结果放入redis中
+            SpringUtils.getBean(RedisService.class).setCacheObject(getCacheKey(R_KEY + type), dataDictMapper.dictTree(dataDict));
+        }
+    }
+
+    /**
+     * 清空字典缓存数据
+     */
+    @Override
+    public void clearDictCache(String type) {
+        RedisService redisService = SpringUtils.getBean(RedisService.class);
+        Collection<String> keys;
+        // type是否为空
+        if (null != type && !"".equals(type)) {
+            // type不为空,清除特定type缓存
+            keys = redisService.keys(getCacheKey(R_KEY + type));
+        } else {
+            // type为空,清除所有缓存
+            keys = redisService.keys(getCacheKey(R_KEY + "*"));
+        }
+        redisService.deleteObject(keys);
+    }
+
+    /**
+     * 重置字典缓存数据
+     */
+    @Override
+    public void resetDictCache(String type) {
+        clearDictCache(type);
+        loadingDictCache(type);
+    }
+
+    /**
+     * 根据Pid查询字典
+     *
+     * @param dataDict
+     * @return
+     */
+    @Override
+    public List<DataDict> dictByPid(DataDict dataDict) {
+        return dataDictMapper.dictByPid(dataDict);
+    }
+
+}

+ 91 - 0
src/main/java/com/sooka/sponest/data/digitalforest/controller/CenterdataTForestCyryController.java

@@ -0,0 +1,91 @@
+package com.sooka.sponest.data.digitalforest.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestCyry;
+import com.sooka.sponest.data.digitalforest.service.ICenterdataTForestCyryService;
+import com.sooka.sponest.data.utils.ExcelUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 从业人员情况Controller
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+@RestController
+@RequestMapping("/cyry")
+public class CenterdataTForestCyryController extends BaseController {
+    @Autowired
+    private ICenterdataTForestCyryService centerdataTForestCyryService;
+
+    /**
+     * 查询从业人员情况列表
+     */
+    @RequiresPermissions("data:cyry:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTForestCyry centerdataTForestCyry) {
+        startPage();
+        List<CenterdataTForestCyry> list = centerdataTForestCyryService.selectCenterdataTForestCyryList(centerdataTForestCyry);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出从业人员情况列表
+     */
+    @RequiresPermissions("data:cyry:export")
+    @Log(title = "从业人员情况", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTForestCyry centerdataTForestCyry) {
+        List<CenterdataTForestCyry> list = centerdataTForestCyryService.selectCenterdataTForestCyryList(centerdataTForestCyry);
+        ExcelUtil<CenterdataTForestCyry> util = new ExcelUtil<CenterdataTForestCyry>(CenterdataTForestCyry.class);
+        util.exportExcel(response, list, "从业人员情况数据");
+    }
+
+    /**
+     * 获取从业人员情况详细信息
+     */
+    @RequiresPermissions("data:cyry:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTForestCyryService.selectCenterdataTForestCyryById(id));
+    }
+
+    /**
+     * 新增从业人员情况
+     */
+    @RequiresPermissions("data:cyry:add")
+    @Log(title = "从业人员情况", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTForestCyry centerdataTForestCyry) {
+        return toAjax(centerdataTForestCyryService.insertCenterdataTForestCyry(centerdataTForestCyry));
+    }
+
+    /**
+     * 修改从业人员情况
+     */
+    @RequiresPermissions("data:cyry:edit")
+    @Log(title = "从业人员情况", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTForestCyry centerdataTForestCyry) {
+        return toAjax(centerdataTForestCyryService.updateCenterdataTForestCyry(centerdataTForestCyry));
+    }
+
+    /**
+     * 删除从业人员情况
+     */
+    @RequiresPermissions("data:cyry:remove")
+    @Log(title = "从业人员情况", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTForestCyryService.deleteCenterdataTForestCyryByIds(ids));
+    }
+}

+ 98 - 0
src/main/java/com/sooka/sponest/data/digitalforest/controller/CenterdataTForestForestationAreaController.java

@@ -0,0 +1,98 @@
+package com.sooka.sponest.data.digitalforest.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.sooka.sponest.data.utils.ExcelUtil;
+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 com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestForestationArea;
+import com.sooka.sponest.data.digitalforest.service.ICenterdataTForestForestationAreaService;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+
+/**
+ * 造林面积Controller
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+@RestController
+@RequestMapping("/area")
+public class CenterdataTForestForestationAreaController extends BaseController {
+    @Autowired
+    private ICenterdataTForestForestationAreaService centerdataTForestForestationAreaService;
+
+    /**
+     * 查询造林面积列表
+     */
+    @RequiresPermissions("data:area:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTForestForestationArea centerdataTForestForestationArea) {
+        startPage();
+        List<CenterdataTForestForestationArea> list = centerdataTForestForestationAreaService.selectCenterdataTForestForestationAreaList(centerdataTForestForestationArea);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出造林面积列表
+     */
+    @RequiresPermissions("data:area:export")
+    @Log(title = "造林面积", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTForestForestationArea centerdataTForestForestationArea) {
+        List<CenterdataTForestForestationArea> list = centerdataTForestForestationAreaService.selectCenterdataTForestForestationAreaList(centerdataTForestForestationArea);
+        ExcelUtil<CenterdataTForestForestationArea> util = new ExcelUtil<CenterdataTForestForestationArea>(CenterdataTForestForestationArea.class);
+        util.exportExcel(response, list, "造林面积数据");
+    }
+
+    /**
+     * 获取造林面积详细信息
+     */
+    @RequiresPermissions("data:area:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTForestForestationAreaService.selectCenterdataTForestForestationAreaById(id));
+    }
+
+    /**
+     * 新增造林面积
+     */
+    @RequiresPermissions("data:area:add")
+    @Log(title = "造林面积", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTForestForestationArea centerdataTForestForestationArea) {
+        return toAjax(centerdataTForestForestationAreaService.insertCenterdataTForestForestationArea(centerdataTForestForestationArea));
+    }
+
+    /**
+     * 修改造林面积
+     */
+    @RequiresPermissions("data:area:edit")
+    @Log(title = "造林面积", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTForestForestationArea centerdataTForestForestationArea) {
+        return toAjax(centerdataTForestForestationAreaService.updateCenterdataTForestForestationArea(centerdataTForestForestationArea));
+    }
+
+    /**
+     * 删除造林面积
+     */
+    @RequiresPermissions("data:area:remove")
+    @Log(title = "造林面积", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTForestForestationAreaService.deleteCenterdataTForestForestationAreaByIds(ids));
+    }
+}

+ 91 - 0
src/main/java/com/sooka/sponest/data/digitalforest/controller/CenterdataTForestGdzcwcController.java

@@ -0,0 +1,91 @@
+package com.sooka.sponest.data.digitalforest.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestGdzcwc;
+import com.sooka.sponest.data.digitalforest.service.ICenterdataTForestGdzcwcService;
+import com.sooka.sponest.data.utils.ExcelUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 固定资产投资完成额Controller
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+@RestController
+@RequestMapping("/gdzcwc")
+public class CenterdataTForestGdzcwcController extends BaseController {
+    @Autowired
+    private ICenterdataTForestGdzcwcService centerdataTForestGdzcwcService;
+
+    /**
+     * 查询固定资产投资完成额列表
+     */
+    @RequiresPermissions("data:gdzcwc:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTForestGdzcwc centerdataTForestGdzcwc) {
+        startPage();
+        List<CenterdataTForestGdzcwc> list = centerdataTForestGdzcwcService.selectCenterdataTForestGdzcwcList(centerdataTForestGdzcwc);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出固定资产投资完成额列表
+     */
+    @RequiresPermissions("data:gdzcwc:export")
+    @Log(title = "固定资产投资完成额", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTForestGdzcwc centerdataTForestGdzcwc) {
+        List<CenterdataTForestGdzcwc> list = centerdataTForestGdzcwcService.selectCenterdataTForestGdzcwcList(centerdataTForestGdzcwc);
+        ExcelUtil<CenterdataTForestGdzcwc> util = new ExcelUtil<CenterdataTForestGdzcwc>(CenterdataTForestGdzcwc.class);
+        util.exportExcel(response, list, "固定资产投资完成额数据");
+    }
+
+    /**
+     * 获取固定资产投资完成额详细信息
+     */
+    @RequiresPermissions("data:gdzcwc:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTForestGdzcwcService.selectCenterdataTForestGdzcwcById(id));
+    }
+
+    /**
+     * 新增固定资产投资完成额
+     */
+    @RequiresPermissions("data:gdzcwc:add")
+    @Log(title = "固定资产投资完成额", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTForestGdzcwc centerdataTForestGdzcwc) {
+        return toAjax(centerdataTForestGdzcwcService.insertCenterdataTForestGdzcwc(centerdataTForestGdzcwc));
+    }
+
+    /**
+     * 修改固定资产投资完成额
+     */
+    @RequiresPermissions("data:gdzcwc:edit")
+    @Log(title = "固定资产投资完成额", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTForestGdzcwc centerdataTForestGdzcwc) {
+        return toAjax(centerdataTForestGdzcwcService.updateCenterdataTForestGdzcwc(centerdataTForestGdzcwc));
+    }
+
+    /**
+     * 删除固定资产投资完成额
+     */
+    @RequiresPermissions("data:gdzcwc:remove")
+    @Log(title = "固定资产投资完成额", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTForestGdzcwcService.deleteCenterdataTForestGdzcwcByIds(ids));
+    }
+}

+ 98 - 0
src/main/java/com/sooka/sponest/data/digitalforest/controller/CenterdataTForestLycyzczController.java

@@ -0,0 +1,98 @@
+package com.sooka.sponest.data.digitalforest.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.sooka.sponest.data.utils.ExcelUtil;
+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 com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestLycyzcz;
+import com.sooka.sponest.data.digitalforest.service.ICenterdataTForestLycyzczService;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+
+/**
+ * 林业产业总产值Controller
+ *
+ * @author 韩福成
+ * @date 2024-06-25
+ */
+@RestController
+@RequestMapping("/lycyzcz")
+public class CenterdataTForestLycyzczController extends BaseController {
+    @Autowired
+    private ICenterdataTForestLycyzczService centerdataTForestLycyzczService;
+
+    /**
+     * 查询林业产业总产值列表
+     */
+    @RequiresPermissions("data:lycyzcz:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTForestLycyzcz centerdataTForestLycyzcz) {
+        startPage();
+        List<CenterdataTForestLycyzcz> list = centerdataTForestLycyzczService.selectCenterdataTForestLycyzczList(centerdataTForestLycyzcz);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出林业产业总产值列表
+     */
+    @RequiresPermissions("data:lycyzcz:export")
+    @Log(title = "林业产业总产值", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTForestLycyzcz centerdataTForestLycyzcz) {
+        List<CenterdataTForestLycyzcz> list = centerdataTForestLycyzczService.selectCenterdataTForestLycyzczList(centerdataTForestLycyzcz);
+        ExcelUtil<CenterdataTForestLycyzcz> util = new ExcelUtil<CenterdataTForestLycyzcz>(CenterdataTForestLycyzcz.class);
+        util.exportExcel(response, list, "林业产业总产值数据");
+    }
+
+    /**
+     * 获取林业产业总产值详细信息
+     */
+    @RequiresPermissions("data:lycyzcz:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTForestLycyzczService.selectCenterdataTForestLycyzczById(id));
+    }
+
+    /**
+     * 新增林业产业总产值
+     */
+    @RequiresPermissions("data:lycyzcz:add")
+    @Log(title = "林业产业总产值", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTForestLycyzcz centerdataTForestLycyzcz) {
+        return toAjax(centerdataTForestLycyzczService.insertCenterdataTForestLycyzcz(centerdataTForestLycyzcz));
+    }
+
+    /**
+     * 修改林业产业总产值
+     */
+    @RequiresPermissions("data:lycyzcz:edit")
+    @Log(title = "林业产业总产值", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTForestLycyzcz centerdataTForestLycyzcz) {
+        return toAjax(centerdataTForestLycyzczService.updateCenterdataTForestLycyzcz(centerdataTForestLycyzcz));
+    }
+
+    /**
+     * 删除林业产业总产值
+     */
+    @RequiresPermissions("data:lycyzcz:remove")
+    @Log(title = "林业产业总产值", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTForestLycyzczService.deleteCenterdataTForestLycyzczByIds(ids));
+    }
+}

+ 91 - 0
src/main/java/com/sooka/sponest/data/digitalforest/controller/CenterdataTForestYlscsjjController.java

@@ -0,0 +1,91 @@
+package com.sooka.sponest.data.digitalforest.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestYlscsjj;
+import com.sooka.sponest.data.digitalforest.service.ICenterdataTForestYlscsjjService;
+import com.sooka.sponest.data.utils.ExcelUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 营林生产数据集Controller
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+@RestController
+@RequestMapping("/ylscsjj")
+public class CenterdataTForestYlscsjjController extends BaseController {
+    @Autowired
+    private ICenterdataTForestYlscsjjService centerdataTForestYlscsjjService;
+
+    /**
+     * 查询营林生产数据集列表
+     */
+    @RequiresPermissions("data:ylscsjj:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTForestYlscsjj centerdataTForestYlscsjj) {
+        startPage();
+        List<CenterdataTForestYlscsjj> list = centerdataTForestYlscsjjService.selectCenterdataTForestYlscsjjList(centerdataTForestYlscsjj);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出营林生产数据集列表
+     */
+    @RequiresPermissions("data:ylscsjj:export")
+    @Log(title = "营林生产数据集", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTForestYlscsjj centerdataTForestYlscsjj) {
+        List<CenterdataTForestYlscsjj> list = centerdataTForestYlscsjjService.selectCenterdataTForestYlscsjjList(centerdataTForestYlscsjj);
+        ExcelUtil<CenterdataTForestYlscsjj> util = new ExcelUtil<CenterdataTForestYlscsjj>(CenterdataTForestYlscsjj.class);
+        util.exportExcel(response, list, "营林生产数据集数据");
+    }
+
+    /**
+     * 获取营林生产数据集详细信息
+     */
+    @RequiresPermissions("data:ylscsjj:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTForestYlscsjjService.selectCenterdataTForestYlscsjjById(id));
+    }
+
+    /**
+     * 新增营林生产数据集
+     */
+    @RequiresPermissions("data:ylscsjj:add")
+    @Log(title = "营林生产数据集", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTForestYlscsjj centerdataTForestYlscsjj) {
+        return toAjax(centerdataTForestYlscsjjService.insertCenterdataTForestYlscsjj(centerdataTForestYlscsjj));
+    }
+
+    /**
+     * 修改营林生产数据集
+     */
+    @RequiresPermissions("data:ylscsjj:edit")
+    @Log(title = "营林生产数据集", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTForestYlscsjj centerdataTForestYlscsjj) {
+        return toAjax(centerdataTForestYlscsjjService.updateCenterdataTForestYlscsjj(centerdataTForestYlscsjj));
+    }
+
+    /**
+     * 删除营林生产数据集
+     */
+    @RequiresPermissions("data:ylscsjj:remove")
+    @Log(title = "营林生产数据集", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTForestYlscsjjService.deleteCenterdataTForestYlscsjjByIds(ids));
+    }
+}

+ 91 - 0
src/main/java/com/sooka/sponest/data/digitalforest/controller/CenterdataTForestZylcpclController.java

@@ -0,0 +1,91 @@
+package com.sooka.sponest.data.digitalforest.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestZylcpcl;
+import com.sooka.sponest.data.digitalforest.service.ICenterdataTForestZylcpclService;
+import com.sooka.sponest.data.utils.ExcelUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 主要林产品产量Controller
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+@RestController
+@RequestMapping("/zylcpcl")
+public class CenterdataTForestZylcpclController extends BaseController {
+    @Autowired
+    private ICenterdataTForestZylcpclService centerdataTForestZylcpclService;
+
+    /**
+     * 查询主要林产品产量列表
+     */
+    @RequiresPermissions("data:zylcpcl:list")
+    @GetMapping("/list")
+    public TableDataInfo list(CenterdataTForestZylcpcl centerdataTForestZylcpcl) {
+        startPage();
+        List<CenterdataTForestZylcpcl> list = centerdataTForestZylcpclService.selectCenterdataTForestZylcpclList(centerdataTForestZylcpcl);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出主要林产品产量列表
+     */
+    @RequiresPermissions("data:zylcpcl:export")
+    @Log(title = "主要林产品产量", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CenterdataTForestZylcpcl centerdataTForestZylcpcl) {
+        List<CenterdataTForestZylcpcl> list = centerdataTForestZylcpclService.selectCenterdataTForestZylcpclList(centerdataTForestZylcpcl);
+        ExcelUtil<CenterdataTForestZylcpcl> util = new ExcelUtil<CenterdataTForestZylcpcl>(CenterdataTForestZylcpcl.class);
+        util.exportExcel(response, list, "主要林产品产量数据");
+    }
+
+    /**
+     * 获取主要林产品产量详细信息
+     */
+    @RequiresPermissions("data:zylcpcl:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return AjaxResult.success(centerdataTForestZylcpclService.selectCenterdataTForestZylcpclById(id));
+    }
+
+    /**
+     * 新增主要林产品产量
+     */
+    @RequiresPermissions("data:zylcpcl:add")
+    @Log(title = "主要林产品产量", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CenterdataTForestZylcpcl centerdataTForestZylcpcl) {
+        return toAjax(centerdataTForestZylcpclService.insertCenterdataTForestZylcpcl(centerdataTForestZylcpcl));
+    }
+
+    /**
+     * 修改主要林产品产量
+     */
+    @RequiresPermissions("data:zylcpcl:edit")
+    @Log(title = "主要林产品产量", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CenterdataTForestZylcpcl centerdataTForestZylcpcl) {
+        return toAjax(centerdataTForestZylcpclService.updateCenterdataTForestZylcpcl(centerdataTForestZylcpcl));
+    }
+
+    /**
+     * 删除主要林产品产量
+     */
+    @RequiresPermissions("data:zylcpcl:remove")
+    @Log(title = "主要林产品产量", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids) {
+        return toAjax(centerdataTForestZylcpclService.deleteCenterdataTForestZylcpclByIds(ids));
+    }
+}

+ 222 - 0
src/main/java/com/sooka/sponest/data/digitalforest/domain/CenterdataTForestCyry.java

@@ -0,0 +1,222 @@
+package com.sooka.sponest.data.digitalforest.domain;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 从业人员情况对象 centerdata_t_forest_cyry
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+public class CenterdataTForestCyry extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private String id;
+
+    /**
+     * 部门id
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    @Excel(name = "所属部门")
+    private String deptName;
+
+    /**
+     * 企业名称
+     */
+    @Excel(name = "企业名称")
+    private String name;
+
+    /**
+     * 企业编号
+     */
+    @Excel(name = "企业编号")
+    private String number;
+
+    /**
+     * 年份
+     */
+    @Excel(name = "年份")
+    private String year;
+
+    /**
+     * 从业人员人数(个)
+     */
+    @Excel(name = "从业人员人数")
+    private String cyryNum;
+
+    /**
+     * 在岗职工人数(人)
+     */
+    @Excel(name = "在岗职工人数")
+    private String zgzgNum;
+
+    /**
+     * 在岗专业技术人员(个)
+     */
+    @Excel(name = "在岗专业技术人员")
+    private String zgjsryNum;
+
+    /**
+     * 保留劳动关系人员(个)
+     */
+    @Excel(name = "保留劳动关系人员")
+    private String blldgxNum;
+
+    /**
+     * 离退休人员(个)
+     */
+    @Excel(name = "离退休人员")
+    private String ltxryNum;
+
+    /**
+     * 在岗平均人数
+     */
+    @Excel(name = "在岗平均人数")
+    private String zgpjrs;
+
+    /**
+     * 在岗劳动报酬
+     */
+    @Excel(name = "在岗劳动报酬")
+    private String zgldbc;
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setNumber(String number) {
+        this.number = number;
+    }
+
+    public String getNumber() {
+        return number;
+    }
+
+    public void setYear(String year) {
+        this.year = year;
+    }
+
+    public String getYear() {
+        return year;
+    }
+
+    public void setCyryNum(String cyryNum) {
+        this.cyryNum = cyryNum;
+    }
+
+    public String getCyryNum() {
+        return cyryNum;
+    }
+
+    public void setZgzgNum(String zgzgNum) {
+        this.zgzgNum = zgzgNum;
+    }
+
+    public String getZgzgNum() {
+        return zgzgNum;
+    }
+
+    public void setZgjsryNum(String zgjsryNum) {
+        this.zgjsryNum = zgjsryNum;
+    }
+
+    public String getZgjsryNum() {
+        return zgjsryNum;
+    }
+
+    public void setBlldgxNum(String blldgxNum) {
+        this.blldgxNum = blldgxNum;
+    }
+
+    public String getBlldgxNum() {
+        return blldgxNum;
+    }
+
+    public void setLtxryNum(String ltxryNum) {
+        this.ltxryNum = ltxryNum;
+    }
+
+    public String getLtxryNum() {
+        return ltxryNum;
+    }
+
+    public void setZgpjrs(String zgpjrs) {
+        this.zgpjrs = zgpjrs;
+    }
+
+    public String getZgpjrs() {
+        return zgpjrs;
+    }
+
+    public void setZgldbc(String zgldbc) {
+        this.zgldbc = zgldbc;
+    }
+
+    public String getZgldbc() {
+        return zgldbc;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .append("createBy", getCreateBy())
+                .append("createName", getCreateName())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateName", getUpdateName())
+                .append("updateTime", getUpdateTime())
+                .append("name", getName())
+                .append("number", getNumber())
+                .append("year", getYear())
+                .append("cyryNum", getCyryNum())
+                .append("zgzgNum", getZgzgNum())
+                .append("zgjsryNum", getZgjsryNum())
+                .append("blldgxNum", getBlldgxNum())
+                .append("ltxryNum", getLtxryNum())
+                .append("zgpjrs", getZgpjrs())
+                .append("zgldbc", getZgldbc())
+                .toString();
+    }
+}

+ 118 - 0
src/main/java/com/sooka/sponest/data/digitalforest/domain/CenterdataTForestDict.java

@@ -0,0 +1,118 @@
+package com.sooka.sponest.data.digitalforest.domain;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 数据字典对象 centerdata_t_forest_dict
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+public class CenterdataTForestDict extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    private Long id;
+
+    /**
+     * 编码值
+     */
+    @Excel(name = "编码值")
+    private String code;
+
+    /**
+     * 编码名称
+     */
+    @Excel(name = "编码名称")
+    private String name;
+
+    /**
+     * 字典类型
+     */
+    @Excel(name = "字典类型")
+    private String type;
+
+    /**
+     * 级别
+     */
+    @Excel(name = "级别")
+    private Long level;
+
+    /**
+     * 父ID
+     */
+    @Excel(name = "父ID")
+    private Long parentId;
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setLevel(Long level) {
+        this.level = level;
+    }
+
+    public Long getLevel() {
+        return level;
+    }
+
+    public void setParentId(Long parentId) {
+        this.parentId = parentId;
+    }
+
+    public Long getParentId() {
+        return parentId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("code", getCode())
+                .append("name", getName())
+                .append("type", getType())
+                .append("level", getLevel())
+                .append("parentId", getParentId())
+                .append("createBy", getCreateBy())
+                .append("createName", getCreateName())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateName", getUpdateName())
+                .append("updateTime", getUpdateTime())
+                .toString();
+    }
+}

+ 132 - 0
src/main/java/com/sooka/sponest/data/digitalforest/domain/CenterdataTForestForestationArea.java

@@ -0,0 +1,132 @@
+package com.sooka.sponest.data.digitalforest.domain;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 造林面积对象 centerdata_t_forest_forestation_area
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+public class CenterdataTForestForestationArea extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private String id;
+
+    /**
+     * 部门id
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    @Excel(name = "所属部门")
+    private String deptName;
+
+    /**
+     * 年份
+     */
+    @Excel(name = "年份")
+    private String year;
+
+    /**
+     * 造林方式(字典)
+     */
+    @Excel(name = "造林方式",dictType = "centerdata_forestation_type")
+    private String forestationType;
+
+    /**
+     * 林种用途(字典)
+     */
+    @Excel(name = "林种用途",dictType = "centerdata_forest_type")
+    private String forestType;
+
+    /**
+     * 面积
+     */
+    @Excel(name = "面积")
+    private String area;
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setYear(String year) {
+        this.year = year;
+    }
+
+    public String getYear() {
+        return year;
+    }
+
+    public void setForestationType(String forestationType) {
+        this.forestationType = forestationType;
+    }
+
+    public String getForestationType() {
+        return forestationType;
+    }
+
+    public void setForestType(String forestType) {
+        this.forestType = forestType;
+    }
+
+    public String getForestType() {
+        return forestType;
+    }
+
+    public void setArea(String area) {
+        this.area = area;
+    }
+
+    public String getArea() {
+        return area;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .append("createBy", getCreateBy())
+                .append("createName", getCreateName())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateName", getUpdateName())
+                .append("updateTime", getUpdateTime())
+                .append("year", getYear())
+                .append("forestationType", getForestationType())
+                .append("forestType", getForestType())
+                .append("area", getArea())
+                .toString();
+    }
+}

+ 162 - 0
src/main/java/com/sooka/sponest/data/digitalforest/domain/CenterdataTForestGdzcwc.java

@@ -0,0 +1,162 @@
+package com.sooka.sponest.data.digitalforest.domain;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 固定资产投资完成额对象 centerdata_t_forest_gdzcwc
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+public class CenterdataTForestGdzcwc extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private String id;
+
+    /**
+     * 部门id
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    @Excel(name = "所属部门")
+    private String deptName;
+
+    /**
+     * 年份
+     */
+    @Excel(name = "年份")
+    private String year;
+
+    /**
+     * 国家投资(万元)
+     */
+    @Excel(name = "国家投资")
+    private String gjInvest;
+
+    /**
+     * 国债投资(万元)
+     */
+    @Excel(name = "国债投资")
+    private String gzInvest;
+
+    /**
+     * 中央财政专项资金(万元)
+     */
+    @Excel(name = "中央财政专项资金")
+    private String zyczzxInvest;
+
+    /**
+     * 基本建设投资(万元)
+     */
+    @Excel(name = "基本建设投资")
+    private String jbjsInvest;
+
+    /**
+     * 更新改造及其他投资(万元)
+     */
+    @Excel(name = "更新改造及其他投资")
+    private String gxgzInvest;
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setYear(String year) {
+        this.year = year;
+    }
+
+    public String getYear() {
+        return year;
+    }
+
+    public void setGjInvest(String gjInvest) {
+        this.gjInvest = gjInvest;
+    }
+
+    public String getGjInvest() {
+        return gjInvest;
+    }
+
+    public void setGzInvest(String gzInvest) {
+        this.gzInvest = gzInvest;
+    }
+
+    public String getGzInvest() {
+        return gzInvest;
+    }
+
+    public void setZyczzxInvest(String zyczzxInvest) {
+        this.zyczzxInvest = zyczzxInvest;
+    }
+
+    public String getZyczzxInvest() {
+        return zyczzxInvest;
+    }
+
+    public void setJbjsInvest(String jbjsInvest) {
+        this.jbjsInvest = jbjsInvest;
+    }
+
+    public String getJbjsInvest() {
+        return jbjsInvest;
+    }
+
+    public void setGxgzInvest(String gxgzInvest) {
+        this.gxgzInvest = gxgzInvest;
+    }
+
+    public String getGxgzInvest() {
+        return gxgzInvest;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .append("createBy", getCreateBy())
+                .append("createName", getCreateName())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateName", getUpdateName())
+                .append("updateTime", getUpdateTime())
+                .append("year", getYear())
+                .append("gjInvest", getGjInvest())
+                .append("gzInvest", getGzInvest())
+                .append("zyczzxInvest", getZyczzxInvest())
+                .append("jbjsInvest", getJbjsInvest())
+                .append("gxgzInvest", getGxgzInvest())
+                .toString();
+    }
+}

+ 126 - 0
src/main/java/com/sooka/sponest/data/digitalforest/domain/CenterdataTForestLycyzcz.java

@@ -0,0 +1,126 @@
+package com.sooka.sponest.data.digitalforest.domain;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 林业产业总产值对象 centerdata_t_forest_lycyzcz
+ *
+ * @author 韩福成
+ * @date 2024-06-25
+ */
+public class CenterdataTForestLycyzcz extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private String id;
+
+    /**
+     * 部门id
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    @Excel(name = "所属部门")
+    private String deptName;
+
+    /**
+     * 年份
+     */
+    @Excel(name = "年份")
+    private String year;
+
+    /**
+     * 产业类型编码(字典)
+     */
+    private String industryType;
+    @Excel(name = "产业类型编码")
+    private String industryTypeLabel;
+
+    /**
+     * 产业金额(万元)
+     */
+    @Excel(name = "产业金额")
+    private String industrySum;
+
+    public String getIndustryTypeLabel() {
+        return industryTypeLabel;
+    }
+
+    public void setIndustryTypeLabel(String industryTypeLabel) {
+        this.industryTypeLabel = industryTypeLabel;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setYear(String year) {
+        this.year = year;
+    }
+
+    public String getYear() {
+        return year;
+    }
+
+    public void setIndustryType(String industryType) {
+        this.industryType = industryType;
+    }
+
+    public String getIndustryType() {
+        return industryType;
+    }
+
+    public void setIndustrySum(String industrySum) {
+        this.industrySum = industrySum;
+    }
+
+    public String getIndustrySum() {
+        return industrySum;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .append("createBy", getCreateBy())
+                .append("createName", getCreateName())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateName", getUpdateName())
+                .append("updateTime", getUpdateTime())
+                .append("year", getYear())
+                .append("industryType", getIndustryType())
+                .append("industrySum", getIndustrySum())
+                .toString();
+    }
+}

+ 192 - 0
src/main/java/com/sooka/sponest/data/digitalforest/domain/CenterdataTForestYlscsjj.java

@@ -0,0 +1,192 @@
+package com.sooka.sponest.data.digitalforest.domain;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 营林生产数据集对象 centerdata_t_forest_ylscsjj
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+public class CenterdataTForestYlscsjj extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private String id;
+
+    /**
+     * 部门id
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    @Excel(name = "所属部门")
+    private String deptName;
+
+    /**
+     * 年份
+     */
+    @Excel(name = "年份")
+    private String year;
+
+    /**
+     * 迹地更新面积(公顷)
+     */
+    @Excel(name = "迹地更新面积")
+    private String jdgxArea;
+
+    /**
+     * 人工更新面积(公顷)
+     */
+    @Excel(name = "人工更新面积")
+    private String rggxArea;
+
+    /**
+     * 低产林改造面积(公顷)
+     */
+    @Excel(name = "低产林改造面积")
+    private String dclgzArea;
+
+    /**
+     * 育苗面积(公顷)
+     */
+    @Excel(name = "育苗面积")
+    private String ymArea;
+
+    /**
+     * 封山育林面积(公顷)
+     */
+    @Excel(name = "封山育林面积")
+    private String fsArea;
+
+    /**
+     * 森林管护面积(公顷)
+     */
+    @Excel(name = "森林管护面积")
+    private String slghArea;
+
+    /**
+     * 中、幼龄林抚育面积(公顷)
+     */
+    @Excel(name = "中、幼龄林抚育面积")
+    private String zylfuArea;
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setYear(String year) {
+        this.year = year;
+    }
+
+    public String getYear() {
+        return year;
+    }
+
+    public void setJdgxArea(String jdgxArea) {
+        this.jdgxArea = jdgxArea;
+    }
+
+    public String getJdgxArea() {
+        return jdgxArea;
+    }
+
+    public void setRggxArea(String rggxArea) {
+        this.rggxArea = rggxArea;
+    }
+
+    public String getRggxArea() {
+        return rggxArea;
+    }
+
+    public void setDclgzArea(String dclgzArea) {
+        this.dclgzArea = dclgzArea;
+    }
+
+    public String getDclgzArea() {
+        return dclgzArea;
+    }
+
+    public void setYmArea(String ymArea) {
+        this.ymArea = ymArea;
+    }
+
+    public String getYmArea() {
+        return ymArea;
+    }
+
+    public void setFsArea(String fsArea) {
+        this.fsArea = fsArea;
+    }
+
+    public String getFsArea() {
+        return fsArea;
+    }
+
+    public void setSlghArea(String slghArea) {
+        this.slghArea = slghArea;
+    }
+
+    public String getSlghArea() {
+        return slghArea;
+    }
+
+    public void setZylfuArea(String zylfuArea) {
+        this.zylfuArea = zylfuArea;
+    }
+
+    public String getZylfuArea() {
+        return zylfuArea;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .append("createBy", getCreateBy())
+                .append("createName", getCreateName())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateName", getUpdateName())
+                .append("updateTime", getUpdateTime())
+                .append("year", getYear())
+                .append("jdgxArea", getJdgxArea())
+                .append("rggxArea", getRggxArea())
+                .append("dclgzArea", getDclgzArea())
+                .append("ymArea", getYmArea())
+                .append("fsArea", getFsArea())
+                .append("slghArea", getSlghArea())
+                .append("zylfuArea", getZylfuArea())
+                .toString();
+    }
+}

+ 162 - 0
src/main/java/com/sooka/sponest/data/digitalforest/domain/CenterdataTForestZylcpcl.java

@@ -0,0 +1,162 @@
+package com.sooka.sponest.data.digitalforest.domain;
+
+import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 主要林产品产量对象 centerdata_t_forest_zylcpcl
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+public class CenterdataTForestZylcpcl extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private String id;
+
+    /**
+     * 部门id
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    @Excel(name = "所属部门")
+    private String deptName;
+
+    /**
+     * 年份
+     */
+    @Excel(name = "年份")
+    private String year;
+
+    /**
+     * 主要林产品产量(吨)
+     */
+    @Excel(name = "主要林产品产量")
+    private String zylcpYield;
+
+    /**
+     * 木材产量(立方米)
+     */
+    @Excel(name = "木材产量")
+    private String mcYield;
+
+    /**
+     * 锯材产量(立方米)
+     */
+    @Excel(name = "锯材产量")
+    private String jcYield;
+
+    /**
+     * 人造板产量(立方米)
+     */
+    @Excel(name = "人造板产量")
+    private String rzbYield;
+
+    /**
+     * 松香产量(吨)
+     */
+    @Excel(name = "松香产量")
+    private String sxYield;
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setYear(String year) {
+        this.year = year;
+    }
+
+    public String getYear() {
+        return year;
+    }
+
+    public void setZylcpYield(String zylcpYield) {
+        this.zylcpYield = zylcpYield;
+    }
+
+    public String getZylcpYield() {
+        return zylcpYield;
+    }
+
+    public void setMcYield(String mcYield) {
+        this.mcYield = mcYield;
+    }
+
+    public String getMcYield() {
+        return mcYield;
+    }
+
+    public void setJcYield(String jcYield) {
+        this.jcYield = jcYield;
+    }
+
+    public String getJcYield() {
+        return jcYield;
+    }
+
+    public void setRzbYield(String rzbYield) {
+        this.rzbYield = rzbYield;
+    }
+
+    public String getRzbYield() {
+        return rzbYield;
+    }
+
+    public void setSxYield(String sxYield) {
+        this.sxYield = sxYield;
+    }
+
+    public String getSxYield() {
+        return sxYield;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .append("createBy", getCreateBy())
+                .append("createName", getCreateName())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateName", getUpdateName())
+                .append("updateTime", getUpdateTime())
+                .append("year", getYear())
+                .append("zylcpYield", getZylcpYield())
+                .append("mcYield", getMcYield())
+                .append("jcYield", getJcYield())
+                .append("rzbYield", getRzbYield())
+                .append("sxYield", getSxYield())
+                .toString();
+    }
+}

+ 61 - 0
src/main/java/com/sooka/sponest/data/digitalforest/mapper/CenterdataTForestCyryMapper.java

@@ -0,0 +1,61 @@
+package com.sooka.sponest.data.digitalforest.mapper;
+
+import java.util.List;
+
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestCyry;
+
+/**
+ * 从业人员情况Mapper接口
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+public interface CenterdataTForestCyryMapper {
+    /**
+     * 查询从业人员情况
+     *
+     * @param id 从业人员情况主键
+     * @return 从业人员情况
+     */
+    public CenterdataTForestCyry selectCenterdataTForestCyryById(String id);
+
+    /**
+     * 查询从业人员情况列表
+     *
+     * @param centerdataTForestCyry 从业人员情况
+     * @return 从业人员情况集合
+     */
+    public List<CenterdataTForestCyry> selectCenterdataTForestCyryList(CenterdataTForestCyry centerdataTForestCyry);
+
+    /**
+     * 新增从业人员情况
+     *
+     * @param centerdataTForestCyry 从业人员情况
+     * @return 结果
+     */
+    public int insertCenterdataTForestCyry(CenterdataTForestCyry centerdataTForestCyry);
+
+    /**
+     * 修改从业人员情况
+     *
+     * @param centerdataTForestCyry 从业人员情况
+     * @return 结果
+     */
+    public int updateCenterdataTForestCyry(CenterdataTForestCyry centerdataTForestCyry);
+
+    /**
+     * 删除从业人员情况
+     *
+     * @param id 从业人员情况主键
+     * @return 结果
+     */
+    public int deleteCenterdataTForestCyryById(String id);
+
+    /**
+     * 批量删除从业人员情况
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteCenterdataTForestCyryByIds(String[] ids);
+}

+ 61 - 0
src/main/java/com/sooka/sponest/data/digitalforest/mapper/CenterdataTForestDictMapper.java

@@ -0,0 +1,61 @@
+package com.sooka.sponest.data.digitalforest.mapper;
+
+import java.util.List;
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestDict;
+
+/**
+ * 数据字典Mapper接口
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+public interface CenterdataTForestDictMapper
+{
+    /**
+     * 查询数据字典
+     *
+     * @param id 数据字典主键
+     * @return 数据字典
+     */
+    public CenterdataTForestDict selectCenterdataTForestDictById(Long id);
+
+    /**
+     * 查询数据字典列表
+     *
+     * @param centerdataTForestDict 数据字典
+     * @return 数据字典集合
+     */
+    public List<CenterdataTForestDict> selectCenterdataTForestDictList(CenterdataTForestDict centerdataTForestDict);
+
+    /**
+     * 新增数据字典
+     *
+     * @param centerdataTForestDict 数据字典
+     * @return 结果
+     */
+    public int insertCenterdataTForestDict(CenterdataTForestDict centerdataTForestDict);
+
+    /**
+     * 修改数据字典
+     *
+     * @param centerdataTForestDict 数据字典
+     * @return 结果
+     */
+    public int updateCenterdataTForestDict(CenterdataTForestDict centerdataTForestDict);
+
+    /**
+     * 删除数据字典
+     *
+     * @param id 数据字典主键
+     * @return 结果
+     */
+    public int deleteCenterdataTForestDictById(Long id);
+
+    /**
+     * 批量删除数据字典
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteCenterdataTForestDictByIds(Long[] ids);
+}

+ 61 - 0
src/main/java/com/sooka/sponest/data/digitalforest/mapper/CenterdataTForestForestationAreaMapper.java

@@ -0,0 +1,61 @@
+package com.sooka.sponest.data.digitalforest.mapper;
+
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestForestationArea;
+
+import java.util.List;
+
+/**
+ * 造林面积Mapper接口
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+public interface CenterdataTForestForestationAreaMapper {
+    /**
+     * 查询造林面积
+     *
+     * @param id 造林面积主键
+     * @return 造林面积
+     */
+    public CenterdataTForestForestationArea selectCenterdataTForestForestationAreaById(String id);
+
+    /**
+     * 查询造林面积列表
+     *
+     * @param centerdataTForestForestationArea 造林面积
+     * @return 造林面积集合
+     */
+    public List<CenterdataTForestForestationArea> selectCenterdataTForestForestationAreaList(CenterdataTForestForestationArea centerdataTForestForestationArea);
+
+    /**
+     * 新增造林面积
+     *
+     * @param centerdataTForestForestationArea 造林面积
+     * @return 结果
+     */
+    public int insertCenterdataTForestForestationArea(CenterdataTForestForestationArea centerdataTForestForestationArea);
+
+    /**
+     * 修改造林面积
+     *
+     * @param centerdataTForestForestationArea 造林面积
+     * @return 结果
+     */
+    public int updateCenterdataTForestForestationArea(CenterdataTForestForestationArea centerdataTForestForestationArea);
+
+    /**
+     * 删除造林面积
+     *
+     * @param id 造林面积主键
+     * @return 结果
+     */
+    public int deleteCenterdataTForestForestationAreaById(String id);
+
+    /**
+     * 批量删除造林面积
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteCenterdataTForestForestationAreaByIds(String[] ids);
+}

+ 61 - 0
src/main/java/com/sooka/sponest/data/digitalforest/mapper/CenterdataTForestGdzcwcMapper.java

@@ -0,0 +1,61 @@
+package com.sooka.sponest.data.digitalforest.mapper;
+
+import java.util.List;
+
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestGdzcwc;
+
+/**
+ * 固定资产投资完成额Mapper接口
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+public interface CenterdataTForestGdzcwcMapper {
+    /**
+     * 查询固定资产投资完成额
+     *
+     * @param id 固定资产投资完成额主键
+     * @return 固定资产投资完成额
+     */
+    public CenterdataTForestGdzcwc selectCenterdataTForestGdzcwcById(String id);
+
+    /**
+     * 查询固定资产投资完成额列表
+     *
+     * @param centerdataTForestGdzcwc 固定资产投资完成额
+     * @return 固定资产投资完成额集合
+     */
+    public List<CenterdataTForestGdzcwc> selectCenterdataTForestGdzcwcList(CenterdataTForestGdzcwc centerdataTForestGdzcwc);
+
+    /**
+     * 新增固定资产投资完成额
+     *
+     * @param centerdataTForestGdzcwc 固定资产投资完成额
+     * @return 结果
+     */
+    public int insertCenterdataTForestGdzcwc(CenterdataTForestGdzcwc centerdataTForestGdzcwc);
+
+    /**
+     * 修改固定资产投资完成额
+     *
+     * @param centerdataTForestGdzcwc 固定资产投资完成额
+     * @return 结果
+     */
+    public int updateCenterdataTForestGdzcwc(CenterdataTForestGdzcwc centerdataTForestGdzcwc);
+
+    /**
+     * 删除固定资产投资完成额
+     *
+     * @param id 固定资产投资完成额主键
+     * @return 结果
+     */
+    public int deleteCenterdataTForestGdzcwcById(String id);
+
+    /**
+     * 批量删除固定资产投资完成额
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteCenterdataTForestGdzcwcByIds(String[] ids);
+}

+ 61 - 0
src/main/java/com/sooka/sponest/data/digitalforest/mapper/CenterdataTForestLycyzczMapper.java

@@ -0,0 +1,61 @@
+package com.sooka.sponest.data.digitalforest.mapper;
+
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestLycyzcz;
+
+import java.util.List;
+
+/**
+ * 林业产业总产值Mapper接口
+ *
+ * @author 韩福成
+ * @date 2024-06-25
+ */
+public interface CenterdataTForestLycyzczMapper {
+    /**
+     * 查询林业产业总产值
+     *
+     * @param id 林业产业总产值主键
+     * @return 林业产业总产值
+     */
+    public CenterdataTForestLycyzcz selectCenterdataTForestLycyzczById(String id);
+
+    /**
+     * 查询林业产业总产值列表
+     *
+     * @param centerdataTForestLycyzcz 林业产业总产值
+     * @return 林业产业总产值集合
+     */
+    public List<CenterdataTForestLycyzcz> selectCenterdataTForestLycyzczList(CenterdataTForestLycyzcz centerdataTForestLycyzcz);
+
+    /**
+     * 新增林业产业总产值
+     *
+     * @param centerdataTForestLycyzcz 林业产业总产值
+     * @return 结果
+     */
+    public int insertCenterdataTForestLycyzcz(CenterdataTForestLycyzcz centerdataTForestLycyzcz);
+
+    /**
+     * 修改林业产业总产值
+     *
+     * @param centerdataTForestLycyzcz 林业产业总产值
+     * @return 结果
+     */
+    public int updateCenterdataTForestLycyzcz(CenterdataTForestLycyzcz centerdataTForestLycyzcz);
+
+    /**
+     * 删除林业产业总产值
+     *
+     * @param id 林业产业总产值主键
+     * @return 结果
+     */
+    public int deleteCenterdataTForestLycyzczById(String id);
+
+    /**
+     * 批量删除林业产业总产值
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteCenterdataTForestLycyzczByIds(String[] ids);
+}

+ 61 - 0
src/main/java/com/sooka/sponest/data/digitalforest/mapper/CenterdataTForestYlscsjjMapper.java

@@ -0,0 +1,61 @@
+package com.sooka.sponest.data.digitalforest.mapper;
+
+import java.util.List;
+
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestYlscsjj;
+
+/**
+ * 营林生产数据集Mapper接口
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+public interface CenterdataTForestYlscsjjMapper {
+    /**
+     * 查询营林生产数据集
+     *
+     * @param id 营林生产数据集主键
+     * @return 营林生产数据集
+     */
+    public CenterdataTForestYlscsjj selectCenterdataTForestYlscsjjById(String id);
+
+    /**
+     * 查询营林生产数据集列表
+     *
+     * @param centerdataTForestYlscsjj 营林生产数据集
+     * @return 营林生产数据集集合
+     */
+    public List<CenterdataTForestYlscsjj> selectCenterdataTForestYlscsjjList(CenterdataTForestYlscsjj centerdataTForestYlscsjj);
+
+    /**
+     * 新增营林生产数据集
+     *
+     * @param centerdataTForestYlscsjj 营林生产数据集
+     * @return 结果
+     */
+    public int insertCenterdataTForestYlscsjj(CenterdataTForestYlscsjj centerdataTForestYlscsjj);
+
+    /**
+     * 修改营林生产数据集
+     *
+     * @param centerdataTForestYlscsjj 营林生产数据集
+     * @return 结果
+     */
+    public int updateCenterdataTForestYlscsjj(CenterdataTForestYlscsjj centerdataTForestYlscsjj);
+
+    /**
+     * 删除营林生产数据集
+     *
+     * @param id 营林生产数据集主键
+     * @return 结果
+     */
+    public int deleteCenterdataTForestYlscsjjById(String id);
+
+    /**
+     * 批量删除营林生产数据集
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteCenterdataTForestYlscsjjByIds(String[] ids);
+}

+ 61 - 0
src/main/java/com/sooka/sponest/data/digitalforest/mapper/CenterdataTForestZylcpclMapper.java

@@ -0,0 +1,61 @@
+package com.sooka.sponest.data.digitalforest.mapper;
+
+import java.util.List;
+
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestZylcpcl;
+
+/**
+ * 主要林产品产量Mapper接口
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+public interface CenterdataTForestZylcpclMapper {
+    /**
+     * 查询主要林产品产量
+     *
+     * @param id 主要林产品产量主键
+     * @return 主要林产品产量
+     */
+    public CenterdataTForestZylcpcl selectCenterdataTForestZylcpclById(String id);
+
+    /**
+     * 查询主要林产品产量列表
+     *
+     * @param centerdataTForestZylcpcl 主要林产品产量
+     * @return 主要林产品产量集合
+     */
+    public List<CenterdataTForestZylcpcl> selectCenterdataTForestZylcpclList(CenterdataTForestZylcpcl centerdataTForestZylcpcl);
+
+    /**
+     * 新增主要林产品产量
+     *
+     * @param centerdataTForestZylcpcl 主要林产品产量
+     * @return 结果
+     */
+    public int insertCenterdataTForestZylcpcl(CenterdataTForestZylcpcl centerdataTForestZylcpcl);
+
+    /**
+     * 修改主要林产品产量
+     *
+     * @param centerdataTForestZylcpcl 主要林产品产量
+     * @return 结果
+     */
+    public int updateCenterdataTForestZylcpcl(CenterdataTForestZylcpcl centerdataTForestZylcpcl);
+
+    /**
+     * 删除主要林产品产量
+     *
+     * @param id 主要林产品产量主键
+     * @return 结果
+     */
+    public int deleteCenterdataTForestZylcpclById(String id);
+
+    /**
+     * 批量删除主要林产品产量
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteCenterdataTForestZylcpclByIds(String[] ids);
+}

+ 61 - 0
src/main/java/com/sooka/sponest/data/digitalforest/service/ICenterdataTForestCyryService.java

@@ -0,0 +1,61 @@
+package com.sooka.sponest.data.digitalforest.service;
+
+import java.util.List;
+
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestCyry;
+
+/**
+ * 从业人员情况Service接口
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+public interface ICenterdataTForestCyryService {
+    /**
+     * 查询从业人员情况
+     *
+     * @param id 从业人员情况主键
+     * @return 从业人员情况
+     */
+    public CenterdataTForestCyry selectCenterdataTForestCyryById(String id);
+
+    /**
+     * 查询从业人员情况列表
+     *
+     * @param centerdataTForestCyry 从业人员情况
+     * @return 从业人员情况集合
+     */
+    public List<CenterdataTForestCyry> selectCenterdataTForestCyryList(CenterdataTForestCyry centerdataTForestCyry);
+
+    /**
+     * 新增从业人员情况
+     *
+     * @param centerdataTForestCyry 从业人员情况
+     * @return 结果
+     */
+    public int insertCenterdataTForestCyry(CenterdataTForestCyry centerdataTForestCyry);
+
+    /**
+     * 修改从业人员情况
+     *
+     * @param centerdataTForestCyry 从业人员情况
+     * @return 结果
+     */
+    public int updateCenterdataTForestCyry(CenterdataTForestCyry centerdataTForestCyry);
+
+    /**
+     * 批量删除从业人员情况
+     *
+     * @param ids 需要删除的从业人员情况主键集合
+     * @return 结果
+     */
+    public int deleteCenterdataTForestCyryByIds(String[] ids);
+
+    /**
+     * 删除从业人员情况信息
+     *
+     * @param id 从业人员情况主键
+     * @return 结果
+     */
+    public int deleteCenterdataTForestCyryById(String id);
+}

+ 61 - 0
src/main/java/com/sooka/sponest/data/digitalforest/service/ICenterdataTForestDictService.java

@@ -0,0 +1,61 @@
+package com.sooka.sponest.data.digitalforest.service;
+
+import java.util.List;
+
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestDict;
+
+/**
+ * 数据字典Service接口
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+public interface ICenterdataTForestDictService {
+    /**
+     * 查询数据字典
+     *
+     * @param id 数据字典主键
+     * @return 数据字典
+     */
+    public CenterdataTForestDict selectCenterdataTForestDictById(Long id);
+
+    /**
+     * 查询数据字典列表
+     *
+     * @param centerdataTForestDict 数据字典
+     * @return 数据字典集合
+     */
+    public List<CenterdataTForestDict> selectCenterdataTForestDictList(CenterdataTForestDict centerdataTForestDict);
+
+    /**
+     * 新增数据字典
+     *
+     * @param centerdataTForestDict 数据字典
+     * @return 结果
+     */
+    public int insertCenterdataTForestDict(CenterdataTForestDict centerdataTForestDict);
+
+    /**
+     * 修改数据字典
+     *
+     * @param centerdataTForestDict 数据字典
+     * @return 结果
+     */
+    public int updateCenterdataTForestDict(CenterdataTForestDict centerdataTForestDict);
+
+    /**
+     * 批量删除数据字典
+     *
+     * @param ids 需要删除的数据字典主键集合
+     * @return 结果
+     */
+    public int deleteCenterdataTForestDictByIds(Long[] ids);
+
+    /**
+     * 删除数据字典信息
+     *
+     * @param id 数据字典主键
+     * @return 结果
+     */
+    public int deleteCenterdataTForestDictById(Long id);
+}

+ 61 - 0
src/main/java/com/sooka/sponest/data/digitalforest/service/ICenterdataTForestForestationAreaService.java

@@ -0,0 +1,61 @@
+package com.sooka.sponest.data.digitalforest.service;
+
+import java.util.List;
+
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestForestationArea;
+
+/**
+ * 造林面积Service接口
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+public interface ICenterdataTForestForestationAreaService {
+    /**
+     * 查询造林面积
+     *
+     * @param id 造林面积主键
+     * @return 造林面积
+     */
+    public CenterdataTForestForestationArea selectCenterdataTForestForestationAreaById(String id);
+
+    /**
+     * 查询造林面积列表
+     *
+     * @param centerdataTForestForestationArea 造林面积
+     * @return 造林面积集合
+     */
+    public List<CenterdataTForestForestationArea> selectCenterdataTForestForestationAreaList(CenterdataTForestForestationArea centerdataTForestForestationArea);
+
+    /**
+     * 新增造林面积
+     *
+     * @param centerdataTForestForestationArea 造林面积
+     * @return 结果
+     */
+    public int insertCenterdataTForestForestationArea(CenterdataTForestForestationArea centerdataTForestForestationArea);
+
+    /**
+     * 修改造林面积
+     *
+     * @param centerdataTForestForestationArea 造林面积
+     * @return 结果
+     */
+    public int updateCenterdataTForestForestationArea(CenterdataTForestForestationArea centerdataTForestForestationArea);
+
+    /**
+     * 批量删除造林面积
+     *
+     * @param ids 需要删除的造林面积主键集合
+     * @return 结果
+     */
+    public int deleteCenterdataTForestForestationAreaByIds(String[] ids);
+
+    /**
+     * 删除造林面积信息
+     *
+     * @param id 造林面积主键
+     * @return 结果
+     */
+    public int deleteCenterdataTForestForestationAreaById(String id);
+}

+ 61 - 0
src/main/java/com/sooka/sponest/data/digitalforest/service/ICenterdataTForestGdzcwcService.java

@@ -0,0 +1,61 @@
+package com.sooka.sponest.data.digitalforest.service;
+
+import java.util.List;
+
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestGdzcwc;
+
+/**
+ * 固定资产投资完成额Service接口
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+public interface ICenterdataTForestGdzcwcService {
+    /**
+     * 查询固定资产投资完成额
+     *
+     * @param id 固定资产投资完成额主键
+     * @return 固定资产投资完成额
+     */
+    public CenterdataTForestGdzcwc selectCenterdataTForestGdzcwcById(String id);
+
+    /**
+     * 查询固定资产投资完成额列表
+     *
+     * @param centerdataTForestGdzcwc 固定资产投资完成额
+     * @return 固定资产投资完成额集合
+     */
+    public List<CenterdataTForestGdzcwc> selectCenterdataTForestGdzcwcList(CenterdataTForestGdzcwc centerdataTForestGdzcwc);
+
+    /**
+     * 新增固定资产投资完成额
+     *
+     * @param centerdataTForestGdzcwc 固定资产投资完成额
+     * @return 结果
+     */
+    public int insertCenterdataTForestGdzcwc(CenterdataTForestGdzcwc centerdataTForestGdzcwc);
+
+    /**
+     * 修改固定资产投资完成额
+     *
+     * @param centerdataTForestGdzcwc 固定资产投资完成额
+     * @return 结果
+     */
+    public int updateCenterdataTForestGdzcwc(CenterdataTForestGdzcwc centerdataTForestGdzcwc);
+
+    /**
+     * 批量删除固定资产投资完成额
+     *
+     * @param ids 需要删除的固定资产投资完成额主键集合
+     * @return 结果
+     */
+    public int deleteCenterdataTForestGdzcwcByIds(String[] ids);
+
+    /**
+     * 删除固定资产投资完成额信息
+     *
+     * @param id 固定资产投资完成额主键
+     * @return 结果
+     */
+    public int deleteCenterdataTForestGdzcwcById(String id);
+}

+ 61 - 0
src/main/java/com/sooka/sponest/data/digitalforest/service/ICenterdataTForestLycyzczService.java

@@ -0,0 +1,61 @@
+package com.sooka.sponest.data.digitalforest.service;
+
+import java.util.List;
+
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestLycyzcz;
+
+/**
+ * 林业产业总产值Service接口
+ *
+ * @author 韩福成
+ * @date 2024-06-25
+ */
+public interface ICenterdataTForestLycyzczService {
+    /**
+     * 查询林业产业总产值
+     *
+     * @param id 林业产业总产值主键
+     * @return 林业产业总产值
+     */
+    public CenterdataTForestLycyzcz selectCenterdataTForestLycyzczById(String id);
+
+    /**
+     * 查询林业产业总产值列表
+     *
+     * @param centerdataTForestLycyzcz 林业产业总产值
+     * @return 林业产业总产值集合
+     */
+    public List<CenterdataTForestLycyzcz> selectCenterdataTForestLycyzczList(CenterdataTForestLycyzcz centerdataTForestLycyzcz);
+
+    /**
+     * 新增林业产业总产值
+     *
+     * @param centerdataTForestLycyzcz 林业产业总产值
+     * @return 结果
+     */
+    public int insertCenterdataTForestLycyzcz(CenterdataTForestLycyzcz centerdataTForestLycyzcz);
+
+    /**
+     * 修改林业产业总产值
+     *
+     * @param centerdataTForestLycyzcz 林业产业总产值
+     * @return 结果
+     */
+    public int updateCenterdataTForestLycyzcz(CenterdataTForestLycyzcz centerdataTForestLycyzcz);
+
+    /**
+     * 批量删除林业产业总产值
+     *
+     * @param ids 需要删除的林业产业总产值主键集合
+     * @return 结果
+     */
+    public int deleteCenterdataTForestLycyzczByIds(String[] ids);
+
+    /**
+     * 删除林业产业总产值信息
+     *
+     * @param id 林业产业总产值主键
+     * @return 结果
+     */
+    public int deleteCenterdataTForestLycyzczById(String id);
+}

+ 61 - 0
src/main/java/com/sooka/sponest/data/digitalforest/service/ICenterdataTForestYlscsjjService.java

@@ -0,0 +1,61 @@
+package com.sooka.sponest.data.digitalforest.service;
+
+import java.util.List;
+
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestYlscsjj;
+
+/**
+ * 营林生产数据集Service接口
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+public interface ICenterdataTForestYlscsjjService {
+    /**
+     * 查询营林生产数据集
+     *
+     * @param id 营林生产数据集主键
+     * @return 营林生产数据集
+     */
+    public CenterdataTForestYlscsjj selectCenterdataTForestYlscsjjById(String id);
+
+    /**
+     * 查询营林生产数据集列表
+     *
+     * @param centerdataTForestYlscsjj 营林生产数据集
+     * @return 营林生产数据集集合
+     */
+    public List<CenterdataTForestYlscsjj> selectCenterdataTForestYlscsjjList(CenterdataTForestYlscsjj centerdataTForestYlscsjj);
+
+    /**
+     * 新增营林生产数据集
+     *
+     * @param centerdataTForestYlscsjj 营林生产数据集
+     * @return 结果
+     */
+    public int insertCenterdataTForestYlscsjj(CenterdataTForestYlscsjj centerdataTForestYlscsjj);
+
+    /**
+     * 修改营林生产数据集
+     *
+     * @param centerdataTForestYlscsjj 营林生产数据集
+     * @return 结果
+     */
+    public int updateCenterdataTForestYlscsjj(CenterdataTForestYlscsjj centerdataTForestYlscsjj);
+
+    /**
+     * 批量删除营林生产数据集
+     *
+     * @param ids 需要删除的营林生产数据集主键集合
+     * @return 结果
+     */
+    public int deleteCenterdataTForestYlscsjjByIds(String[] ids);
+
+    /**
+     * 删除营林生产数据集信息
+     *
+     * @param id 营林生产数据集主键
+     * @return 结果
+     */
+    public int deleteCenterdataTForestYlscsjjById(String id);
+}

+ 61 - 0
src/main/java/com/sooka/sponest/data/digitalforest/service/ICenterdataTForestZylcpclService.java

@@ -0,0 +1,61 @@
+package com.sooka.sponest.data.digitalforest.service;
+
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestZylcpcl;
+
+import java.util.List;
+
+/**
+ * 主要林产品产量Service接口
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+public interface ICenterdataTForestZylcpclService {
+    /**
+     * 查询主要林产品产量
+     *
+     * @param id 主要林产品产量主键
+     * @return 主要林产品产量
+     */
+    public CenterdataTForestZylcpcl selectCenterdataTForestZylcpclById(String id);
+
+    /**
+     * 查询主要林产品产量列表
+     *
+     * @param centerdataTForestZylcpcl 主要林产品产量
+     * @return 主要林产品产量集合
+     */
+    public List<CenterdataTForestZylcpcl> selectCenterdataTForestZylcpclList(CenterdataTForestZylcpcl centerdataTForestZylcpcl);
+
+    /**
+     * 新增主要林产品产量
+     *
+     * @param centerdataTForestZylcpcl 主要林产品产量
+     * @return 结果
+     */
+    public int insertCenterdataTForestZylcpcl(CenterdataTForestZylcpcl centerdataTForestZylcpcl);
+
+    /**
+     * 修改主要林产品产量
+     *
+     * @param centerdataTForestZylcpcl 主要林产品产量
+     * @return 结果
+     */
+    public int updateCenterdataTForestZylcpcl(CenterdataTForestZylcpcl centerdataTForestZylcpcl);
+
+    /**
+     * 批量删除主要林产品产量
+     *
+     * @param ids 需要删除的主要林产品产量主键集合
+     * @return 结果
+     */
+    public int deleteCenterdataTForestZylcpclByIds(String[] ids);
+
+    /**
+     * 删除主要林产品产量信息
+     *
+     * @param id 主要林产品产量主键
+     * @return 结果
+     */
+    public int deleteCenterdataTForestZylcpclById(String id);
+}

+ 101 - 0
src/main/java/com/sooka/sponest/data/digitalforest/service/impl/CenterdataTForestCyryServiceImpl.java

@@ -0,0 +1,101 @@
+package com.sooka.sponest.data.digitalforest.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.uuid.IdUtils;
+import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.sooka.sponest.data.digitalforest.mapper.CenterdataTForestCyryMapper;
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestCyry;
+import com.sooka.sponest.data.digitalforest.service.ICenterdataTForestCyryService;
+
+/**
+ * 从业人员情况Service业务层处理
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+@Service
+public class CenterdataTForestCyryServiceImpl extends BaseServiceImpl implements ICenterdataTForestCyryService {
+    @Autowired
+    private CenterdataTForestCyryMapper centerdataTForestCyryMapper;
+
+    /**
+     * 查询从业人员情况
+     *
+     * @param id 从业人员情况主键
+     * @return 从业人员情况
+     */
+    @Override
+    public CenterdataTForestCyry selectCenterdataTForestCyryById(String id) {
+        return centerdataTForestCyryMapper.selectCenterdataTForestCyryById(id);
+    }
+
+    /**
+     * 查询从业人员情况列表
+     *
+     * @param centerdataTForestCyry 从业人员情况
+     * @return 从业人员情况
+     */
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<CenterdataTForestCyry> selectCenterdataTForestCyryList(CenterdataTForestCyry centerdataTForestCyry) {
+        setSookaDataBase(centerdataTForestCyry);
+        return centerdataTForestCyryMapper.selectCenterdataTForestCyryList(centerdataTForestCyry);
+    }
+
+    /**
+     * 新增从业人员情况
+     *
+     * @param centerdataTForestCyry 从业人员情况
+     * @return 结果
+     */
+    @Override
+    public int insertCenterdataTForestCyry(CenterdataTForestCyry centerdataTForestCyry) {
+        centerdataTForestCyry.setId(IdUtils.simpleUUID());
+        centerdataTForestCyry.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getUserId().toString());
+        centerdataTForestCyry.setCreateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTForestCyry.setCreateTime(DateUtils.getNowDate());
+        return centerdataTForestCyryMapper.insertCenterdataTForestCyry(centerdataTForestCyry);
+    }
+
+    /**
+     * 修改从业人员情况
+     *
+     * @param centerdataTForestCyry 从业人员情况
+     * @return 结果
+     */
+    @Override
+    public int updateCenterdataTForestCyry(CenterdataTForestCyry centerdataTForestCyry) {
+        centerdataTForestCyry.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getUserId());
+        centerdataTForestCyry.setUpdateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTForestCyry.setUpdateTime(DateUtils.getNowDate());
+        return centerdataTForestCyryMapper.updateCenterdataTForestCyry(centerdataTForestCyry);
+    }
+
+    /**
+     * 批量删除从业人员情况
+     *
+     * @param ids 需要删除的从业人员情况主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTForestCyryByIds(String[] ids) {
+        return centerdataTForestCyryMapper.deleteCenterdataTForestCyryByIds(ids);
+    }
+
+    /**
+     * 删除从业人员情况信息
+     *
+     * @param id 从业人员情况主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTForestCyryById(String id) {
+        return centerdataTForestCyryMapper.deleteCenterdataTForestCyryById(id);
+    }
+}

+ 102 - 0
src/main/java/com/sooka/sponest/data/digitalforest/service/impl/CenterdataTForestForestationAreaServiceImpl.java

@@ -0,0 +1,102 @@
+package com.sooka.sponest.data.digitalforest.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.uuid.IdUtils;
+import com.ruoyi.common.datascope.annotation.DataScope;
+import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.sooka.sponest.data.digitalforest.mapper.CenterdataTForestForestationAreaMapper;
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestForestationArea;
+import com.sooka.sponest.data.digitalforest.service.ICenterdataTForestForestationAreaService;
+
+/**
+ * 造林面积Service业务层处理
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+@Service
+public class CenterdataTForestForestationAreaServiceImpl extends BaseServiceImpl implements ICenterdataTForestForestationAreaService {
+    @Autowired
+    private CenterdataTForestForestationAreaMapper centerdataTForestForestationAreaMapper;
+
+    /**
+     * 查询造林面积
+     *
+     * @param id 造林面积主键
+     * @return 造林面积
+     */
+    @Override
+    public CenterdataTForestForestationArea selectCenterdataTForestForestationAreaById(String id) {
+        return centerdataTForestForestationAreaMapper.selectCenterdataTForestForestationAreaById(id);
+    }
+
+    /**
+     * 查询造林面积列表
+     *
+     * @param centerdataTForestForestationArea 造林面积
+     * @return 造林面积
+     */
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<CenterdataTForestForestationArea> selectCenterdataTForestForestationAreaList(CenterdataTForestForestationArea centerdataTForestForestationArea) {
+        setSookaDataBase(centerdataTForestForestationArea);
+        return centerdataTForestForestationAreaMapper.selectCenterdataTForestForestationAreaList(centerdataTForestForestationArea);
+    }
+
+    /**
+     * 新增造林面积
+     *
+     * @param centerdataTForestForestationArea 造林面积
+     * @return 结果
+     */
+    @Override
+    public int insertCenterdataTForestForestationArea(CenterdataTForestForestationArea centerdataTForestForestationArea) {
+        centerdataTForestForestationArea.setId(IdUtils.simpleUUID());
+        centerdataTForestForestationArea.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getUserId().toString());
+        centerdataTForestForestationArea.setCreateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTForestForestationArea.setCreateTime(DateUtils.getNowDate());
+        return centerdataTForestForestationAreaMapper.insertCenterdataTForestForestationArea(centerdataTForestForestationArea);
+    }
+
+    /**
+     * 修改造林面积
+     *
+     * @param centerdataTForestForestationArea 造林面积
+     * @return 结果
+     */
+    @Override
+    public int updateCenterdataTForestForestationArea(CenterdataTForestForestationArea centerdataTForestForestationArea) {
+        centerdataTForestForestationArea.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getUserId());
+        centerdataTForestForestationArea.setUpdateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTForestForestationArea.setUpdateTime(DateUtils.getNowDate());
+        return centerdataTForestForestationAreaMapper.updateCenterdataTForestForestationArea(centerdataTForestForestationArea);
+    }
+
+    /**
+     * 批量删除造林面积
+     *
+     * @param ids 需要删除的造林面积主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTForestForestationAreaByIds(String[] ids) {
+        return centerdataTForestForestationAreaMapper.deleteCenterdataTForestForestationAreaByIds(ids);
+    }
+
+    /**
+     * 删除造林面积信息
+     *
+     * @param id 造林面积主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTForestForestationAreaById(String id) {
+        return centerdataTForestForestationAreaMapper.deleteCenterdataTForestForestationAreaById(id);
+    }
+}

+ 101 - 0
src/main/java/com/sooka/sponest/data/digitalforest/service/impl/CenterdataTForestGdzcwcServiceImpl.java

@@ -0,0 +1,101 @@
+package com.sooka.sponest.data.digitalforest.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.uuid.IdUtils;
+import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.sooka.sponest.data.digitalforest.mapper.CenterdataTForestGdzcwcMapper;
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestGdzcwc;
+import com.sooka.sponest.data.digitalforest.service.ICenterdataTForestGdzcwcService;
+
+/**
+ * 固定资产投资完成额Service业务层处理
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+@Service
+public class CenterdataTForestGdzcwcServiceImpl extends BaseServiceImpl implements ICenterdataTForestGdzcwcService {
+    @Autowired
+    private CenterdataTForestGdzcwcMapper centerdataTForestGdzcwcMapper;
+
+    /**
+     * 查询固定资产投资完成额
+     *
+     * @param id 固定资产投资完成额主键
+     * @return 固定资产投资完成额
+     */
+    @Override
+    public CenterdataTForestGdzcwc selectCenterdataTForestGdzcwcById(String id) {
+        return centerdataTForestGdzcwcMapper.selectCenterdataTForestGdzcwcById(id);
+    }
+
+    /**
+     * 查询固定资产投资完成额列表
+     *
+     * @param centerdataTForestGdzcwc 固定资产投资完成额
+     * @return 固定资产投资完成额
+     */
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<CenterdataTForestGdzcwc> selectCenterdataTForestGdzcwcList(CenterdataTForestGdzcwc centerdataTForestGdzcwc) {
+        setSookaDataBase(centerdataTForestGdzcwc);
+        return centerdataTForestGdzcwcMapper.selectCenterdataTForestGdzcwcList(centerdataTForestGdzcwc);
+    }
+
+    /**
+     * 新增固定资产投资完成额
+     *
+     * @param centerdataTForestGdzcwc 固定资产投资完成额
+     * @return 结果
+     */
+    @Override
+    public int insertCenterdataTForestGdzcwc(CenterdataTForestGdzcwc centerdataTForestGdzcwc) {
+        centerdataTForestGdzcwc.setId(IdUtils.simpleUUID());
+        centerdataTForestGdzcwc.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getUserId().toString());
+        centerdataTForestGdzcwc.setCreateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTForestGdzcwc.setCreateTime(DateUtils.getNowDate());
+        return centerdataTForestGdzcwcMapper.insertCenterdataTForestGdzcwc(centerdataTForestGdzcwc);
+    }
+
+    /**
+     * 修改固定资产投资完成额
+     *
+     * @param centerdataTForestGdzcwc 固定资产投资完成额
+     * @return 结果
+     */
+    @Override
+    public int updateCenterdataTForestGdzcwc(CenterdataTForestGdzcwc centerdataTForestGdzcwc) {
+        centerdataTForestGdzcwc.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getUserId());
+        centerdataTForestGdzcwc.setUpdateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTForestGdzcwc.setUpdateTime(DateUtils.getNowDate());
+        return centerdataTForestGdzcwcMapper.updateCenterdataTForestGdzcwc(centerdataTForestGdzcwc);
+    }
+
+    /**
+     * 批量删除固定资产投资完成额
+     *
+     * @param ids 需要删除的固定资产投资完成额主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTForestGdzcwcByIds(String[] ids) {
+        return centerdataTForestGdzcwcMapper.deleteCenterdataTForestGdzcwcByIds(ids);
+    }
+
+    /**
+     * 删除固定资产投资完成额信息
+     *
+     * @param id 固定资产投资完成额主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTForestGdzcwcById(String id) {
+        return centerdataTForestGdzcwcMapper.deleteCenterdataTForestGdzcwcById(id);
+    }
+}

+ 101 - 0
src/main/java/com/sooka/sponest/data/digitalforest/service/impl/CenterdataTForestLycyzczServiceImpl.java

@@ -0,0 +1,101 @@
+package com.sooka.sponest.data.digitalforest.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.uuid.IdUtils;
+import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.sooka.sponest.data.digitalforest.mapper.CenterdataTForestLycyzczMapper;
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestLycyzcz;
+import com.sooka.sponest.data.digitalforest.service.ICenterdataTForestLycyzczService;
+
+/**
+ * 林业产业总产值Service业务层处理
+ *
+ * @author 韩福成
+ * @date 2024-06-25
+ */
+@Service
+public class CenterdataTForestLycyzczServiceImpl extends BaseServiceImpl implements ICenterdataTForestLycyzczService {
+    @Autowired
+    private CenterdataTForestLycyzczMapper centerdataTForestLycyzczMapper;
+
+    /**
+     * 查询林业产业总产值
+     *
+     * @param id 林业产业总产值主键
+     * @return 林业产业总产值
+     */
+    @Override
+    public CenterdataTForestLycyzcz selectCenterdataTForestLycyzczById(String id) {
+        return centerdataTForestLycyzczMapper.selectCenterdataTForestLycyzczById(id);
+    }
+
+    /**
+     * 查询林业产业总产值列表
+     *
+     * @param centerdataTForestLycyzcz 林业产业总产值
+     * @return 林业产业总产值
+     */
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<CenterdataTForestLycyzcz> selectCenterdataTForestLycyzczList(CenterdataTForestLycyzcz centerdataTForestLycyzcz) {
+        setSookaDataBase(centerdataTForestLycyzcz);
+        return centerdataTForestLycyzczMapper.selectCenterdataTForestLycyzczList(centerdataTForestLycyzcz);
+    }
+
+    /**
+     * 新增林业产业总产值
+     *
+     * @param centerdataTForestLycyzcz 林业产业总产值
+     * @return 结果
+     */
+    @Override
+    public int insertCenterdataTForestLycyzcz(CenterdataTForestLycyzcz centerdataTForestLycyzcz) {
+        centerdataTForestLycyzcz.setId(IdUtils.simpleUUID());
+        centerdataTForestLycyzcz.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getUserId().toString());
+        centerdataTForestLycyzcz.setCreateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTForestLycyzcz.setCreateTime(DateUtils.getNowDate());
+        return centerdataTForestLycyzczMapper.insertCenterdataTForestLycyzcz(centerdataTForestLycyzcz);
+    }
+
+    /**
+     * 修改林业产业总产值
+     *
+     * @param centerdataTForestLycyzcz 林业产业总产值
+     * @return 结果
+     */
+    @Override
+    public int updateCenterdataTForestLycyzcz(CenterdataTForestLycyzcz centerdataTForestLycyzcz) {
+        centerdataTForestLycyzcz.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getUserId());
+        centerdataTForestLycyzcz.setUpdateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTForestLycyzcz.setUpdateTime(DateUtils.getNowDate());
+        return centerdataTForestLycyzczMapper.updateCenterdataTForestLycyzcz(centerdataTForestLycyzcz);
+    }
+
+    /**
+     * 批量删除林业产业总产值
+     *
+     * @param ids 需要删除的林业产业总产值主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTForestLycyzczByIds(String[] ids) {
+        return centerdataTForestLycyzczMapper.deleteCenterdataTForestLycyzczByIds(ids);
+    }
+
+    /**
+     * 删除林业产业总产值信息
+     *
+     * @param id 林业产业总产值主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTForestLycyzczById(String id) {
+        return centerdataTForestLycyzczMapper.deleteCenterdataTForestLycyzczById(id);
+    }
+}

+ 101 - 0
src/main/java/com/sooka/sponest/data/digitalforest/service/impl/CenterdataTForestYlscsjjServiceImpl.java

@@ -0,0 +1,101 @@
+package com.sooka.sponest.data.digitalforest.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.uuid.IdUtils;
+import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.sooka.sponest.data.digitalforest.mapper.CenterdataTForestYlscsjjMapper;
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestYlscsjj;
+import com.sooka.sponest.data.digitalforest.service.ICenterdataTForestYlscsjjService;
+
+/**
+ * 营林生产数据集Service业务层处理
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+@Service
+public class CenterdataTForestYlscsjjServiceImpl extends BaseServiceImpl implements ICenterdataTForestYlscsjjService {
+    @Autowired
+    private CenterdataTForestYlscsjjMapper centerdataTForestYlscsjjMapper;
+
+    /**
+     * 查询营林生产数据集
+     *
+     * @param id 营林生产数据集主键
+     * @return 营林生产数据集
+     */
+    @Override
+    public CenterdataTForestYlscsjj selectCenterdataTForestYlscsjjById(String id) {
+        return centerdataTForestYlscsjjMapper.selectCenterdataTForestYlscsjjById(id);
+    }
+
+    /**
+     * 查询营林生产数据集列表
+     *
+     * @param centerdataTForestYlscsjj 营林生产数据集
+     * @return 营林生产数据集
+     */
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<CenterdataTForestYlscsjj> selectCenterdataTForestYlscsjjList(CenterdataTForestYlscsjj centerdataTForestYlscsjj) {
+        setSookaDataBase(centerdataTForestYlscsjj);
+        return centerdataTForestYlscsjjMapper.selectCenterdataTForestYlscsjjList(centerdataTForestYlscsjj);
+    }
+
+    /**
+     * 新增营林生产数据集
+     *
+     * @param centerdataTForestYlscsjj 营林生产数据集
+     * @return 结果
+     */
+    @Override
+    public int insertCenterdataTForestYlscsjj(CenterdataTForestYlscsjj centerdataTForestYlscsjj) {
+        centerdataTForestYlscsjj.setId(IdUtils.simpleUUID());
+        centerdataTForestYlscsjj.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getUserId().toString());
+        centerdataTForestYlscsjj.setCreateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTForestYlscsjj.setCreateTime(DateUtils.getNowDate());
+        return centerdataTForestYlscsjjMapper.insertCenterdataTForestYlscsjj(centerdataTForestYlscsjj);
+    }
+
+    /**
+     * 修改营林生产数据集
+     *
+     * @param centerdataTForestYlscsjj 营林生产数据集
+     * @return 结果
+     */
+    @Override
+    public int updateCenterdataTForestYlscsjj(CenterdataTForestYlscsjj centerdataTForestYlscsjj) {
+        centerdataTForestYlscsjj.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getUserId());
+        centerdataTForestYlscsjj.setUpdateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTForestYlscsjj.setUpdateTime(DateUtils.getNowDate());
+        return centerdataTForestYlscsjjMapper.updateCenterdataTForestYlscsjj(centerdataTForestYlscsjj);
+    }
+
+    /**
+     * 批量删除营林生产数据集
+     *
+     * @param ids 需要删除的营林生产数据集主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTForestYlscsjjByIds(String[] ids) {
+        return centerdataTForestYlscsjjMapper.deleteCenterdataTForestYlscsjjByIds(ids);
+    }
+
+    /**
+     * 删除营林生产数据集信息
+     *
+     * @param id 营林生产数据集主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTForestYlscsjjById(String id) {
+        return centerdataTForestYlscsjjMapper.deleteCenterdataTForestYlscsjjById(id);
+    }
+}

+ 101 - 0
src/main/java/com/sooka/sponest/data/digitalforest/service/impl/CenterdataTForestZylcpclServiceImpl.java

@@ -0,0 +1,101 @@
+package com.sooka.sponest.data.digitalforest.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.uuid.IdUtils;
+import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.sooka.sponest.data.digitalforest.mapper.CenterdataTForestZylcpclMapper;
+import com.sooka.sponest.data.digitalforest.domain.CenterdataTForestZylcpcl;
+import com.sooka.sponest.data.digitalforest.service.ICenterdataTForestZylcpclService;
+
+/**
+ * 主要林产品产量Service业务层处理
+ *
+ * @author 韩福成
+ * @date 2024-06-24
+ */
+@Service
+public class CenterdataTForestZylcpclServiceImpl extends BaseServiceImpl implements ICenterdataTForestZylcpclService {
+    @Autowired
+    private CenterdataTForestZylcpclMapper centerdataTForestZylcpclMapper;
+
+    /**
+     * 查询主要林产品产量
+     *
+     * @param id 主要林产品产量主键
+     * @return 主要林产品产量
+     */
+    @Override
+    public CenterdataTForestZylcpcl selectCenterdataTForestZylcpclById(String id) {
+        return centerdataTForestZylcpclMapper.selectCenterdataTForestZylcpclById(id);
+    }
+
+    /**
+     * 查询主要林产品产量列表
+     *
+     * @param centerdataTForestZylcpcl 主要林产品产量
+     * @return 主要林产品产量
+     */
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<CenterdataTForestZylcpcl> selectCenterdataTForestZylcpclList(CenterdataTForestZylcpcl centerdataTForestZylcpcl) {
+        setSookaDataBase(centerdataTForestZylcpcl);
+        return centerdataTForestZylcpclMapper.selectCenterdataTForestZylcpclList(centerdataTForestZylcpcl);
+    }
+
+    /**
+     * 新增主要林产品产量
+     *
+     * @param centerdataTForestZylcpcl 主要林产品产量
+     * @return 结果
+     */
+    @Override
+    public int insertCenterdataTForestZylcpcl(CenterdataTForestZylcpcl centerdataTForestZylcpcl) {
+        centerdataTForestZylcpcl.setId(IdUtils.simpleUUID());
+        centerdataTForestZylcpcl.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getUserId().toString());
+        centerdataTForestZylcpcl.setCreateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTForestZylcpcl.setCreateTime(DateUtils.getNowDate());
+        return centerdataTForestZylcpclMapper.insertCenterdataTForestZylcpcl(centerdataTForestZylcpcl);
+    }
+
+    /**
+     * 修改主要林产品产量
+     *
+     * @param centerdataTForestZylcpcl 主要林产品产量
+     * @return 结果
+     */
+    @Override
+    public int updateCenterdataTForestZylcpcl(CenterdataTForestZylcpcl centerdataTForestZylcpcl) {
+        centerdataTForestZylcpcl.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getUserId());
+        centerdataTForestZylcpcl.setUpdateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
+        centerdataTForestZylcpcl.setUpdateTime(DateUtils.getNowDate());
+        return centerdataTForestZylcpclMapper.updateCenterdataTForestZylcpcl(centerdataTForestZylcpcl);
+    }
+
+    /**
+     * 批量删除主要林产品产量
+     *
+     * @param ids 需要删除的主要林产品产量主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTForestZylcpclByIds(String[] ids) {
+        return centerdataTForestZylcpclMapper.deleteCenterdataTForestZylcpclByIds(ids);
+    }
+
+    /**
+     * 删除主要林产品产量信息
+     *
+     * @param id 主要林产品产量主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCenterdataTForestZylcpclById(String id) {
+        return centerdataTForestZylcpclMapper.deleteCenterdataTForestZylcpclById(id);
+    }
+}

+ 133 - 0
src/main/resources/mapper/dict/DataDictMapper.xml

@@ -0,0 +1,133 @@
+<?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.sooka.sponest.data.dict.mapper.DataDictMapper">
+
+    <resultMap type="DataDict" id="DataDictResult">
+        <result property="id" column="id"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createName" column="create_name"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateName" column="update_name"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="code" column="code"/>
+        <result property="name" column="name"/>
+        <result property="type" column="type"/>
+        <result property="level" column="level"/>
+        <result property="parentId" column="parent_id"/>
+    </resultMap>
+
+    <sql id="selectDataDictVo">
+        select a.id, a.create_by, a.create_name, a.create_time, a.update_by, a.update_name, a.update_time, a.code, a.name, a.type, a.level, a.parent_id
+        from centerdata_t_forest_dict a
+    </sql>
+
+    <select id="selectDataDictList" parameterType="DataDict" resultMap="DataDictResult">
+        <include refid="selectDataDictVo"/>
+        <where>
+            <if test="name != null  and name != ''">and a.name like concat('%', #{name}, '%')</if>
+            <if test="type != null  and type != ''">and a.type = #{type}</if>
+            <if test="level != null  and level != ''">and a.level = #{level}</if>
+            <if test="parentId != null  and parentId != ''">and a.parent_id = #{parentId}</if>
+        </where>
+    </select>
+
+    <select id="getDataDictInfoById" resultMap="DataDictResult" parameterType="Long">
+        <include refid="selectDataDictVo"/>
+        where id = #{id}
+    </select>
+
+    <select id="getDataDictListByParentId" resultMap="DataDictResult" parameterType="Long">
+        <include refid="selectDataDictVo"/>
+        where parent_id = #{parentId}
+    </select>
+
+    <insert id="addDataDict" parameterType="DataDict">
+        insert into centerdata_t_forest_dict
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createName != null">create_name,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="code != null">code,</if>
+            <if test="name != null">name,</if>
+            <if test="type != null">type,</if>
+            <if test="level != null">level,</if>
+            <if test="parentId != null">parent_id,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createName != null">#{createName},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="code != null">#{code},</if>
+            <if test="name != null">#{name},</if>
+            <if test="type != null">#{type},</if>
+            <if test="level != null">#{level},</if>
+            <if test="parentId != null">#{parentId},</if>
+        </trim>
+    </insert>
+
+    <update id="editDataDict" parameterType="DataDict">
+        update centerdata_t_forest_dict
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="code != null">code = #{code},</if>
+            <if test="name != null">name = #{name},</if>
+            <if test="type != null">type = #{type},</if>
+            <if test="level != null">level = #{level},</if>
+            <if test="parentId != null">parent_id = #{parentId},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateName != null">update_name = #{updateName},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteDataDictByIds" parameterType="Long">
+        delete from centerdata_t_forest_dict where id = #{id}
+    </delete>
+
+    <select id="isOnly" parameterType="DataDict" resultType="int">
+        select count(*) from centerdata_t_forest_dict a
+        <where>
+            <choose>
+                <when test="level != 1">
+                    and a.code = #{code}
+                    and a.type = #{type}
+                    and a.parent_id = #{parentId}
+                </when>
+                <otherwise>
+                    and a.type = #{type}
+                    and a.level = 1
+                </otherwise>
+            </choose>
+        </where>
+    </select>
+
+    <select id="isOnlyCode" parameterType="DataDict" resultType="int">
+        select count(*) from centerdata_t_forest_dict a where  a.code = #{code} and a.type = #{type} and a.id != #{id}
+    </select>
+
+    <select id="dictTree" parameterType="DataDict" resultType="map">
+        select id , parent_id AS parentId , name AS label from centerdata_t_forest_dict
+        <where>
+            and level != 1
+            <if test="type != null  and type != ''">and type = #{type}</if>
+        </where>
+    </select>
+
+    <select id="selectDataDictType" resultType="String">
+        select type from centerdata_t_forest_dict group by type
+    </select>
+
+    <select id="dictByPid" resultMap="DataDictResult">
+        <include refid="selectDataDictVo"/>
+        <where>
+            and a.type = #{type}
+            and a.parent_id = #{parentId}
+        </where>
+    </select>
+
+</mapper>

+ 149 - 0
src/main/resources/mapper/digitalforest/CenterdataTForestCyryMapper.xml

@@ -0,0 +1,149 @@
+<?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.sooka.sponest.data.digitalforest.mapper.CenterdataTForestCyryMapper">
+
+    <resultMap type="CenterdataTForestCyry" id="CenterdataTForestCyryResult">
+        <result property="id" column="id"/>
+        <result property="deptId" column="dept_id"/>
+        <result property="deptName" column="dept_name"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createName" column="create_name"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateName" column="update_name"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="name" column="name"/>
+        <result property="number" column="number"/>
+        <result property="year" column="year"/>
+        <result property="cyryNum" column="cyry_num"/>
+        <result property="zgzgNum" column="zgzg_num"/>
+        <result property="zgjsryNum" column="zgjsry_num"/>
+        <result property="blldgxNum" column="blldgx_num"/>
+        <result property="ltxryNum" column="ltxry_num"/>
+        <result property="zgpjrs" column="zgpjrs"/>
+        <result property="zgldbc" column="zgldbc"/>
+    </resultMap>
+
+    <sql id="selectCenterdataTForestCyryVo">
+        select a.id, a.dept_id, a.dept_name, a.create_by, a.create_name, a.create_time, a.update_by, a.update_name, a.update_time,
+               a.name, a.number, a.year, a.cyry_num, a.zgzg_num, a.zgjsry_num, a.blldgx_num, a.ltxry_num, a.zgpjrs, a.zgldbc
+        from centerdata_t_forest_cyry a
+    </sql>
+
+    <select id="selectCenterdataTForestCyryList" parameterType="CenterdataTForestCyry"
+            resultMap="CenterdataTForestCyryResult">
+        <include refid="selectCenterdataTForestCyryVo"/>
+        left join ${database_system}.sys_dept d on a.dept_id=d.dept_id
+        <where>
+            <if test="deptId != null ">and a.dept_id = #{deptId}</if>
+            <if test="deptName != null  and deptName != ''">and a.dept_name like concat('%', #{deptName}, '%')</if>
+            <if test="createName != null  and createName != ''">and a.create_name like concat('%', #{createName}, '%')
+            </if>
+            <if test="updateName != null  and updateName != ''">and a.update_name like concat('%', #{updateName}, '%')
+            </if>
+            <if test="name != null  and name != ''">and name like concat('%', #{name}, '%')</if>
+            <if test="number != null  and number != ''">and number like concat('%', #{number}, '%')</if>
+            <if test="year != null  and year != ''">and year = #{year}</if>
+            <if test="cyryNum != null  and cyryNum != ''">and cyry_num = #{cyryNum}</if>
+            <if test="zgzgNum != null  and zgzgNum != ''">and zgzg_num = #{zgzgNum}</if>
+            <if test="zgjsryNum != null  and zgjsryNum != ''">and zgjsry_num = #{zgjsryNum}</if>
+            <if test="blldgxNum != null  and blldgxNum != ''">and blldgx_num = #{blldgxNum}</if>
+            <if test="ltxryNum != null  and ltxryNum != ''">and ltxry_num = #{ltxryNum}</if>
+            <if test="zgpjrs != null  and zgpjrs != ''">and zgpjrs = #{zgpjrs}</if>
+            <if test="zgldbc != null  and zgldbc != ''">and zgldbc = #{zgldbc}</if>
+            ${params.dataScope}
+        </where>
+        order by a.create_time desc
+    </select>
+
+    <select id="selectCenterdataTForestCyryById" parameterType="String" resultMap="CenterdataTForestCyryResult">
+        <include refid="selectCenterdataTForestCyryVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertCenterdataTForestCyry" parameterType="CenterdataTForestCyry">
+        insert into centerdata_t_forest_cyry
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="deptName != null">dept_name,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createName != null">create_name,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateName != null">update_name,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="name != null">name,</if>
+            <if test="number != null">number,</if>
+            <if test="year != null">year,</if>
+            <if test="cyryNum != null">cyry_num,</if>
+            <if test="zgzgNum != null">zgzg_num,</if>
+            <if test="zgjsryNum != null">zgjsry_num,</if>
+            <if test="blldgxNum != null">blldgx_num,</if>
+            <if test="ltxryNum != null">ltxry_num,</if>
+            <if test="zgpjrs != null">zgpjrs,</if>
+            <if test="zgldbc != null">zgldbc,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="deptName != null">#{deptName},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createName != null">#{createName},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateName != null">#{updateName},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="name != null">#{name},</if>
+            <if test="number != null">#{number},</if>
+            <if test="year != null">#{year},</if>
+            <if test="cyryNum != null">#{cyryNum},</if>
+            <if test="zgzgNum != null">#{zgzgNum},</if>
+            <if test="zgjsryNum != null">#{zgjsryNum},</if>
+            <if test="blldgxNum != null">#{blldgxNum},</if>
+            <if test="ltxryNum != null">#{ltxryNum},</if>
+            <if test="zgpjrs != null">#{zgpjrs},</if>
+            <if test="zgldbc != null">#{zgldbc},</if>
+        </trim>
+    </insert>
+
+    <update id="updateCenterdataTForestCyry" parameterType="CenterdataTForestCyry">
+        update centerdata_t_forest_cyry
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="deptName != null">dept_name = #{deptName},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createName != null">create_name = #{createName},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateName != null">update_name = #{updateName},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="name != null">name = #{name},</if>
+            <if test="number != null">number = #{number},</if>
+            <if test="year != null">year = #{year},</if>
+            <if test="cyryNum != null">cyry_num = #{cyryNum},</if>
+            <if test="zgzgNum != null">zgzg_num = #{zgzgNum},</if>
+            <if test="zgjsryNum != null">zgjsry_num = #{zgjsryNum},</if>
+            <if test="blldgxNum != null">blldgx_num = #{blldgxNum},</if>
+            <if test="ltxryNum != null">ltxry_num = #{ltxryNum},</if>
+            <if test="zgpjrs != null">zgpjrs = #{zgpjrs},</if>
+            <if test="zgldbc != null">zgldbc = #{zgldbc},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteCenterdataTForestCyryById" parameterType="String">
+        delete
+        from centerdata_t_forest_cyry
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteCenterdataTForestCyryByIds" parameterType="String">
+        delete from centerdata_t_forest_cyry where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 120 - 0
src/main/resources/mapper/digitalforest/CenterdataTForestForestationAreaMapper.xml

@@ -0,0 +1,120 @@
+<?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.sooka.sponest.data.digitalforest.mapper.CenterdataTForestForestationAreaMapper">
+
+    <resultMap type="CenterdataTForestForestationArea" id="CenterdataTForestForestationAreaResult">
+        <result property="id" column="id"/>
+        <result property="deptId" column="dept_id"/>
+        <result property="deptName" column="dept_name"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createName" column="create_name"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateName" column="update_name"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="year" column="year"/>
+        <result property="forestationType" column="forestation_type"/>
+        <result property="forestType" column="forest_type"/>
+        <result property="area" column="area"/>
+    </resultMap>
+
+    <sql id="selectCenterdataTForestForestationAreaVo">
+        select a.id, a.dept_id, a.dept_name, a.create_by, a.create_name, a.create_time, a.update_by,
+               a.update_name, a.update_time, a.year, a.forestation_type, a.forest_type, a.area
+        from centerdata_t_forest_forestation_area a
+    </sql>
+
+    <select id="selectCenterdataTForestForestationAreaList" parameterType="CenterdataTForestForestationArea"
+            resultMap="CenterdataTForestForestationAreaResult">
+        <include refid="selectCenterdataTForestForestationAreaVo"/>
+        left join ${database_system}.sys_dept d on a.dept_id=d.dept_id
+        <where>
+            <if test="deptId != null ">and a.dept_id = #{deptId}</if>
+            <if test="deptName != null  and deptName != ''">and a.dept_name like concat('%', #{deptName}, '%')</if>
+            <if test="createName != null  and createName != ''">and a.create_name like concat('%', #{createName}, '%')
+            </if>
+            <if test="updateName != null  and updateName != ''">and a.update_name like concat('%', #{updateName}, '%')
+            </if>
+            <if test="year != null  and year != ''">and year = #{year}</if>
+            <if test="forestationType != null  and forestationType != ''">and forestation_type = #{forestationType}</if>
+            <if test="forestType != null  and forestType != ''">and forest_type = #{forestType}</if>
+            <if test="area != null  and area != ''">and area = #{area}</if>
+            ${params.dataScope}
+        </where>
+        order by a.create_time desc
+    </select>
+
+    <select id="selectCenterdataTForestForestationAreaById" parameterType="String"
+            resultMap="CenterdataTForestForestationAreaResult">
+        <include refid="selectCenterdataTForestForestationAreaVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertCenterdataTForestForestationArea" parameterType="CenterdataTForestForestationArea">
+        insert into centerdata_t_forest_forestation_area
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="deptName != null">dept_name,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createName != null">create_name,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateName != null">update_name,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="year != null">year,</if>
+            <if test="forestationType != null">forestation_type,</if>
+            <if test="forestType != null">forest_type,</if>
+            <if test="area != null">area,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="deptName != null">#{deptName},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createName != null">#{createName},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateName != null">#{updateName},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="year != null">#{year},</if>
+            <if test="forestationType != null">#{forestationType},</if>
+            <if test="forestType != null">#{forestType},</if>
+            <if test="area != null">#{area},</if>
+        </trim>
+    </insert>
+
+    <update id="updateCenterdataTForestForestationArea" parameterType="CenterdataTForestForestationArea">
+        update centerdata_t_forest_forestation_area
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="deptName != null">dept_name = #{deptName},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createName != null">create_name = #{createName},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateName != null">update_name = #{updateName},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="year != null">year = #{year},</if>
+            <if test="forestationType != null">forestation_type = #{forestationType},</if>
+            <if test="forestType != null">forest_type = #{forestType},</if>
+            <if test="area != null">area = #{area},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteCenterdataTForestForestationAreaById" parameterType="String">
+        delete
+        from centerdata_t_forest_forestation_area
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteCenterdataTForestForestationAreaByIds" parameterType="String">
+        delete from centerdata_t_forest_forestation_area where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 129 - 0
src/main/resources/mapper/digitalforest/CenterdataTForestGdzcwcMapper.xml

@@ -0,0 +1,129 @@
+<?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.sooka.sponest.data.digitalforest.mapper.CenterdataTForestGdzcwcMapper">
+
+    <resultMap type="CenterdataTForestGdzcwc" id="CenterdataTForestGdzcwcResult">
+        <result property="id" column="id"/>
+        <result property="deptId" column="dept_id"/>
+        <result property="deptName" column="dept_name"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createName" column="create_name"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateName" column="update_name"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="year" column="year"/>
+        <result property="gjInvest" column="gj_invest"/>
+        <result property="gzInvest" column="gz_invest"/>
+        <result property="zyczzxInvest" column="zyczzx_invest"/>
+        <result property="jbjsInvest" column="jbjs_invest"/>
+        <result property="gxgzInvest" column="gxgz_invest"/>
+    </resultMap>
+
+    <sql id="selectCenterdataTForestGdzcwcVo">
+        select a.id, a.dept_id, a.dept_name, a.create_by, a.create_name, a.create_time, a.update_by, a.update_name,
+               a.update_time, a.year, a.gj_invest, a.gz_invest, a.zyczzx_invest, a.jbjs_invest, a.gxgz_invest
+        from centerdata_t_forest_gdzcwc a
+    </sql>
+
+    <select id="selectCenterdataTForestGdzcwcList" parameterType="CenterdataTForestGdzcwc"
+            resultMap="CenterdataTForestGdzcwcResult">
+        <include refid="selectCenterdataTForestGdzcwcVo"/>
+        left join ${database_system}.sys_dept d on a.dept_id=d.dept_id
+        <where>
+            <if test="deptId != null ">and a.dept_id = #{deptId}</if>
+            <if test="deptName != null  and deptName != ''">and a.dept_name like concat('%', #{deptName}, '%')</if>
+            <if test="createName != null  and createName != ''">and a.create_name like concat('%', #{createName}, '%')
+            </if>
+            <if test="updateName != null  and updateName != ''">and a.update_name like concat('%', #{updateName}, '%')
+            </if>
+            <if test="year != null  and year != ''">and year = #{year}</if>
+            <if test="gjInvest != null  and gjInvest != ''">and gj_invest = #{gjInvest}</if>
+            <if test="gzInvest != null  and gzInvest != ''">and gz_invest = #{gzInvest}</if>
+            <if test="zyczzxInvest != null  and zyczzxInvest != ''">and zyczzx_invest = #{zyczzxInvest}</if>
+            <if test="jbjsInvest != null  and jbjsInvest != ''">and jbjs_invest = #{jbjsInvest}</if>
+            <if test="gxgzInvest != null  and gxgzInvest != ''">and gxgz_invest = #{gxgzInvest}</if>
+            ${params.dataScope}
+        </where>
+        order by a.create_time desc
+    </select>
+
+    <select id="selectCenterdataTForestGdzcwcById" parameterType="String" resultMap="CenterdataTForestGdzcwcResult">
+        <include refid="selectCenterdataTForestGdzcwcVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertCenterdataTForestGdzcwc" parameterType="CenterdataTForestGdzcwc">
+        insert into centerdata_t_forest_gdzcwc
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="deptName != null">dept_name,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createName != null">create_name,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateName != null">update_name,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="year != null">year,</if>
+            <if test="gjInvest != null">gj_invest,</if>
+            <if test="gzInvest != null">gz_invest,</if>
+            <if test="zyczzxInvest != null">zyczzx_invest,</if>
+            <if test="jbjsInvest != null">jbjs_invest,</if>
+            <if test="gxgzInvest != null">gxgz_invest,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="deptName != null">#{deptName},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createName != null">#{createName},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateName != null">#{updateName},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="year != null">#{year},</if>
+            <if test="gjInvest != null">#{gjInvest},</if>
+            <if test="gzInvest != null">#{gzInvest},</if>
+            <if test="zyczzxInvest != null">#{zyczzxInvest},</if>
+            <if test="jbjsInvest != null">#{jbjsInvest},</if>
+            <if test="gxgzInvest != null">#{gxgzInvest},</if>
+        </trim>
+    </insert>
+
+    <update id="updateCenterdataTForestGdzcwc" parameterType="CenterdataTForestGdzcwc">
+        update centerdata_t_forest_gdzcwc
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="deptName != null">dept_name = #{deptName},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createName != null">create_name = #{createName},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateName != null">update_name = #{updateName},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="year != null">year = #{year},</if>
+            <if test="gjInvest != null">gj_invest = #{gjInvest},</if>
+            <if test="gzInvest != null">gz_invest = #{gzInvest},</if>
+            <if test="zyczzxInvest != null">zyczzx_invest = #{zyczzxInvest},</if>
+            <if test="jbjsInvest != null">jbjs_invest = #{jbjsInvest},</if>
+            <if test="gxgzInvest != null">gxgz_invest = #{gxgzInvest},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteCenterdataTForestGdzcwcById" parameterType="String">
+        delete
+        from centerdata_t_forest_gdzcwc
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteCenterdataTForestGdzcwcByIds" parameterType="String">
+        delete from centerdata_t_forest_gdzcwc where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 107 - 0
src/main/resources/mapper/digitalforest/CenterdataTForestLycyzczMapper.xml

@@ -0,0 +1,107 @@
+<?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.sooka.sponest.data.digitalforest.mapper.CenterdataTForestLycyzczMapper">
+
+    <resultMap type="CenterdataTForestLycyzcz" id="CenterdataTForestLycyzczResult">
+        <result property="id"    column="id"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="deptName"    column="dept_name"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createName"    column="create_name"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateName"    column="update_name"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="year"    column="year"    />
+        <result property="industryType"    column="industry_type"    />
+        <result property="industrySum"    column="industry_sum"    />
+    </resultMap>
+
+    <sql id="selectCenterdataTForestLycyzczVo">
+        select a.id, a.dept_id, a.dept_name, a.create_by, a.create_name, a.create_time, a.update_by, a.update_name, a.update_time, a.year,
+               a.industry_type, a.industry_sum from centerdata_t_forest_lycyzcz a
+    </sql>
+
+    <select id="selectCenterdataTForestLycyzczList" parameterType="CenterdataTForestLycyzcz" resultMap="CenterdataTForestLycyzczResult">
+        select a.id, a.dept_id, a.dept_name, a.create_by, a.create_name, a.create_time, a.update_by, a.update_name,
+        a.update_time, a.year, a.industry_type, a.industry_sum, d1.name industryTypeLabel
+        from centerdata_t_forest_lycyzcz a
+        left join ${database_system}.sys_dept d on a.dept_id=d.dept_id
+        LEFT JOIN centerdata_t_forest_dict d1 ON a.industry_type = d1.id
+        <where>
+            <if test="year != null  and year != ''">and year = #{year}</if>
+            <if test="industryType != null  and industryType != ''">and industry_type = #{industryType}</if>
+            <if test="industrySum != null  and industrySum != ''">and industry_sum = #{industrySum}</if>
+            ${params.dataScope}
+        </where>
+        order by a.create_time desc
+    </select>
+
+    <select id="selectCenterdataTForestLycyzczById" parameterType="String" resultMap="CenterdataTForestLycyzczResult">
+        <include refid="selectCenterdataTForestLycyzczVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertCenterdataTForestLycyzcz" parameterType="CenterdataTForestLycyzcz">
+        insert into centerdata_t_forest_lycyzcz
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="deptName != null">dept_name,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createName != null">create_name,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateName != null">update_name,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="year != null">year,</if>
+            <if test="industryType != null">industry_type,</if>
+            <if test="industrySum != null">industry_sum,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="deptName != null">#{deptName},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createName != null">#{createName},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateName != null">#{updateName},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="year != null">#{year},</if>
+            <if test="industryType != null">#{industryType},</if>
+            <if test="industrySum != null">#{industrySum},</if>
+         </trim>
+    </insert>
+
+    <update id="updateCenterdataTForestLycyzcz" parameterType="CenterdataTForestLycyzcz">
+        update centerdata_t_forest_lycyzcz
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="deptName != null">dept_name = #{deptName},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createName != null">create_name = #{createName},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateName != null">update_name = #{updateName},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="year != null">year = #{year},</if>
+            <if test="industryType != null">industry_type = #{industryType},</if>
+            <if test="industrySum != null">industry_sum = #{industrySum},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteCenterdataTForestLycyzczById" parameterType="String">
+        delete from centerdata_t_forest_lycyzcz where id = #{id}
+    </delete>
+
+    <delete id="deleteCenterdataTForestLycyzczByIds" parameterType="String">
+        delete from centerdata_t_forest_lycyzcz where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 133 - 0
src/main/resources/mapper/digitalforest/CenterdataTForestYlscsjjMapper.xml

@@ -0,0 +1,133 @@
+<?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.sooka.sponest.data.digitalforest.mapper.CenterdataTForestYlscsjjMapper">
+
+    <resultMap type="CenterdataTForestYlscsjj" id="CenterdataTForestYlscsjjResult">
+        <result property="id"    column="id"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="deptName"    column="dept_name"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createName"    column="create_name"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateName"    column="update_name"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="year"    column="year"    />
+        <result property="jdgxArea"    column="jdgx_area"    />
+        <result property="rggxArea"    column="rggx_area"    />
+        <result property="dclgzArea"    column="dclgz_area"    />
+        <result property="ymArea"    column="ym_area"    />
+        <result property="fsArea"    column="fs_area"    />
+        <result property="slghArea"    column="slgh_area"    />
+        <result property="zylfuArea"    column="zylfu_area"    />
+    </resultMap>
+
+    <sql id="selectCenterdataTForestYlscsjjVo">
+        select a.id, a.dept_id, a.dept_name, a.create_by, a.create_name, a.create_time, a.update_by, a.update_name, a.update_time,
+               a.year, a.jdgx_area, a.rggx_area, a.dclgz_area, a.ym_area, a.fs_area, a.slgh_area, a.zylfu_area from centerdata_t_forest_ylscsjj a
+    </sql>
+
+    <select id="selectCenterdataTForestYlscsjjList" parameterType="CenterdataTForestYlscsjj" resultMap="CenterdataTForestYlscsjjResult">
+        <include refid="selectCenterdataTForestYlscsjjVo"/>
+        left join ${database_system}.sys_dept d on a.dept_id=d.dept_id
+        <where>
+            <if test="deptId != null "> and a.dept_id = #{deptId}</if>
+            <if test="deptName != null  and deptName != ''"> and a.dept_name like concat('%', #{deptName}, '%')</if>
+            <if test="createName != null  and createName != ''"> and a.create_name like concat('%', #{createName}, '%')</if>
+            <if test="updateName != null  and updateName != ''"> and a.update_name like concat('%', #{updateName}, '%')</if>
+            <if test="year != null  and year != ''"> and year = #{year}</if>
+            <if test="jdgxArea != null  and jdgxArea != ''"> and jdgx_area = #{jdgxArea}</if>
+            <if test="rggxArea != null  and rggxArea != ''"> and rggx_area = #{rggxArea}</if>
+            <if test="dclgzArea != null  and dclgzArea != ''"> and dclgz_area = #{dclgzArea}</if>
+            <if test="ymArea != null  and ymArea != ''"> and ym_area = #{ymArea}</if>
+            <if test="fsArea != null  and fsArea != ''"> and fs_area = #{fsArea}</if>
+            <if test="slghArea != null  and slghArea != ''"> and slgh_area = #{slghArea}</if>
+            <if test="zylfuArea != null  and zylfuArea != ''"> and zylfu_area = #{zylfuArea}</if>
+            ${params.dataScope}
+        </where>
+        order by a.create_time desc
+    </select>
+
+    <select id="selectCenterdataTForestYlscsjjById" parameterType="String" resultMap="CenterdataTForestYlscsjjResult">
+        <include refid="selectCenterdataTForestYlscsjjVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertCenterdataTForestYlscsjj" parameterType="CenterdataTForestYlscsjj">
+        insert into centerdata_t_forest_ylscsjj
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="deptName != null">dept_name,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createName != null">create_name,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateName != null">update_name,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="year != null">year,</if>
+            <if test="jdgxArea != null">jdgx_area,</if>
+            <if test="rggxArea != null">rggx_area,</if>
+            <if test="dclgzArea != null">dclgz_area,</if>
+            <if test="ymArea != null">ym_area,</if>
+            <if test="fsArea != null">fs_area,</if>
+            <if test="slghArea != null">slgh_area,</if>
+            <if test="zylfuArea != null">zylfu_area,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="deptName != null">#{deptName},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createName != null">#{createName},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateName != null">#{updateName},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="year != null">#{year},</if>
+            <if test="jdgxArea != null">#{jdgxArea},</if>
+            <if test="rggxArea != null">#{rggxArea},</if>
+            <if test="dclgzArea != null">#{dclgzArea},</if>
+            <if test="ymArea != null">#{ymArea},</if>
+            <if test="fsArea != null">#{fsArea},</if>
+            <if test="slghArea != null">#{slghArea},</if>
+            <if test="zylfuArea != null">#{zylfuArea},</if>
+        </trim>
+    </insert>
+
+    <update id="updateCenterdataTForestYlscsjj" parameterType="CenterdataTForestYlscsjj">
+        update centerdata_t_forest_ylscsjj
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="deptName != null">dept_name = #{deptName},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createName != null">create_name = #{createName},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateName != null">update_name = #{updateName},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="year != null">year = #{year},</if>
+            <if test="jdgxArea != null">jdgx_area = #{jdgxArea},</if>
+            <if test="rggxArea != null">rggx_area = #{rggxArea},</if>
+            <if test="dclgzArea != null">dclgz_area = #{dclgzArea},</if>
+            <if test="ymArea != null">ym_area = #{ymArea},</if>
+            <if test="fsArea != null">fs_area = #{fsArea},</if>
+            <if test="slghArea != null">slgh_area = #{slghArea},</if>
+            <if test="zylfuArea != null">zylfu_area = #{zylfuArea},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteCenterdataTForestYlscsjjById" parameterType="String">
+        delete from centerdata_t_forest_ylscsjj where id = #{id}
+    </delete>
+
+    <delete id="deleteCenterdataTForestYlscsjjByIds" parameterType="String">
+        delete from centerdata_t_forest_ylscsjj where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 129 - 0
src/main/resources/mapper/digitalforest/CenterdataTForestZylcpclMapper.xml

@@ -0,0 +1,129 @@
+<?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.sooka.sponest.data.digitalforest.mapper.CenterdataTForestZylcpclMapper">
+
+    <resultMap type="CenterdataTForestZylcpcl" id="CenterdataTForestZylcpclResult">
+        <result property="id" column="id"/>
+        <result property="deptId" column="dept_id"/>
+        <result property="deptName" column="dept_name"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createName" column="create_name"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateName" column="update_name"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="year" column="year"/>
+        <result property="zylcpYield" column="zylcp_yield"/>
+        <result property="mcYield" column="mc_yield"/>
+        <result property="jcYield" column="jc_yield"/>
+        <result property="rzbYield" column="rzb_yield"/>
+        <result property="sxYield" column="sx_yield"/>
+    </resultMap>
+
+    <sql id="selectCenterdataTForestZylcpclVo">
+        select a.id, a.dept_id, a.dept_name, a.create_by, a.create_name, a.create_time, a.update_by,
+               a.update_name, a.update_time, a.year, a.zylcp_yield, a.mc_yield, a.jc_yield, a.rzb_yield, a.sx_yield
+        from centerdata_t_forest_zylcpcl a
+    </sql>
+
+    <select id="selectCenterdataTForestZylcpclList" parameterType="CenterdataTForestZylcpcl"
+            resultMap="CenterdataTForestZylcpclResult">
+        <include refid="selectCenterdataTForestZylcpclVo"/>
+        left join ${database_system}.sys_dept d on a.dept_id=d.dept_id
+        <where>
+            <if test="deptId != null ">and a.dept_id = #{deptId}</if>
+            <if test="deptName != null  and deptName != ''">and a.dept_name like concat('%', #{deptName}, '%')</if>
+            <if test="createName != null  and createName != ''">and a.create_name like concat('%', #{createName}, '%')
+            </if>
+            <if test="updateName != null  and updateName != ''">and a.update_name like concat('%', #{updateName}, '%')
+            </if>
+            <if test="year != null  and year != ''">and year = #{year}</if>
+            <if test="zylcpYield != null  and zylcpYield != ''">and zylcp_yield = #{zylcpYield}</if>
+            <if test="mcYield != null  and mcYield != ''">and mc_yield = #{mcYield}</if>
+            <if test="jcYield != null  and jcYield != ''">and jc_yield = #{jcYield}</if>
+            <if test="rzbYield != null  and rzbYield != ''">and rzb_yield = #{rzbYield}</if>
+            <if test="sxYield != null  and sxYield != ''">and sx_yield = #{sxYield}</if>
+            ${params.dataScope}
+        </where>
+        order by a.create_time desc
+    </select>
+
+    <select id="selectCenterdataTForestZylcpclById" parameterType="String" resultMap="CenterdataTForestZylcpclResult">
+        <include refid="selectCenterdataTForestZylcpclVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertCenterdataTForestZylcpcl" parameterType="CenterdataTForestZylcpcl">
+        insert into centerdata_t_forest_zylcpcl
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="deptName != null">dept_name,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createName != null">create_name,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateName != null">update_name,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="year != null">year,</if>
+            <if test="zylcpYield != null">zylcp_yield,</if>
+            <if test="mcYield != null">mc_yield,</if>
+            <if test="jcYield != null">jc_yield,</if>
+            <if test="rzbYield != null">rzb_yield,</if>
+            <if test="sxYield != null">sx_yield,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="deptName != null">#{deptName},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createName != null">#{createName},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateName != null">#{updateName},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="year != null">#{year},</if>
+            <if test="zylcpYield != null">#{zylcpYield},</if>
+            <if test="mcYield != null">#{mcYield},</if>
+            <if test="jcYield != null">#{jcYield},</if>
+            <if test="rzbYield != null">#{rzbYield},</if>
+            <if test="sxYield != null">#{sxYield},</if>
+        </trim>
+    </insert>
+
+    <update id="updateCenterdataTForestZylcpcl" parameterType="CenterdataTForestZylcpcl">
+        update centerdata_t_forest_zylcpcl
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="deptName != null">dept_name = #{deptName},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createName != null">create_name = #{createName},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateName != null">update_name = #{updateName},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="year != null">year = #{year},</if>
+            <if test="zylcpYield != null">zylcp_yield = #{zylcpYield},</if>
+            <if test="mcYield != null">mc_yield = #{mcYield},</if>
+            <if test="jcYield != null">jc_yield = #{jcYield},</if>
+            <if test="rzbYield != null">rzb_yield = #{rzbYield},</if>
+            <if test="sxYield != null">sx_yield = #{sxYield},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteCenterdataTForestZylcpclById" parameterType="String">
+        delete
+        from centerdata_t_forest_zylcpcl
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteCenterdataTForestZylcpclByIds" parameterType="String">
+        delete from centerdata_t_forest_zylcpcl where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>