littleblue55 1 month ago
commit
6f068a3fb5
100 changed files with 9621 additions and 0 deletions
  1. 1 0
      .github/FUNDING.yml
  2. 47 0
      .gitignore
  3. 25 0
      1.json
  4. 20 0
      LICENSE
  5. 95 0
      README.md
  6. 12 0
      bin/clean.bat
  7. 12 0
      bin/package.bat
  8. 14 0
      bin/run.bat
  9. BIN
      doc/若依环境使用手册.docx
  10. 96 0
      enteprise-admin/pom.xml
  11. 30 0
      enteprise-admin/src/main/java/com/enteprise/RuoYiApplication.java
  12. 18 0
      enteprise-admin/src/main/java/com/enteprise/RuoYiServletInitializer.java
  13. 104 0
      enteprise-admin/src/main/java/com/enteprise/base_data_month/controller/EnterpriseBaseDataMonthController.java
  14. 287 0
      enteprise-admin/src/main/java/com/enteprise/base_data_month/domain/EnterpriseBaseDataMonth.java
  15. 61 0
      enteprise-admin/src/main/java/com/enteprise/base_data_month/mapper/EnterpriseBaseDataMonthMapper.java
  16. 61 0
      enteprise-admin/src/main/java/com/enteprise/base_data_month/service/IEnterpriseBaseDataMonthService.java
  17. 93 0
      enteprise-admin/src/main/java/com/enteprise/base_data_month/service/impl/EnterpriseBaseDataMonthServiceImpl.java
  18. 104 0
      enteprise-admin/src/main/java/com/enteprise/base_data_year/controller/EnterpriseBaseDataYearController.java
  19. 290 0
      enteprise-admin/src/main/java/com/enteprise/base_data_year/domain/EnterpriseBaseDataYear.java
  20. 61 0
      enteprise-admin/src/main/java/com/enteprise/base_data_year/mapper/EnterpriseBaseDataYearMapper.java
  21. 61 0
      enteprise-admin/src/main/java/com/enteprise/base_data_year/service/IEnterpriseBaseDataYearService.java
  22. 93 0
      enteprise-admin/src/main/java/com/enteprise/base_data_year/service/impl/EnterpriseBaseDataYearServiceImpl.java
  23. 104 0
      enteprise-admin/src/main/java/com/enteprise/enterprise/controller/EnterpriseController.java
  24. 79 0
      enteprise-admin/src/main/java/com/enteprise/enterprise/domain/Enterprise.java
  25. 61 0
      enteprise-admin/src/main/java/com/enteprise/enterprise/mapper/EnterpriseMapper.java
  26. 61 0
      enteprise-admin/src/main/java/com/enteprise/enterprise/service/IEnterpriseService.java
  27. 93 0
      enteprise-admin/src/main/java/com/enteprise/enterprise/service/impl/EnterpriseServiceImpl.java
  28. 104 0
      enteprise-admin/src/main/java/com/enteprise/industry/controller/IndustryController.java
  29. 65 0
      enteprise-admin/src/main/java/com/enteprise/industry/domain/Industry.java
  30. 61 0
      enteprise-admin/src/main/java/com/enteprise/industry/mapper/IndustryMapper.java
  31. 61 0
      enteprise-admin/src/main/java/com/enteprise/industry/service/IIndustryService.java
  32. 93 0
      enteprise-admin/src/main/java/com/enteprise/industry/service/impl/IndustryServiceImpl.java
  33. 104 0
      enteprise-admin/src/main/java/com/enteprise/predict/controller/PredictController.java
  34. 205 0
      enteprise-admin/src/main/java/com/enteprise/predict/domain/Predict.java
  35. 61 0
      enteprise-admin/src/main/java/com/enteprise/predict/mapper/PredictMapper.java
  36. 61 0
      enteprise-admin/src/main/java/com/enteprise/predict/service/IPredictService.java
  37. 93 0
      enteprise-admin/src/main/java/com/enteprise/predict/service/impl/PredictServiceImpl.java
  38. 104 0
      enteprise-admin/src/main/java/com/enteprise/predictseason/controller/PredictseasonController.java
  39. 205 0
      enteprise-admin/src/main/java/com/enteprise/predictseason/domain/Predictseason.java
  40. 61 0
      enteprise-admin/src/main/java/com/enteprise/predictseason/mapper/PredictseasonMapper.java
  41. 61 0
      enteprise-admin/src/main/java/com/enteprise/predictseason/service/IPredictseasonService.java
  42. 93 0
      enteprise-admin/src/main/java/com/enteprise/predictseason/service/impl/PredictseasonServiceImpl.java
  43. 104 0
      enteprise-admin/src/main/java/com/enteprise/predicttotal/controller/PredicttotalController.java
  44. 222 0
      enteprise-admin/src/main/java/com/enteprise/predicttotal/domain/Predicttotal.java
  45. 61 0
      enteprise-admin/src/main/java/com/enteprise/predicttotal/mapper/PredicttotalMapper.java
  46. 61 0
      enteprise-admin/src/main/java/com/enteprise/predicttotal/service/IPredicttotalService.java
  47. 93 0
      enteprise-admin/src/main/java/com/enteprise/predicttotal/service/impl/PredicttotalServiceImpl.java
  48. 104 0
      enteprise-admin/src/main/java/com/enteprise/predictyear/controller/PredictyearController.java
  49. 206 0
      enteprise-admin/src/main/java/com/enteprise/predictyear/domain/Predictyear.java
  50. 61 0
      enteprise-admin/src/main/java/com/enteprise/predictyear/mapper/PredictyearMapper.java
  51. 61 0
      enteprise-admin/src/main/java/com/enteprise/predictyear/service/IPredictyearService.java
  52. 93 0
      enteprise-admin/src/main/java/com/enteprise/predictyear/service/impl/PredictyearServiceImpl.java
  53. 104 0
      enteprise-admin/src/main/java/com/enteprise/run_data_month/controller/EnterpriseRunDataMonthController.java
  54. 135 0
      enteprise-admin/src/main/java/com/enteprise/run_data_month/domain/EnterpriseRunDataMonth.java
  55. 61 0
      enteprise-admin/src/main/java/com/enteprise/run_data_month/mapper/EnterpriseRunDataMonthMapper.java
  56. 61 0
      enteprise-admin/src/main/java/com/enteprise/run_data_month/service/IEnterpriseRunDataMonthService.java
  57. 93 0
      enteprise-admin/src/main/java/com/enteprise/run_data_month/service/impl/EnterpriseRunDataMonthServiceImpl.java
  58. 104 0
      enteprise-admin/src/main/java/com/enteprise/run_data_year/controller/EnterpriseRunDataYearController.java
  59. 135 0
      enteprise-admin/src/main/java/com/enteprise/run_data_year/domain/EnterpriseRunDataYear.java
  60. 61 0
      enteprise-admin/src/main/java/com/enteprise/run_data_year/mapper/EnterpriseRunDataYearMapper.java
  61. 61 0
      enteprise-admin/src/main/java/com/enteprise/run_data_year/service/IEnterpriseRunDataYearService.java
  62. 93 0
      enteprise-admin/src/main/java/com/enteprise/run_data_year/service/impl/EnterpriseRunDataYearServiceImpl.java
  63. 104 0
      enteprise-admin/src/main/java/com/enteprise/score/controller/ScoreController.java
  64. 288 0
      enteprise-admin/src/main/java/com/enteprise/score/domain/Score.java
  65. 61 0
      enteprise-admin/src/main/java/com/enteprise/score/mapper/ScoreMapper.java
  66. 61 0
      enteprise-admin/src/main/java/com/enteprise/score/service/IScoreService.java
  67. 93 0
      enteprise-admin/src/main/java/com/enteprise/score/service/impl/ScoreServiceImpl.java
  68. 104 0
      enteprise-admin/src/main/java/com/enteprise/season/controller/EnterpriseBaseDataSeasonController.java
  69. 289 0
      enteprise-admin/src/main/java/com/enteprise/season/domain/EnterpriseBaseDataSeason.java
  70. 61 0
      enteprise-admin/src/main/java/com/enteprise/season/mapper/EnterpriseBaseDataSeasonMapper.java
  71. 61 0
      enteprise-admin/src/main/java/com/enteprise/season/service/IEnterpriseBaseDataSeasonService.java
  72. 93 0
      enteprise-admin/src/main/java/com/enteprise/season/service/impl/EnterpriseBaseDataSeasonServiceImpl.java
  73. 104 0
      enteprise-admin/src/main/java/com/enteprise/uploadfile/controller/UploadfileController.java
  74. 63 0
      enteprise-admin/src/main/java/com/enteprise/uploadfile/domain/Uploadfile.java
  75. 61 0
      enteprise-admin/src/main/java/com/enteprise/uploadfile/mapper/UploadfileMapper.java
  76. 61 0
      enteprise-admin/src/main/java/com/enteprise/uploadfile/service/IUploadfileService.java
  77. 93 0
      enteprise-admin/src/main/java/com/enteprise/uploadfile/service/impl/UploadfileServiceImpl.java
  78. 94 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/common/CaptchaController.java
  79. 163 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/common/CommonController.java
  80. 121 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/monitor/CacheController.java
  81. 27 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/monitor/ServerController.java
  82. 82 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/monitor/SysLogininforController.java
  83. 69 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/monitor/SysOperlogController.java
  84. 83 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/monitor/SysUserOnlineController.java
  85. 133 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysConfigController.java
  86. 132 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysDeptController.java
  87. 121 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysDictDataController.java
  88. 131 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysDictTypeController.java
  89. 29 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysIndexController.java
  90. 86 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysLoginController.java
  91. 142 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysMenuController.java
  92. 91 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysNoticeController.java
  93. 129 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysPostController.java
  94. 137 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysProfileController.java
  95. 38 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysRegisterController.java
  96. 262 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysRoleController.java
  97. 256 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysUserController.java
  98. 183 0
      enteprise-admin/src/main/java/com/enteprise/web/controller/tool/TestController.java
  99. 125 0
      enteprise-admin/src/main/java/com/enteprise/web/core/config/SwaggerConfig.java
  100. 1 0
      enteprise-admin/src/main/resources/META-INF/spring-devtools.properties

+ 1 - 0
.github/FUNDING.yml

@@ -0,0 +1 @@
+custom: http://doc.ruoyi.vip/enteprise-vue/other/donate.html

+ 47 - 0
.gitignore

@@ -0,0 +1,47 @@
+######################################################################
+# Build Tools
+
+.gradle
+/build/
+!gradle/wrapper/gradle-wrapper.jar
+
+target/
+!.mvn/wrapper/maven-wrapper.jar
+
+######################################################################
+# IDE
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### JRebel ###
+rebel.xml
+
+### NetBeans ###
+nbproject/private/
+build/*
+nbbuild/
+dist/
+nbdist/
+.nb-gradle/
+
+######################################################################
+# Others
+*.log
+*.xml.versionsBackup
+*.swp
+
+!*/build/*.java
+!*/build/*.html
+!*/build/*.xml

+ 25 - 0
1.json

@@ -0,0 +1,25 @@
+{
+  code: "og1xSFQFW0",
+  createBy: null,
+  createTime: null,
+  employeeNumber: 838,
+  energyConsume: 51,
+  enterpriseName: "Tong Hok Yau",
+  funding: 926,
+  gdp: 769,
+  id: 1,
+  landArea: 954,
+  location: "XYkIsPaJyh",
+  mainBusiness: "js8eYiAuvP",
+  mainBusinessIncome: 267,
+  month: "JUwET8kZzo",
+  ownerEquity: 564,
+  paidTax: 702,
+  profit: 119,
+  remark: null,
+  taxableIncome: 632,
+  totalIndustrialValue: 299,
+  updateBy: null,
+  updateTime: null,
+  year: "o4JYBuvY5W"
+}

+ 20 - 0
LICENSE

@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2018 RuoYi
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

File diff suppressed because it is too large
+ 95 - 0
README.md


+ 12 - 0
bin/clean.bat

@@ -0,0 +1,12 @@
+@echo off
+echo.
+echo [信息] 清理工程target生成路径。
+echo.
+
+%~d0
+cd %~dp0
+
+cd ..
+call mvn clean
+
+pause

+ 12 - 0
bin/package.bat

@@ -0,0 +1,12 @@
+@echo off
+echo.
+echo [信息] 打包Web工程,生成war/jar包文件。
+echo.
+
+%~d0
+cd %~dp0
+
+cd ..
+call mvn clean package -Dmaven.test.skip=true
+
+pause

+ 14 - 0
bin/run.bat

@@ -0,0 +1,14 @@
+@echo off
+echo.
+echo [信息] 使用Jar命令运行Web工程。
+echo.
+
+cd %~dp0
+cd ../enteprise-admin/target
+
+set JAVA_OPTS=-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
+
+java -jar %JAVA_OPTS% enteprise-admin.jar
+
+cd bin
+pause

BIN
doc/若依环境使用手册.docx


+ 96 - 0
enteprise-admin/pom.xml

@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>enteprise</artifactId>
+        <groupId>com.enteprise</groupId>
+        <version>3.8.8</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <packaging>jar</packaging>
+    <artifactId>enteprise-admin</artifactId>
+
+    <description>
+        web服务入口
+    </description>
+
+    <dependencies>
+
+        <!-- spring-boot-devtools -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+            <optional>true</optional> <!-- 表示依赖不会传递 -->
+        </dependency>
+
+        <!-- swagger3-->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-boot-starter</artifactId>
+        </dependency>
+
+        <!-- 防止进入swagger页面报类型转换错误,排除3.0.0中的引用,手动增加1.6.2版本 -->
+        <dependency>
+            <groupId>io.swagger</groupId>
+            <artifactId>swagger-models</artifactId>
+            <version>1.6.2</version>
+        </dependency>
+
+         <!-- Mysql驱动包 -->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+
+        <!-- 核心模块-->
+        <dependency>
+            <groupId>com.enteprise</groupId>
+            <artifactId>enteprise-framework</artifactId>
+        </dependency>
+
+        <!-- 定时任务-->
+        <dependency>
+            <groupId>com.enteprise</groupId>
+            <artifactId>enteprise-quartz</artifactId>
+        </dependency>
+
+        <!-- 代码生成-->
+        <dependency>
+            <groupId>com.enteprise</groupId>
+            <artifactId>enteprise-generator</artifactId>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.15</version>
+                <configuration>
+                    <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>   
+                <groupId>org.apache.maven.plugins</groupId>   
+                <artifactId>maven-war-plugin</artifactId>   
+                <version>3.1.0</version>   
+                <configuration>
+                    <failOnMissingWebXml>false</failOnMissingWebXml>
+                    <warName>${project.artifactId}</warName>
+                </configuration>   
+           </plugin>   
+        </plugins>
+        <finalName>${project.artifactId}</finalName>
+    </build>
+
+</project>

+ 30 - 0
enteprise-admin/src/main/java/com/enteprise/RuoYiApplication.java

@@ -0,0 +1,30 @@
+package com.enteprise;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+
+/**
+ * 启动程序
+ * 
+ * @author ruoyi
+ */
+@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
+public class RuoYiApplication
+{
+    public static void main(String[] args)
+    {
+        // System.setProperty("spring.devtools.restart.enabled", "false");
+        SpringApplication.run(RuoYiApplication.class, args);
+        System.out.println("(♥◠‿◠)ノ゙  若依启动成功   ლ(´ڡ`ლ)゙  \n" +
+                " .-------.       ____     __        \n" +
+                " |  _ _   \\      \\   \\   /  /    \n" +
+                " | ( ' )  |       \\  _. /  '       \n" +
+                " |(_ o _) /        _( )_ .'         \n" +
+                " | (_,_).' __  ___(_ o _)'          \n" +
+                " |  |\\ \\  |  ||   |(_,_)'         \n" +
+                " |  | \\ `'   /|   `-'  /           \n" +
+                " |  |  \\    /  \\      /           \n" +
+                " ''-'   `'-'    `-..-'              ");
+    }
+}

+ 18 - 0
enteprise-admin/src/main/java/com/enteprise/RuoYiServletInitializer.java

@@ -0,0 +1,18 @@
+package com.enteprise;
+
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+
+/**
+ * web容器中进行部署
+ * 
+ * @author ruoyi
+ */
+public class RuoYiServletInitializer extends SpringBootServletInitializer
+{
+    @Override
+    protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
+    {
+        return application.sources(RuoYiApplication.class);
+    }
+}

+ 104 - 0
enteprise-admin/src/main/java/com/enteprise/base_data_month/controller/EnterpriseBaseDataMonthController.java

@@ -0,0 +1,104 @@
+package com.enteprise.base_data_month.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+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.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.base_data_month.domain.EnterpriseBaseDataMonth;
+import com.enteprise.base_data_month.service.IEnterpriseBaseDataMonthService;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.common.core.page.TableDataInfo;
+
+/**
+ * base_data_monthController
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+@RestController
+@RequestMapping("/base_data_month/base_data_month")
+public class EnterpriseBaseDataMonthController extends BaseController
+{
+    @Autowired
+    private IEnterpriseBaseDataMonthService enterpriseBaseDataMonthService;
+
+    /**
+     * 查询base_data_month列表
+     */
+    @PreAuthorize("@ss.hasPermi('base_data_month:base_data_month:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(EnterpriseBaseDataMonth enterpriseBaseDataMonth)
+    {
+        startPage();
+        List<EnterpriseBaseDataMonth> list = enterpriseBaseDataMonthService.selectEnterpriseBaseDataMonthList(enterpriseBaseDataMonth);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出base_data_month列表
+     */
+    @PreAuthorize("@ss.hasPermi('base_data_month:base_data_month:export')")
+    @Log(title = "base_data_month", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, EnterpriseBaseDataMonth enterpriseBaseDataMonth)
+    {
+        List<EnterpriseBaseDataMonth> list = enterpriseBaseDataMonthService.selectEnterpriseBaseDataMonthList(enterpriseBaseDataMonth);
+        ExcelUtil<EnterpriseBaseDataMonth> util = new ExcelUtil<EnterpriseBaseDataMonth>(EnterpriseBaseDataMonth.class);
+        util.exportExcel(response, list, "base_data_month数据");
+    }
+
+    /**
+     * 获取base_data_month详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('base_data_month:base_data_month:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(enterpriseBaseDataMonthService.selectEnterpriseBaseDataMonthById(id));
+    }
+
+    /**
+     * 新增base_data_month
+     */
+    @PreAuthorize("@ss.hasPermi('base_data_month:base_data_month:add')")
+    @Log(title = "base_data_month", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody EnterpriseBaseDataMonth enterpriseBaseDataMonth)
+    {
+        return toAjax(enterpriseBaseDataMonthService.insertEnterpriseBaseDataMonth(enterpriseBaseDataMonth));
+    }
+
+    /**
+     * 修改base_data_month
+     */
+    @PreAuthorize("@ss.hasPermi('base_data_month:base_data_month:edit')")
+    @Log(title = "base_data_month", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody EnterpriseBaseDataMonth enterpriseBaseDataMonth)
+    {
+        return toAjax(enterpriseBaseDataMonthService.updateEnterpriseBaseDataMonth(enterpriseBaseDataMonth));
+    }
+
+    /**
+     * 删除base_data_month
+     */
+    @PreAuthorize("@ss.hasPermi('base_data_month:base_data_month:remove')")
+    @Log(title = "base_data_month", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(enterpriseBaseDataMonthService.deleteEnterpriseBaseDataMonthByIds(ids));
+    }
+}

+ 287 - 0
enteprise-admin/src/main/java/com/enteprise/base_data_month/domain/EnterpriseBaseDataMonth.java

@@ -0,0 +1,287 @@
+package com.enteprise.base_data_month.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.enteprise.common.annotation.Excel;
+import com.enteprise.common.core.domain.BaseEntity;
+
+/**
+ * base_data_month对象 enterprise_base_data_month
+ *
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public class EnterpriseBaseDataMonth extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 企业名称 */
+    @Excel(name = "企业名称")
+    private String enterpriseName;
+
+    /** 坐落地 */
+    @Excel(name = "坐落地")
+    private String location;
+
+    /** 行业代码 */
+    @Excel(name = "行业代码")
+    private String code;
+
+    /** 主营业务活动 */
+    @Excel(name = "主营业务活动")
+    private String mainBusiness;
+
+    /** 用地面积 */
+    @Excel(name = "用地面积")
+    private Long landArea;
+
+    /** 工业总产值 */
+    @Excel(name = "工业总产值")
+    private Long totalIndustrialValue;
+
+    /** 工业增加值 */
+    @Excel(name = "工业增加值")
+    private Long gdp;
+
+    /** 应税收入 */
+    @Excel(name = "应税收入")
+    private Long taxableIncome;
+
+    /** 实缴税金 */
+    @Excel(name = "实缴税金")
+    private Long paidTax;
+
+    /** 主营业务收入 */
+    @Excel(name = "主营业务收入")
+    private Long mainBusinessIncome;
+
+    /** 从业人员数 */
+    @Excel(name = "从业人员数")
+    private Long employeeNumber;
+
+    /** 利润总额 */
+    @Excel(name = "利润总额")
+    private Long profit;
+
+    /** 所有者权益 */
+    @Excel(name = "所有者权益")
+    private Long ownerEquity;
+
+    /** 研发经费 */
+    @Excel(name = "研发经费")
+    private Long funding;
+
+    /** 能源消费量 */
+    @Excel(name = "能源消费量")
+    private Long energyConsume;
+
+    @Excel(name = "电力消费量")
+    private Long powerConsume;
+    /** 年份 */
+    @Excel(name = "年份")
+    private String year;
+
+    /** 月份 */
+    @Excel(name = "月份")
+    private String month;
+
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId()
+    {
+        return id;
+    }
+    public void setEnterpriseName(String enterpriseName)
+    {
+        this.enterpriseName = enterpriseName;
+    }
+
+    public String getEnterpriseName()
+    {
+        return enterpriseName;
+    }
+    public void setLocation(String location)
+    {
+        this.location = location;
+    }
+
+    public String getLocation()
+    {
+        return location;
+    }
+    public void setCode(String code)
+    {
+        this.code = code;
+    }
+
+    public String getCode()
+    {
+        return code;
+    }
+    public void setMainBusiness(String mainBusiness)
+    {
+        this.mainBusiness = mainBusiness;
+    }
+
+    public String getMainBusiness()
+    {
+        return mainBusiness;
+    }
+    public void setLandArea(Long landArea)
+    {
+        this.landArea = landArea;
+    }
+
+    public Long getLandArea()
+    {
+        return landArea;
+    }
+    public void setTotalIndustrialValue(Long totalIndustrialValue)
+    {
+        this.totalIndustrialValue = totalIndustrialValue;
+    }
+
+    public Long getTotalIndustrialValue()
+    {
+        return totalIndustrialValue;
+    }
+    public void setGdp(Long gdp)
+    {
+        this.gdp = gdp;
+    }
+
+    public Long getGdp()
+    {
+        return gdp;
+    }
+    public void setTaxableIncome(Long taxableIncome)
+    {
+        this.taxableIncome = taxableIncome;
+    }
+
+    public Long getTaxableIncome()
+    {
+        return taxableIncome;
+    }
+    public void setPaidTax(Long paidTax)
+    {
+        this.paidTax = paidTax;
+    }
+
+    public Long getPaidTax()
+    {
+        return paidTax;
+    }
+    public void setMainBusinessIncome(Long mainBusinessIncome)
+    {
+        this.mainBusinessIncome = mainBusinessIncome;
+    }
+
+    public Long getMainBusinessIncome()
+    {
+        return mainBusinessIncome;
+    }
+    public void setEmployeeNumber(Long employeeNumber)
+    {
+        this.employeeNumber = employeeNumber;
+    }
+
+    public Long getEmployeeNumber()
+    {
+        return employeeNumber;
+    }
+    public void setProfit(Long profit)
+    {
+        this.profit = profit;
+    }
+
+    public Long getProfit()
+    {
+        return profit;
+    }
+    public void setOwnerEquity(Long ownerEquity)
+    {
+        this.ownerEquity = ownerEquity;
+    }
+
+    public Long getOwnerEquity()
+    {
+        return ownerEquity;
+    }
+    public void setFunding(Long funding)
+    {
+        this.funding = funding;
+    }
+
+    public Long getFunding()
+    {
+        return funding;
+    }
+    public void setEnergyConsume(Long energyConsume)
+    {
+        this.energyConsume = energyConsume;
+    }
+
+    public Long getEnergyConsume()
+    {
+        return energyConsume;
+    }
+    public Long getPowerConsume()
+    {
+        return powerConsume;
+    }
+    public void setPowerConsume(Long powerConsume)
+    {
+        this.powerConsume = powerConsume;
+    }
+    public void setYear(String year)
+    {
+        this.year = year;
+    }
+
+    public String getYear()
+    {
+        return year;
+    }
+    public void setMonth(String month)
+    {
+        this.month = month;
+    }
+
+    public String getMonth()
+    {
+        return month;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("enterpriseName", getEnterpriseName())
+            .append("location", getLocation())
+            .append("code", getCode())
+            .append("mainBusiness", getMainBusiness())
+            .append("landArea", getLandArea())
+            .append("totalIndustrialValue", getTotalIndustrialValue())
+            .append("gdp", getGdp())
+            .append("taxableIncome", getTaxableIncome())
+            .append("paidTax", getPaidTax())
+            .append("mainBusinessIncome", getMainBusinessIncome())
+            .append("employeeNumber", getEmployeeNumber())
+            .append("profit", getProfit())
+            .append("ownerEquity", getOwnerEquity())
+            .append("funding", getFunding())
+            .append("energyConsume", getEnergyConsume())
+                .append("powerConsume", getPowerConsume())
+            .append("year", getYear())
+            .append("month", getMonth())
+            .toString();
+    }
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/base_data_month/mapper/EnterpriseBaseDataMonthMapper.java

@@ -0,0 +1,61 @@
+package com.enteprise.base_data_month.mapper;
+
+import java.util.List;
+import com.enteprise.base_data_month.domain.EnterpriseBaseDataMonth;
+
+/**
+ * base_data_monthMapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public interface EnterpriseBaseDataMonthMapper 
+{
+    /**
+     * 查询base_data_month
+     * 
+     * @param id base_data_month主键
+     * @return base_data_month
+     */
+    public EnterpriseBaseDataMonth selectEnterpriseBaseDataMonthById(Long id);
+
+    /**
+     * 查询base_data_month列表
+     * 
+     * @param enterpriseBaseDataMonth base_data_month
+     * @return base_data_month集合
+     */
+    public List<EnterpriseBaseDataMonth> selectEnterpriseBaseDataMonthList(EnterpriseBaseDataMonth enterpriseBaseDataMonth);
+
+    /**
+     * 新增base_data_month
+     * 
+     * @param enterpriseBaseDataMonth base_data_month
+     * @return 结果
+     */
+    public int insertEnterpriseBaseDataMonth(EnterpriseBaseDataMonth enterpriseBaseDataMonth);
+
+    /**
+     * 修改base_data_month
+     * 
+     * @param enterpriseBaseDataMonth base_data_month
+     * @return 结果
+     */
+    public int updateEnterpriseBaseDataMonth(EnterpriseBaseDataMonth enterpriseBaseDataMonth);
+
+    /**
+     * 删除base_data_month
+     * 
+     * @param id base_data_month主键
+     * @return 结果
+     */
+    public int deleteEnterpriseBaseDataMonthById(Long id);
+
+    /**
+     * 批量删除base_data_month
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteEnterpriseBaseDataMonthByIds(Long[] ids);
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/base_data_month/service/IEnterpriseBaseDataMonthService.java

@@ -0,0 +1,61 @@
+package com.enteprise.base_data_month.service;
+
+import java.util.List;
+import com.enteprise.base_data_month.domain.EnterpriseBaseDataMonth;
+
+/**
+ * base_data_monthService接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public interface IEnterpriseBaseDataMonthService 
+{
+    /**
+     * 查询base_data_month
+     * 
+     * @param id base_data_month主键
+     * @return base_data_month
+     */
+    public EnterpriseBaseDataMonth selectEnterpriseBaseDataMonthById(Long id);
+
+    /**
+     * 查询base_data_month列表
+     * 
+     * @param enterpriseBaseDataMonth base_data_month
+     * @return base_data_month集合
+     */
+    public List<EnterpriseBaseDataMonth> selectEnterpriseBaseDataMonthList(EnterpriseBaseDataMonth enterpriseBaseDataMonth);
+
+    /**
+     * 新增base_data_month
+     * 
+     * @param enterpriseBaseDataMonth base_data_month
+     * @return 结果
+     */
+    public int insertEnterpriseBaseDataMonth(EnterpriseBaseDataMonth enterpriseBaseDataMonth);
+
+    /**
+     * 修改base_data_month
+     * 
+     * @param enterpriseBaseDataMonth base_data_month
+     * @return 结果
+     */
+    public int updateEnterpriseBaseDataMonth(EnterpriseBaseDataMonth enterpriseBaseDataMonth);
+
+    /**
+     * 批量删除base_data_month
+     * 
+     * @param ids 需要删除的base_data_month主键集合
+     * @return 结果
+     */
+    public int deleteEnterpriseBaseDataMonthByIds(Long[] ids);
+
+    /**
+     * 删除base_data_month信息
+     * 
+     * @param id base_data_month主键
+     * @return 结果
+     */
+    public int deleteEnterpriseBaseDataMonthById(Long id);
+}

+ 93 - 0
enteprise-admin/src/main/java/com/enteprise/base_data_month/service/impl/EnterpriseBaseDataMonthServiceImpl.java

@@ -0,0 +1,93 @@
+package com.enteprise.base_data_month.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.enteprise.base_data_month.mapper.EnterpriseBaseDataMonthMapper;
+import com.enteprise.base_data_month.domain.EnterpriseBaseDataMonth;
+import com.enteprise.base_data_month.service.IEnterpriseBaseDataMonthService;
+
+/**
+ * base_data_monthService业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+@Service
+public class EnterpriseBaseDataMonthServiceImpl implements IEnterpriseBaseDataMonthService 
+{
+    @Autowired
+    private EnterpriseBaseDataMonthMapper enterpriseBaseDataMonthMapper;
+
+    /**
+     * 查询base_data_month
+     * 
+     * @param id base_data_month主键
+     * @return base_data_month
+     */
+    @Override
+    public EnterpriseBaseDataMonth selectEnterpriseBaseDataMonthById(Long id)
+    {
+        return enterpriseBaseDataMonthMapper.selectEnterpriseBaseDataMonthById(id);
+    }
+
+    /**
+     * 查询base_data_month列表
+     * 
+     * @param enterpriseBaseDataMonth base_data_month
+     * @return base_data_month
+     */
+    @Override
+    public List<EnterpriseBaseDataMonth> selectEnterpriseBaseDataMonthList(EnterpriseBaseDataMonth enterpriseBaseDataMonth)
+    {
+        return enterpriseBaseDataMonthMapper.selectEnterpriseBaseDataMonthList(enterpriseBaseDataMonth);
+    }
+
+    /**
+     * 新增base_data_month
+     * 
+     * @param enterpriseBaseDataMonth base_data_month
+     * @return 结果
+     */
+    @Override
+    public int insertEnterpriseBaseDataMonth(EnterpriseBaseDataMonth enterpriseBaseDataMonth)
+    {
+        return enterpriseBaseDataMonthMapper.insertEnterpriseBaseDataMonth(enterpriseBaseDataMonth);
+    }
+
+    /**
+     * 修改base_data_month
+     * 
+     * @param enterpriseBaseDataMonth base_data_month
+     * @return 结果
+     */
+    @Override
+    public int updateEnterpriseBaseDataMonth(EnterpriseBaseDataMonth enterpriseBaseDataMonth)
+    {
+        return enterpriseBaseDataMonthMapper.updateEnterpriseBaseDataMonth(enterpriseBaseDataMonth);
+    }
+
+    /**
+     * 批量删除base_data_month
+     * 
+     * @param ids 需要删除的base_data_month主键
+     * @return 结果
+     */
+    @Override
+    public int deleteEnterpriseBaseDataMonthByIds(Long[] ids)
+    {
+        return enterpriseBaseDataMonthMapper.deleteEnterpriseBaseDataMonthByIds(ids);
+    }
+
+    /**
+     * 删除base_data_month信息
+     * 
+     * @param id base_data_month主键
+     * @return 结果
+     */
+    @Override
+    public int deleteEnterpriseBaseDataMonthById(Long id)
+    {
+        return enterpriseBaseDataMonthMapper.deleteEnterpriseBaseDataMonthById(id);
+    }
+}

+ 104 - 0
enteprise-admin/src/main/java/com/enteprise/base_data_year/controller/EnterpriseBaseDataYearController.java

@@ -0,0 +1,104 @@
+package com.enteprise.base_data_year.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+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.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.base_data_year.domain.EnterpriseBaseDataYear;
+import com.enteprise.base_data_year.service.IEnterpriseBaseDataYearService;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.common.core.page.TableDataInfo;
+
+/**
+ * base_data_yearController
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+@RestController
+@RequestMapping("/base_data_year/base_data_year")
+public class EnterpriseBaseDataYearController extends BaseController
+{
+    @Autowired
+    private IEnterpriseBaseDataYearService enterpriseBaseDataYearService;
+
+    /**
+     * 查询base_data_year列表
+     */
+    @PreAuthorize("@ss.hasPermi('base_data_year:base_data_year:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(EnterpriseBaseDataYear enterpriseBaseDataYear)
+    {
+        startPage();
+        List<EnterpriseBaseDataYear> list = enterpriseBaseDataYearService.selectEnterpriseBaseDataYearList(enterpriseBaseDataYear);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出base_data_year列表
+     */
+    @PreAuthorize("@ss.hasPermi('base_data_year:base_data_year:export')")
+    @Log(title = "base_data_year", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, EnterpriseBaseDataYear enterpriseBaseDataYear)
+    {
+        List<EnterpriseBaseDataYear> list = enterpriseBaseDataYearService.selectEnterpriseBaseDataYearList(enterpriseBaseDataYear);
+        ExcelUtil<EnterpriseBaseDataYear> util = new ExcelUtil<EnterpriseBaseDataYear>(EnterpriseBaseDataYear.class);
+        util.exportExcel(response, list, "base_data_year数据");
+    }
+
+    /**
+     * 获取base_data_year详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('base_data_year:base_data_year:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(enterpriseBaseDataYearService.selectEnterpriseBaseDataYearById(id));
+    }
+
+    /**
+     * 新增base_data_year
+     */
+    @PreAuthorize("@ss.hasPermi('base_data_year:base_data_year:add')")
+    @Log(title = "base_data_year", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody EnterpriseBaseDataYear enterpriseBaseDataYear)
+    {
+        return toAjax(enterpriseBaseDataYearService.insertEnterpriseBaseDataYear(enterpriseBaseDataYear));
+    }
+
+    /**
+     * 修改base_data_year
+     */
+    @PreAuthorize("@ss.hasPermi('base_data_year:base_data_year:edit')")
+    @Log(title = "base_data_year", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody EnterpriseBaseDataYear enterpriseBaseDataYear)
+    {
+        return toAjax(enterpriseBaseDataYearService.updateEnterpriseBaseDataYear(enterpriseBaseDataYear));
+    }
+
+    /**
+     * 删除base_data_year
+     */
+    @PreAuthorize("@ss.hasPermi('base_data_year:base_data_year:remove')")
+    @Log(title = "base_data_year", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(enterpriseBaseDataYearService.deleteEnterpriseBaseDataYearByIds(ids));
+    }
+}

+ 290 - 0
enteprise-admin/src/main/java/com/enteprise/base_data_year/domain/EnterpriseBaseDataYear.java

@@ -0,0 +1,290 @@
+package com.enteprise.base_data_year.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.enteprise.common.annotation.Excel;
+import com.enteprise.common.core.domain.BaseEntity;
+
+/**
+ * base_data_year对象 enterprise_base_data_year
+ *
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public class EnterpriseBaseDataYear extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 企业名称 */
+    @Excel(name = "企业名称")
+    private String enterpriseName;
+
+    /** 坐落地 */
+    @Excel(name = "坐落地")
+    private String location;
+
+    /** 行业代码 */
+    @Excel(name = "行业代码")
+    private String code;
+
+    /** 主营业务活动 */
+    @Excel(name = "主营业务活动")
+    private String mainBusiness;
+
+    /** 用地面积 */
+    @Excel(name = "用地面积")
+    private Long landArea;
+
+    /** 工业总产值 */
+    @Excel(name = "工业总产值")
+    private Long totalIndustrialValue;
+
+    /** 工业增加值 */
+    @Excel(name = "工业增加值")
+    private Long gdp;
+
+    /** 应税收入 */
+    @Excel(name = "应税收入")
+    private Long taxableIncome;
+
+    /** 实缴税金 */
+    @Excel(name = "实缴税金")
+    private Long paidTax;
+
+    /** 主营业务收入 */
+    @Excel(name = "主营业务收入")
+    private Long mainBusinessIncome;
+
+    /** 从业人员数 */
+    @Excel(name = "从业人员数")
+    private Long employeeNumber;
+
+    /** 利润总额 */
+    @Excel(name = "利润总额")
+    private Long profit;
+
+    /** 所有者权益 */
+    @Excel(name = "所有者权益")
+    private Long ownerEquity;
+
+    /** 研发经费 */
+    @Excel(name = "研发经费")
+    private Long funding;
+
+    /** 能源消费量 */
+    @Excel(name = "能源消费量")
+    private Long energyConsume;
+
+    @Excel(name = "电力消费量")
+    private Long powerConsume;
+
+
+    /** 年份 */
+    @Excel(name = "年份")
+    private String year;
+
+    /** 月份 */
+    @Excel(name = "月份")
+    private String month;
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId()
+    {
+        return id;
+    }
+    public void setEnterpriseName(String enterpriseName)
+    {
+        this.enterpriseName = enterpriseName;
+    }
+
+    public String getEnterpriseName()
+    {
+        return enterpriseName;
+    }
+    public void setLocation(String location)
+    {
+        this.location = location;
+    }
+
+    public String getLocation()
+    {
+        return location;
+    }
+    public void setCode(String code)
+    {
+        this.code = code;
+    }
+
+    public String getCode()
+    {
+        return code;
+    }
+    public void setMainBusiness(String mainBusiness)
+    {
+        this.mainBusiness = mainBusiness;
+    }
+
+    public String getMainBusiness()
+    {
+        return mainBusiness;
+    }
+    public void setLandArea(Long landArea)
+    {
+        this.landArea = landArea;
+    }
+
+    public Long getLandArea()
+    {
+        return landArea;
+    }
+    public void setTotalIndustrialValue(Long totalIndustrialValue)
+    {
+        this.totalIndustrialValue = totalIndustrialValue;
+    }
+
+    public Long getTotalIndustrialValue()
+    {
+        return totalIndustrialValue;
+    }
+    public void setGdp(Long gdp)
+    {
+        this.gdp = gdp;
+    }
+
+    public Long getGdp()
+    {
+        return gdp;
+    }
+    public void setTaxableIncome(Long taxableIncome)
+    {
+        this.taxableIncome = taxableIncome;
+    }
+
+    public Long getTaxableIncome()
+    {
+        return taxableIncome;
+    }
+    public void setPaidTax(Long paidTax)
+    {
+        this.paidTax = paidTax;
+    }
+
+    public Long getPaidTax()
+    {
+        return paidTax;
+    }
+    public void setMainBusinessIncome(Long mainBusinessIncome)
+    {
+        this.mainBusinessIncome = mainBusinessIncome;
+    }
+
+    public Long getMainBusinessIncome()
+    {
+        return mainBusinessIncome;
+    }
+    public void setEmployeeNumber(Long employeeNumber)
+    {
+        this.employeeNumber = employeeNumber;
+    }
+
+    public Long getEmployeeNumber()
+    {
+        return employeeNumber;
+    }
+    public void setProfit(Long profit)
+    {
+        this.profit = profit;
+    }
+
+    public Long getProfit()
+    {
+        return profit;
+    }
+    public void setOwnerEquity(Long ownerEquity)
+    {
+        this.ownerEquity = ownerEquity;
+    }
+
+    public Long getOwnerEquity()
+    {
+        return ownerEquity;
+    }
+    public void setFunding(Long funding)
+    {
+        this.funding = funding;
+    }
+
+    public Long getFunding()
+    {
+        return funding;
+    }
+    public void setEnergyConsume(Long energyConsume)
+    {
+        this.energyConsume = energyConsume;
+    }
+
+    public Long getEnergyConsume()
+    {
+        return energyConsume;
+    }
+
+    public void setPowerConsume(Long powerConsume)
+    {
+        this.powerConsume = powerConsume;
+    }
+
+    public Long getPowerConsume()
+    {
+        return powerConsume;
+    }
+    public void setYear(String year)
+    {
+        this.year = year;
+    }
+
+    public String getYear()
+    {
+        return year;
+    }
+    public void setMonth(String month)
+    {
+        this.month = month;
+    }
+
+    public String getMonth()
+    {
+        return month;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("enterpriseName", getEnterpriseName())
+            .append("location", getLocation())
+            .append("code", getCode())
+            .append("mainBusiness", getMainBusiness())
+            .append("landArea", getLandArea())
+            .append("totalIndustrialValue", getTotalIndustrialValue())
+            .append("gdp", getGdp())
+            .append("taxableIncome", getTaxableIncome())
+            .append("paidTax", getPaidTax())
+            .append("mainBusinessIncome", getMainBusinessIncome())
+            .append("employeeNumber", getEmployeeNumber())
+            .append("profit", getProfit())
+            .append("ownerEquity", getOwnerEquity())
+            .append("funding", getFunding())
+            .append("energyConsume", getEnergyConsume())
+                .append("powerConsume", getPowerConsume())
+            .append("year", getYear())
+            .append("month", getMonth())
+            .toString();
+    }
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/base_data_year/mapper/EnterpriseBaseDataYearMapper.java

@@ -0,0 +1,61 @@
+package com.enteprise.base_data_year.mapper;
+
+import java.util.List;
+import com.enteprise.base_data_year.domain.EnterpriseBaseDataYear;
+
+/**
+ * base_data_yearMapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public interface EnterpriseBaseDataYearMapper 
+{
+    /**
+     * 查询base_data_year
+     * 
+     * @param id base_data_year主键
+     * @return base_data_year
+     */
+    public EnterpriseBaseDataYear selectEnterpriseBaseDataYearById(Long id);
+
+    /**
+     * 查询base_data_year列表
+     * 
+     * @param enterpriseBaseDataYear base_data_year
+     * @return base_data_year集合
+     */
+    public List<EnterpriseBaseDataYear> selectEnterpriseBaseDataYearList(EnterpriseBaseDataYear enterpriseBaseDataYear);
+
+    /**
+     * 新增base_data_year
+     * 
+     * @param enterpriseBaseDataYear base_data_year
+     * @return 结果
+     */
+    public int insertEnterpriseBaseDataYear(EnterpriseBaseDataYear enterpriseBaseDataYear);
+
+    /**
+     * 修改base_data_year
+     * 
+     * @param enterpriseBaseDataYear base_data_year
+     * @return 结果
+     */
+    public int updateEnterpriseBaseDataYear(EnterpriseBaseDataYear enterpriseBaseDataYear);
+
+    /**
+     * 删除base_data_year
+     * 
+     * @param id base_data_year主键
+     * @return 结果
+     */
+    public int deleteEnterpriseBaseDataYearById(Long id);
+
+    /**
+     * 批量删除base_data_year
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteEnterpriseBaseDataYearByIds(Long[] ids);
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/base_data_year/service/IEnterpriseBaseDataYearService.java

@@ -0,0 +1,61 @@
+package com.enteprise.base_data_year.service;
+
+import java.util.List;
+import com.enteprise.base_data_year.domain.EnterpriseBaseDataYear;
+
+/**
+ * base_data_yearService接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public interface IEnterpriseBaseDataYearService 
+{
+    /**
+     * 查询base_data_year
+     * 
+     * @param id base_data_year主键
+     * @return base_data_year
+     */
+    public EnterpriseBaseDataYear selectEnterpriseBaseDataYearById(Long id);
+
+    /**
+     * 查询base_data_year列表
+     * 
+     * @param enterpriseBaseDataYear base_data_year
+     * @return base_data_year集合
+     */
+    public List<EnterpriseBaseDataYear> selectEnterpriseBaseDataYearList(EnterpriseBaseDataYear enterpriseBaseDataYear);
+
+    /**
+     * 新增base_data_year
+     * 
+     * @param enterpriseBaseDataYear base_data_year
+     * @return 结果
+     */
+    public int insertEnterpriseBaseDataYear(EnterpriseBaseDataYear enterpriseBaseDataYear);
+
+    /**
+     * 修改base_data_year
+     * 
+     * @param enterpriseBaseDataYear base_data_year
+     * @return 结果
+     */
+    public int updateEnterpriseBaseDataYear(EnterpriseBaseDataYear enterpriseBaseDataYear);
+
+    /**
+     * 批量删除base_data_year
+     * 
+     * @param ids 需要删除的base_data_year主键集合
+     * @return 结果
+     */
+    public int deleteEnterpriseBaseDataYearByIds(Long[] ids);
+
+    /**
+     * 删除base_data_year信息
+     * 
+     * @param id base_data_year主键
+     * @return 结果
+     */
+    public int deleteEnterpriseBaseDataYearById(Long id);
+}

+ 93 - 0
enteprise-admin/src/main/java/com/enteprise/base_data_year/service/impl/EnterpriseBaseDataYearServiceImpl.java

@@ -0,0 +1,93 @@
+package com.enteprise.base_data_year.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.enteprise.base_data_year.mapper.EnterpriseBaseDataYearMapper;
+import com.enteprise.base_data_year.domain.EnterpriseBaseDataYear;
+import com.enteprise.base_data_year.service.IEnterpriseBaseDataYearService;
+
+/**
+ * base_data_yearService业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+@Service
+public class EnterpriseBaseDataYearServiceImpl implements IEnterpriseBaseDataYearService 
+{
+    @Autowired
+    private EnterpriseBaseDataYearMapper enterpriseBaseDataYearMapper;
+
+    /**
+     * 查询base_data_year
+     * 
+     * @param id base_data_year主键
+     * @return base_data_year
+     */
+    @Override
+    public EnterpriseBaseDataYear selectEnterpriseBaseDataYearById(Long id)
+    {
+        return enterpriseBaseDataYearMapper.selectEnterpriseBaseDataYearById(id);
+    }
+
+    /**
+     * 查询base_data_year列表
+     * 
+     * @param enterpriseBaseDataYear base_data_year
+     * @return base_data_year
+     */
+    @Override
+    public List<EnterpriseBaseDataYear> selectEnterpriseBaseDataYearList(EnterpriseBaseDataYear enterpriseBaseDataYear)
+    {
+        return enterpriseBaseDataYearMapper.selectEnterpriseBaseDataYearList(enterpriseBaseDataYear);
+    }
+
+    /**
+     * 新增base_data_year
+     * 
+     * @param enterpriseBaseDataYear base_data_year
+     * @return 结果
+     */
+    @Override
+    public int insertEnterpriseBaseDataYear(EnterpriseBaseDataYear enterpriseBaseDataYear)
+    {
+        return enterpriseBaseDataYearMapper.insertEnterpriseBaseDataYear(enterpriseBaseDataYear);
+    }
+
+    /**
+     * 修改base_data_year
+     * 
+     * @param enterpriseBaseDataYear base_data_year
+     * @return 结果
+     */
+    @Override
+    public int updateEnterpriseBaseDataYear(EnterpriseBaseDataYear enterpriseBaseDataYear)
+    {
+        return enterpriseBaseDataYearMapper.updateEnterpriseBaseDataYear(enterpriseBaseDataYear);
+    }
+
+    /**
+     * 批量删除base_data_year
+     * 
+     * @param ids 需要删除的base_data_year主键
+     * @return 结果
+     */
+    @Override
+    public int deleteEnterpriseBaseDataYearByIds(Long[] ids)
+    {
+        return enterpriseBaseDataYearMapper.deleteEnterpriseBaseDataYearByIds(ids);
+    }
+
+    /**
+     * 删除base_data_year信息
+     * 
+     * @param id base_data_year主键
+     * @return 结果
+     */
+    @Override
+    public int deleteEnterpriseBaseDataYearById(Long id)
+    {
+        return enterpriseBaseDataYearMapper.deleteEnterpriseBaseDataYearById(id);
+    }
+}

+ 104 - 0
enteprise-admin/src/main/java/com/enteprise/enterprise/controller/EnterpriseController.java

@@ -0,0 +1,104 @@
+package com.enteprise.enterprise.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+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.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.enterprise.domain.Enterprise;
+import com.enteprise.enterprise.service.IEnterpriseService;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.common.core.page.TableDataInfo;
+
+/**
+ * enterpriseController
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+@RestController
+@RequestMapping("/enterprise/enterprise")
+public class EnterpriseController extends BaseController
+{
+    @Autowired
+    private IEnterpriseService enterpriseService;
+
+    /**
+     * 查询enterprise列表
+     */
+    @PreAuthorize("@ss.hasPermi('enterprise:enterprise:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(Enterprise enterprise)
+    {
+        startPage();
+        List<Enterprise> list = enterpriseService.selectEnterpriseList(enterprise);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出enterprise列表
+     */
+    @PreAuthorize("@ss.hasPermi('enterprise:enterprise:export')")
+    @Log(title = "enterprise", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, Enterprise enterprise)
+    {
+        List<Enterprise> list = enterpriseService.selectEnterpriseList(enterprise);
+        ExcelUtil<Enterprise> util = new ExcelUtil<Enterprise>(Enterprise.class);
+        util.exportExcel(response, list, "enterprise数据");
+    }
+
+    /**
+     * 获取enterprise详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('enterprise:enterprise:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(enterpriseService.selectEnterpriseById(id));
+    }
+
+    /**
+     * 新增enterprise
+     */
+    @PreAuthorize("@ss.hasPermi('enterprise:enterprise:add')")
+    @Log(title = "enterprise", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody Enterprise enterprise)
+    {
+        return toAjax(enterpriseService.insertEnterprise(enterprise));
+    }
+
+    /**
+     * 修改enterprise
+     */
+    @PreAuthorize("@ss.hasPermi('enterprise:enterprise:edit')")
+    @Log(title = "enterprise", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody Enterprise enterprise)
+    {
+        return toAjax(enterpriseService.updateEnterprise(enterprise));
+    }
+
+    /**
+     * 删除enterprise
+     */
+    @PreAuthorize("@ss.hasPermi('enterprise:enterprise:remove')")
+    @Log(title = "enterprise", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(enterpriseService.deleteEnterpriseByIds(ids));
+    }
+}

+ 79 - 0
enteprise-admin/src/main/java/com/enteprise/enterprise/domain/Enterprise.java

@@ -0,0 +1,79 @@
+package com.enteprise.enterprise.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.enteprise.common.annotation.Excel;
+import com.enteprise.common.core.domain.BaseEntity;
+
+/**
+ * enterprise对象 enterprise
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public class Enterprise extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 企业名称 */
+    @Excel(name = "企业名称")
+    private String enterpriseName;
+
+    /** 坐落地 */
+    @Excel(name = "坐落地")
+    private String location;
+
+    /** 行业代码 */
+    @Excel(name = "行业代码")
+    private String code;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setEnterpriseName(String enterpriseName) 
+    {
+        this.enterpriseName = enterpriseName;
+    }
+
+    public String getEnterpriseName() 
+    {
+        return enterpriseName;
+    }
+    public void setLocation(String location) 
+    {
+        this.location = location;
+    }
+
+    public String getLocation() 
+    {
+        return location;
+    }
+    public void setCode(String code) 
+    {
+        this.code = code;
+    }
+
+    public String getCode() 
+    {
+        return code;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("enterpriseName", getEnterpriseName())
+            .append("location", getLocation())
+            .append("code", getCode())
+            .toString();
+    }
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/enterprise/mapper/EnterpriseMapper.java

@@ -0,0 +1,61 @@
+package com.enteprise.enterprise.mapper;
+
+import java.util.List;
+import com.enteprise.enterprise.domain.Enterprise;
+
+/**
+ * enterpriseMapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public interface EnterpriseMapper 
+{
+    /**
+     * 查询enterprise
+     * 
+     * @param id enterprise主键
+     * @return enterprise
+     */
+    public Enterprise selectEnterpriseById(Long id);
+
+    /**
+     * 查询enterprise列表
+     * 
+     * @param enterprise enterprise
+     * @return enterprise集合
+     */
+    public List<Enterprise> selectEnterpriseList(Enterprise enterprise);
+
+    /**
+     * 新增enterprise
+     * 
+     * @param enterprise enterprise
+     * @return 结果
+     */
+    public int insertEnterprise(Enterprise enterprise);
+
+    /**
+     * 修改enterprise
+     * 
+     * @param enterprise enterprise
+     * @return 结果
+     */
+    public int updateEnterprise(Enterprise enterprise);
+
+    /**
+     * 删除enterprise
+     * 
+     * @param id enterprise主键
+     * @return 结果
+     */
+    public int deleteEnterpriseById(Long id);
+
+    /**
+     * 批量删除enterprise
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteEnterpriseByIds(Long[] ids);
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/enterprise/service/IEnterpriseService.java

@@ -0,0 +1,61 @@
+package com.enteprise.enterprise.service;
+
+import java.util.List;
+import com.enteprise.enterprise.domain.Enterprise;
+
+/**
+ * enterpriseService接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public interface IEnterpriseService 
+{
+    /**
+     * 查询enterprise
+     * 
+     * @param id enterprise主键
+     * @return enterprise
+     */
+    public Enterprise selectEnterpriseById(Long id);
+
+    /**
+     * 查询enterprise列表
+     * 
+     * @param enterprise enterprise
+     * @return enterprise集合
+     */
+    public List<Enterprise> selectEnterpriseList(Enterprise enterprise);
+
+    /**
+     * 新增enterprise
+     * 
+     * @param enterprise enterprise
+     * @return 结果
+     */
+    public int insertEnterprise(Enterprise enterprise);
+
+    /**
+     * 修改enterprise
+     * 
+     * @param enterprise enterprise
+     * @return 结果
+     */
+    public int updateEnterprise(Enterprise enterprise);
+
+    /**
+     * 批量删除enterprise
+     * 
+     * @param ids 需要删除的enterprise主键集合
+     * @return 结果
+     */
+    public int deleteEnterpriseByIds(Long[] ids);
+
+    /**
+     * 删除enterprise信息
+     * 
+     * @param id enterprise主键
+     * @return 结果
+     */
+    public int deleteEnterpriseById(Long id);
+}

+ 93 - 0
enteprise-admin/src/main/java/com/enteprise/enterprise/service/impl/EnterpriseServiceImpl.java

@@ -0,0 +1,93 @@
+package com.enteprise.enterprise.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.enteprise.enterprise.mapper.EnterpriseMapper;
+import com.enteprise.enterprise.domain.Enterprise;
+import com.enteprise.enterprise.service.IEnterpriseService;
+
+/**
+ * enterpriseService业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+@Service
+public class EnterpriseServiceImpl implements IEnterpriseService 
+{
+    @Autowired
+    private EnterpriseMapper enterpriseMapper;
+
+    /**
+     * 查询enterprise
+     * 
+     * @param id enterprise主键
+     * @return enterprise
+     */
+    @Override
+    public Enterprise selectEnterpriseById(Long id)
+    {
+        return enterpriseMapper.selectEnterpriseById(id);
+    }
+
+    /**
+     * 查询enterprise列表
+     * 
+     * @param enterprise enterprise
+     * @return enterprise
+     */
+    @Override
+    public List<Enterprise> selectEnterpriseList(Enterprise enterprise)
+    {
+        return enterpriseMapper.selectEnterpriseList(enterprise);
+    }
+
+    /**
+     * 新增enterprise
+     * 
+     * @param enterprise enterprise
+     * @return 结果
+     */
+    @Override
+    public int insertEnterprise(Enterprise enterprise)
+    {
+        return enterpriseMapper.insertEnterprise(enterprise);
+    }
+
+    /**
+     * 修改enterprise
+     * 
+     * @param enterprise enterprise
+     * @return 结果
+     */
+    @Override
+    public int updateEnterprise(Enterprise enterprise)
+    {
+        return enterpriseMapper.updateEnterprise(enterprise);
+    }
+
+    /**
+     * 批量删除enterprise
+     * 
+     * @param ids 需要删除的enterprise主键
+     * @return 结果
+     */
+    @Override
+    public int deleteEnterpriseByIds(Long[] ids)
+    {
+        return enterpriseMapper.deleteEnterpriseByIds(ids);
+    }
+
+    /**
+     * 删除enterprise信息
+     * 
+     * @param id enterprise主键
+     * @return 结果
+     */
+    @Override
+    public int deleteEnterpriseById(Long id)
+    {
+        return enterpriseMapper.deleteEnterpriseById(id);
+    }
+}

+ 104 - 0
enteprise-admin/src/main/java/com/enteprise/industry/controller/IndustryController.java

@@ -0,0 +1,104 @@
+package com.enteprise.industry.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+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.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.industry.domain.Industry;
+import com.enteprise.industry.service.IIndustryService;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.common.core.page.TableDataInfo;
+
+/**
+ * industryController
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+@RestController
+@RequestMapping("/industry/industry")
+public class IndustryController extends BaseController
+{
+    @Autowired
+    private IIndustryService industryService;
+
+    /**
+     * 查询industry列表
+     */
+    @PreAuthorize("@ss.hasPermi('industry:industry:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(Industry industry)
+    {
+        startPage();
+        List<Industry> list = industryService.selectIndustryList(industry);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出industry列表
+     */
+    @PreAuthorize("@ss.hasPermi('industry:industry:export')")
+    @Log(title = "industry", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, Industry industry)
+    {
+        List<Industry> list = industryService.selectIndustryList(industry);
+        ExcelUtil<Industry> util = new ExcelUtil<Industry>(Industry.class);
+        util.exportExcel(response, list, "industry数据");
+    }
+
+    /**
+     * 获取industry详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('industry:industry:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(industryService.selectIndustryById(id));
+    }
+
+    /**
+     * 新增industry
+     */
+    @PreAuthorize("@ss.hasPermi('industry:industry:add')")
+    @Log(title = "industry", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody Industry industry)
+    {
+        return toAjax(industryService.insertIndustry(industry));
+    }
+
+    /**
+     * 修改industry
+     */
+    @PreAuthorize("@ss.hasPermi('industry:industry:edit')")
+    @Log(title = "industry", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody Industry industry)
+    {
+        return toAjax(industryService.updateIndustry(industry));
+    }
+
+    /**
+     * 删除industry
+     */
+    @PreAuthorize("@ss.hasPermi('industry:industry:remove')")
+    @Log(title = "industry", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(industryService.deleteIndustryByIds(ids));
+    }
+}

+ 65 - 0
enteprise-admin/src/main/java/com/enteprise/industry/domain/Industry.java

@@ -0,0 +1,65 @@
+package com.enteprise.industry.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.enteprise.common.annotation.Excel;
+import com.enteprise.common.core.domain.BaseEntity;
+
+/**
+ * industry对象 industry
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public class Industry extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 行业大类 */
+    @Excel(name = "行业大类")
+    private String industryName;
+
+    /** 行业代码 */
+    @Excel(name = "行业代码")
+    private String code;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setIndustryName(String industryName) 
+    {
+        this.industryName = industryName;
+    }
+
+    public String getIndustryName() 
+    {
+        return industryName;
+    }
+    public void setCode(String code) 
+    {
+        this.code = code;
+    }
+
+    public String getCode() 
+    {
+        return code;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("industryName", getIndustryName())
+            .append("code", getCode())
+            .toString();
+    }
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/industry/mapper/IndustryMapper.java

@@ -0,0 +1,61 @@
+package com.enteprise.industry.mapper;
+
+import java.util.List;
+import com.enteprise.industry.domain.Industry;
+
+/**
+ * industryMapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public interface IndustryMapper 
+{
+    /**
+     * 查询industry
+     * 
+     * @param id industry主键
+     * @return industry
+     */
+    public Industry selectIndustryById(Long id);
+
+    /**
+     * 查询industry列表
+     * 
+     * @param industry industry
+     * @return industry集合
+     */
+    public List<Industry> selectIndustryList(Industry industry);
+
+    /**
+     * 新增industry
+     * 
+     * @param industry industry
+     * @return 结果
+     */
+    public int insertIndustry(Industry industry);
+
+    /**
+     * 修改industry
+     * 
+     * @param industry industry
+     * @return 结果
+     */
+    public int updateIndustry(Industry industry);
+
+    /**
+     * 删除industry
+     * 
+     * @param id industry主键
+     * @return 结果
+     */
+    public int deleteIndustryById(Long id);
+
+    /**
+     * 批量删除industry
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteIndustryByIds(Long[] ids);
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/industry/service/IIndustryService.java

@@ -0,0 +1,61 @@
+package com.enteprise.industry.service;
+
+import java.util.List;
+import com.enteprise.industry.domain.Industry;
+
+/**
+ * industryService接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public interface IIndustryService 
+{
+    /**
+     * 查询industry
+     * 
+     * @param id industry主键
+     * @return industry
+     */
+    public Industry selectIndustryById(Long id);
+
+    /**
+     * 查询industry列表
+     * 
+     * @param industry industry
+     * @return industry集合
+     */
+    public List<Industry> selectIndustryList(Industry industry);
+
+    /**
+     * 新增industry
+     * 
+     * @param industry industry
+     * @return 结果
+     */
+    public int insertIndustry(Industry industry);
+
+    /**
+     * 修改industry
+     * 
+     * @param industry industry
+     * @return 结果
+     */
+    public int updateIndustry(Industry industry);
+
+    /**
+     * 批量删除industry
+     * 
+     * @param ids 需要删除的industry主键集合
+     * @return 结果
+     */
+    public int deleteIndustryByIds(Long[] ids);
+
+    /**
+     * 删除industry信息
+     * 
+     * @param id industry主键
+     * @return 结果
+     */
+    public int deleteIndustryById(Long id);
+}

+ 93 - 0
enteprise-admin/src/main/java/com/enteprise/industry/service/impl/IndustryServiceImpl.java

@@ -0,0 +1,93 @@
+package com.enteprise.industry.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.enteprise.industry.mapper.IndustryMapper;
+import com.enteprise.industry.domain.Industry;
+import com.enteprise.industry.service.IIndustryService;
+
+/**
+ * industryService业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+@Service
+public class IndustryServiceImpl implements IIndustryService 
+{
+    @Autowired
+    private IndustryMapper industryMapper;
+
+    /**
+     * 查询industry
+     * 
+     * @param id industry主键
+     * @return industry
+     */
+    @Override
+    public Industry selectIndustryById(Long id)
+    {
+        return industryMapper.selectIndustryById(id);
+    }
+
+    /**
+     * 查询industry列表
+     * 
+     * @param industry industry
+     * @return industry
+     */
+    @Override
+    public List<Industry> selectIndustryList(Industry industry)
+    {
+        return industryMapper.selectIndustryList(industry);
+    }
+
+    /**
+     * 新增industry
+     * 
+     * @param industry industry
+     * @return 结果
+     */
+    @Override
+    public int insertIndustry(Industry industry)
+    {
+        return industryMapper.insertIndustry(industry);
+    }
+
+    /**
+     * 修改industry
+     * 
+     * @param industry industry
+     * @return 结果
+     */
+    @Override
+    public int updateIndustry(Industry industry)
+    {
+        return industryMapper.updateIndustry(industry);
+    }
+
+    /**
+     * 批量删除industry
+     * 
+     * @param ids 需要删除的industry主键
+     * @return 结果
+     */
+    @Override
+    public int deleteIndustryByIds(Long[] ids)
+    {
+        return industryMapper.deleteIndustryByIds(ids);
+    }
+
+    /**
+     * 删除industry信息
+     * 
+     * @param id industry主键
+     * @return 结果
+     */
+    @Override
+    public int deleteIndustryById(Long id)
+    {
+        return industryMapper.deleteIndustryById(id);
+    }
+}

+ 104 - 0
enteprise-admin/src/main/java/com/enteprise/predict/controller/PredictController.java

@@ -0,0 +1,104 @@
+package com.enteprise.predict.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+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.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.predict.domain.Predict;
+import com.enteprise.predict.service.IPredictService;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.common.core.page.TableDataInfo;
+
+/**
+ * predictController
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+@RestController
+@RequestMapping("/predict/predict")
+public class PredictController extends BaseController
+{
+    @Autowired
+    private IPredictService predictService;
+
+    /**
+     * 查询predict列表
+     */
+    @PreAuthorize("@ss.hasPermi('predict:predict:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(Predict predict)
+    {
+        startPage();
+        List<Predict> list = predictService.selectPredictList(predict);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出predict列表
+     */
+    @PreAuthorize("@ss.hasPermi('predict:predict:export')")
+    @Log(title = "predict", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, Predict predict)
+    {
+        List<Predict> list = predictService.selectPredictList(predict);
+        ExcelUtil<Predict> util = new ExcelUtil<Predict>(Predict.class);
+        util.exportExcel(response, list, "predict数据");
+    }
+
+    /**
+     * 获取predict详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('predict:predict:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(predictService.selectPredictById(id));
+    }
+
+    /**
+     * 新增predict
+     */
+    @PreAuthorize("@ss.hasPermi('predict:predict:add')")
+    @Log(title = "predict", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody Predict predict)
+    {
+        return toAjax(predictService.insertPredict(predict));
+    }
+
+    /**
+     * 修改predict
+     */
+    @PreAuthorize("@ss.hasPermi('predict:predict:edit')")
+    @Log(title = "predict", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody Predict predict)
+    {
+        return toAjax(predictService.updatePredict(predict));
+    }
+
+    /**
+     * 删除predict
+     */
+    @PreAuthorize("@ss.hasPermi('predict:predict:remove')")
+    @Log(title = "predict", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(predictService.deletePredictByIds(ids));
+    }
+}

+ 205 - 0
enteprise-admin/src/main/java/com/enteprise/predict/domain/Predict.java

@@ -0,0 +1,205 @@
+package com.enteprise.predict.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.enteprise.common.annotation.Excel;
+import com.enteprise.common.core.domain.BaseEntity;
+
+/**
+ * predict对象 predict
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public class Predict extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 企业名称 */
+    @Excel(name = "企业名称")
+    private String enterpriseName;
+
+    /** 坐落地 */
+    @Excel(name = "坐落地")
+    private String location;
+
+    /** 行业代码 */
+    @Excel(name = "行业代码")
+    private String code;
+
+    /** 工业总产值预测 */
+    @Excel(name = "工业总产值预测")
+    private Double totalIndustrialValuePredict;
+
+    /** 应税收入预测 */
+    @Excel(name = "应税收入预测")
+    private Double taxableIncomePredict;
+
+    /** 实缴税金预测 */
+    @Excel(name = "实缴税金预测")
+    private Double paidTaxPredict;
+
+    /** 能源消费量预测 */
+    @Excel(name = "能源消费量预测")
+    private Double energyConsumePredict;
+
+    @Excel(name = "电力消费量预测")
+    private Double powerConsumePredict;
+
+    @Excel(name = "研发经费预测")
+    private Double fundingConsumePredict;
+
+    /** 年份 */
+    @Excel(name = "年份")
+    private String year;
+
+    /** 月份 */
+    @Excel(name = "月份")
+    private String month;
+
+    @Excel(name = "模型")
+    private String model;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setEnterpriseName(String enterpriseName) 
+    {
+        this.enterpriseName = enterpriseName;
+    }
+
+    public String getEnterpriseName() 
+    {
+        return enterpriseName;
+    }
+    public void setLocation(String location) 
+    {
+        this.location = location;
+    }
+
+    public String getLocation() 
+    {
+        return location;
+    }
+    public void setCode(String code) 
+    {
+        this.code = code;
+    }
+
+    public String getCode() 
+    {
+        return code;
+    }
+    public void setTotalIndustrialValuePredict(Double totalIndustrialValuePredict) 
+    {
+        this.totalIndustrialValuePredict = totalIndustrialValuePredict;
+    }
+
+    public Double getTotalIndustrialValuePredict() 
+    {
+        return totalIndustrialValuePredict;
+    }
+    public void setTaxableIncomePredict(Double taxableIncomePredict) 
+    {
+        this.taxableIncomePredict = taxableIncomePredict;
+    }
+
+    public Double getTaxableIncomePredict() 
+    {
+        return taxableIncomePredict;
+    }
+    public void setPaidTaxPredict(Double paidTaxPredict) 
+    {
+        this.paidTaxPredict = paidTaxPredict;
+    }
+
+    public Double getPaidTaxPredict() 
+    {
+        return paidTaxPredict;
+    }
+    public void setEnergyConsumePredict(Double energyConsumePredict) 
+    {
+        this.energyConsumePredict = energyConsumePredict;
+    }
+
+    public Double getEnergyConsumePredict() 
+    {
+        return energyConsumePredict;
+    }
+
+    public void setPowerConsumePredict(Double powerConsumePredict)
+    {
+        this.powerConsumePredict = powerConsumePredict;
+    }
+
+    public Double getPowerConsumePredict()
+    {
+        return powerConsumePredict;
+    }
+
+    public void setFundingConsumePredict(Double fundingConsumePredict)
+    {
+        this.fundingConsumePredict = fundingConsumePredict;
+    }
+
+    public Double getFundingConsumePredict()
+    {
+        return fundingConsumePredict;
+    }
+
+    public void setYear(String year)
+    {
+        this.year = year;
+    }
+
+    public String getYear() 
+    {
+        return year;
+    }
+    public void setMonth(String month) 
+    {
+        this.month = month;
+    }
+
+    public String getMonth() 
+    {
+        return month;
+    }
+
+    public void setModel(String model)
+    {
+        this.model = model;
+    }
+
+    public String getModel()
+    {
+        return model;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("enterpriseName", getEnterpriseName())
+            .append("location", getLocation())
+            .append("code", getCode())
+            .append("totalIndustrialValuePredict", getTotalIndustrialValuePredict())
+            .append("taxableIncomePredict", getTaxableIncomePredict())
+            .append("paidTaxPredict", getPaidTaxPredict())
+            .append("energyConsumePredict", getEnergyConsumePredict())
+                .append("powerConsumePredict", getPowerConsumePredict())
+                .append("fundingConsumePredict", getFundingConsumePredict())
+            .append("year", getYear())
+            .append("month", getMonth()).append("model", getModel())
+            .toString();
+    }
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/predict/mapper/PredictMapper.java

@@ -0,0 +1,61 @@
+package com.enteprise.predict.mapper;
+
+import java.util.List;
+import com.enteprise.predict.domain.Predict;
+
+/**
+ * predictMapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public interface PredictMapper 
+{
+    /**
+     * 查询predict
+     * 
+     * @param id predict主键
+     * @return predict
+     */
+    public Predict selectPredictById(Long id);
+
+    /**
+     * 查询predict列表
+     * 
+     * @param predict predict
+     * @return predict集合
+     */
+    public List<Predict> selectPredictList(Predict predict);
+
+    /**
+     * 新增predict
+     * 
+     * @param predict predict
+     * @return 结果
+     */
+    public int insertPredict(Predict predict);
+
+    /**
+     * 修改predict
+     * 
+     * @param predict predict
+     * @return 结果
+     */
+    public int updatePredict(Predict predict);
+
+    /**
+     * 删除predict
+     * 
+     * @param id predict主键
+     * @return 结果
+     */
+    public int deletePredictById(Long id);
+
+    /**
+     * 批量删除predict
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deletePredictByIds(Long[] ids);
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/predict/service/IPredictService.java

@@ -0,0 +1,61 @@
+package com.enteprise.predict.service;
+
+import java.util.List;
+import com.enteprise.predict.domain.Predict;
+
+/**
+ * predictService接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public interface IPredictService 
+{
+    /**
+     * 查询predict
+     * 
+     * @param id predict主键
+     * @return predict
+     */
+    public Predict selectPredictById(Long id);
+
+    /**
+     * 查询predict列表
+     * 
+     * @param predict predict
+     * @return predict集合
+     */
+    public List<Predict> selectPredictList(Predict predict);
+
+    /**
+     * 新增predict
+     * 
+     * @param predict predict
+     * @return 结果
+     */
+    public int insertPredict(Predict predict);
+
+    /**
+     * 修改predict
+     * 
+     * @param predict predict
+     * @return 结果
+     */
+    public int updatePredict(Predict predict);
+
+    /**
+     * 批量删除predict
+     * 
+     * @param ids 需要删除的predict主键集合
+     * @return 结果
+     */
+    public int deletePredictByIds(Long[] ids);
+
+    /**
+     * 删除predict信息
+     * 
+     * @param id predict主键
+     * @return 结果
+     */
+    public int deletePredictById(Long id);
+}

+ 93 - 0
enteprise-admin/src/main/java/com/enteprise/predict/service/impl/PredictServiceImpl.java

@@ -0,0 +1,93 @@
+package com.enteprise.predict.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.enteprise.predict.mapper.PredictMapper;
+import com.enteprise.predict.domain.Predict;
+import com.enteprise.predict.service.IPredictService;
+
+/**
+ * predictService业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+@Service
+public class PredictServiceImpl implements IPredictService 
+{
+    @Autowired
+    private PredictMapper predictMapper;
+
+    /**
+     * 查询predict
+     * 
+     * @param id predict主键
+     * @return predict
+     */
+    @Override
+    public Predict selectPredictById(Long id)
+    {
+        return predictMapper.selectPredictById(id);
+    }
+
+    /**
+     * 查询predict列表
+     * 
+     * @param predict predict
+     * @return predict
+     */
+    @Override
+    public List<Predict> selectPredictList(Predict predict)
+    {
+        return predictMapper.selectPredictList(predict);
+    }
+
+    /**
+     * 新增predict
+     * 
+     * @param predict predict
+     * @return 结果
+     */
+    @Override
+    public int insertPredict(Predict predict)
+    {
+        return predictMapper.insertPredict(predict);
+    }
+
+    /**
+     * 修改predict
+     * 
+     * @param predict predict
+     * @return 结果
+     */
+    @Override
+    public int updatePredict(Predict predict)
+    {
+        return predictMapper.updatePredict(predict);
+    }
+
+    /**
+     * 批量删除predict
+     * 
+     * @param ids 需要删除的predict主键
+     * @return 结果
+     */
+    @Override
+    public int deletePredictByIds(Long[] ids)
+    {
+        return predictMapper.deletePredictByIds(ids);
+    }
+
+    /**
+     * 删除predict信息
+     * 
+     * @param id predict主键
+     * @return 结果
+     */
+    @Override
+    public int deletePredictById(Long id)
+    {
+        return predictMapper.deletePredictById(id);
+    }
+}

+ 104 - 0
enteprise-admin/src/main/java/com/enteprise/predictseason/controller/PredictseasonController.java

@@ -0,0 +1,104 @@
+package com.enteprise.predictseason.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+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.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.predictseason.domain.Predictseason;
+import com.enteprise.predictseason.service.IPredictseasonService;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.common.core.page.TableDataInfo;
+
+/**
+ * predictseasonController
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+@RestController
+@RequestMapping("/predictseason/predictseason")
+public class PredictseasonController extends BaseController
+{
+    @Autowired
+    private IPredictseasonService predictseasonService;
+
+    /**
+     * 查询predictseason列表
+     */
+    @PreAuthorize("@ss.hasPermi('predictseason:predictseason:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(Predictseason predictseason)
+    {
+        startPage();
+        List<Predictseason> list = predictseasonService.selectPredictseasonList(predictseason);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出predictseason列表
+     */
+    @PreAuthorize("@ss.hasPermi('predictseason:predictseason:export')")
+    @Log(title = "predictseason", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, Predictseason predictseason)
+    {
+        List<Predictseason> list = predictseasonService.selectPredictseasonList(predictseason);
+        ExcelUtil<Predictseason> util = new ExcelUtil<Predictseason>(Predictseason.class);
+        util.exportExcel(response, list, "predictseason数据");
+    }
+
+    /**
+     * 获取predictseason详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('predictseason:predictseason:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(predictseasonService.selectPredictseasonById(id));
+    }
+
+    /**
+     * 新增predictseason
+     */
+    @PreAuthorize("@ss.hasPermi('predictseason:predictseason:add')")
+    @Log(title = "predictseason", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody Predictseason predictseason)
+    {
+        return toAjax(predictseasonService.insertPredictseason(predictseason));
+    }
+
+    /**
+     * 修改predictseason
+     */
+    @PreAuthorize("@ss.hasPermi('predictseason:predictseason:edit')")
+    @Log(title = "predictseason", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody Predictseason predictseason)
+    {
+        return toAjax(predictseasonService.updatePredictseason(predictseason));
+    }
+
+    /**
+     * 删除predictseason
+     */
+    @PreAuthorize("@ss.hasPermi('predictseason:predictseason:remove')")
+    @Log(title = "predictseason", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(predictseasonService.deletePredictseasonByIds(ids));
+    }
+}

+ 205 - 0
enteprise-admin/src/main/java/com/enteprise/predictseason/domain/Predictseason.java

@@ -0,0 +1,205 @@
+package com.enteprise.predictseason.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.enteprise.common.annotation.Excel;
+import com.enteprise.common.core.domain.BaseEntity;
+
+/**
+ * predictseason对象 predictseason
+ *
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+public class Predictseason extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String enterpriseName;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String location;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String code;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long totalIndustrialValuePredict;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long taxableIncomePredict;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long paidTaxPredict;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long energyConsumePredict;
+
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long powerConsumePredict;
+
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long fundingConsumePredict;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String year;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String month;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String model;
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId()
+    {
+        return id;
+    }
+    public void setEnterpriseName(String enterpriseName)
+    {
+        this.enterpriseName = enterpriseName;
+    }
+
+    public String getEnterpriseName()
+    {
+        return enterpriseName;
+    }
+    public void setLocation(String location)
+    {
+        this.location = location;
+    }
+
+    public String getLocation()
+    {
+        return location;
+    }
+    public void setCode(String code)
+    {
+        this.code = code;
+    }
+
+    public String getCode()
+    {
+        return code;
+    }
+    public void setTotalIndustrialValuePredict(Long totalIndustrialValuePredict)
+    {
+        this.totalIndustrialValuePredict = totalIndustrialValuePredict;
+    }
+
+    public Long getTotalIndustrialValuePredict()
+    {
+        return totalIndustrialValuePredict;
+    }
+    public void setTaxableIncomePredict(Long taxableIncomePredict)
+    {
+        this.taxableIncomePredict = taxableIncomePredict;
+    }
+
+    public Long getTaxableIncomePredict()
+    {
+        return taxableIncomePredict;
+    }
+    public void setPaidTaxPredict(Long paidTaxPredict)
+    {
+        this.paidTaxPredict = paidTaxPredict;
+    }
+
+    public Long getPaidTaxPredict()
+    {
+        return paidTaxPredict;
+    }
+    public void setEnergyConsumePredict(Long energyConsumePredict)
+    {
+        this.energyConsumePredict = energyConsumePredict;
+    }
+
+    public Long getEnergyConsumePredict()
+    {
+        return energyConsumePredict;
+    }
+    public void setYear(String year)
+    {
+        this.year = year;
+    }
+
+    public void setPowerConsumePredict(Long powerConsumePredict)
+    {
+        this.powerConsumePredict = powerConsumePredict;
+    }
+
+    public Long getPowerConsumePredict()
+    {
+        return powerConsumePredict;
+    }
+
+    public void setFundingConsumePredict(Long fundingConsumePredict)
+    {
+        this.fundingConsumePredict = fundingConsumePredict;
+    }
+
+    public Long getFundingConsumePredict()
+    {
+        return fundingConsumePredict;
+    }
+
+    public String getYear()
+    {
+        return year;
+    }
+    public void setMonth(String month)
+    {
+        this.month = month;
+    }
+
+    public String getMonth()
+    {
+        return month;
+    }
+    public void setModel(String model)
+    {
+        this.model = model;
+    }
+
+    public String getModel()
+    {
+        return model;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("enterpriseName", getEnterpriseName())
+            .append("location", getLocation())
+            .append("code", getCode())
+            .append("totalIndustrialValuePredict", getTotalIndustrialValuePredict())
+            .append("taxableIncomePredict", getTaxableIncomePredict())
+            .append("paidTaxPredict", getPaidTaxPredict())
+            .append("energyConsumePredict", getEnergyConsumePredict())
+                .append("powerConsumePredict", getPowerConsumePredict())
+                .append("fundingConsumePredict", getFundingConsumePredict())
+            .append("year", getYear())
+            .append("month", getMonth())
+            .append("model", getModel())
+            .toString();
+    }
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/predictseason/mapper/PredictseasonMapper.java

@@ -0,0 +1,61 @@
+package com.enteprise.predictseason.mapper;
+
+import java.util.List;
+import com.enteprise.predictseason.domain.Predictseason;
+
+/**
+ * predictseasonMapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+public interface PredictseasonMapper 
+{
+    /**
+     * 查询predictseason
+     * 
+     * @param id predictseason主键
+     * @return predictseason
+     */
+    public Predictseason selectPredictseasonById(Long id);
+
+    /**
+     * 查询predictseason列表
+     * 
+     * @param predictseason predictseason
+     * @return predictseason集合
+     */
+    public List<Predictseason> selectPredictseasonList(Predictseason predictseason);
+
+    /**
+     * 新增predictseason
+     * 
+     * @param predictseason predictseason
+     * @return 结果
+     */
+    public int insertPredictseason(Predictseason predictseason);
+
+    /**
+     * 修改predictseason
+     * 
+     * @param predictseason predictseason
+     * @return 结果
+     */
+    public int updatePredictseason(Predictseason predictseason);
+
+    /**
+     * 删除predictseason
+     * 
+     * @param id predictseason主键
+     * @return 结果
+     */
+    public int deletePredictseasonById(Long id);
+
+    /**
+     * 批量删除predictseason
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deletePredictseasonByIds(Long[] ids);
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/predictseason/service/IPredictseasonService.java

@@ -0,0 +1,61 @@
+package com.enteprise.predictseason.service;
+
+import java.util.List;
+import com.enteprise.predictseason.domain.Predictseason;
+
+/**
+ * predictseasonService接口
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+public interface IPredictseasonService 
+{
+    /**
+     * 查询predictseason
+     * 
+     * @param id predictseason主键
+     * @return predictseason
+     */
+    public Predictseason selectPredictseasonById(Long id);
+
+    /**
+     * 查询predictseason列表
+     * 
+     * @param predictseason predictseason
+     * @return predictseason集合
+     */
+    public List<Predictseason> selectPredictseasonList(Predictseason predictseason);
+
+    /**
+     * 新增predictseason
+     * 
+     * @param predictseason predictseason
+     * @return 结果
+     */
+    public int insertPredictseason(Predictseason predictseason);
+
+    /**
+     * 修改predictseason
+     * 
+     * @param predictseason predictseason
+     * @return 结果
+     */
+    public int updatePredictseason(Predictseason predictseason);
+
+    /**
+     * 批量删除predictseason
+     * 
+     * @param ids 需要删除的predictseason主键集合
+     * @return 结果
+     */
+    public int deletePredictseasonByIds(Long[] ids);
+
+    /**
+     * 删除predictseason信息
+     * 
+     * @param id predictseason主键
+     * @return 结果
+     */
+    public int deletePredictseasonById(Long id);
+}

+ 93 - 0
enteprise-admin/src/main/java/com/enteprise/predictseason/service/impl/PredictseasonServiceImpl.java

@@ -0,0 +1,93 @@
+package com.enteprise.predictseason.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.enteprise.predictseason.mapper.PredictseasonMapper;
+import com.enteprise.predictseason.domain.Predictseason;
+import com.enteprise.predictseason.service.IPredictseasonService;
+
+/**
+ * predictseasonService业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+@Service
+public class PredictseasonServiceImpl implements IPredictseasonService 
+{
+    @Autowired
+    private PredictseasonMapper predictseasonMapper;
+
+    /**
+     * 查询predictseason
+     * 
+     * @param id predictseason主键
+     * @return predictseason
+     */
+    @Override
+    public Predictseason selectPredictseasonById(Long id)
+    {
+        return predictseasonMapper.selectPredictseasonById(id);
+    }
+
+    /**
+     * 查询predictseason列表
+     * 
+     * @param predictseason predictseason
+     * @return predictseason
+     */
+    @Override
+    public List<Predictseason> selectPredictseasonList(Predictseason predictseason)
+    {
+        return predictseasonMapper.selectPredictseasonList(predictseason);
+    }
+
+    /**
+     * 新增predictseason
+     * 
+     * @param predictseason predictseason
+     * @return 结果
+     */
+    @Override
+    public int insertPredictseason(Predictseason predictseason)
+    {
+        return predictseasonMapper.insertPredictseason(predictseason);
+    }
+
+    /**
+     * 修改predictseason
+     * 
+     * @param predictseason predictseason
+     * @return 结果
+     */
+    @Override
+    public int updatePredictseason(Predictseason predictseason)
+    {
+        return predictseasonMapper.updatePredictseason(predictseason);
+    }
+
+    /**
+     * 批量删除predictseason
+     * 
+     * @param ids 需要删除的predictseason主键
+     * @return 结果
+     */
+    @Override
+    public int deletePredictseasonByIds(Long[] ids)
+    {
+        return predictseasonMapper.deletePredictseasonByIds(ids);
+    }
+
+    /**
+     * 删除predictseason信息
+     * 
+     * @param id predictseason主键
+     * @return 结果
+     */
+    @Override
+    public int deletePredictseasonById(Long id)
+    {
+        return predictseasonMapper.deletePredictseasonById(id);
+    }
+}

+ 104 - 0
enteprise-admin/src/main/java/com/enteprise/predicttotal/controller/PredicttotalController.java

@@ -0,0 +1,104 @@
+package com.enteprise.predicttotal.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+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.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.predicttotal.domain.Predicttotal;
+import com.enteprise.predicttotal.service.IPredicttotalService;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.common.core.page.TableDataInfo;
+
+/**
+ * predicttotalController
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+@RestController
+@RequestMapping("/predicttotal/predicttotal")
+public class PredicttotalController extends BaseController
+{
+    @Autowired
+    private IPredicttotalService predicttotalService;
+
+    /**
+     * 查询predicttotal列表
+     */
+    @PreAuthorize("@ss.hasPermi('predicttotal:predicttotal:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(Predicttotal predicttotal)
+    {
+        startPage();
+        List<Predicttotal> list = predicttotalService.selectPredicttotalList(predicttotal);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出predicttotal列表
+     */
+    @PreAuthorize("@ss.hasPermi('predicttotal:predicttotal:export')")
+    @Log(title = "predicttotal", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, Predicttotal predicttotal)
+    {
+        List<Predicttotal> list = predicttotalService.selectPredicttotalList(predicttotal);
+        ExcelUtil<Predicttotal> util = new ExcelUtil<Predicttotal>(Predicttotal.class);
+        util.exportExcel(response, list, "predicttotal数据");
+    }
+
+    /**
+     * 获取predicttotal详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('predicttotal:predicttotal:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(predicttotalService.selectPredicttotalById(id));
+    }
+
+    /**
+     * 新增predicttotal
+     */
+    @PreAuthorize("@ss.hasPermi('predicttotal:predicttotal:add')")
+    @Log(title = "predicttotal", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody Predicttotal predicttotal)
+    {
+        return toAjax(predicttotalService.insertPredicttotal(predicttotal));
+    }
+
+    /**
+     * 修改predicttotal
+     */
+    @PreAuthorize("@ss.hasPermi('predicttotal:predicttotal:edit')")
+    @Log(title = "predicttotal", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody Predicttotal predicttotal)
+    {
+        return toAjax(predicttotalService.updatePredicttotal(predicttotal));
+    }
+
+    /**
+     * 删除predicttotal
+     */
+    @PreAuthorize("@ss.hasPermi('predicttotal:predicttotal:remove')")
+    @Log(title = "predicttotal", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(predicttotalService.deletePredicttotalByIds(ids));
+    }
+}

+ 222 - 0
enteprise-admin/src/main/java/com/enteprise/predicttotal/domain/Predicttotal.java

@@ -0,0 +1,222 @@
+package com.enteprise.predicttotal.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.enteprise.common.annotation.Excel;
+import com.enteprise.common.core.domain.BaseEntity;
+
+/**
+ * predicttotal对象 predicttotal
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+public class Predicttotal extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String enterpriseName;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String location;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String code;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long totalIndustrialValuePredict;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long taxableIncomePredict;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long paidTaxPredict;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long energyConsumePredict;
+
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long powerConsumePredict;
+
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long fundingConsumePredict;
+
+
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String year;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String month;
+
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String season;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String model;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setEnterpriseName(String enterpriseName) 
+    {
+        this.enterpriseName = enterpriseName;
+    }
+
+    public String getEnterpriseName() 
+    {
+        return enterpriseName;
+    }
+    public void setLocation(String location) 
+    {
+        this.location = location;
+    }
+
+    public String getLocation() 
+    {
+        return location;
+    }
+    public void setCode(String code) 
+    {
+        this.code = code;
+    }
+
+    public String getCode() 
+    {
+        return code;
+    }
+    public void setTotalIndustrialValuePredict(Long totalIndustrialValuePredict) 
+    {
+        this.totalIndustrialValuePredict = totalIndustrialValuePredict;
+    }
+
+    public Long getTotalIndustrialValuePredict() 
+    {
+        return totalIndustrialValuePredict;
+    }
+    public void setTaxableIncomePredict(Long taxableIncomePredict) 
+    {
+        this.taxableIncomePredict = taxableIncomePredict;
+    }
+
+    public Long getTaxableIncomePredict() 
+    {
+        return taxableIncomePredict;
+    }
+    public void setPaidTaxPredict(Long paidTaxPredict) 
+    {
+        this.paidTaxPredict = paidTaxPredict;
+    }
+
+    public Long getPaidTaxPredict() 
+    {
+        return paidTaxPredict;
+    }
+    public void setEnergyConsumePredict(Long energyConsumePredict) 
+    {
+        this.energyConsumePredict = energyConsumePredict;
+    }
+
+    public Long getEnergyConsumePredict() 
+    {
+        return energyConsumePredict;
+    }
+    public void setYear(String year) 
+    {
+        this.year = year;
+    }
+
+    public void setPowerConsumePredict(Long powerConsumePredict)
+    {
+        this.powerConsumePredict = powerConsumePredict;
+    }
+
+    public Long getPowerConsumePredict()
+    {
+        return powerConsumePredict;
+    }
+
+    public void setFundingConsumePredict(Long fundingConsumePredict)
+    {
+        this.fundingConsumePredict = fundingConsumePredict;
+    }
+
+    public Long getFundingConsumePredict()
+    {
+        return fundingConsumePredict;
+    }
+
+    public String getYear() 
+    {
+        return year;
+    }
+    public void setMonth(String month) 
+    {
+        this.month = month;
+    }
+
+    public String getMonth() 
+    {
+        return month;
+    }
+
+    public void setSeason(String season)
+    {
+        this.season = season;
+    }
+
+    public String getSeason()
+    {
+        return season;
+    }
+    public void setModel(String model) 
+    {
+        this.model = model;
+    }
+
+    public String getModel() 
+    {
+        return model;
+    }
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("enterpriseName", getEnterpriseName())
+            .append("location", getLocation())
+            .append("code", getCode())
+            .append("totalIndustrialValuePredict", getTotalIndustrialValuePredict())
+            .append("taxableIncomePredict", getTaxableIncomePredict())
+            .append("paidTaxPredict", getPaidTaxPredict())
+            .append("energyConsumePredict", getEnergyConsumePredict())
+                .append("powerConsumePredict", getPowerConsumePredict())
+                .append("fundingConsumePredict", getFundingConsumePredict())
+            .append("year", getYear())
+            .append("month", getMonth())
+                .append("season", getSeason())
+            .append("model", getModel())
+            .toString();
+    }
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/predicttotal/mapper/PredicttotalMapper.java

@@ -0,0 +1,61 @@
+package com.enteprise.predicttotal.mapper;
+
+import java.util.List;
+import com.enteprise.predicttotal.domain.Predicttotal;
+
+/**
+ * predicttotalMapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+public interface PredicttotalMapper 
+{
+    /**
+     * 查询predicttotal
+     * 
+     * @param id predicttotal主键
+     * @return predicttotal
+     */
+    public Predicttotal selectPredicttotalById(Long id);
+
+    /**
+     * 查询predicttotal列表
+     * 
+     * @param predicttotal predicttotal
+     * @return predicttotal集合
+     */
+    public List<Predicttotal> selectPredicttotalList(Predicttotal predicttotal);
+
+    /**
+     * 新增predicttotal
+     * 
+     * @param predicttotal predicttotal
+     * @return 结果
+     */
+    public int insertPredicttotal(Predicttotal predicttotal);
+
+    /**
+     * 修改predicttotal
+     * 
+     * @param predicttotal predicttotal
+     * @return 结果
+     */
+    public int updatePredicttotal(Predicttotal predicttotal);
+
+    /**
+     * 删除predicttotal
+     * 
+     * @param id predicttotal主键
+     * @return 结果
+     */
+    public int deletePredicttotalById(Long id);
+
+    /**
+     * 批量删除predicttotal
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deletePredicttotalByIds(Long[] ids);
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/predicttotal/service/IPredicttotalService.java

@@ -0,0 +1,61 @@
+package com.enteprise.predicttotal.service;
+
+import java.util.List;
+import com.enteprise.predicttotal.domain.Predicttotal;
+
+/**
+ * predicttotalService接口
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+public interface IPredicttotalService 
+{
+    /**
+     * 查询predicttotal
+     * 
+     * @param id predicttotal主键
+     * @return predicttotal
+     */
+    public Predicttotal selectPredicttotalById(Long id);
+
+    /**
+     * 查询predicttotal列表
+     * 
+     * @param predicttotal predicttotal
+     * @return predicttotal集合
+     */
+    public List<Predicttotal> selectPredicttotalList(Predicttotal predicttotal);
+
+    /**
+     * 新增predicttotal
+     * 
+     * @param predicttotal predicttotal
+     * @return 结果
+     */
+    public int insertPredicttotal(Predicttotal predicttotal);
+
+    /**
+     * 修改predicttotal
+     * 
+     * @param predicttotal predicttotal
+     * @return 结果
+     */
+    public int updatePredicttotal(Predicttotal predicttotal);
+
+    /**
+     * 批量删除predicttotal
+     * 
+     * @param ids 需要删除的predicttotal主键集合
+     * @return 结果
+     */
+    public int deletePredicttotalByIds(Long[] ids);
+
+    /**
+     * 删除predicttotal信息
+     * 
+     * @param id predicttotal主键
+     * @return 结果
+     */
+    public int deletePredicttotalById(Long id);
+}

+ 93 - 0
enteprise-admin/src/main/java/com/enteprise/predicttotal/service/impl/PredicttotalServiceImpl.java

@@ -0,0 +1,93 @@
+package com.enteprise.predicttotal.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.enteprise.predicttotal.mapper.PredicttotalMapper;
+import com.enteprise.predicttotal.domain.Predicttotal;
+import com.enteprise.predicttotal.service.IPredicttotalService;
+
+/**
+ * predicttotalService业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+@Service
+public class PredicttotalServiceImpl implements IPredicttotalService 
+{
+    @Autowired
+    private PredicttotalMapper predicttotalMapper;
+
+    /**
+     * 查询predicttotal
+     * 
+     * @param id predicttotal主键
+     * @return predicttotal
+     */
+    @Override
+    public Predicttotal selectPredicttotalById(Long id)
+    {
+        return predicttotalMapper.selectPredicttotalById(id);
+    }
+
+    /**
+     * 查询predicttotal列表
+     * 
+     * @param predicttotal predicttotal
+     * @return predicttotal
+     */
+    @Override
+    public List<Predicttotal> selectPredicttotalList(Predicttotal predicttotal)
+    {
+        return predicttotalMapper.selectPredicttotalList(predicttotal);
+    }
+
+    /**
+     * 新增predicttotal
+     * 
+     * @param predicttotal predicttotal
+     * @return 结果
+     */
+    @Override
+    public int insertPredicttotal(Predicttotal predicttotal)
+    {
+        return predicttotalMapper.insertPredicttotal(predicttotal);
+    }
+
+    /**
+     * 修改predicttotal
+     * 
+     * @param predicttotal predicttotal
+     * @return 结果
+     */
+    @Override
+    public int updatePredicttotal(Predicttotal predicttotal)
+    {
+        return predicttotalMapper.updatePredicttotal(predicttotal);
+    }
+
+    /**
+     * 批量删除predicttotal
+     * 
+     * @param ids 需要删除的predicttotal主键
+     * @return 结果
+     */
+    @Override
+    public int deletePredicttotalByIds(Long[] ids)
+    {
+        return predicttotalMapper.deletePredicttotalByIds(ids);
+    }
+
+    /**
+     * 删除predicttotal信息
+     * 
+     * @param id predicttotal主键
+     * @return 结果
+     */
+    @Override
+    public int deletePredicttotalById(Long id)
+    {
+        return predicttotalMapper.deletePredicttotalById(id);
+    }
+}

+ 104 - 0
enteprise-admin/src/main/java/com/enteprise/predictyear/controller/PredictyearController.java

@@ -0,0 +1,104 @@
+package com.enteprise.predictyear.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+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.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.predictyear.domain.Predictyear;
+import com.enteprise.predictyear.service.IPredictyearService;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.common.core.page.TableDataInfo;
+
+/**
+ * predictyearController
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+@RestController
+@RequestMapping("/predictyear/predictyear")
+public class PredictyearController extends BaseController
+{
+    @Autowired
+    private IPredictyearService predictyearService;
+
+    /**
+     * 查询predictyear列表
+     */
+    @PreAuthorize("@ss.hasPermi('predictyear:predictyear:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(Predictyear predictyear)
+    {
+        startPage();
+        List<Predictyear> list = predictyearService.selectPredictyearList(predictyear);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出predictyear列表
+     */
+    @PreAuthorize("@ss.hasPermi('predictyear:predictyear:export')")
+    @Log(title = "predictyear", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, Predictyear predictyear)
+    {
+        List<Predictyear> list = predictyearService.selectPredictyearList(predictyear);
+        ExcelUtil<Predictyear> util = new ExcelUtil<Predictyear>(Predictyear.class);
+        util.exportExcel(response, list, "predictyear数据");
+    }
+
+    /**
+     * 获取predictyear详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('predictyear:predictyear:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(predictyearService.selectPredictyearById(id));
+    }
+
+    /**
+     * 新增predictyear
+     */
+    @PreAuthorize("@ss.hasPermi('predictyear:predictyear:add')")
+    @Log(title = "predictyear", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody Predictyear predictyear)
+    {
+        return toAjax(predictyearService.insertPredictyear(predictyear));
+    }
+
+    /**
+     * 修改predictyear
+     */
+    @PreAuthorize("@ss.hasPermi('predictyear:predictyear:edit')")
+    @Log(title = "predictyear", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody Predictyear predictyear)
+    {
+        return toAjax(predictyearService.updatePredictyear(predictyear));
+    }
+
+    /**
+     * 删除predictyear
+     */
+    @PreAuthorize("@ss.hasPermi('predictyear:predictyear:remove')")
+    @Log(title = "predictyear", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(predictyearService.deletePredictyearByIds(ids));
+    }
+}

+ 206 - 0
enteprise-admin/src/main/java/com/enteprise/predictyear/domain/Predictyear.java

@@ -0,0 +1,206 @@
+package com.enteprise.predictyear.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.enteprise.common.annotation.Excel;
+import com.enteprise.common.core.domain.BaseEntity;
+
+/**
+ * predictyear对象 predictyear
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+public class Predictyear extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String enterpriseName;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String location;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String code;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long totalIndustrialValuePredict;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long taxableIncomePredict;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long paidTaxPredict;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long energyConsumePredict;
+
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long powerConsumePredict;
+
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long fundingConsumePredict;
+
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String year;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String month;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String model;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setEnterpriseName(String enterpriseName) 
+    {
+        this.enterpriseName = enterpriseName;
+    }
+
+    public String getEnterpriseName() 
+    {
+        return enterpriseName;
+    }
+    public void setLocation(String location) 
+    {
+        this.location = location;
+    }
+
+    public String getLocation() 
+    {
+        return location;
+    }
+    public void setCode(String code) 
+    {
+        this.code = code;
+    }
+
+    public String getCode() 
+    {
+        return code;
+    }
+    public void setTotalIndustrialValuePredict(Long totalIndustrialValuePredict) 
+    {
+        this.totalIndustrialValuePredict = totalIndustrialValuePredict;
+    }
+
+    public Long getTotalIndustrialValuePredict() 
+    {
+        return totalIndustrialValuePredict;
+    }
+    public void setTaxableIncomePredict(Long taxableIncomePredict) 
+    {
+        this.taxableIncomePredict = taxableIncomePredict;
+    }
+
+    public Long getTaxableIncomePredict() 
+    {
+        return taxableIncomePredict;
+    }
+    public void setPaidTaxPredict(Long paidTaxPredict) 
+    {
+        this.paidTaxPredict = paidTaxPredict;
+    }
+
+    public Long getPaidTaxPredict() 
+    {
+        return paidTaxPredict;
+    }
+    public void setEnergyConsumePredict(Long energyConsumePredict) 
+    {
+        this.energyConsumePredict = energyConsumePredict;
+    }
+
+    public void setPowerConsumePredict(Long powerConsumePredict)
+    {
+        this.powerConsumePredict = powerConsumePredict;
+    }
+
+    public Long getPowerConsumePredict()
+    {
+        return powerConsumePredict;
+    }
+
+    public void setFundingConsumePredict(Long fundingConsumePredict)
+    {
+        this.fundingConsumePredict = fundingConsumePredict;
+    }
+
+    public Long getFundingConsumePredict()
+    {
+        return fundingConsumePredict;
+    }
+
+    public Long getEnergyConsumePredict() 
+    {
+        return energyConsumePredict;
+    }
+    public void setYear(String year) 
+    {
+        this.year = year;
+    }
+
+    public String getYear() 
+    {
+        return year;
+    }
+    public void setMonth(String month) 
+    {
+        this.month = month;
+    }
+
+    public String getMonth() 
+    {
+        return month;
+    }
+    public void setModel(String model) 
+    {
+        this.model = model;
+    }
+
+    public String getModel() 
+    {
+        return model;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("enterpriseName", getEnterpriseName())
+            .append("location", getLocation())
+            .append("code", getCode())
+            .append("totalIndustrialValuePredict", getTotalIndustrialValuePredict())
+            .append("taxableIncomePredict", getTaxableIncomePredict())
+            .append("paidTaxPredict", getPaidTaxPredict())
+            .append("energyConsumePredict", getEnergyConsumePredict())
+                .append("powerConsumePredict", getPowerConsumePredict())
+                .append("fundingConsumePredict", getFundingConsumePredict())
+            .append("year", getYear())
+            .append("month", getMonth())
+            .append("model", getModel())
+            .toString();
+    }
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/predictyear/mapper/PredictyearMapper.java

@@ -0,0 +1,61 @@
+package com.enteprise.predictyear.mapper;
+
+import java.util.List;
+import com.enteprise.predictyear.domain.Predictyear;
+
+/**
+ * predictyearMapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+public interface PredictyearMapper 
+{
+    /**
+     * 查询predictyear
+     * 
+     * @param id predictyear主键
+     * @return predictyear
+     */
+    public Predictyear selectPredictyearById(Long id);
+
+    /**
+     * 查询predictyear列表
+     * 
+     * @param predictyear predictyear
+     * @return predictyear集合
+     */
+    public List<Predictyear> selectPredictyearList(Predictyear predictyear);
+
+    /**
+     * 新增predictyear
+     * 
+     * @param predictyear predictyear
+     * @return 结果
+     */
+    public int insertPredictyear(Predictyear predictyear);
+
+    /**
+     * 修改predictyear
+     * 
+     * @param predictyear predictyear
+     * @return 结果
+     */
+    public int updatePredictyear(Predictyear predictyear);
+
+    /**
+     * 删除predictyear
+     * 
+     * @param id predictyear主键
+     * @return 结果
+     */
+    public int deletePredictyearById(Long id);
+
+    /**
+     * 批量删除predictyear
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deletePredictyearByIds(Long[] ids);
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/predictyear/service/IPredictyearService.java

@@ -0,0 +1,61 @@
+package com.enteprise.predictyear.service;
+
+import java.util.List;
+import com.enteprise.predictyear.domain.Predictyear;
+
+/**
+ * predictyearService接口
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+public interface IPredictyearService 
+{
+    /**
+     * 查询predictyear
+     * 
+     * @param id predictyear主键
+     * @return predictyear
+     */
+    public Predictyear selectPredictyearById(Long id);
+
+    /**
+     * 查询predictyear列表
+     * 
+     * @param predictyear predictyear
+     * @return predictyear集合
+     */
+    public List<Predictyear> selectPredictyearList(Predictyear predictyear);
+
+    /**
+     * 新增predictyear
+     * 
+     * @param predictyear predictyear
+     * @return 结果
+     */
+    public int insertPredictyear(Predictyear predictyear);
+
+    /**
+     * 修改predictyear
+     * 
+     * @param predictyear predictyear
+     * @return 结果
+     */
+    public int updatePredictyear(Predictyear predictyear);
+
+    /**
+     * 批量删除predictyear
+     * 
+     * @param ids 需要删除的predictyear主键集合
+     * @return 结果
+     */
+    public int deletePredictyearByIds(Long[] ids);
+
+    /**
+     * 删除predictyear信息
+     * 
+     * @param id predictyear主键
+     * @return 结果
+     */
+    public int deletePredictyearById(Long id);
+}

+ 93 - 0
enteprise-admin/src/main/java/com/enteprise/predictyear/service/impl/PredictyearServiceImpl.java

@@ -0,0 +1,93 @@
+package com.enteprise.predictyear.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.enteprise.predictyear.mapper.PredictyearMapper;
+import com.enteprise.predictyear.domain.Predictyear;
+import com.enteprise.predictyear.service.IPredictyearService;
+
+/**
+ * predictyearService业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+@Service
+public class PredictyearServiceImpl implements IPredictyearService 
+{
+    @Autowired
+    private PredictyearMapper predictyearMapper;
+
+    /**
+     * 查询predictyear
+     * 
+     * @param id predictyear主键
+     * @return predictyear
+     */
+    @Override
+    public Predictyear selectPredictyearById(Long id)
+    {
+        return predictyearMapper.selectPredictyearById(id);
+    }
+
+    /**
+     * 查询predictyear列表
+     * 
+     * @param predictyear predictyear
+     * @return predictyear
+     */
+    @Override
+    public List<Predictyear> selectPredictyearList(Predictyear predictyear)
+    {
+        return predictyearMapper.selectPredictyearList(predictyear);
+    }
+
+    /**
+     * 新增predictyear
+     * 
+     * @param predictyear predictyear
+     * @return 结果
+     */
+    @Override
+    public int insertPredictyear(Predictyear predictyear)
+    {
+        return predictyearMapper.insertPredictyear(predictyear);
+    }
+
+    /**
+     * 修改predictyear
+     * 
+     * @param predictyear predictyear
+     * @return 结果
+     */
+    @Override
+    public int updatePredictyear(Predictyear predictyear)
+    {
+        return predictyearMapper.updatePredictyear(predictyear);
+    }
+
+    /**
+     * 批量删除predictyear
+     * 
+     * @param ids 需要删除的predictyear主键
+     * @return 结果
+     */
+    @Override
+    public int deletePredictyearByIds(Long[] ids)
+    {
+        return predictyearMapper.deletePredictyearByIds(ids);
+    }
+
+    /**
+     * 删除predictyear信息
+     * 
+     * @param id predictyear主键
+     * @return 结果
+     */
+    @Override
+    public int deletePredictyearById(Long id)
+    {
+        return predictyearMapper.deletePredictyearById(id);
+    }
+}

+ 104 - 0
enteprise-admin/src/main/java/com/enteprise/run_data_month/controller/EnterpriseRunDataMonthController.java

@@ -0,0 +1,104 @@
+package com.enteprise.run_data_month.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+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.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.run_data_month.domain.EnterpriseRunDataMonth;
+import com.enteprise.run_data_month.service.IEnterpriseRunDataMonthService;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.common.core.page.TableDataInfo;
+
+/**
+ * run_data_monthController
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+@RestController
+@RequestMapping("/run_data_month/run_data_month")
+public class EnterpriseRunDataMonthController extends BaseController
+{
+    @Autowired
+    private IEnterpriseRunDataMonthService enterpriseRunDataMonthService;
+
+    /**
+     * 查询run_data_month列表
+     */
+    @PreAuthorize("@ss.hasPermi('run_data_month:run_data_month:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(EnterpriseRunDataMonth enterpriseRunDataMonth)
+    {
+        startPage();
+        List<EnterpriseRunDataMonth> list = enterpriseRunDataMonthService.selectEnterpriseRunDataMonthList(enterpriseRunDataMonth);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出run_data_month列表
+     */
+    @PreAuthorize("@ss.hasPermi('run_data_month:run_data_month:export')")
+    @Log(title = "run_data_month", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, EnterpriseRunDataMonth enterpriseRunDataMonth)
+    {
+        List<EnterpriseRunDataMonth> list = enterpriseRunDataMonthService.selectEnterpriseRunDataMonthList(enterpriseRunDataMonth);
+        ExcelUtil<EnterpriseRunDataMonth> util = new ExcelUtil<EnterpriseRunDataMonth>(EnterpriseRunDataMonth.class);
+        util.exportExcel(response, list, "run_data_month数据");
+    }
+
+    /**
+     * 获取run_data_month详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('run_data_month:run_data_month:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(enterpriseRunDataMonthService.selectEnterpriseRunDataMonthById(id));
+    }
+
+    /**
+     * 新增run_data_month
+     */
+    @PreAuthorize("@ss.hasPermi('run_data_month:run_data_month:add')")
+    @Log(title = "run_data_month", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody EnterpriseRunDataMonth enterpriseRunDataMonth)
+    {
+        return toAjax(enterpriseRunDataMonthService.insertEnterpriseRunDataMonth(enterpriseRunDataMonth));
+    }
+
+    /**
+     * 修改run_data_month
+     */
+    @PreAuthorize("@ss.hasPermi('run_data_month:run_data_month:edit')")
+    @Log(title = "run_data_month", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody EnterpriseRunDataMonth enterpriseRunDataMonth)
+    {
+        return toAjax(enterpriseRunDataMonthService.updateEnterpriseRunDataMonth(enterpriseRunDataMonth));
+    }
+
+    /**
+     * 删除run_data_month
+     */
+    @PreAuthorize("@ss.hasPermi('run_data_month:run_data_month:remove')")
+    @Log(title = "run_data_month", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(enterpriseRunDataMonthService.deleteEnterpriseRunDataMonthByIds(ids));
+    }
+}

+ 135 - 0
enteprise-admin/src/main/java/com/enteprise/run_data_month/domain/EnterpriseRunDataMonth.java

@@ -0,0 +1,135 @@
+package com.enteprise.run_data_month.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.enteprise.common.annotation.Excel;
+import com.enteprise.common.core.domain.BaseEntity;
+
+/**
+ * run_data_month对象 enterprise_run_data_month
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public class EnterpriseRunDataMonth extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 企业名称 */
+    @Excel(name = "企业名称")
+    private String enterpriseName;
+
+    /** 坐落地 */
+    @Excel(name = "坐落地")
+    private String location;
+
+    /** 行业代码 */
+    @Excel(name = "行业代码")
+    private String code;
+
+    /** 电力消费 */
+    @Excel(name = "电力消费")
+    private Long powerConsume;
+
+    /** 燃气消费 */
+    @Excel(name = "燃气消费")
+    private Long energyConsume;
+
+    /** 年份 */
+    @Excel(name = "年份")
+    private String year;
+
+    /** 月份 */
+    @Excel(name = "月份")
+    private String month;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setEnterpriseName(String enterpriseName) 
+    {
+        this.enterpriseName = enterpriseName;
+    }
+
+    public String getEnterpriseName() 
+    {
+        return enterpriseName;
+    }
+    public void setLocation(String location) 
+    {
+        this.location = location;
+    }
+
+    public String getLocation() 
+    {
+        return location;
+    }
+    public void setCode(String code) 
+    {
+        this.code = code;
+    }
+
+    public String getCode() 
+    {
+        return code;
+    }
+    public void setPowerConsume(Long powerConsume) 
+    {
+        this.powerConsume = powerConsume;
+    }
+
+    public Long getPowerConsume() 
+    {
+        return powerConsume;
+    }
+    public void setEnergyConsume(Long energyConsume) 
+    {
+        this.energyConsume = energyConsume;
+    }
+
+    public Long getEnergyConsume() 
+    {
+        return energyConsume;
+    }
+    public void setYear(String year) 
+    {
+        this.year = year;
+    }
+
+    public String getYear() 
+    {
+        return year;
+    }
+    public void setMonth(String month) 
+    {
+        this.month = month;
+    }
+
+    public String getMonth() 
+    {
+        return month;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("enterpriseName", getEnterpriseName())
+            .append("location", getLocation())
+            .append("code", getCode())
+            .append("powerConsume", getPowerConsume())
+            .append("energyConsume", getEnergyConsume())
+            .append("year", getYear())
+            .append("month", getMonth())
+            .toString();
+    }
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/run_data_month/mapper/EnterpriseRunDataMonthMapper.java

@@ -0,0 +1,61 @@
+package com.enteprise.run_data_month.mapper;
+
+import java.util.List;
+import com.enteprise.run_data_month.domain.EnterpriseRunDataMonth;
+
+/**
+ * run_data_monthMapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public interface EnterpriseRunDataMonthMapper 
+{
+    /**
+     * 查询run_data_month
+     * 
+     * @param id run_data_month主键
+     * @return run_data_month
+     */
+    public EnterpriseRunDataMonth selectEnterpriseRunDataMonthById(Long id);
+
+    /**
+     * 查询run_data_month列表
+     * 
+     * @param enterpriseRunDataMonth run_data_month
+     * @return run_data_month集合
+     */
+    public List<EnterpriseRunDataMonth> selectEnterpriseRunDataMonthList(EnterpriseRunDataMonth enterpriseRunDataMonth);
+
+    /**
+     * 新增run_data_month
+     * 
+     * @param enterpriseRunDataMonth run_data_month
+     * @return 结果
+     */
+    public int insertEnterpriseRunDataMonth(EnterpriseRunDataMonth enterpriseRunDataMonth);
+
+    /**
+     * 修改run_data_month
+     * 
+     * @param enterpriseRunDataMonth run_data_month
+     * @return 结果
+     */
+    public int updateEnterpriseRunDataMonth(EnterpriseRunDataMonth enterpriseRunDataMonth);
+
+    /**
+     * 删除run_data_month
+     * 
+     * @param id run_data_month主键
+     * @return 结果
+     */
+    public int deleteEnterpriseRunDataMonthById(Long id);
+
+    /**
+     * 批量删除run_data_month
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteEnterpriseRunDataMonthByIds(Long[] ids);
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/run_data_month/service/IEnterpriseRunDataMonthService.java

@@ -0,0 +1,61 @@
+package com.enteprise.run_data_month.service;
+
+import java.util.List;
+import com.enteprise.run_data_month.domain.EnterpriseRunDataMonth;
+
+/**
+ * run_data_monthService接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public interface IEnterpriseRunDataMonthService 
+{
+    /**
+     * 查询run_data_month
+     * 
+     * @param id run_data_month主键
+     * @return run_data_month
+     */
+    public EnterpriseRunDataMonth selectEnterpriseRunDataMonthById(Long id);
+
+    /**
+     * 查询run_data_month列表
+     * 
+     * @param enterpriseRunDataMonth run_data_month
+     * @return run_data_month集合
+     */
+    public List<EnterpriseRunDataMonth> selectEnterpriseRunDataMonthList(EnterpriseRunDataMonth enterpriseRunDataMonth);
+
+    /**
+     * 新增run_data_month
+     * 
+     * @param enterpriseRunDataMonth run_data_month
+     * @return 结果
+     */
+    public int insertEnterpriseRunDataMonth(EnterpriseRunDataMonth enterpriseRunDataMonth);
+
+    /**
+     * 修改run_data_month
+     * 
+     * @param enterpriseRunDataMonth run_data_month
+     * @return 结果
+     */
+    public int updateEnterpriseRunDataMonth(EnterpriseRunDataMonth enterpriseRunDataMonth);
+
+    /**
+     * 批量删除run_data_month
+     * 
+     * @param ids 需要删除的run_data_month主键集合
+     * @return 结果
+     */
+    public int deleteEnterpriseRunDataMonthByIds(Long[] ids);
+
+    /**
+     * 删除run_data_month信息
+     * 
+     * @param id run_data_month主键
+     * @return 结果
+     */
+    public int deleteEnterpriseRunDataMonthById(Long id);
+}

+ 93 - 0
enteprise-admin/src/main/java/com/enteprise/run_data_month/service/impl/EnterpriseRunDataMonthServiceImpl.java

@@ -0,0 +1,93 @@
+package com.enteprise.run_data_month.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.enteprise.run_data_month.mapper.EnterpriseRunDataMonthMapper;
+import com.enteprise.run_data_month.domain.EnterpriseRunDataMonth;
+import com.enteprise.run_data_month.service.IEnterpriseRunDataMonthService;
+
+/**
+ * run_data_monthService业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+@Service
+public class EnterpriseRunDataMonthServiceImpl implements IEnterpriseRunDataMonthService 
+{
+    @Autowired
+    private EnterpriseRunDataMonthMapper enterpriseRunDataMonthMapper;
+
+    /**
+     * 查询run_data_month
+     * 
+     * @param id run_data_month主键
+     * @return run_data_month
+     */
+    @Override
+    public EnterpriseRunDataMonth selectEnterpriseRunDataMonthById(Long id)
+    {
+        return enterpriseRunDataMonthMapper.selectEnterpriseRunDataMonthById(id);
+    }
+
+    /**
+     * 查询run_data_month列表
+     * 
+     * @param enterpriseRunDataMonth run_data_month
+     * @return run_data_month
+     */
+    @Override
+    public List<EnterpriseRunDataMonth> selectEnterpriseRunDataMonthList(EnterpriseRunDataMonth enterpriseRunDataMonth)
+    {
+        return enterpriseRunDataMonthMapper.selectEnterpriseRunDataMonthList(enterpriseRunDataMonth);
+    }
+
+    /**
+     * 新增run_data_month
+     * 
+     * @param enterpriseRunDataMonth run_data_month
+     * @return 结果
+     */
+    @Override
+    public int insertEnterpriseRunDataMonth(EnterpriseRunDataMonth enterpriseRunDataMonth)
+    {
+        return enterpriseRunDataMonthMapper.insertEnterpriseRunDataMonth(enterpriseRunDataMonth);
+    }
+
+    /**
+     * 修改run_data_month
+     * 
+     * @param enterpriseRunDataMonth run_data_month
+     * @return 结果
+     */
+    @Override
+    public int updateEnterpriseRunDataMonth(EnterpriseRunDataMonth enterpriseRunDataMonth)
+    {
+        return enterpriseRunDataMonthMapper.updateEnterpriseRunDataMonth(enterpriseRunDataMonth);
+    }
+
+    /**
+     * 批量删除run_data_month
+     * 
+     * @param ids 需要删除的run_data_month主键
+     * @return 结果
+     */
+    @Override
+    public int deleteEnterpriseRunDataMonthByIds(Long[] ids)
+    {
+        return enterpriseRunDataMonthMapper.deleteEnterpriseRunDataMonthByIds(ids);
+    }
+
+    /**
+     * 删除run_data_month信息
+     * 
+     * @param id run_data_month主键
+     * @return 结果
+     */
+    @Override
+    public int deleteEnterpriseRunDataMonthById(Long id)
+    {
+        return enterpriseRunDataMonthMapper.deleteEnterpriseRunDataMonthById(id);
+    }
+}

+ 104 - 0
enteprise-admin/src/main/java/com/enteprise/run_data_year/controller/EnterpriseRunDataYearController.java

@@ -0,0 +1,104 @@
+package com.enteprise.run_data_year.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+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.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.run_data_year.domain.EnterpriseRunDataYear;
+import com.enteprise.run_data_year.service.IEnterpriseRunDataYearService;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.common.core.page.TableDataInfo;
+
+/**
+ * run_data_yearController
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+@RestController
+@RequestMapping("/run_data_year/run_data_year")
+public class EnterpriseRunDataYearController extends BaseController
+{
+    @Autowired
+    private IEnterpriseRunDataYearService enterpriseRunDataYearService;
+
+    /**
+     * 查询run_data_year列表
+     */
+    @PreAuthorize("@ss.hasPermi('run_data_year:run_data_year:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(EnterpriseRunDataYear enterpriseRunDataYear)
+    {
+        startPage();
+        List<EnterpriseRunDataYear> list = enterpriseRunDataYearService.selectEnterpriseRunDataYearList(enterpriseRunDataYear);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出run_data_year列表
+     */
+    @PreAuthorize("@ss.hasPermi('run_data_year:run_data_year:export')")
+    @Log(title = "run_data_year", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, EnterpriseRunDataYear enterpriseRunDataYear)
+    {
+        List<EnterpriseRunDataYear> list = enterpriseRunDataYearService.selectEnterpriseRunDataYearList(enterpriseRunDataYear);
+        ExcelUtil<EnterpriseRunDataYear> util = new ExcelUtil<EnterpriseRunDataYear>(EnterpriseRunDataYear.class);
+        util.exportExcel(response, list, "run_data_year数据");
+    }
+
+    /**
+     * 获取run_data_year详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('run_data_year:run_data_year:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(enterpriseRunDataYearService.selectEnterpriseRunDataYearById(id));
+    }
+
+    /**
+     * 新增run_data_year
+     */
+    @PreAuthorize("@ss.hasPermi('run_data_year:run_data_year:add')")
+    @Log(title = "run_data_year", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody EnterpriseRunDataYear enterpriseRunDataYear)
+    {
+        return toAjax(enterpriseRunDataYearService.insertEnterpriseRunDataYear(enterpriseRunDataYear));
+    }
+
+    /**
+     * 修改run_data_year
+     */
+    @PreAuthorize("@ss.hasPermi('run_data_year:run_data_year:edit')")
+    @Log(title = "run_data_year", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody EnterpriseRunDataYear enterpriseRunDataYear)
+    {
+        return toAjax(enterpriseRunDataYearService.updateEnterpriseRunDataYear(enterpriseRunDataYear));
+    }
+
+    /**
+     * 删除run_data_year
+     */
+    @PreAuthorize("@ss.hasPermi('run_data_year:run_data_year:remove')")
+    @Log(title = "run_data_year", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(enterpriseRunDataYearService.deleteEnterpriseRunDataYearByIds(ids));
+    }
+}

+ 135 - 0
enteprise-admin/src/main/java/com/enteprise/run_data_year/domain/EnterpriseRunDataYear.java

@@ -0,0 +1,135 @@
+package com.enteprise.run_data_year.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.enteprise.common.annotation.Excel;
+import com.enteprise.common.core.domain.BaseEntity;
+
+/**
+ * run_data_year对象 enterprise_run_data_year
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public class EnterpriseRunDataYear extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 企业名称 */
+    @Excel(name = "企业名称")
+    private String enterpriseName;
+
+    /** 坐落地 */
+    @Excel(name = "坐落地")
+    private String location;
+
+    /** 行业代码 */
+    @Excel(name = "行业代码")
+    private String code;
+
+    /** 电力消费 */
+    @Excel(name = "电力消费")
+    private Long powerConsume;
+
+    /** 燃气消费 */
+    @Excel(name = "燃气消费")
+    private Long energyConsume;
+
+    /** 年份 */
+    @Excel(name = "年份")
+    private String year;
+
+    /** 月份 */
+    @Excel(name = "月份")
+    private String month;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setEnterpriseName(String enterpriseName) 
+    {
+        this.enterpriseName = enterpriseName;
+    }
+
+    public String getEnterpriseName() 
+    {
+        return enterpriseName;
+    }
+    public void setLocation(String location) 
+    {
+        this.location = location;
+    }
+
+    public String getLocation() 
+    {
+        return location;
+    }
+    public void setCode(String code) 
+    {
+        this.code = code;
+    }
+
+    public String getCode() 
+    {
+        return code;
+    }
+    public void setPowerConsume(Long powerConsume) 
+    {
+        this.powerConsume = powerConsume;
+    }
+
+    public Long getPowerConsume() 
+    {
+        return powerConsume;
+    }
+    public void setEnergyConsume(Long energyConsume) 
+    {
+        this.energyConsume = energyConsume;
+    }
+
+    public Long getEnergyConsume() 
+    {
+        return energyConsume;
+    }
+    public void setYear(String year) 
+    {
+        this.year = year;
+    }
+
+    public String getYear() 
+    {
+        return year;
+    }
+    public void setMonth(String month) 
+    {
+        this.month = month;
+    }
+
+    public String getMonth() 
+    {
+        return month;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("enterpriseName", getEnterpriseName())
+            .append("location", getLocation())
+            .append("code", getCode())
+            .append("powerConsume", getPowerConsume())
+            .append("energyConsume", getEnergyConsume())
+            .append("year", getYear())
+            .append("month", getMonth())
+            .toString();
+    }
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/run_data_year/mapper/EnterpriseRunDataYearMapper.java

@@ -0,0 +1,61 @@
+package com.enteprise.run_data_year.mapper;
+
+import java.util.List;
+import com.enteprise.run_data_year.domain.EnterpriseRunDataYear;
+
+/**
+ * run_data_yearMapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public interface EnterpriseRunDataYearMapper 
+{
+    /**
+     * 查询run_data_year
+     * 
+     * @param id run_data_year主键
+     * @return run_data_year
+     */
+    public EnterpriseRunDataYear selectEnterpriseRunDataYearById(Long id);
+
+    /**
+     * 查询run_data_year列表
+     * 
+     * @param enterpriseRunDataYear run_data_year
+     * @return run_data_year集合
+     */
+    public List<EnterpriseRunDataYear> selectEnterpriseRunDataYearList(EnterpriseRunDataYear enterpriseRunDataYear);
+
+    /**
+     * 新增run_data_year
+     * 
+     * @param enterpriseRunDataYear run_data_year
+     * @return 结果
+     */
+    public int insertEnterpriseRunDataYear(EnterpriseRunDataYear enterpriseRunDataYear);
+
+    /**
+     * 修改run_data_year
+     * 
+     * @param enterpriseRunDataYear run_data_year
+     * @return 结果
+     */
+    public int updateEnterpriseRunDataYear(EnterpriseRunDataYear enterpriseRunDataYear);
+
+    /**
+     * 删除run_data_year
+     * 
+     * @param id run_data_year主键
+     * @return 结果
+     */
+    public int deleteEnterpriseRunDataYearById(Long id);
+
+    /**
+     * 批量删除run_data_year
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteEnterpriseRunDataYearByIds(Long[] ids);
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/run_data_year/service/IEnterpriseRunDataYearService.java

@@ -0,0 +1,61 @@
+package com.enteprise.run_data_year.service;
+
+import java.util.List;
+import com.enteprise.run_data_year.domain.EnterpriseRunDataYear;
+
+/**
+ * run_data_yearService接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public interface IEnterpriseRunDataYearService 
+{
+    /**
+     * 查询run_data_year
+     * 
+     * @param id run_data_year主键
+     * @return run_data_year
+     */
+    public EnterpriseRunDataYear selectEnterpriseRunDataYearById(Long id);
+
+    /**
+     * 查询run_data_year列表
+     * 
+     * @param enterpriseRunDataYear run_data_year
+     * @return run_data_year集合
+     */
+    public List<EnterpriseRunDataYear> selectEnterpriseRunDataYearList(EnterpriseRunDataYear enterpriseRunDataYear);
+
+    /**
+     * 新增run_data_year
+     * 
+     * @param enterpriseRunDataYear run_data_year
+     * @return 结果
+     */
+    public int insertEnterpriseRunDataYear(EnterpriseRunDataYear enterpriseRunDataYear);
+
+    /**
+     * 修改run_data_year
+     * 
+     * @param enterpriseRunDataYear run_data_year
+     * @return 结果
+     */
+    public int updateEnterpriseRunDataYear(EnterpriseRunDataYear enterpriseRunDataYear);
+
+    /**
+     * 批量删除run_data_year
+     * 
+     * @param ids 需要删除的run_data_year主键集合
+     * @return 结果
+     */
+    public int deleteEnterpriseRunDataYearByIds(Long[] ids);
+
+    /**
+     * 删除run_data_year信息
+     * 
+     * @param id run_data_year主键
+     * @return 结果
+     */
+    public int deleteEnterpriseRunDataYearById(Long id);
+}

+ 93 - 0
enteprise-admin/src/main/java/com/enteprise/run_data_year/service/impl/EnterpriseRunDataYearServiceImpl.java

@@ -0,0 +1,93 @@
+package com.enteprise.run_data_year.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.enteprise.run_data_year.mapper.EnterpriseRunDataYearMapper;
+import com.enteprise.run_data_year.domain.EnterpriseRunDataYear;
+import com.enteprise.run_data_year.service.IEnterpriseRunDataYearService;
+
+/**
+ * run_data_yearService业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+@Service
+public class EnterpriseRunDataYearServiceImpl implements IEnterpriseRunDataYearService 
+{
+    @Autowired
+    private EnterpriseRunDataYearMapper enterpriseRunDataYearMapper;
+
+    /**
+     * 查询run_data_year
+     * 
+     * @param id run_data_year主键
+     * @return run_data_year
+     */
+    @Override
+    public EnterpriseRunDataYear selectEnterpriseRunDataYearById(Long id)
+    {
+        return enterpriseRunDataYearMapper.selectEnterpriseRunDataYearById(id);
+    }
+
+    /**
+     * 查询run_data_year列表
+     * 
+     * @param enterpriseRunDataYear run_data_year
+     * @return run_data_year
+     */
+    @Override
+    public List<EnterpriseRunDataYear> selectEnterpriseRunDataYearList(EnterpriseRunDataYear enterpriseRunDataYear)
+    {
+        return enterpriseRunDataYearMapper.selectEnterpriseRunDataYearList(enterpriseRunDataYear);
+    }
+
+    /**
+     * 新增run_data_year
+     * 
+     * @param enterpriseRunDataYear run_data_year
+     * @return 结果
+     */
+    @Override
+    public int insertEnterpriseRunDataYear(EnterpriseRunDataYear enterpriseRunDataYear)
+    {
+        return enterpriseRunDataYearMapper.insertEnterpriseRunDataYear(enterpriseRunDataYear);
+    }
+
+    /**
+     * 修改run_data_year
+     * 
+     * @param enterpriseRunDataYear run_data_year
+     * @return 结果
+     */
+    @Override
+    public int updateEnterpriseRunDataYear(EnterpriseRunDataYear enterpriseRunDataYear)
+    {
+        return enterpriseRunDataYearMapper.updateEnterpriseRunDataYear(enterpriseRunDataYear);
+    }
+
+    /**
+     * 批量删除run_data_year
+     * 
+     * @param ids 需要删除的run_data_year主键
+     * @return 结果
+     */
+    @Override
+    public int deleteEnterpriseRunDataYearByIds(Long[] ids)
+    {
+        return enterpriseRunDataYearMapper.deleteEnterpriseRunDataYearByIds(ids);
+    }
+
+    /**
+     * 删除run_data_year信息
+     * 
+     * @param id run_data_year主键
+     * @return 结果
+     */
+    @Override
+    public int deleteEnterpriseRunDataYearById(Long id)
+    {
+        return enterpriseRunDataYearMapper.deleteEnterpriseRunDataYearById(id);
+    }
+}

+ 104 - 0
enteprise-admin/src/main/java/com/enteprise/score/controller/ScoreController.java

@@ -0,0 +1,104 @@
+package com.enteprise.score.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+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.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.score.domain.Score;
+import com.enteprise.score.service.IScoreService;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.common.core.page.TableDataInfo;
+
+/**
+ * scoreController
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+@RestController
+@RequestMapping("/score/score")
+public class ScoreController extends BaseController
+{
+    @Autowired
+    private IScoreService scoreService;
+
+    /**
+     * 查询score列表
+     */
+    @PreAuthorize("@ss.hasPermi('score:score:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(Score score)
+    {
+        startPage();
+        List<Score> list = scoreService.selectScoreList(score);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出score列表
+     */
+    @PreAuthorize("@ss.hasPermi('score:score:export')")
+    @Log(title = "score", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, Score score)
+    {
+        List<Score> list = scoreService.selectScoreList(score);
+        ExcelUtil<Score> util = new ExcelUtil<Score>(Score.class);
+        util.exportExcel(response, list, "score数据");
+    }
+
+    /**
+     * 获取score详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('score:score:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(scoreService.selectScoreById(id));
+    }
+
+    /**
+     * 新增score
+     */
+    @PreAuthorize("@ss.hasPermi('score:score:add')")
+    @Log(title = "score", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody Score score)
+    {
+        return toAjax(scoreService.insertScore(score));
+    }
+
+    /**
+     * 修改score
+     */
+    @PreAuthorize("@ss.hasPermi('score:score:edit')")
+    @Log(title = "score", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody Score score)
+    {
+        return toAjax(scoreService.updateScore(score));
+    }
+
+    /**
+     * 删除score
+     */
+    @PreAuthorize("@ss.hasPermi('score:score:remove')")
+    @Log(title = "score", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(scoreService.deleteScoreByIds(ids));
+    }
+}

+ 288 - 0
enteprise-admin/src/main/java/com/enteprise/score/domain/Score.java

@@ -0,0 +1,288 @@
+package com.enteprise.score.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.enteprise.common.annotation.Excel;
+import com.enteprise.common.core.domain.BaseEntity;
+
+/**
+ * score对象 score
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public class Score extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 企业名称 */
+    @Excel(name = "企业名称")
+    private String enterpriseName;
+
+    /** 坐落地 */
+    @Excel(name = "坐落地")
+    private String location;
+
+    /** 行业代码 */
+    @Excel(name = "行业代码")
+    private String code;
+
+    /** 主营业务活动得分 */
+    @Excel(name = "主营业务活动得分")
+    private String mainBusinessScore;
+
+    /** 用地面积得分 */
+    @Excel(name = "用地面积得分")
+    private Double landAreaScore;
+
+    /** 工业总产值得分 */
+    @Excel(name = "工业总产值得分")
+    private Double totalIndustrialValueScore;
+
+    /** 工业增加值得分 */
+    @Excel(name = "工业增加值得分")
+    private Double gdpScore;
+
+    /** 应税收入得分 */
+    @Excel(name = "应税收入得分")
+    private Double taxableIncomeScore;
+
+    /** 实缴税金得分 */
+    @Excel(name = "实缴税金得分")
+    private Double paidTaxScore;
+
+    /** 主营业务收入得分 */
+    @Excel(name = "主营业务收入得分")
+    private Double mainBusinessIncomeScore;
+
+    /** 从业人员数得分 */
+    @Excel(name = "从业人员数得分")
+    private Double employeeNumberScore;
+
+    /** 利润总额得分 */
+    @Excel(name = "利润总额得分")
+    private Double profitScore;
+
+    /** 所有者权益得分 */
+    @Excel(name = "所有者权益得分")
+    private Double ownerEquityScore;
+
+    /** 研发经费得分 */
+    @Excel(name = "研发经费得分")
+    private Double fundingScore;
+
+    /** 能源消费量得分 */
+    @Excel(name = "能源消费量得分")
+    private Double energyConsumeScore;
+
+    @Excel(name = "电力消费量得分")
+    private Double powerConsumeScore;
+
+    /** 年份 */
+    @Excel(name = "年份")
+    private String year;
+
+    /** 月份 */
+    @Excel(name = "月份")
+    private String month;
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId()
+    {
+        return id;
+    }
+    public void setEnterpriseName(String enterpriseName) 
+    {
+        this.enterpriseName = enterpriseName;
+    }
+
+    public String getEnterpriseName() 
+    {
+        return enterpriseName;
+    }
+    public void setLocation(String location) 
+    {
+        this.location = location;
+    }
+
+    public String getLocation() 
+    {
+        return location;
+    }
+    public void setCode(String code) 
+    {
+        this.code = code;
+    }
+
+    public String getCode() 
+    {
+        return code;
+    }
+    public void setMainBusinessScore(String mainBusinessScore) 
+    {
+        this.mainBusinessScore = mainBusinessScore;
+    }
+
+    public String getMainBusinessScore() 
+    {
+        return mainBusinessScore;
+    }
+    public void setLandAreaScore(Double landAreaScore) 
+    {
+        this.landAreaScore = landAreaScore;
+    }
+
+    public Double getLandAreaScore() 
+    {
+        return landAreaScore;
+    }
+    public void setTotalIndustrialValueScore(Double totalIndustrialValueScore) 
+    {
+        this.totalIndustrialValueScore = totalIndustrialValueScore;
+    }
+
+    public Double getTotalIndustrialValueScore() 
+    {
+        return totalIndustrialValueScore;
+    }
+    public void setGdpScore(Double gdpScore) 
+    {
+        this.gdpScore = gdpScore;
+    }
+
+    public Double getGdpScore() 
+    {
+        return gdpScore;
+    }
+    public void setTaxableIncomeScore(Double taxableIncomeScore) 
+    {
+        this.taxableIncomeScore = taxableIncomeScore;
+    }
+
+    public Double getTaxableIncomeScore() 
+    {
+        return taxableIncomeScore;
+    }
+    public void setPaidTaxScore(Double paidTaxScore) 
+    {
+        this.paidTaxScore = paidTaxScore;
+    }
+
+    public Double getPaidTaxScore() 
+    {
+        return paidTaxScore;
+    }
+    public void setMainBusinessIncomeScore(Double mainBusinessIncomeScore) 
+    {
+        this.mainBusinessIncomeScore = mainBusinessIncomeScore;
+    }
+
+    public Double getMainBusinessIncomeScore() 
+    {
+        return mainBusinessIncomeScore;
+    }
+    public void setEmployeeNumberScore(Double employeeNumberScore) 
+    {
+        this.employeeNumberScore = employeeNumberScore;
+    }
+
+    public Double getEmployeeNumberScore() 
+    {
+        return employeeNumberScore;
+    }
+    public void setProfitScore(Double profitScore) 
+    {
+        this.profitScore = profitScore;
+    }
+
+    public Double getProfitScore() 
+    {
+        return profitScore;
+    }
+    public void setOwnerEquityScore(Double ownerEquityScore) 
+    {
+        this.ownerEquityScore = ownerEquityScore;
+    }
+
+    public Double getOwnerEquityScore() 
+    {
+        return ownerEquityScore;
+    }
+    public void setFundingScore(Double fundingScore) 
+    {
+        this.fundingScore = fundingScore;
+    }
+
+    public Double getFundingScore() 
+    {
+        return fundingScore;
+    }
+    public void setEnergyConsumeScore(Double energyConsumeScore) 
+    {
+        this.energyConsumeScore = energyConsumeScore;
+    }
+
+    public Double getEnergyConsumeScore() 
+    {
+        return energyConsumeScore;
+    }
+
+    public void setPowerConsumeScore(Double powerConsumeScore)
+    {
+        this.powerConsumeScore = powerConsumeScore;
+    }
+
+    public Double getPowerConsumeScore()
+    {
+        return powerConsumeScore;
+    }
+    public void setYear(String year) 
+    {
+        this.year = year;
+    }
+
+    public String getYear() 
+    {
+        return year;
+    }
+    public void setMonth(String month) 
+    {
+        this.month = month;
+    }
+
+    public String getMonth() 
+    {
+        return month;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("enterpriseName", getEnterpriseName())
+            .append("location", getLocation())
+            .append("code", getCode())
+            .append("mainBusinessScore", getMainBusinessScore())
+            .append("landAreaScore", getLandAreaScore())
+            .append("totalIndustrialValueScore", getTotalIndustrialValueScore())
+            .append("gdpScore", getGdpScore())
+            .append("taxableIncomeScore", getTaxableIncomeScore())
+            .append("paidTaxScore", getPaidTaxScore())
+            .append("mainBusinessIncomeScore", getMainBusinessIncomeScore())
+            .append("employeeNumberScore", getEmployeeNumberScore())
+            .append("profitScore", getProfitScore())
+            .append("ownerEquityScore", getOwnerEquityScore())
+            .append("fundingScore", getFundingScore())
+            .append("energyConsumeScore", getEnergyConsumeScore())
+            .append("year", getYear())
+            .append("month", getMonth())
+            .toString();
+    }
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/score/mapper/ScoreMapper.java

@@ -0,0 +1,61 @@
+package com.enteprise.score.mapper;
+
+import java.util.List;
+import com.enteprise.score.domain.Score;
+
+/**
+ * scoreMapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public interface ScoreMapper 
+{
+    /**
+     * 查询score
+     * 
+     * @param id score主键
+     * @return score
+     */
+    public Score selectScoreById(Long id);
+
+    /**
+     * 查询score列表
+     * 
+     * @param score score
+     * @return score集合
+     */
+    public List<Score> selectScoreList(Score score);
+
+    /**
+     * 新增score
+     * 
+     * @param score score
+     * @return 结果
+     */
+    public int insertScore(Score score);
+
+    /**
+     * 修改score
+     * 
+     * @param score score
+     * @return 结果
+     */
+    public int updateScore(Score score);
+
+    /**
+     * 删除score
+     * 
+     * @param id score主键
+     * @return 结果
+     */
+    public int deleteScoreById(Long id);
+
+    /**
+     * 批量删除score
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteScoreByIds(Long[] ids);
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/score/service/IScoreService.java

@@ -0,0 +1,61 @@
+package com.enteprise.score.service;
+
+import java.util.List;
+import com.enteprise.score.domain.Score;
+
+/**
+ * scoreService接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+public interface IScoreService 
+{
+    /**
+     * 查询score
+     * 
+     * @param id score主键
+     * @return score
+     */
+    public Score selectScoreById(Long id);
+
+    /**
+     * 查询score列表
+     * 
+     * @param score score
+     * @return score集合
+     */
+    public List<Score> selectScoreList(Score score);
+
+    /**
+     * 新增score
+     * 
+     * @param score score
+     * @return 结果
+     */
+    public int insertScore(Score score);
+
+    /**
+     * 修改score
+     * 
+     * @param score score
+     * @return 结果
+     */
+    public int updateScore(Score score);
+
+    /**
+     * 批量删除score
+     * 
+     * @param ids 需要删除的score主键集合
+     * @return 结果
+     */
+    public int deleteScoreByIds(Long[] ids);
+
+    /**
+     * 删除score信息
+     * 
+     * @param id score主键
+     * @return 结果
+     */
+    public int deleteScoreById(Long id);
+}

+ 93 - 0
enteprise-admin/src/main/java/com/enteprise/score/service/impl/ScoreServiceImpl.java

@@ -0,0 +1,93 @@
+package com.enteprise.score.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.enteprise.score.mapper.ScoreMapper;
+import com.enteprise.score.domain.Score;
+import com.enteprise.score.service.IScoreService;
+
+/**
+ * scoreService业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-08-30
+ */
+@Service
+public class ScoreServiceImpl implements IScoreService 
+{
+    @Autowired
+    private ScoreMapper scoreMapper;
+
+    /**
+     * 查询score
+     * 
+     * @param id score主键
+     * @return score
+     */
+    @Override
+    public Score selectScoreById(Long id)
+    {
+        return scoreMapper.selectScoreById(id);
+    }
+
+    /**
+     * 查询score列表
+     * 
+     * @param score score
+     * @return score
+     */
+    @Override
+    public List<Score> selectScoreList(Score score)
+    {
+        return scoreMapper.selectScoreList(score);
+    }
+
+    /**
+     * 新增score
+     * 
+     * @param score score
+     * @return 结果
+     */
+    @Override
+    public int insertScore(Score score)
+    {
+        return scoreMapper.insertScore(score);
+    }
+
+    /**
+     * 修改score
+     * 
+     * @param score score
+     * @return 结果
+     */
+    @Override
+    public int updateScore(Score score)
+    {
+        return scoreMapper.updateScore(score);
+    }
+
+    /**
+     * 批量删除score
+     * 
+     * @param ids 需要删除的score主键
+     * @return 结果
+     */
+    @Override
+    public int deleteScoreByIds(Long[] ids)
+    {
+        return scoreMapper.deleteScoreByIds(ids);
+    }
+
+    /**
+     * 删除score信息
+     * 
+     * @param id score主键
+     * @return 结果
+     */
+    @Override
+    public int deleteScoreById(Long id)
+    {
+        return scoreMapper.deleteScoreById(id);
+    }
+}

+ 104 - 0
enteprise-admin/src/main/java/com/enteprise/season/controller/EnterpriseBaseDataSeasonController.java

@@ -0,0 +1,104 @@
+package com.enteprise.season.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+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.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.season.domain.EnterpriseBaseDataSeason;
+import com.enteprise.season.service.IEnterpriseBaseDataSeasonService;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.common.core.page.TableDataInfo;
+
+/**
+ * seasonController
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+@RestController
+@RequestMapping("/season/season")
+public class EnterpriseBaseDataSeasonController extends BaseController
+{
+    @Autowired
+    private IEnterpriseBaseDataSeasonService enterpriseBaseDataSeasonService;
+
+    /**
+     * 查询season列表
+     */
+    @PreAuthorize("@ss.hasPermi('season:season:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(EnterpriseBaseDataSeason enterpriseBaseDataSeason)
+    {
+        startPage();
+        List<EnterpriseBaseDataSeason> list = enterpriseBaseDataSeasonService.selectEnterpriseBaseDataSeasonList(enterpriseBaseDataSeason);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出season列表
+     */
+    @PreAuthorize("@ss.hasPermi('season:season:export')")
+    @Log(title = "season", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, EnterpriseBaseDataSeason enterpriseBaseDataSeason)
+    {
+        List<EnterpriseBaseDataSeason> list = enterpriseBaseDataSeasonService.selectEnterpriseBaseDataSeasonList(enterpriseBaseDataSeason);
+        ExcelUtil<EnterpriseBaseDataSeason> util = new ExcelUtil<EnterpriseBaseDataSeason>(EnterpriseBaseDataSeason.class);
+        util.exportExcel(response, list, "season数据");
+    }
+
+    /**
+     * 获取season详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('season:season:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(enterpriseBaseDataSeasonService.selectEnterpriseBaseDataSeasonById(id));
+    }
+
+    /**
+     * 新增season
+     */
+    @PreAuthorize("@ss.hasPermi('season:season:add')")
+    @Log(title = "season", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody EnterpriseBaseDataSeason enterpriseBaseDataSeason)
+    {
+        return toAjax(enterpriseBaseDataSeasonService.insertEnterpriseBaseDataSeason(enterpriseBaseDataSeason));
+    }
+
+    /**
+     * 修改season
+     */
+    @PreAuthorize("@ss.hasPermi('season:season:edit')")
+    @Log(title = "season", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody EnterpriseBaseDataSeason enterpriseBaseDataSeason)
+    {
+        return toAjax(enterpriseBaseDataSeasonService.updateEnterpriseBaseDataSeason(enterpriseBaseDataSeason));
+    }
+
+    /**
+     * 删除season
+     */
+    @PreAuthorize("@ss.hasPermi('season:season:remove')")
+    @Log(title = "season", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(enterpriseBaseDataSeasonService.deleteEnterpriseBaseDataSeasonByIds(ids));
+    }
+}

+ 289 - 0
enteprise-admin/src/main/java/com/enteprise/season/domain/EnterpriseBaseDataSeason.java

@@ -0,0 +1,289 @@
+package com.enteprise.season.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.enteprise.common.annotation.Excel;
+import com.enteprise.common.core.domain.BaseEntity;
+
+/**
+ * season对象 enterprise_base_data_season
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+public class EnterpriseBaseDataSeason extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String enterpriseName;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String location;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String code;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String mainBusiness;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long landArea;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long totalIndustrialValue;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long gdp;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long taxableIncome;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long paidTax;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long mainBusinessIncome;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long employeeNumber;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long profit;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long ownerEquity;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long funding;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long energyConsume;
+
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long powerConsume;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String year;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String season;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setEnterpriseName(String enterpriseName) 
+    {
+        this.enterpriseName = enterpriseName;
+    }
+
+    public String getEnterpriseName() 
+    {
+        return enterpriseName;
+    }
+    public void setLocation(String location) 
+    {
+        this.location = location;
+    }
+
+    public String getLocation() 
+    {
+        return location;
+    }
+    public void setCode(String code) 
+    {
+        this.code = code;
+    }
+
+    public String getCode() 
+    {
+        return code;
+    }
+    public void setMainBusiness(String mainBusiness) 
+    {
+        this.mainBusiness = mainBusiness;
+    }
+
+    public String getMainBusiness() 
+    {
+        return mainBusiness;
+    }
+    public void setLandArea(Long landArea) 
+    {
+        this.landArea = landArea;
+    }
+
+    public Long getLandArea() 
+    {
+        return landArea;
+    }
+    public void setTotalIndustrialValue(Long totalIndustrialValue) 
+    {
+        this.totalIndustrialValue = totalIndustrialValue;
+    }
+
+    public Long getTotalIndustrialValue() 
+    {
+        return totalIndustrialValue;
+    }
+    public void setGdp(Long gdp) 
+    {
+        this.gdp = gdp;
+    }
+
+    public Long getGdp() 
+    {
+        return gdp;
+    }
+    public void setTaxableIncome(Long taxableIncome) 
+    {
+        this.taxableIncome = taxableIncome;
+    }
+
+    public Long getTaxableIncome() 
+    {
+        return taxableIncome;
+    }
+    public void setPaidTax(Long paidTax) 
+    {
+        this.paidTax = paidTax;
+    }
+
+    public Long getPaidTax() 
+    {
+        return paidTax;
+    }
+    public void setMainBusinessIncome(Long mainBusinessIncome) 
+    {
+        this.mainBusinessIncome = mainBusinessIncome;
+    }
+
+    public Long getMainBusinessIncome() 
+    {
+        return mainBusinessIncome;
+    }
+    public void setEmployeeNumber(Long employeeNumber) 
+    {
+        this.employeeNumber = employeeNumber;
+    }
+
+    public Long getEmployeeNumber() 
+    {
+        return employeeNumber;
+    }
+    public void setProfit(Long profit) 
+    {
+        this.profit = profit;
+    }
+
+    public Long getProfit() 
+    {
+        return profit;
+    }
+    public void setOwnerEquity(Long ownerEquity) 
+    {
+        this.ownerEquity = ownerEquity;
+    }
+
+    public Long getOwnerEquity() 
+    {
+        return ownerEquity;
+    }
+    public void setFunding(Long funding) 
+    {
+        this.funding = funding;
+    }
+
+    public Long getFunding() 
+    {
+        return funding;
+    }
+    public void setEnergyConsume(Long energyConsume) 
+    {
+        this.energyConsume = energyConsume;
+    }
+
+    public Long getEnergyConsume() 
+    {
+        return energyConsume;
+    }
+
+    public void setPowerConsume(Long powerConsume)
+    {
+        this.powerConsume = powerConsume;
+    }
+
+    public Long getPowerConsume()
+    {
+        return powerConsume;
+    }
+    public void setYear(String year) 
+    {
+        this.year = year;
+    }
+
+    public String getYear() 
+    {
+        return year;
+    }
+    public void setSeason(String season)
+    {
+        this.season = season;
+    }
+
+    public String getSeason()
+    {
+        return season;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("enterpriseName", getEnterpriseName())
+            .append("location", getLocation())
+            .append("code", getCode())
+            .append("mainBusiness", getMainBusiness())
+            .append("landArea", getLandArea())
+            .append("totalIndustrialValue", getTotalIndustrialValue())
+            .append("gdp", getGdp())
+            .append("taxableIncome", getTaxableIncome())
+            .append("paidTax", getPaidTax())
+            .append("mainBusinessIncome", getMainBusinessIncome())
+            .append("employeeNumber", getEmployeeNumber())
+            .append("profit", getProfit())
+            .append("ownerEquity", getOwnerEquity())
+            .append("funding", getFunding())
+            .append("energyConsume", getEnergyConsume())
+                .append("powerConsume", getPowerConsume())
+            .append("year", getYear())
+            .append("season", getSeason())
+            .toString();
+    }
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/season/mapper/EnterpriseBaseDataSeasonMapper.java

@@ -0,0 +1,61 @@
+package com.enteprise.season.mapper;
+
+import java.util.List;
+import com.enteprise.season.domain.EnterpriseBaseDataSeason;
+
+/**
+ * seasonMapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+public interface EnterpriseBaseDataSeasonMapper 
+{
+    /**
+     * 查询season
+     * 
+     * @param id season主键
+     * @return season
+     */
+    public EnterpriseBaseDataSeason selectEnterpriseBaseDataSeasonById(Long id);
+
+    /**
+     * 查询season列表
+     * 
+     * @param enterpriseBaseDataSeason season
+     * @return season集合
+     */
+    public List<EnterpriseBaseDataSeason> selectEnterpriseBaseDataSeasonList(EnterpriseBaseDataSeason enterpriseBaseDataSeason);
+
+    /**
+     * 新增season
+     * 
+     * @param enterpriseBaseDataSeason season
+     * @return 结果
+     */
+    public int insertEnterpriseBaseDataSeason(EnterpriseBaseDataSeason enterpriseBaseDataSeason);
+
+    /**
+     * 修改season
+     * 
+     * @param enterpriseBaseDataSeason season
+     * @return 结果
+     */
+    public int updateEnterpriseBaseDataSeason(EnterpriseBaseDataSeason enterpriseBaseDataSeason);
+
+    /**
+     * 删除season
+     * 
+     * @param id season主键
+     * @return 结果
+     */
+    public int deleteEnterpriseBaseDataSeasonById(Long id);
+
+    /**
+     * 批量删除season
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteEnterpriseBaseDataSeasonByIds(Long[] ids);
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/season/service/IEnterpriseBaseDataSeasonService.java

@@ -0,0 +1,61 @@
+package com.enteprise.season.service;
+
+import java.util.List;
+import com.enteprise.season.domain.EnterpriseBaseDataSeason;
+
+/**
+ * seasonService接口
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+public interface IEnterpriseBaseDataSeasonService 
+{
+    /**
+     * 查询season
+     * 
+     * @param id season主键
+     * @return season
+     */
+    public EnterpriseBaseDataSeason selectEnterpriseBaseDataSeasonById(Long id);
+
+    /**
+     * 查询season列表
+     * 
+     * @param enterpriseBaseDataSeason season
+     * @return season集合
+     */
+    public List<EnterpriseBaseDataSeason> selectEnterpriseBaseDataSeasonList(EnterpriseBaseDataSeason enterpriseBaseDataSeason);
+
+    /**
+     * 新增season
+     * 
+     * @param enterpriseBaseDataSeason season
+     * @return 结果
+     */
+    public int insertEnterpriseBaseDataSeason(EnterpriseBaseDataSeason enterpriseBaseDataSeason);
+
+    /**
+     * 修改season
+     * 
+     * @param enterpriseBaseDataSeason season
+     * @return 结果
+     */
+    public int updateEnterpriseBaseDataSeason(EnterpriseBaseDataSeason enterpriseBaseDataSeason);
+
+    /**
+     * 批量删除season
+     * 
+     * @param ids 需要删除的season主键集合
+     * @return 结果
+     */
+    public int deleteEnterpriseBaseDataSeasonByIds(Long[] ids);
+
+    /**
+     * 删除season信息
+     * 
+     * @param id season主键
+     * @return 结果
+     */
+    public int deleteEnterpriseBaseDataSeasonById(Long id);
+}

+ 93 - 0
enteprise-admin/src/main/java/com/enteprise/season/service/impl/EnterpriseBaseDataSeasonServiceImpl.java

@@ -0,0 +1,93 @@
+package com.enteprise.season.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.enteprise.season.mapper.EnterpriseBaseDataSeasonMapper;
+import com.enteprise.season.domain.EnterpriseBaseDataSeason;
+import com.enteprise.season.service.IEnterpriseBaseDataSeasonService;
+
+/**
+ * seasonService业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-09-26
+ */
+@Service
+public class EnterpriseBaseDataSeasonServiceImpl implements IEnterpriseBaseDataSeasonService 
+{
+    @Autowired
+    private EnterpriseBaseDataSeasonMapper enterpriseBaseDataSeasonMapper;
+
+    /**
+     * 查询season
+     * 
+     * @param id season主键
+     * @return season
+     */
+    @Override
+    public EnterpriseBaseDataSeason selectEnterpriseBaseDataSeasonById(Long id)
+    {
+        return enterpriseBaseDataSeasonMapper.selectEnterpriseBaseDataSeasonById(id);
+    }
+
+    /**
+     * 查询season列表
+     * 
+     * @param enterpriseBaseDataSeason season
+     * @return season
+     */
+    @Override
+    public List<EnterpriseBaseDataSeason> selectEnterpriseBaseDataSeasonList(EnterpriseBaseDataSeason enterpriseBaseDataSeason)
+    {
+        return enterpriseBaseDataSeasonMapper.selectEnterpriseBaseDataSeasonList(enterpriseBaseDataSeason);
+    }
+
+    /**
+     * 新增season
+     * 
+     * @param enterpriseBaseDataSeason season
+     * @return 结果
+     */
+    @Override
+    public int insertEnterpriseBaseDataSeason(EnterpriseBaseDataSeason enterpriseBaseDataSeason)
+    {
+        return enterpriseBaseDataSeasonMapper.insertEnterpriseBaseDataSeason(enterpriseBaseDataSeason);
+    }
+
+    /**
+     * 修改season
+     * 
+     * @param enterpriseBaseDataSeason season
+     * @return 结果
+     */
+    @Override
+    public int updateEnterpriseBaseDataSeason(EnterpriseBaseDataSeason enterpriseBaseDataSeason)
+    {
+        return enterpriseBaseDataSeasonMapper.updateEnterpriseBaseDataSeason(enterpriseBaseDataSeason);
+    }
+
+    /**
+     * 批量删除season
+     * 
+     * @param ids 需要删除的season主键
+     * @return 结果
+     */
+    @Override
+    public int deleteEnterpriseBaseDataSeasonByIds(Long[] ids)
+    {
+        return enterpriseBaseDataSeasonMapper.deleteEnterpriseBaseDataSeasonByIds(ids);
+    }
+
+    /**
+     * 删除season信息
+     * 
+     * @param id season主键
+     * @return 结果
+     */
+    @Override
+    public int deleteEnterpriseBaseDataSeasonById(Long id)
+    {
+        return enterpriseBaseDataSeasonMapper.deleteEnterpriseBaseDataSeasonById(id);
+    }
+}

+ 104 - 0
enteprise-admin/src/main/java/com/enteprise/uploadfile/controller/UploadfileController.java

@@ -0,0 +1,104 @@
+package com.enteprise.uploadfile.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+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.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.uploadfile.domain.Uploadfile;
+import com.enteprise.uploadfile.service.IUploadfileService;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.common.core.page.TableDataInfo;
+
+/**
+ * uploadfileController
+ * 
+ * @author ruoyi
+ * @date 2024-09-16
+ */
+@RestController
+@RequestMapping("/uploadfile/uploadfile")
+public class UploadfileController extends BaseController
+{
+    @Autowired
+    private IUploadfileService uploadfileService;
+
+    /**
+     * 查询uploadfile列表
+     */
+    @PreAuthorize("@ss.hasPermi('uploadfile:uploadfile:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(Uploadfile uploadfile)
+    {
+        startPage();
+        List<Uploadfile> list = uploadfileService.selectUploadfileList(uploadfile);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出uploadfile列表
+     */
+    @PreAuthorize("@ss.hasPermi('uploadfile:uploadfile:export')")
+    @Log(title = "uploadfile", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, Uploadfile uploadfile)
+    {
+        List<Uploadfile> list = uploadfileService.selectUploadfileList(uploadfile);
+        ExcelUtil<Uploadfile> util = new ExcelUtil<Uploadfile>(Uploadfile.class);
+        util.exportExcel(response, list, "uploadfile数据");
+    }
+
+    /**
+     * 获取uploadfile详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('uploadfile:uploadfile:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(uploadfileService.selectUploadfileById(id));
+    }
+
+    /**
+     * 新增uploadfile
+     */
+    @PreAuthorize("@ss.hasPermi('uploadfile:uploadfile:add')")
+    @Log(title = "uploadfile", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody Uploadfile uploadfile)
+    {
+        return toAjax(uploadfileService.insertUploadfile(uploadfile));
+    }
+
+    /**
+     * 修改uploadfile
+     */
+    @PreAuthorize("@ss.hasPermi('uploadfile:uploadfile:edit')")
+    @Log(title = "uploadfile", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody Uploadfile uploadfile)
+    {
+        return toAjax(uploadfileService.updateUploadfile(uploadfile));
+    }
+
+    /**
+     * 删除uploadfile
+     */
+    @PreAuthorize("@ss.hasPermi('uploadfile:uploadfile:remove')")
+    @Log(title = "uploadfile", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(uploadfileService.deleteUploadfileByIds(ids));
+    }
+}

+ 63 - 0
enteprise-admin/src/main/java/com/enteprise/uploadfile/domain/Uploadfile.java

@@ -0,0 +1,63 @@
+package com.enteprise.uploadfile.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.enteprise.common.annotation.Excel;
+import com.enteprise.common.core.domain.BaseEntity;
+
+import java.util.Date;
+
+/**
+ * uploadfile对象 uploadfile
+ *
+ * @author ruoyi
+ * @date 2024-09-16
+ */
+public class Uploadfile extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 序号 */
+    private Long id;
+
+    /** 文件名字 */
+    @Excel(name = "文件名字")
+    private String name;
+    private Date createtime;
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId()
+    {
+        return id;
+    }
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+
+    public String getName()
+    {
+        return name;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("name", getName())
+            .append("createtime", getCreatetime())
+            .toString();
+    }
+
+    public Date getCreatetime() {
+        return createtime;
+    }
+
+    public void setCreatetime(Date createtime) {
+        this.createtime = createtime;
+    }
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/uploadfile/mapper/UploadfileMapper.java

@@ -0,0 +1,61 @@
+package com.enteprise.uploadfile.mapper;
+
+import java.util.List;
+import com.enteprise.uploadfile.domain.Uploadfile;
+
+/**
+ * uploadfileMapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-09-16
+ */
+public interface UploadfileMapper 
+{
+    /**
+     * 查询uploadfile
+     * 
+     * @param id uploadfile主键
+     * @return uploadfile
+     */
+    public Uploadfile selectUploadfileById(Long id);
+
+    /**
+     * 查询uploadfile列表
+     * 
+     * @param uploadfile uploadfile
+     * @return uploadfile集合
+     */
+    public List<Uploadfile> selectUploadfileList(Uploadfile uploadfile);
+
+    /**
+     * 新增uploadfile
+     * 
+     * @param uploadfile uploadfile
+     * @return 结果
+     */
+    public int insertUploadfile(Uploadfile uploadfile);
+
+    /**
+     * 修改uploadfile
+     * 
+     * @param uploadfile uploadfile
+     * @return 结果
+     */
+    public int updateUploadfile(Uploadfile uploadfile);
+
+    /**
+     * 删除uploadfile
+     * 
+     * @param id uploadfile主键
+     * @return 结果
+     */
+    public int deleteUploadfileById(Long id);
+
+    /**
+     * 批量删除uploadfile
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteUploadfileByIds(Long[] ids);
+}

+ 61 - 0
enteprise-admin/src/main/java/com/enteprise/uploadfile/service/IUploadfileService.java

@@ -0,0 +1,61 @@
+package com.enteprise.uploadfile.service;
+
+import java.util.List;
+import com.enteprise.uploadfile.domain.Uploadfile;
+
+/**
+ * uploadfileService接口
+ * 
+ * @author ruoyi
+ * @date 2024-09-16
+ */
+public interface IUploadfileService 
+{
+    /**
+     * 查询uploadfile
+     * 
+     * @param id uploadfile主键
+     * @return uploadfile
+     */
+    public Uploadfile selectUploadfileById(Long id);
+
+    /**
+     * 查询uploadfile列表
+     * 
+     * @param uploadfile uploadfile
+     * @return uploadfile集合
+     */
+    public List<Uploadfile> selectUploadfileList(Uploadfile uploadfile);
+
+    /**
+     * 新增uploadfile
+     * 
+     * @param uploadfile uploadfile
+     * @return 结果
+     */
+    public int insertUploadfile(Uploadfile uploadfile);
+
+    /**
+     * 修改uploadfile
+     * 
+     * @param uploadfile uploadfile
+     * @return 结果
+     */
+    public int updateUploadfile(Uploadfile uploadfile);
+
+    /**
+     * 批量删除uploadfile
+     * 
+     * @param ids 需要删除的uploadfile主键集合
+     * @return 结果
+     */
+    public int deleteUploadfileByIds(Long[] ids);
+
+    /**
+     * 删除uploadfile信息
+     * 
+     * @param id uploadfile主键
+     * @return 结果
+     */
+    public int deleteUploadfileById(Long id);
+}

+ 93 - 0
enteprise-admin/src/main/java/com/enteprise/uploadfile/service/impl/UploadfileServiceImpl.java

@@ -0,0 +1,93 @@
+package com.enteprise.uploadfile.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.enteprise.uploadfile.mapper.UploadfileMapper;
+import com.enteprise.uploadfile.domain.Uploadfile;
+import com.enteprise.uploadfile.service.IUploadfileService;
+
+/**
+ * uploadfileService业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-09-16
+ */
+@Service
+public class UploadfileServiceImpl implements IUploadfileService 
+{
+    @Autowired
+    private UploadfileMapper uploadfileMapper;
+
+    /**
+     * 查询uploadfile
+     * 
+     * @param id uploadfile主键
+     * @return uploadfile
+     */
+    @Override
+    public Uploadfile selectUploadfileById(Long id)
+    {
+        return uploadfileMapper.selectUploadfileById(id);
+    }
+
+    /**
+     * 查询uploadfile列表
+     * 
+     * @param uploadfile uploadfile
+     * @return uploadfile
+     */
+    @Override
+    public List<Uploadfile> selectUploadfileList(Uploadfile uploadfile)
+    {
+        return uploadfileMapper.selectUploadfileList(uploadfile);
+    }
+
+    /**
+     * 新增uploadfile
+     * 
+     * @param uploadfile uploadfile
+     * @return 结果
+     */
+    @Override
+    public int insertUploadfile(Uploadfile uploadfile)
+    {
+        return uploadfileMapper.insertUploadfile(uploadfile);
+    }
+
+    /**
+     * 修改uploadfile
+     * 
+     * @param uploadfile uploadfile
+     * @return 结果
+     */
+    @Override
+    public int updateUploadfile(Uploadfile uploadfile)
+    {
+        return uploadfileMapper.updateUploadfile(uploadfile);
+    }
+
+    /**
+     * 批量删除uploadfile
+     * 
+     * @param ids 需要删除的uploadfile主键
+     * @return 结果
+     */
+    @Override
+    public int deleteUploadfileByIds(Long[] ids)
+    {
+        return uploadfileMapper.deleteUploadfileByIds(ids);
+    }
+
+    /**
+     * 删除uploadfile信息
+     * 
+     * @param id uploadfile主键
+     * @return 结果
+     */
+    @Override
+    public int deleteUploadfileById(Long id)
+    {
+        return uploadfileMapper.deleteUploadfileById(id);
+    }
+}

+ 94 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/common/CaptchaController.java

@@ -0,0 +1,94 @@
+package com.enteprise.web.controller.common;
+
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.util.concurrent.TimeUnit;
+import javax.annotation.Resource;
+import javax.imageio.ImageIO;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.FastByteArrayOutputStream;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.google.code.kaptcha.Producer;
+import com.enteprise.common.config.RuoYiConfig;
+import com.enteprise.common.constant.CacheConstants;
+import com.enteprise.common.constant.Constants;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.core.redis.RedisCache;
+import com.enteprise.common.utils.sign.Base64;
+import com.enteprise.common.utils.uuid.IdUtils;
+import com.enteprise.system.service.ISysConfigService;
+
+/**
+ * 验证码操作处理
+ * 
+ * @author ruoyi
+ */
+@RestController
+public class CaptchaController
+{
+    @Resource(name = "captchaProducer")
+    private Producer captchaProducer;
+
+    @Resource(name = "captchaProducerMath")
+    private Producer captchaProducerMath;
+
+    @Autowired
+    private RedisCache redisCache;
+    
+    @Autowired
+    private ISysConfigService configService;
+    /**
+     * 生成验证码
+     */
+    @GetMapping("/captchaImage")
+    public AjaxResult getCode(HttpServletResponse response) throws IOException
+    {
+        AjaxResult ajax = AjaxResult.success();
+        boolean captchaEnabled = configService.selectCaptchaEnabled();
+        ajax.put("captchaEnabled", captchaEnabled);
+        if (!captchaEnabled)
+        {
+            return ajax;
+        }
+
+        // 保存验证码信息
+        String uuid = IdUtils.simpleUUID();
+        String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid;
+
+        String capStr = null, code = null;
+        BufferedImage image = null;
+
+        // 生成验证码
+        String captchaType = RuoYiConfig.getCaptchaType();
+        if ("math".equals(captchaType))
+        {
+            String capText = captchaProducerMath.createText();
+            capStr = capText.substring(0, capText.lastIndexOf("@"));
+            code = capText.substring(capText.lastIndexOf("@") + 1);
+            image = captchaProducerMath.createImage(capStr);
+        }
+        else if ("char".equals(captchaType))
+        {
+            capStr = code = captchaProducer.createText();
+            image = captchaProducer.createImage(capStr);
+        }
+
+        redisCache.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
+        // 转换流信息写出
+        FastByteArrayOutputStream os = new FastByteArrayOutputStream();
+        try
+        {
+            ImageIO.write(image, "jpg", os);
+        }
+        catch (IOException e)
+        {
+            return AjaxResult.error(e.getMessage());
+        }
+
+        ajax.put("uuid", uuid);
+        ajax.put("img", Base64.encode(os.toByteArray()));
+        return ajax;
+    }
+}

+ 163 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/common/CommonController.java

@@ -0,0 +1,163 @@
+package com.enteprise.web.controller.common;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+import com.enteprise.common.config.RuoYiConfig;
+import com.enteprise.common.constant.Constants;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.utils.StringUtils;
+import com.enteprise.common.utils.file.FileUploadUtils;
+import com.enteprise.common.utils.file.FileUtils;
+import com.enteprise.framework.config.ServerConfig;
+
+/**
+ * 通用请求处理
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/common")
+public class CommonController
+{
+    private static final Logger log = LoggerFactory.getLogger(CommonController.class);
+
+    @Autowired
+    private ServerConfig serverConfig;
+
+    private static final String FILE_DELIMETER = ",";
+
+    /**
+     * 通用下载请求
+     * 
+     * @param fileName 文件名称
+     * @param delete 是否删除
+     */
+    @GetMapping("/download")
+    public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request)
+    {
+        try
+        {
+            if (!FileUtils.checkAllowDownload(fileName))
+            {
+                throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName));
+            }
+            String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
+            String filePath = RuoYiConfig.getDownloadPath() + fileName;
+
+            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
+            FileUtils.setAttachmentResponseHeader(response, realFileName);
+            FileUtils.writeBytes(filePath, response.getOutputStream());
+            if (delete)
+            {
+                FileUtils.deleteFile(filePath);
+            }
+        }
+        catch (Exception e)
+        {
+            log.error("下载文件失败", e);
+        }
+    }
+
+    /**
+     * 通用上传请求(单个)
+     */
+    @PostMapping("/upload")
+    public AjaxResult uploadFile(MultipartFile file) throws Exception
+    {
+        try
+        {
+            // 上传文件路径
+            String filePath = RuoYiConfig.getUploadPath();
+            // 上传并返回新文件名称
+            String fileName = FileUploadUtils.upload(filePath, file);
+            String url = serverConfig.getUrl() + fileName;
+            AjaxResult ajax = AjaxResult.success();
+            ajax.put("url", url);
+            ajax.put("fileName", fileName);
+            ajax.put("newFileName", FileUtils.getName(fileName));
+            ajax.put("originalFilename", file.getOriginalFilename());
+            return ajax;
+        }
+        catch (Exception e)
+        {
+            return AjaxResult.error(e.getMessage());
+        }
+    }
+
+    /**
+     * 通用上传请求(多个)
+     */
+    @PostMapping("/uploads")
+    public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception
+    {
+        try
+        {
+            // 上传文件路径
+            String filePath = RuoYiConfig.getUploadPath();
+            List<String> urls = new ArrayList<String>();
+            List<String> fileNames = new ArrayList<String>();
+            List<String> newFileNames = new ArrayList<String>();
+            List<String> originalFilenames = new ArrayList<String>();
+            for (MultipartFile file : files)
+            {
+                // 上传并返回新文件名称
+                String fileName = FileUploadUtils.upload(filePath, file);
+                String url = serverConfig.getUrl() + fileName;
+                urls.add(url);
+                fileNames.add(fileName);
+                newFileNames.add(FileUtils.getName(fileName));
+                originalFilenames.add(file.getOriginalFilename());
+            }
+            AjaxResult ajax = AjaxResult.success();
+            ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER));
+            ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER));
+            ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER));
+            ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER));
+            return ajax;
+        }
+        catch (Exception e)
+        {
+            return AjaxResult.error(e.getMessage());
+        }
+    }
+
+    /**
+     * 本地资源通用下载
+     */
+    @GetMapping("/download/resource")
+    public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response)
+            throws Exception
+    {
+        try
+        {
+            if (!FileUtils.checkAllowDownload(resource))
+            {
+                throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource));
+            }
+            // 本地资源路径
+            String localPath = RuoYiConfig.getProfile();
+            // 数据库资源地址
+            String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX);
+            // 下载名称
+            String downloadName = StringUtils.substringAfterLast(downloadPath, "/");
+            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
+            FileUtils.setAttachmentResponseHeader(response, downloadName);
+            FileUtils.writeBytes(downloadPath, response.getOutputStream());
+        }
+        catch (Exception e)
+        {
+            log.error("下载文件失败", e);
+        }
+    }
+}

+ 121 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/monitor/CacheController.java

@@ -0,0 +1,121 @@
+package com.enteprise.web.controller.monitor;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.TreeSet;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisCallback;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.enteprise.common.constant.CacheConstants;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.utils.StringUtils;
+import com.enteprise.system.domain.SysCache;
+
+/**
+ * 缓存监控
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/monitor/cache")
+public class CacheController
+{
+    @Autowired
+    private RedisTemplate<String, String> redisTemplate;
+
+    private final static List<SysCache> caches = new ArrayList<SysCache>();
+    {
+        caches.add(new SysCache(CacheConstants.LOGIN_TOKEN_KEY, "用户信息"));
+        caches.add(new SysCache(CacheConstants.SYS_CONFIG_KEY, "配置信息"));
+        caches.add(new SysCache(CacheConstants.SYS_DICT_KEY, "数据字典"));
+        caches.add(new SysCache(CacheConstants.CAPTCHA_CODE_KEY, "验证码"));
+        caches.add(new SysCache(CacheConstants.REPEAT_SUBMIT_KEY, "防重提交"));
+        caches.add(new SysCache(CacheConstants.RATE_LIMIT_KEY, "限流处理"));
+        caches.add(new SysCache(CacheConstants.PWD_ERR_CNT_KEY, "密码错误次数"));
+    }
+
+    @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
+    @GetMapping()
+    public AjaxResult getInfo() throws Exception
+    {
+        Properties info = (Properties) redisTemplate.execute((RedisCallback<Object>) connection -> connection.info());
+        Properties commandStats = (Properties) redisTemplate.execute((RedisCallback<Object>) connection -> connection.info("commandstats"));
+        Object dbSize = redisTemplate.execute((RedisCallback<Object>) connection -> connection.dbSize());
+
+        Map<String, Object> result = new HashMap<>(3);
+        result.put("info", info);
+        result.put("dbSize", dbSize);
+
+        List<Map<String, String>> pieList = new ArrayList<>();
+        commandStats.stringPropertyNames().forEach(key -> {
+            Map<String, String> data = new HashMap<>(2);
+            String property = commandStats.getProperty(key);
+            data.put("name", StringUtils.removeStart(key, "cmdstat_"));
+            data.put("value", StringUtils.substringBetween(property, "calls=", ",usec"));
+            pieList.add(data);
+        });
+        result.put("commandStats", pieList);
+        return AjaxResult.success(result);
+    }
+
+    @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
+    @GetMapping("/getNames")
+    public AjaxResult cache()
+    {
+        return AjaxResult.success(caches);
+    }
+
+    @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
+    @GetMapping("/getKeys/{cacheName}")
+    public AjaxResult getCacheKeys(@PathVariable String cacheName)
+    {
+        Set<String> cacheKeys = redisTemplate.keys(cacheName + "*");
+        return AjaxResult.success(new TreeSet<>(cacheKeys));
+    }
+
+    @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
+    @GetMapping("/getValue/{cacheName}/{cacheKey}")
+    public AjaxResult getCacheValue(@PathVariable String cacheName, @PathVariable String cacheKey)
+    {
+        String cacheValue = redisTemplate.opsForValue().get(cacheKey);
+        SysCache sysCache = new SysCache(cacheName, cacheKey, cacheValue);
+        return AjaxResult.success(sysCache);
+    }
+
+    @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
+    @DeleteMapping("/clearCacheName/{cacheName}")
+    public AjaxResult clearCacheName(@PathVariable String cacheName)
+    {
+        Collection<String> cacheKeys = redisTemplate.keys(cacheName + "*");
+        redisTemplate.delete(cacheKeys);
+        return AjaxResult.success();
+    }
+
+    @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
+    @DeleteMapping("/clearCacheKey/{cacheKey}")
+    public AjaxResult clearCacheKey(@PathVariable String cacheKey)
+    {
+        redisTemplate.delete(cacheKey);
+        return AjaxResult.success();
+    }
+
+    @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
+    @DeleteMapping("/clearCacheAll")
+    public AjaxResult clearCacheAll()
+    {
+        Collection<String> cacheKeys = redisTemplate.keys("*");
+        redisTemplate.delete(cacheKeys);
+        return AjaxResult.success();
+    }
+}

+ 27 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/monitor/ServerController.java

@@ -0,0 +1,27 @@
+package com.enteprise.web.controller.monitor;
+
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.framework.web.domain.Server;
+
+/**
+ * 服务器监控
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/monitor/server")
+public class ServerController
+{
+    @PreAuthorize("@ss.hasPermi('monitor:server:list')")
+    @GetMapping()
+    public AjaxResult getInfo() throws Exception
+    {
+        Server server = new Server();
+        server.copyTo();
+        return AjaxResult.success(server);
+    }
+}

+ 82 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/monitor/SysLogininforController.java

@@ -0,0 +1,82 @@
+package com.enteprise.web.controller.monitor;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.core.page.TableDataInfo;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.framework.web.service.SysPasswordService;
+import com.enteprise.system.domain.SysLogininfor;
+import com.enteprise.system.service.ISysLogininforService;
+
+/**
+ * 系统访问记录
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/monitor/logininfor")
+public class SysLogininforController extends BaseController
+{
+    @Autowired
+    private ISysLogininforService logininforService;
+
+    @Autowired
+    private SysPasswordService passwordService;
+
+    @PreAuthorize("@ss.hasPermi('monitor:logininfor:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysLogininfor logininfor)
+    {
+        startPage();
+        List<SysLogininfor> list = logininforService.selectLogininforList(logininfor);
+        return getDataTable(list);
+    }
+
+    @Log(title = "登录日志", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('monitor:logininfor:export')")
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysLogininfor logininfor)
+    {
+        List<SysLogininfor> list = logininforService.selectLogininforList(logininfor);
+        ExcelUtil<SysLogininfor> util = new ExcelUtil<SysLogininfor>(SysLogininfor.class);
+        util.exportExcel(response, list, "登录日志");
+    }
+
+    @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
+    @Log(title = "登录日志", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{infoIds}")
+    public AjaxResult remove(@PathVariable Long[] infoIds)
+    {
+        return toAjax(logininforService.deleteLogininforByIds(infoIds));
+    }
+
+    @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
+    @Log(title = "登录日志", businessType = BusinessType.CLEAN)
+    @DeleteMapping("/clean")
+    public AjaxResult clean()
+    {
+        logininforService.cleanLogininfor();
+        return success();
+    }
+
+    @PreAuthorize("@ss.hasPermi('monitor:logininfor:unlock')")
+    @Log(title = "账户解锁", businessType = BusinessType.OTHER)
+    @GetMapping("/unlock/{userName}")
+    public AjaxResult unlock(@PathVariable("userName") String userName)
+    {
+        passwordService.clearLoginRecordCache(userName);
+        return success();
+    }
+}

+ 69 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/monitor/SysOperlogController.java

@@ -0,0 +1,69 @@
+package com.enteprise.web.controller.monitor;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.core.page.TableDataInfo;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.system.domain.SysOperLog;
+import com.enteprise.system.service.ISysOperLogService;
+
+/**
+ * 操作日志记录
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/monitor/operlog")
+public class SysOperlogController extends BaseController
+{
+    @Autowired
+    private ISysOperLogService operLogService;
+
+    @PreAuthorize("@ss.hasPermi('monitor:operlog:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysOperLog operLog)
+    {
+        startPage();
+        List<SysOperLog> list = operLogService.selectOperLogList(operLog);
+        return getDataTable(list);
+    }
+
+    @Log(title = "操作日志", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('monitor:operlog:export')")
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysOperLog operLog)
+    {
+        List<SysOperLog> list = operLogService.selectOperLogList(operLog);
+        ExcelUtil<SysOperLog> util = new ExcelUtil<SysOperLog>(SysOperLog.class);
+        util.exportExcel(response, list, "操作日志");
+    }
+
+    @Log(title = "操作日志", businessType = BusinessType.DELETE)
+    @PreAuthorize("@ss.hasPermi('monitor:operlog:remove')")
+    @DeleteMapping("/{operIds}")
+    public AjaxResult remove(@PathVariable Long[] operIds)
+    {
+        return toAjax(operLogService.deleteOperLogByIds(operIds));
+    }
+
+    @Log(title = "操作日志", businessType = BusinessType.CLEAN)
+    @PreAuthorize("@ss.hasPermi('monitor:operlog:remove')")
+    @DeleteMapping("/clean")
+    public AjaxResult clean()
+    {
+        operLogService.cleanOperLog();
+        return success();
+    }
+}

+ 83 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/monitor/SysUserOnlineController.java

@@ -0,0 +1,83 @@
+package com.enteprise.web.controller.monitor;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.enteprise.common.annotation.Log;
+import com.enteprise.common.constant.CacheConstants;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.core.domain.model.LoginUser;
+import com.enteprise.common.core.page.TableDataInfo;
+import com.enteprise.common.core.redis.RedisCache;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.common.utils.StringUtils;
+import com.enteprise.system.domain.SysUserOnline;
+import com.enteprise.system.service.ISysUserOnlineService;
+
+/**
+ * 在线用户监控
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/monitor/online")
+public class SysUserOnlineController extends BaseController
+{
+    @Autowired
+    private ISysUserOnlineService userOnlineService;
+
+    @Autowired
+    private RedisCache redisCache;
+
+    @PreAuthorize("@ss.hasPermi('monitor:online:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(String ipaddr, String userName)
+    {
+        Collection<String> keys = redisCache.keys(CacheConstants.LOGIN_TOKEN_KEY + "*");
+        List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>();
+        for (String key : keys)
+        {
+            LoginUser user = redisCache.getCacheObject(key);
+            if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName))
+            {
+                userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user));
+            }
+            else if (StringUtils.isNotEmpty(ipaddr))
+            {
+                userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, user));
+            }
+            else if (StringUtils.isNotEmpty(userName) && StringUtils.isNotNull(user.getUser()))
+            {
+                userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user));
+            }
+            else
+            {
+                userOnlineList.add(userOnlineService.loginUserToUserOnline(user));
+            }
+        }
+        Collections.reverse(userOnlineList);
+        userOnlineList.removeAll(Collections.singleton(null));
+        return getDataTable(userOnlineList);
+    }
+
+    /**
+     * 强退用户
+     */
+    @PreAuthorize("@ss.hasPermi('monitor:online:forceLogout')")
+    @Log(title = "在线用户", businessType = BusinessType.FORCE)
+    @DeleteMapping("/{tokenId}")
+    public AjaxResult forceLogout(@PathVariable String tokenId)
+    {
+        redisCache.deleteObject(CacheConstants.LOGIN_TOKEN_KEY + tokenId);
+        return success();
+    }
+}

+ 133 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysConfigController.java

@@ -0,0 +1,133 @@
+package com.enteprise.web.controller.system;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.core.page.TableDataInfo;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.system.domain.SysConfig;
+import com.enteprise.system.service.ISysConfigService;
+
+/**
+ * 参数配置 信息操作处理
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/config")
+public class SysConfigController extends BaseController
+{
+    @Autowired
+    private ISysConfigService configService;
+
+    /**
+     * 获取参数配置列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:config:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysConfig config)
+    {
+        startPage();
+        List<SysConfig> list = configService.selectConfigList(config);
+        return getDataTable(list);
+    }
+
+    @Log(title = "参数管理", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:config:export')")
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysConfig config)
+    {
+        List<SysConfig> list = configService.selectConfigList(config);
+        ExcelUtil<SysConfig> util = new ExcelUtil<SysConfig>(SysConfig.class);
+        util.exportExcel(response, list, "参数数据");
+    }
+
+    /**
+     * 根据参数编号获取详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:config:query')")
+    @GetMapping(value = "/{configId}")
+    public AjaxResult getInfo(@PathVariable Long configId)
+    {
+        return success(configService.selectConfigById(configId));
+    }
+
+    /**
+     * 根据参数键名查询参数值
+     */
+    @GetMapping(value = "/configKey/{configKey}")
+    public AjaxResult getConfigKey(@PathVariable String configKey)
+    {
+        return success(configService.selectConfigByKey(configKey));
+    }
+
+    /**
+     * 新增参数配置
+     */
+    @PreAuthorize("@ss.hasPermi('system:config:add')")
+    @Log(title = "参数管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysConfig config)
+    {
+        if (!configService.checkConfigKeyUnique(config))
+        {
+            return error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在");
+        }
+        config.setCreateBy(getUsername());
+        return toAjax(configService.insertConfig(config));
+    }
+
+    /**
+     * 修改参数配置
+     */
+    @PreAuthorize("@ss.hasPermi('system:config:edit')")
+    @Log(title = "参数管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysConfig config)
+    {
+        if (!configService.checkConfigKeyUnique(config))
+        {
+            return error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在");
+        }
+        config.setUpdateBy(getUsername());
+        return toAjax(configService.updateConfig(config));
+    }
+
+    /**
+     * 删除参数配置
+     */
+    @PreAuthorize("@ss.hasPermi('system:config:remove')")
+    @Log(title = "参数管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{configIds}")
+    public AjaxResult remove(@PathVariable Long[] configIds)
+    {
+        configService.deleteConfigByIds(configIds);
+        return success();
+    }
+
+    /**
+     * 刷新参数缓存
+     */
+    @PreAuthorize("@ss.hasPermi('system:config:remove')")
+    @Log(title = "参数管理", businessType = BusinessType.CLEAN)
+    @DeleteMapping("/refreshCache")
+    public AjaxResult refreshCache()
+    {
+        configService.resetConfigCache();
+        return success();
+    }
+}

+ 132 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysDeptController.java

@@ -0,0 +1,132 @@
+package com.enteprise.web.controller.system;
+
+import java.util.List;
+import org.apache.commons.lang3.ArrayUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.enteprise.common.annotation.Log;
+import com.enteprise.common.constant.UserConstants;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.core.domain.entity.SysDept;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.common.utils.StringUtils;
+import com.enteprise.system.service.ISysDeptService;
+
+/**
+ * 部门信息
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/dept")
+public class SysDeptController extends BaseController
+{
+    @Autowired
+    private ISysDeptService deptService;
+
+    /**
+     * 获取部门列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:dept:list')")
+    @GetMapping("/list")
+    public AjaxResult list(SysDept dept)
+    {
+        List<SysDept> depts = deptService.selectDeptList(dept);
+        return success(depts);
+    }
+
+    /**
+     * 查询部门列表(排除节点)
+     */
+    @PreAuthorize("@ss.hasPermi('system:dept:list')")
+    @GetMapping("/list/exclude/{deptId}")
+    public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId)
+    {
+        List<SysDept> depts = deptService.selectDeptList(new SysDept());
+        depts.removeIf(d -> d.getDeptId().intValue() == deptId || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + ""));
+        return success(depts);
+    }
+
+    /**
+     * 根据部门编号获取详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:dept:query')")
+    @GetMapping(value = "/{deptId}")
+    public AjaxResult getInfo(@PathVariable Long deptId)
+    {
+        deptService.checkDeptDataScope(deptId);
+        return success(deptService.selectDeptById(deptId));
+    }
+
+    /**
+     * 新增部门
+     */
+    @PreAuthorize("@ss.hasPermi('system:dept:add')")
+    @Log(title = "部门管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysDept dept)
+    {
+        if (!deptService.checkDeptNameUnique(dept))
+        {
+            return error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在");
+        }
+        dept.setCreateBy(getUsername());
+        return toAjax(deptService.insertDept(dept));
+    }
+
+    /**
+     * 修改部门
+     */
+    @PreAuthorize("@ss.hasPermi('system:dept:edit')")
+    @Log(title = "部门管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysDept dept)
+    {
+        Long deptId = dept.getDeptId();
+        deptService.checkDeptDataScope(deptId);
+        if (!deptService.checkDeptNameUnique(dept))
+        {
+            return error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在");
+        }
+        else if (dept.getParentId().equals(deptId))
+        {
+            return error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己");
+        }
+        else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0)
+        {
+            return error("该部门包含未停用的子部门!");
+        }
+        dept.setUpdateBy(getUsername());
+        return toAjax(deptService.updateDept(dept));
+    }
+
+    /**
+     * 删除部门
+     */
+    @PreAuthorize("@ss.hasPermi('system:dept:remove')")
+    @Log(title = "部门管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{deptId}")
+    public AjaxResult remove(@PathVariable Long deptId)
+    {
+        if (deptService.hasChildByDeptId(deptId))
+        {
+            return warn("存在下级部门,不允许删除");
+        }
+        if (deptService.checkDeptExistUser(deptId))
+        {
+            return warn("部门存在用户,不允许删除");
+        }
+        deptService.checkDeptDataScope(deptId);
+        return toAjax(deptService.deleteDeptById(deptId));
+    }
+}

+ 121 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysDictDataController.java

@@ -0,0 +1,121 @@
+package com.enteprise.web.controller.system;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.core.domain.entity.SysDictData;
+import com.enteprise.common.core.page.TableDataInfo;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.common.utils.StringUtils;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.system.service.ISysDictDataService;
+import com.enteprise.system.service.ISysDictTypeService;
+
+/**
+ * 数据字典信息
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/dict/data")
+public class SysDictDataController extends BaseController
+{
+    @Autowired
+    private ISysDictDataService dictDataService;
+
+    @Autowired
+    private ISysDictTypeService dictTypeService;
+
+    @PreAuthorize("@ss.hasPermi('system:dict:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysDictData dictData)
+    {
+        startPage();
+        List<SysDictData> list = dictDataService.selectDictDataList(dictData);
+        return getDataTable(list);
+    }
+
+    @Log(title = "字典数据", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:dict:export')")
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysDictData dictData)
+    {
+        List<SysDictData> list = dictDataService.selectDictDataList(dictData);
+        ExcelUtil<SysDictData> util = new ExcelUtil<SysDictData>(SysDictData.class);
+        util.exportExcel(response, list, "字典数据");
+    }
+
+    /**
+     * 查询字典数据详细
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:query')")
+    @GetMapping(value = "/{dictCode}")
+    public AjaxResult getInfo(@PathVariable Long dictCode)
+    {
+        return success(dictDataService.selectDictDataById(dictCode));
+    }
+
+    /**
+     * 根据字典类型查询字典数据信息
+     */
+    @GetMapping(value = "/type/{dictType}")
+    public AjaxResult dictType(@PathVariable String dictType)
+    {
+        List<SysDictData> data = dictTypeService.selectDictDataByType(dictType);
+        if (StringUtils.isNull(data))
+        {
+            data = new ArrayList<SysDictData>();
+        }
+        return success(data);
+    }
+
+    /**
+     * 新增字典类型
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:add')")
+    @Log(title = "字典数据", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysDictData dict)
+    {
+        dict.setCreateBy(getUsername());
+        return toAjax(dictDataService.insertDictData(dict));
+    }
+
+    /**
+     * 修改保存字典类型
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:edit')")
+    @Log(title = "字典数据", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysDictData dict)
+    {
+        dict.setUpdateBy(getUsername());
+        return toAjax(dictDataService.updateDictData(dict));
+    }
+
+    /**
+     * 删除字典类型
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:remove')")
+    @Log(title = "字典类型", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{dictCodes}")
+    public AjaxResult remove(@PathVariable Long[] dictCodes)
+    {
+        dictDataService.deleteDictDataByIds(dictCodes);
+        return success();
+    }
+}

+ 131 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysDictTypeController.java

@@ -0,0 +1,131 @@
+package com.enteprise.web.controller.system;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.core.domain.entity.SysDictType;
+import com.enteprise.common.core.page.TableDataInfo;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.system.service.ISysDictTypeService;
+
+/**
+ * 数据字典信息
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/dict/type")
+public class SysDictTypeController extends BaseController
+{
+    @Autowired
+    private ISysDictTypeService dictTypeService;
+
+    @PreAuthorize("@ss.hasPermi('system:dict:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysDictType dictType)
+    {
+        startPage();
+        List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
+        return getDataTable(list);
+    }
+
+    @Log(title = "字典类型", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:dict:export')")
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysDictType dictType)
+    {
+        List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
+        ExcelUtil<SysDictType> util = new ExcelUtil<SysDictType>(SysDictType.class);
+        util.exportExcel(response, list, "字典类型");
+    }
+
+    /**
+     * 查询字典类型详细
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:query')")
+    @GetMapping(value = "/{dictId}")
+    public AjaxResult getInfo(@PathVariable Long dictId)
+    {
+        return success(dictTypeService.selectDictTypeById(dictId));
+    }
+
+    /**
+     * 新增字典类型
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:add')")
+    @Log(title = "字典类型", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysDictType dict)
+    {
+        if (!dictTypeService.checkDictTypeUnique(dict))
+        {
+            return error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在");
+        }
+        dict.setCreateBy(getUsername());
+        return toAjax(dictTypeService.insertDictType(dict));
+    }
+
+    /**
+     * 修改字典类型
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:edit')")
+    @Log(title = "字典类型", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysDictType dict)
+    {
+        if (!dictTypeService.checkDictTypeUnique(dict))
+        {
+            return error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在");
+        }
+        dict.setUpdateBy(getUsername());
+        return toAjax(dictTypeService.updateDictType(dict));
+    }
+
+    /**
+     * 删除字典类型
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:remove')")
+    @Log(title = "字典类型", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{dictIds}")
+    public AjaxResult remove(@PathVariable Long[] dictIds)
+    {
+        dictTypeService.deleteDictTypeByIds(dictIds);
+        return success();
+    }
+
+    /**
+     * 刷新字典缓存
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:remove')")
+    @Log(title = "字典类型", businessType = BusinessType.CLEAN)
+    @DeleteMapping("/refreshCache")
+    public AjaxResult refreshCache()
+    {
+        dictTypeService.resetDictCache();
+        return success();
+    }
+
+    /**
+     * 获取字典选择框列表
+     */
+    @GetMapping("/optionselect")
+    public AjaxResult optionselect()
+    {
+        List<SysDictType> dictTypes = dictTypeService.selectDictTypeAll();
+        return success(dictTypes);
+    }
+}

+ 29 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysIndexController.java

@@ -0,0 +1,29 @@
+package com.enteprise.web.controller.system;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.enteprise.common.config.RuoYiConfig;
+import com.enteprise.common.utils.StringUtils;
+
+/**
+ * 首页
+ *
+ * @author ruoyi
+ */
+@RestController
+public class SysIndexController
+{
+    /** 系统基础配置 */
+    @Autowired
+    private RuoYiConfig ruoyiConfig;
+
+    /**
+     * 访问首页,提示语
+     */
+    @RequestMapping("/")
+    public String index()
+    {
+        return StringUtils.format("欢迎使用{}后台管理框架,当前版本:v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion());
+    }
+}

+ 86 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysLoginController.java

@@ -0,0 +1,86 @@
+package com.enteprise.web.controller.system;
+
+import java.util.List;
+import java.util.Set;
+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.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import com.enteprise.common.constant.Constants;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.core.domain.entity.SysMenu;
+import com.enteprise.common.core.domain.entity.SysUser;
+import com.enteprise.common.core.domain.model.LoginBody;
+import com.enteprise.common.utils.SecurityUtils;
+import com.enteprise.framework.web.service.SysLoginService;
+import com.enteprise.framework.web.service.SysPermissionService;
+import com.enteprise.system.service.ISysMenuService;
+
+/**
+ * 登录验证
+ * 
+ * @author ruoyi
+ */
+@RestController
+public class SysLoginController
+{
+    @Autowired
+    private SysLoginService loginService;
+
+    @Autowired
+    private ISysMenuService menuService;
+
+    @Autowired
+    private SysPermissionService permissionService;
+
+    /**
+     * 登录方法
+     * 
+     * @param loginBody 登录信息
+     * @return 结果
+     */
+    @PostMapping("/login")
+    public AjaxResult login(@RequestBody LoginBody loginBody)
+    {
+        AjaxResult ajax = AjaxResult.success();
+        // 生成令牌
+        String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
+                loginBody.getUuid());
+        ajax.put(Constants.TOKEN, token);
+        return ajax;
+    }
+
+    /**
+     * 获取用户信息
+     * 
+     * @return 用户信息
+     */
+    @GetMapping("getInfo")
+    public AjaxResult getInfo()
+    {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        // 角色集合
+        Set<String> roles = permissionService.getRolePermission(user);
+        // 权限集合
+        Set<String> permissions = permissionService.getMenuPermission(user);
+        AjaxResult ajax = AjaxResult.success();
+        ajax.put("user", user);
+        ajax.put("roles", roles);
+        ajax.put("permissions", permissions);
+        return ajax;
+    }
+
+    /**
+     * 获取路由信息
+     * 
+     * @return 路由信息
+     */
+    @GetMapping("getRouters")
+    public AjaxResult getRouters()
+    {
+        Long userId = SecurityUtils.getUserId();
+        List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
+        return AjaxResult.success(menuService.buildMenus(menus));
+    }
+}

+ 142 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysMenuController.java

@@ -0,0 +1,142 @@
+package com.enteprise.web.controller.system;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.enteprise.common.annotation.Log;
+import com.enteprise.common.constant.UserConstants;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.core.domain.entity.SysMenu;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.common.utils.StringUtils;
+import com.enteprise.system.service.ISysMenuService;
+
+/**
+ * 菜单信息
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/menu")
+public class SysMenuController extends BaseController
+{
+    @Autowired
+    private ISysMenuService menuService;
+
+    /**
+     * 获取菜单列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:menu:list')")
+    @GetMapping("/list")
+    public AjaxResult list(SysMenu menu)
+    {
+        List<SysMenu> menus = menuService.selectMenuList(menu, getUserId());
+        return success(menus);
+    }
+
+    /**
+     * 根据菜单编号获取详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:menu:query')")
+    @GetMapping(value = "/{menuId}")
+    public AjaxResult getInfo(@PathVariable Long menuId)
+    {
+        return success(menuService.selectMenuById(menuId));
+    }
+
+    /**
+     * 获取菜单下拉树列表
+     */
+    @GetMapping("/treeselect")
+    public AjaxResult treeselect(SysMenu menu)
+    {
+        List<SysMenu> menus = menuService.selectMenuList(menu, getUserId());
+        return success(menuService.buildMenuTreeSelect(menus));
+    }
+
+    /**
+     * 加载对应角色菜单列表树
+     */
+    @GetMapping(value = "/roleMenuTreeselect/{roleId}")
+    public AjaxResult roleMenuTreeselect(@PathVariable("roleId") Long roleId)
+    {
+        List<SysMenu> menus = menuService.selectMenuList(getUserId());
+        AjaxResult ajax = AjaxResult.success();
+        ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId));
+        ajax.put("menus", menuService.buildMenuTreeSelect(menus));
+        return ajax;
+    }
+
+    /**
+     * 新增菜单
+     */
+    @PreAuthorize("@ss.hasPermi('system:menu:add')")
+    @Log(title = "菜单管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysMenu menu)
+    {
+        if (!menuService.checkMenuNameUnique(menu))
+        {
+            return error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
+        }
+        else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath()))
+        {
+            return error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");
+        }
+        menu.setCreateBy(getUsername());
+        return toAjax(menuService.insertMenu(menu));
+    }
+
+    /**
+     * 修改菜单
+     */
+    @PreAuthorize("@ss.hasPermi('system:menu:edit')")
+    @Log(title = "菜单管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysMenu menu)
+    {
+        if (!menuService.checkMenuNameUnique(menu))
+        {
+            return error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
+        }
+        else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath()))
+        {
+            return error("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");
+        }
+        else if (menu.getMenuId().equals(menu.getParentId()))
+        {
+            return error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己");
+        }
+        menu.setUpdateBy(getUsername());
+        return toAjax(menuService.updateMenu(menu));
+    }
+
+    /**
+     * 删除菜单
+     */
+    @PreAuthorize("@ss.hasPermi('system:menu:remove')")
+    @Log(title = "菜单管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{menuId}")
+    public AjaxResult remove(@PathVariable("menuId") Long menuId)
+    {
+        if (menuService.hasChildByMenuId(menuId))
+        {
+            return warn("存在子菜单,不允许删除");
+        }
+        if (menuService.checkMenuExistRole(menuId))
+        {
+            return warn("菜单已分配,不允许删除");
+        }
+        return toAjax(menuService.deleteMenuById(menuId));
+    }
+}

+ 91 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysNoticeController.java

@@ -0,0 +1,91 @@
+package com.enteprise.web.controller.system;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.core.page.TableDataInfo;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.system.domain.SysNotice;
+import com.enteprise.system.service.ISysNoticeService;
+
+/**
+ * 公告 信息操作处理
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/notice")
+public class SysNoticeController extends BaseController
+{
+    @Autowired
+    private ISysNoticeService noticeService;
+
+    /**
+     * 获取通知公告列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:notice:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysNotice notice)
+    {
+        startPage();
+        List<SysNotice> list = noticeService.selectNoticeList(notice);
+        return getDataTable(list);
+    }
+
+    /**
+     * 根据通知公告编号获取详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:notice:query')")
+    @GetMapping(value = "/{noticeId}")
+    public AjaxResult getInfo(@PathVariable Long noticeId)
+    {
+        return success(noticeService.selectNoticeById(noticeId));
+    }
+
+    /**
+     * 新增通知公告
+     */
+    @PreAuthorize("@ss.hasPermi('system:notice:add')")
+    @Log(title = "通知公告", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysNotice notice)
+    {
+        notice.setCreateBy(getUsername());
+        return toAjax(noticeService.insertNotice(notice));
+    }
+
+    /**
+     * 修改通知公告
+     */
+    @PreAuthorize("@ss.hasPermi('system:notice:edit')")
+    @Log(title = "通知公告", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysNotice notice)
+    {
+        notice.setUpdateBy(getUsername());
+        return toAjax(noticeService.updateNotice(notice));
+    }
+
+    /**
+     * 删除通知公告
+     */
+    @PreAuthorize("@ss.hasPermi('system:notice:remove')")
+    @Log(title = "通知公告", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{noticeIds}")
+    public AjaxResult remove(@PathVariable Long[] noticeIds)
+    {
+        return toAjax(noticeService.deleteNoticeByIds(noticeIds));
+    }
+}

+ 129 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysPostController.java

@@ -0,0 +1,129 @@
+package com.enteprise.web.controller.system;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.core.page.TableDataInfo;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.system.domain.SysPost;
+import com.enteprise.system.service.ISysPostService;
+
+/**
+ * 岗位信息操作处理
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/post")
+public class SysPostController extends BaseController
+{
+    @Autowired
+    private ISysPostService postService;
+
+    /**
+     * 获取岗位列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:post:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysPost post)
+    {
+        startPage();
+        List<SysPost> list = postService.selectPostList(post);
+        return getDataTable(list);
+    }
+    
+    @Log(title = "岗位管理", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:post:export')")
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysPost post)
+    {
+        List<SysPost> list = postService.selectPostList(post);
+        ExcelUtil<SysPost> util = new ExcelUtil<SysPost>(SysPost.class);
+        util.exportExcel(response, list, "岗位数据");
+    }
+
+    /**
+     * 根据岗位编号获取详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:post:query')")
+    @GetMapping(value = "/{postId}")
+    public AjaxResult getInfo(@PathVariable Long postId)
+    {
+        return success(postService.selectPostById(postId));
+    }
+
+    /**
+     * 新增岗位
+     */
+    @PreAuthorize("@ss.hasPermi('system:post:add')")
+    @Log(title = "岗位管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysPost post)
+    {
+        if (!postService.checkPostNameUnique(post))
+        {
+            return error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在");
+        }
+        else if (!postService.checkPostCodeUnique(post))
+        {
+            return error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在");
+        }
+        post.setCreateBy(getUsername());
+        return toAjax(postService.insertPost(post));
+    }
+
+    /**
+     * 修改岗位
+     */
+    @PreAuthorize("@ss.hasPermi('system:post:edit')")
+    @Log(title = "岗位管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysPost post)
+    {
+        if (!postService.checkPostNameUnique(post))
+        {
+            return error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在");
+        }
+        else if (!postService.checkPostCodeUnique(post))
+        {
+            return error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在");
+        }
+        post.setUpdateBy(getUsername());
+        return toAjax(postService.updatePost(post));
+    }
+
+    /**
+     * 删除岗位
+     */
+    @PreAuthorize("@ss.hasPermi('system:post:remove')")
+    @Log(title = "岗位管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{postIds}")
+    public AjaxResult remove(@PathVariable Long[] postIds)
+    {
+        return toAjax(postService.deletePostByIds(postIds));
+    }
+
+    /**
+     * 获取岗位选择框列表
+     */
+    @GetMapping("/optionselect")
+    public AjaxResult optionselect()
+    {
+        List<SysPost> posts = postService.selectPostAll();
+        return success(posts);
+    }
+}

+ 137 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysProfileController.java

@@ -0,0 +1,137 @@
+package com.enteprise.web.controller.system;
+
+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.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+import com.enteprise.common.annotation.Log;
+import com.enteprise.common.config.RuoYiConfig;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.core.domain.entity.SysUser;
+import com.enteprise.common.core.domain.model.LoginUser;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.common.utils.SecurityUtils;
+import com.enteprise.common.utils.StringUtils;
+import com.enteprise.common.utils.file.FileUploadUtils;
+import com.enteprise.common.utils.file.MimeTypeUtils;
+import com.enteprise.framework.web.service.TokenService;
+import com.enteprise.system.service.ISysUserService;
+
+/**
+ * 个人信息 业务处理
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/user/profile")
+public class SysProfileController extends BaseController
+{
+    @Autowired
+    private ISysUserService userService;
+
+    @Autowired
+    private TokenService tokenService;
+
+    /**
+     * 个人信息
+     */
+    @GetMapping
+    public AjaxResult profile()
+    {
+        LoginUser loginUser = getLoginUser();
+        SysUser user = loginUser.getUser();
+        AjaxResult ajax = AjaxResult.success(user);
+        ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername()));
+        ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername()));
+        return ajax;
+    }
+
+    /**
+     * 修改用户
+     */
+    @Log(title = "个人信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult updateProfile(@RequestBody SysUser user)
+    {
+        LoginUser loginUser = getLoginUser();
+        SysUser currentUser = loginUser.getUser();
+        currentUser.setNickName(user.getNickName());
+        currentUser.setEmail(user.getEmail());
+        currentUser.setPhonenumber(user.getPhonenumber());
+        currentUser.setSex(user.getSex());
+        if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(currentUser))
+        {
+            return error("修改用户'" + loginUser.getUsername() + "'失败,手机号码已存在");
+        }
+        if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(currentUser))
+        {
+            return error("修改用户'" + loginUser.getUsername() + "'失败,邮箱账号已存在");
+        }
+        if (userService.updateUserProfile(currentUser) > 0)
+        {
+            // 更新缓存用户信息
+            tokenService.setLoginUser(loginUser);
+            return success();
+        }
+        return error("修改个人信息异常,请联系管理员");
+    }
+
+    /**
+     * 重置密码
+     */
+    @Log(title = "个人信息", businessType = BusinessType.UPDATE)
+    @PutMapping("/updatePwd")
+    public AjaxResult updatePwd(String oldPassword, String newPassword)
+    {
+        LoginUser loginUser = getLoginUser();
+        String userName = loginUser.getUsername();
+        String password = loginUser.getPassword();
+        if (!SecurityUtils.matchesPassword(oldPassword, password))
+        {
+            return error("修改密码失败,旧密码错误");
+        }
+        if (SecurityUtils.matchesPassword(newPassword, password))
+        {
+            return error("新密码不能与旧密码相同");
+        }
+        newPassword = SecurityUtils.encryptPassword(newPassword);
+        if (userService.resetUserPwd(userName, newPassword) > 0)
+        {
+            // 更新缓存用户密码
+            loginUser.getUser().setPassword(newPassword);
+            tokenService.setLoginUser(loginUser);
+            return success();
+        }
+        return error("修改密码异常,请联系管理员");
+    }
+
+    /**
+     * 头像上传
+     */
+    @Log(title = "用户头像", businessType = BusinessType.UPDATE)
+    @PostMapping("/avatar")
+    public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws Exception
+    {
+        if (!file.isEmpty())
+        {
+            LoginUser loginUser = getLoginUser();
+            String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file, MimeTypeUtils.IMAGE_EXTENSION);
+            if (userService.updateUserAvatar(loginUser.getUsername(), avatar))
+            {
+                AjaxResult ajax = AjaxResult.success();
+                ajax.put("imgUrl", avatar);
+                // 更新缓存用户头像
+                loginUser.getUser().setAvatar(avatar);
+                tokenService.setLoginUser(loginUser);
+                return ajax;
+            }
+        }
+        return error("上传图片异常,请联系管理员");
+    }
+}

+ 38 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysRegisterController.java

@@ -0,0 +1,38 @@
+package com.enteprise.web.controller.system;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.core.domain.model.RegisterBody;
+import com.enteprise.common.utils.StringUtils;
+import com.enteprise.framework.web.service.SysRegisterService;
+import com.enteprise.system.service.ISysConfigService;
+
+/**
+ * 注册验证
+ * 
+ * @author ruoyi
+ */
+@RestController
+public class SysRegisterController extends BaseController
+{
+    @Autowired
+    private SysRegisterService registerService;
+
+    @Autowired
+    private ISysConfigService configService;
+
+    @PostMapping("/register")
+    public AjaxResult register(@RequestBody RegisterBody user)
+    {
+        if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser"))))
+        {
+            return error("当前系统没有开启注册功能!");
+        }
+        String msg = registerService.register(user);
+        return StringUtils.isEmpty(msg) ? success() : error(msg);
+    }
+}

+ 262 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysRoleController.java

@@ -0,0 +1,262 @@
+package com.enteprise.web.controller.system;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.core.domain.entity.SysDept;
+import com.enteprise.common.core.domain.entity.SysRole;
+import com.enteprise.common.core.domain.entity.SysUser;
+import com.enteprise.common.core.domain.model.LoginUser;
+import com.enteprise.common.core.page.TableDataInfo;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.common.utils.StringUtils;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.framework.web.service.SysPermissionService;
+import com.enteprise.framework.web.service.TokenService;
+import com.enteprise.system.domain.SysUserRole;
+import com.enteprise.system.service.ISysDeptService;
+import com.enteprise.system.service.ISysRoleService;
+import com.enteprise.system.service.ISysUserService;
+
+/**
+ * 角色信息
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/role")
+public class SysRoleController extends BaseController
+{
+    @Autowired
+    private ISysRoleService roleService;
+
+    @Autowired
+    private TokenService tokenService;
+
+    @Autowired
+    private SysPermissionService permissionService;
+
+    @Autowired
+    private ISysUserService userService;
+
+    @Autowired
+    private ISysDeptService deptService;
+
+    @PreAuthorize("@ss.hasPermi('system:role:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysRole role)
+    {
+        startPage();
+        List<SysRole> list = roleService.selectRoleList(role);
+        return getDataTable(list);
+    }
+
+    @Log(title = "角色管理", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:role:export')")
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysRole role)
+    {
+        List<SysRole> list = roleService.selectRoleList(role);
+        ExcelUtil<SysRole> util = new ExcelUtil<SysRole>(SysRole.class);
+        util.exportExcel(response, list, "角色数据");
+    }
+
+    /**
+     * 根据角色编号获取详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:query')")
+    @GetMapping(value = "/{roleId}")
+    public AjaxResult getInfo(@PathVariable Long roleId)
+    {
+        roleService.checkRoleDataScope(roleId);
+        return success(roleService.selectRoleById(roleId));
+    }
+
+    /**
+     * 新增角色
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:add')")
+    @Log(title = "角色管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysRole role)
+    {
+        if (!roleService.checkRoleNameUnique(role))
+        {
+            return error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在");
+        }
+        else if (!roleService.checkRoleKeyUnique(role))
+        {
+            return error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
+        }
+        role.setCreateBy(getUsername());
+        return toAjax(roleService.insertRole(role));
+
+    }
+
+    /**
+     * 修改保存角色
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysRole role)
+    {
+        roleService.checkRoleAllowed(role);
+        roleService.checkRoleDataScope(role.getRoleId());
+        if (!roleService.checkRoleNameUnique(role))
+        {
+            return error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在");
+        }
+        else if (!roleService.checkRoleKeyUnique(role))
+        {
+            return error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在");
+        }
+        role.setUpdateBy(getUsername());
+        
+        if (roleService.updateRole(role) > 0)
+        {
+            // 更新缓存用户权限
+            LoginUser loginUser = getLoginUser();
+            if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin())
+            {
+                loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser()));
+                loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName()));
+                tokenService.setLoginUser(loginUser);
+            }
+            return success();
+        }
+        return error("修改角色'" + role.getRoleName() + "'失败,请联系管理员");
+    }
+
+    /**
+     * 修改保存数据权限
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/dataScope")
+    public AjaxResult dataScope(@RequestBody SysRole role)
+    {
+        roleService.checkRoleAllowed(role);
+        roleService.checkRoleDataScope(role.getRoleId());
+        return toAjax(roleService.authDataScope(role));
+    }
+
+    /**
+     * 状态修改
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/changeStatus")
+    public AjaxResult changeStatus(@RequestBody SysRole role)
+    {
+        roleService.checkRoleAllowed(role);
+        roleService.checkRoleDataScope(role.getRoleId());
+        role.setUpdateBy(getUsername());
+        return toAjax(roleService.updateRoleStatus(role));
+    }
+
+    /**
+     * 删除角色
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:remove')")
+    @Log(title = "角色管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{roleIds}")
+    public AjaxResult remove(@PathVariable Long[] roleIds)
+    {
+        return toAjax(roleService.deleteRoleByIds(roleIds));
+    }
+
+    /**
+     * 获取角色选择框列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:query')")
+    @GetMapping("/optionselect")
+    public AjaxResult optionselect()
+    {
+        return success(roleService.selectRoleAll());
+    }
+
+    /**
+     * 查询已分配用户角色列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:list')")
+    @GetMapping("/authUser/allocatedList")
+    public TableDataInfo allocatedList(SysUser user)
+    {
+        startPage();
+        List<SysUser> list = userService.selectAllocatedList(user);
+        return getDataTable(list);
+    }
+
+    /**
+     * 查询未分配用户角色列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:list')")
+    @GetMapping("/authUser/unallocatedList")
+    public TableDataInfo unallocatedList(SysUser user)
+    {
+        startPage();
+        List<SysUser> list = userService.selectUnallocatedList(user);
+        return getDataTable(list);
+    }
+
+    /**
+     * 取消授权用户
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+    @Log(title = "角色管理", businessType = BusinessType.GRANT)
+    @PutMapping("/authUser/cancel")
+    public AjaxResult cancelAuthUser(@RequestBody SysUserRole userRole)
+    {
+        return toAjax(roleService.deleteAuthUser(userRole));
+    }
+
+    /**
+     * 批量取消授权用户
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+    @Log(title = "角色管理", businessType = BusinessType.GRANT)
+    @PutMapping("/authUser/cancelAll")
+    public AjaxResult cancelAuthUserAll(Long roleId, Long[] userIds)
+    {
+        return toAjax(roleService.deleteAuthUsers(roleId, userIds));
+    }
+
+    /**
+     * 批量选择用户授权
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+    @Log(title = "角色管理", businessType = BusinessType.GRANT)
+    @PutMapping("/authUser/selectAll")
+    public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds)
+    {
+        roleService.checkRoleDataScope(roleId);
+        return toAjax(roleService.insertAuthUsers(roleId, userIds));
+    }
+
+    /**
+     * 获取对应角色部门树列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:query')")
+    @GetMapping(value = "/deptTree/{roleId}")
+    public AjaxResult deptTree(@PathVariable("roleId") Long roleId)
+    {
+        AjaxResult ajax = AjaxResult.success();
+        ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId));
+        ajax.put("depts", deptService.selectDeptTreeList(new SysDept()));
+        return ajax;
+    }
+}

+ 256 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/system/SysUserController.java

@@ -0,0 +1,256 @@
+package com.enteprise.web.controller.system;
+
+import java.util.List;
+import java.util.stream.Collectors;
+import javax.servlet.http.HttpServletResponse;
+import org.apache.commons.lang3.ArrayUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+import com.enteprise.common.annotation.Log;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.AjaxResult;
+import com.enteprise.common.core.domain.entity.SysDept;
+import com.enteprise.common.core.domain.entity.SysRole;
+import com.enteprise.common.core.domain.entity.SysUser;
+import com.enteprise.common.core.page.TableDataInfo;
+import com.enteprise.common.enums.BusinessType;
+import com.enteprise.common.utils.SecurityUtils;
+import com.enteprise.common.utils.StringUtils;
+import com.enteprise.common.utils.poi.ExcelUtil;
+import com.enteprise.system.service.ISysDeptService;
+import com.enteprise.system.service.ISysPostService;
+import com.enteprise.system.service.ISysRoleService;
+import com.enteprise.system.service.ISysUserService;
+
+/**
+ * 用户信息
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/user")
+public class SysUserController extends BaseController
+{
+    @Autowired
+    private ISysUserService userService;
+
+    @Autowired
+    private ISysRoleService roleService;
+
+    @Autowired
+    private ISysDeptService deptService;
+
+    @Autowired
+    private ISysPostService postService;
+
+    /**
+     * 获取用户列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysUser user)
+    {
+        startPage();
+        List<SysUser> list = userService.selectUserList(user);
+        return getDataTable(list);
+    }
+
+    @Log(title = "用户管理", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:user:export')")
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysUser user)
+    {
+        List<SysUser> list = userService.selectUserList(user);
+        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
+        util.exportExcel(response, list, "用户数据");
+    }
+
+    @Log(title = "用户管理", businessType = BusinessType.IMPORT)
+    @PreAuthorize("@ss.hasPermi('system:user:import')")
+    @PostMapping("/importData")
+    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
+    {
+        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
+        List<SysUser> userList = util.importExcel(file.getInputStream());
+        String operName = getUsername();
+        String message = userService.importUser(userList, updateSupport, operName);
+        return success(message);
+    }
+
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response)
+    {
+        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
+        util.importTemplateExcel(response, "用户数据");
+    }
+
+    /**
+     * 根据用户编号获取详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:query')")
+    @GetMapping(value = { "/", "/{userId}" })
+    public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId)
+    {
+        userService.checkUserDataScope(userId);
+        AjaxResult ajax = AjaxResult.success();
+        List<SysRole> roles = roleService.selectRoleAll();
+        ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
+        ajax.put("posts", postService.selectPostAll());
+        if (StringUtils.isNotNull(userId))
+        {
+            SysUser sysUser = userService.selectUserById(userId);
+            ajax.put(AjaxResult.DATA_TAG, sysUser);
+            ajax.put("postIds", postService.selectPostListByUserId(userId));
+            ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()));
+        }
+        return ajax;
+    }
+
+    /**
+     * 新增用户
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:add')")
+    @Log(title = "用户管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysUser user)
+    {
+        deptService.checkDeptDataScope(user.getDeptId());
+        roleService.checkRoleDataScope(user.getRoleIds());
+        if (!userService.checkUserNameUnique(user))
+        {
+            return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
+        }
+        else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
+        {
+            return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
+        }
+        else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user))
+        {
+            return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
+        }
+        user.setCreateBy(getUsername());
+        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        return toAjax(userService.insertUser(user));
+    }
+
+    /**
+     * 修改用户
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:edit')")
+    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysUser user)
+    {
+        userService.checkUserAllowed(user);
+        userService.checkUserDataScope(user.getUserId());
+        deptService.checkDeptDataScope(user.getDeptId());
+        roleService.checkRoleDataScope(user.getRoleIds());
+        if (!userService.checkUserNameUnique(user))
+        {
+            return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在");
+        }
+        else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
+        {
+            return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
+        }
+        else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user))
+        {
+            return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
+        }
+        user.setUpdateBy(getUsername());
+        return toAjax(userService.updateUser(user));
+    }
+
+    /**
+     * 删除用户
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:remove')")
+    @Log(title = "用户管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{userIds}")
+    public AjaxResult remove(@PathVariable Long[] userIds)
+    {
+        if (ArrayUtils.contains(userIds, getUserId()))
+        {
+            return error("当前用户不能删除");
+        }
+        return toAjax(userService.deleteUserByIds(userIds));
+    }
+
+    /**
+     * 重置密码
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:resetPwd')")
+    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/resetPwd")
+    public AjaxResult resetPwd(@RequestBody SysUser user)
+    {
+        userService.checkUserAllowed(user);
+        userService.checkUserDataScope(user.getUserId());
+        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        user.setUpdateBy(getUsername());
+        return toAjax(userService.resetPwd(user));
+    }
+
+    /**
+     * 状态修改
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:edit')")
+    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/changeStatus")
+    public AjaxResult changeStatus(@RequestBody SysUser user)
+    {
+        userService.checkUserAllowed(user);
+        userService.checkUserDataScope(user.getUserId());
+        user.setUpdateBy(getUsername());
+        return toAjax(userService.updateUserStatus(user));
+    }
+
+    /**
+     * 根据用户编号获取授权角色
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:query')")
+    @GetMapping("/authRole/{userId}")
+    public AjaxResult authRole(@PathVariable("userId") Long userId)
+    {
+        AjaxResult ajax = AjaxResult.success();
+        SysUser user = userService.selectUserById(userId);
+        List<SysRole> roles = roleService.selectRolesByUserId(userId);
+        ajax.put("user", user);
+        ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
+        return ajax;
+    }
+
+    /**
+     * 用户授权角色
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:edit')")
+    @Log(title = "用户管理", businessType = BusinessType.GRANT)
+    @PutMapping("/authRole")
+    public AjaxResult insertAuthRole(Long userId, Long[] roleIds)
+    {
+        userService.checkUserDataScope(userId);
+        roleService.checkRoleDataScope(roleIds);
+        userService.insertUserAuth(userId, roleIds);
+        return success();
+    }
+
+    /**
+     * 获取部门树列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:list')")
+    @GetMapping("/deptTree")
+    public AjaxResult deptTree(SysDept dept)
+    {
+        return success(deptService.selectDeptTreeList(dept));
+    }
+}

+ 183 - 0
enteprise-admin/src/main/java/com/enteprise/web/controller/tool/TestController.java

@@ -0,0 +1,183 @@
+package com.enteprise.web.controller.tool;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.enteprise.common.core.controller.BaseController;
+import com.enteprise.common.core.domain.R;
+import com.enteprise.common.utils.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * swagger 用户测试方法
+ * 
+ * @author ruoyi
+ */
+@Api("用户信息管理")
+@RestController
+@RequestMapping("/test/user")
+public class TestController extends BaseController
+{
+    private final static Map<Integer, UserEntity> users = new LinkedHashMap<Integer, UserEntity>();
+    {
+        users.put(1, new UserEntity(1, "admin", "admin123", "15888888888"));
+        users.put(2, new UserEntity(2, "ry", "admin123", "15666666666"));
+    }
+
+    @ApiOperation("获取用户列表")
+    @GetMapping("/list")
+    public R<List<UserEntity>> userList()
+    {
+        List<UserEntity> userList = new ArrayList<UserEntity>(users.values());
+        return R.ok(userList);
+    }
+
+    @ApiOperation("获取用户详细")
+    @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
+    @GetMapping("/{userId}")
+    public R<UserEntity> getUser(@PathVariable Integer userId)
+    {
+        if (!users.isEmpty() && users.containsKey(userId))
+        {
+            return R.ok(users.get(userId));
+        }
+        else
+        {
+            return R.fail("用户不存在");
+        }
+    }
+
+    @ApiOperation("新增用户")
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "userId", value = "用户id", dataType = "Integer", dataTypeClass = Integer.class),
+        @ApiImplicitParam(name = "username", value = "用户名称", dataType = "String", dataTypeClass = String.class),
+        @ApiImplicitParam(name = "password", value = "用户密码", dataType = "String", dataTypeClass = String.class),
+        @ApiImplicitParam(name = "mobile", value = "用户手机", dataType = "String", dataTypeClass = String.class)
+    })
+    @PostMapping("/save")
+    public R<String> save(UserEntity user)
+    {
+        if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId()))
+        {
+            return R.fail("用户ID不能为空");
+        }
+        users.put(user.getUserId(), user);
+        return R.ok();
+    }
+
+    @ApiOperation("更新用户")
+    @PutMapping("/update")
+    public R<String> update(@RequestBody UserEntity user)
+    {
+        if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId()))
+        {
+            return R.fail("用户ID不能为空");
+        }
+        if (users.isEmpty() || !users.containsKey(user.getUserId()))
+        {
+            return R.fail("用户不存在");
+        }
+        users.remove(user.getUserId());
+        users.put(user.getUserId(), user);
+        return R.ok();
+    }
+
+    @ApiOperation("删除用户信息")
+    @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
+    @DeleteMapping("/{userId}")
+    public R<String> delete(@PathVariable Integer userId)
+    {
+        if (!users.isEmpty() && users.containsKey(userId))
+        {
+            users.remove(userId);
+            return R.ok();
+        }
+        else
+        {
+            return R.fail("用户不存在");
+        }
+    }
+}
+
+@ApiModel(value = "UserEntity", description = "用户实体")
+class UserEntity
+{
+    @ApiModelProperty("用户ID")
+    private Integer userId;
+
+    @ApiModelProperty("用户名称")
+    private String username;
+
+    @ApiModelProperty("用户密码")
+    private String password;
+
+    @ApiModelProperty("用户手机")
+    private String mobile;
+
+    public UserEntity()
+    {
+
+    }
+
+    public UserEntity(Integer userId, String username, String password, String mobile)
+    {
+        this.userId = userId;
+        this.username = username;
+        this.password = password;
+        this.mobile = mobile;
+    }
+
+    public Integer getUserId()
+    {
+        return userId;
+    }
+
+    public void setUserId(Integer userId)
+    {
+        this.userId = userId;
+    }
+
+    public String getUsername()
+    {
+        return username;
+    }
+
+    public void setUsername(String username)
+    {
+        this.username = username;
+    }
+
+    public String getPassword()
+    {
+        return password;
+    }
+
+    public void setPassword(String password)
+    {
+        this.password = password;
+    }
+
+    public String getMobile()
+    {
+        return mobile;
+    }
+
+    public void setMobile(String mobile)
+    {
+        this.mobile = mobile;
+    }
+}

+ 125 - 0
enteprise-admin/src/main/java/com/enteprise/web/core/config/SwaggerConfig.java

@@ -0,0 +1,125 @@
+package com.enteprise.web.core.config;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import com.enteprise.common.config.RuoYiConfig;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.models.auth.In;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.ApiKey;
+import springfox.documentation.service.AuthorizationScope;
+import springfox.documentation.service.Contact;
+import springfox.documentation.service.SecurityReference;
+import springfox.documentation.service.SecurityScheme;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spi.service.contexts.SecurityContext;
+import springfox.documentation.spring.web.plugins.Docket;
+
+/**
+ * Swagger2的接口配置
+ * 
+ * @author ruoyi
+ */
+@Configuration
+public class SwaggerConfig
+{
+    /** 系统基础配置 */
+    @Autowired
+    private RuoYiConfig ruoyiConfig;
+
+    /** 是否开启swagger */
+    @Value("${swagger.enabled}")
+    private boolean enabled;
+
+    /** 设置请求的统一前缀 */
+    @Value("${swagger.pathMapping}")
+    private String pathMapping;
+
+    /**
+     * 创建API
+     */
+    @Bean
+    public Docket createRestApi()
+    {
+        return new Docket(DocumentationType.OAS_30)
+                // 是否启用Swagger
+                .enable(enabled)
+                // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息)
+                .apiInfo(apiInfo())
+                // 设置哪些接口暴露给Swagger展示
+                .select()
+                // 扫描所有有注解的api,用这种方式更灵活
+                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
+                // 扫描指定包中的swagger注解
+                // .apis(RequestHandlerSelectors.basePackage("com.enteprise.project.tool.swagger"))
+                // 扫描所有 .apis(RequestHandlerSelectors.any())
+                .paths(PathSelectors.any())
+                .build()
+                /* 设置安全模式,swagger可以设置访问token */
+                .securitySchemes(securitySchemes())
+                .securityContexts(securityContexts())
+                .pathMapping(pathMapping);
+    }
+
+    /**
+     * 安全模式,这里指定token通过Authorization头请求头传递
+     */
+    private List<SecurityScheme> securitySchemes()
+    {
+        List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>();
+        apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue()));
+        return apiKeyList;
+    }
+
+    /**
+     * 安全上下文
+     */
+    private List<SecurityContext> securityContexts()
+    {
+        List<SecurityContext> securityContexts = new ArrayList<>();
+        securityContexts.add(
+                SecurityContext.builder()
+                        .securityReferences(defaultAuth())
+                        .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
+                        .build());
+        return securityContexts;
+    }
+
+    /**
+     * 默认的安全上引用
+     */
+    private List<SecurityReference> defaultAuth()
+    {
+        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
+        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
+        authorizationScopes[0] = authorizationScope;
+        List<SecurityReference> securityReferences = new ArrayList<>();
+        securityReferences.add(new SecurityReference("Authorization", authorizationScopes));
+        return securityReferences;
+    }
+
+    /**
+     * 添加摘要信息
+     */
+    private ApiInfo apiInfo()
+    {
+        // 用ApiInfoBuilder进行定制
+        return new ApiInfoBuilder()
+                // 设置标题
+                .title("标题:若依管理系统_接口文档")
+                // 描述
+                .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...")
+                // 作者信息
+                .contact(new Contact(ruoyiConfig.getName(), null, null))
+                // 版本
+                .version("版本号:" + ruoyiConfig.getVersion())
+                .build();
+    }
+}

+ 1 - 0
enteprise-admin/src/main/resources/META-INF/spring-devtools.properties

@@ -0,0 +1 @@
+restart.include.json=/com.alibaba.fastjson2.*.jar

Some files were not shown because too many files changed in this diff