32 Commits

Author SHA1 Message Date
95542bf4c9 Merge branch 'master' into test 2022-05-20 09:00:37 +08:00
3598fafe66 Merge branch 'master' of https://gitee.com/y_project/RuoYi-Vue 2022-05-20 08:59:45 +08:00
de1dd3a808 功能迭代 2022-05-20 08:56:41 +08:00
9c3b53b701 用户管理左侧树型组件增加选中高亮保持 2022-05-13 15:02:16 +08:00
f2cb431c90 Merge branch 'master' of https://gitea.star-rising.cn/Song/xkrs_ms
# Conflicts:
#	ruoyi-admin/src/main/resources/application-druid.yml
#	ruoyi-admin/src/main/resources/application.yml
2022-05-11 17:27:34 +08:00
9facc1b682 Merge branch 'master' of https://gitee.com/y_project/RuoYi-Vue 2022-05-11 16:40:50 +08:00
93835778ad 修改配置 2022-05-11 16:40:13 +08:00
8020eabaa9 更新 2022-05-11 15:58:35 +08:00
5693bbe1f5 升级oshi到最新版本6.1.6 2022-05-11 09:58:25 +08:00
0055f479cb 修复字典数据显示不全问题(I55MR3) 2022-05-09 20:27:09 +08:00
1c41b701dd 优化excel创建表格样式 2022-05-09 17:37:33 +08:00
9476f7f616 升级spring-boot到最新版本2.5.13 2022-05-01 20:22:35 +08:00
cbe405f6ea ui code format 2022-05-01 20:22:25 +08:00
7414bc492e 修改代码生成树选择组件 2022-04-25 10:27:06 +08:00
6f14087a16 修改显示顺序orderNum类型为整型 2022-04-25 10:23:47 +08:00
328d4b916d Excel注解支持color字体颜色 2022-04-23 20:53:16 +08:00
b42a8176ca 设置分页参数默认值 2022-04-17 10:29:12 +08:00
2a9beec31d 检查定时任务bean所在包名是否为白名单配置 2022-04-16 22:06:25 +08:00
910fe6261b 新增获取不带后缀文件名称方法 2022-04-16 22:06:15 +08:00
0c820b96d8 !471 新增一个取文件名而不带后缀的整合方法,干净又卫生啊兄弟们
Merge pull request !471 from XCSDN/N/A
2022-04-16 13:53:10 +00:00
c3c49a05c2 新增一个取文件名而不带后缀的整合方法,干净又卫生啊兄弟们 2022-04-16 06:02:07 +00:00
68a616d7c7 升级element-ui到最新版本2.15.8 2022-04-15 09:32:21 +08:00
a0447de061 字典类型必须以字母开头,且只能为(小写字母,数字,下滑线) 2022-04-15 09:31:51 +08:00
46db06a22b !465 update ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java.
Merge pull request !465 from XCSDN/N/A
2022-04-15 01:17:21 +00:00
de5ae4a05e 添加页签openPage支持传递参数 2022-04-08 15:42:10 +08:00
c0d430f4e5 update ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java.
字典类型必须以字母开头,且字典类型只能由小写字母或加下划线还有数字组成
防止由于字典类型不符合前端开发规范而报错
2022-04-07 04:57:56 +00:00
d910888181 代码生成树表新增(展开/折叠) 2022-04-07 10:56:40 +08:00
db2dfee6ae 用户缓存信息添加部门ancestors祖级列表 2022-04-07 09:50:42 +08:00
d311d56bbf 修复Excel注解prompt/combo同时使用不生效问题 2022-04-03 18:28:30 +08:00
3bc5ef38d3 升级spring-boot到最新版本2.5.12 防止RCE漏洞 2022-04-02 10:16:09 +08:00
bac3b3a0dc 降级jsencrypt版本兼容IE浏览器 2022-04-02 10:15:25 +08:00
07fded4da9 update readme 2022-04-02 10:13:58 +08:00
101 changed files with 4190 additions and 3245 deletions

View File

@ -1,11 +1,11 @@
<p align="center">
<img alt="logo" src="https://oscimg.oschina.net/oscnet/up-d3d0a9303e11d522a06cd263f3079027715.png">
</p>
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">RuoYi v3.8.1</h1>
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">RuoYi v3.8.2</h1>
<h4 align="center">基于SpringBoot+Vue前后端分离的Java快速开发框架</h4>
<p align="center">
<a href="https://gitee.com/y_project/RuoYi-Vue/stargazers"><img src="https://gitee.com/y_project/RuoYi-Vue/badge/star.svg?theme=dark"></a>
<a href="https://gitee.com/y_project/RuoYi-Vue"><img src="https://img.shields.io/badge/RuoYi-v3.8.1-brightgreen.svg"></a>
<a href="https://gitee.com/y_project/RuoYi-Vue"><img src="https://img.shields.io/badge/RuoYi-v3.8.2-brightgreen.svg"></a>
<a href="https://gitee.com/y_project/RuoYi-Vue/blob/master/LICENSE"><img src="https://img.shields.io/github/license/mashape/apistatus.svg"></a>
</p>

19
pom.xml
View File

@ -16,7 +16,7 @@
<ruoyi.version>3.8.2</ruoyi.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<java.version>11</java.version>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
<druid.version>1.2.8</druid.version>
<bitwalker.version>1.21</bitwalker.version>
@ -25,8 +25,7 @@
<mybatis-spring-boot.version>2.2.2</mybatis-spring-boot.version>
<pagehelper.boot.version>1.4.1</pagehelper.boot.version>
<fastjson.version>1.2.80</fastjson.version>
<oshi.version>6.1.2</oshi.version>
<jna.version>5.10.0</jna.version>
<oshi.version>6.1.6</oshi.version>
<commons.io.version>2.11.0</commons.io.version>
<commons.fileupload.version>1.4</commons.fileupload.version>
<commons.collections.version>3.2.2</commons.collections.version>
@ -43,7 +42,7 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.5.11</version>
<version>2.5.13</version>
<type>pom</type>
<scope>import</scope>
</dependency>
@ -83,18 +82,6 @@
<version>${oshi.version}</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>${jna.version}</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>${jna.version}</version>
</dependency>
<!-- Swagger3依赖 -->
<dependency>
<groupId>io.springfox</groupId>

View File

@ -16,11 +16,11 @@ public class RuoYiApplication
{
// System.setProperty("spring.devtools.restart.enabled", "false");
SpringApplication.run(RuoYiApplication.class, args);
System.out.println("(♥◠‿◠)ノ゙ 若依启动成功 ლ(´ڡ`ლ)゙ \n" +
System.out.println("(♥◠‿◠)ノ゙ 我们一起学喵叫 ლ(´ڡ`ლ)゙ \n" +
" .-------. ____ __ \n" +
" | _ _ \\ \\ \\ / / \n" +
" | ( ' ) | \\ _. / ' \n" +
" |(_ o _) / _( )_ .' \n" +
" | _ _ \\ \\ \\ / / \n" +
" | ( ' ) | \\ _. / ' \n" +
" |(_ o _) / _( )_ .' \n" +
" | (_,_).' __ ___(_ o _)' \n" +
" | |\\ \\ | || |(_,_)' \n" +
" | | \\ `' /| `-' / \n" +

View File

@ -0,0 +1,9 @@
package com.ruoyi.web.controller.RemoteSensing;
/**
* 亚大综合监测
* @Author: JinSheng Song
* @Date: 2022/5/11 9:08
*/
public class AdahTestingController {
}

View File

@ -0,0 +1,9 @@
package com.ruoyi.web.controller.RemoteSensing;
/**
* 大气质量监测
* @Author: JinSheng Song
* @Date: 2022/5/11 10:56
*/
public class AtmosphereController {
}

View File

@ -0,0 +1,76 @@
package com.ruoyi.web.controller.RemoteSensing;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.service.IAustraliaMiddleEastService;
import com.ruoyi.system.service.IForestService;
import com.ruoyi.system.vo.AustraliaMiddleEastVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 澳大利亚中东部地区
* @Author: JinSheng Song
* @Date: 2022/5/11 9:08
*/
@RestController
@RequestMapping(value = "/business-service/api/orderMng", produces = "application/json;charset=UTF-8")
public class AustraliaMiddleEastController
{
// @Autowired
private IAustraliaMiddleEastService australiaMiddleEastService;
/**
* 查询方法
* @param response
* @param request
* @return
*/
@RequestMapping(value = "/SelectAustralia",method = {RequestMethod.POST})
public AjaxResult SelectAustralia(HttpServletResponse response, HttpServletRequest request)
{
List<AustraliaMiddleEastVO> eastVOSList= australiaMiddleEastService.selectAustralia();
return AjaxResult.success(eastVOSList);
}
/**
* 删除方法
* @param ID
* @return
*/
@RequestMapping(value = "/DelAustralia",method = {RequestMethod.POST})
public AjaxResult DelAustralia(@Param("ID") String ID)
{
int NUM = australiaMiddleEastService.DelAustralia(ID);
if (NUM>0)
{
return AjaxResult.success();
}
return AjaxResult.error();
}
/**
* 新增方法
* @param eastVOS
* @return
*/
@RequestMapping(value = "/IntoAustralia",method = {RequestMethod.POST})
public AjaxResult IntoAustralia(AustraliaMiddleEastVO eastVOS)
{
int NUM = australiaMiddleEastService.IntoAustralia(eastVOS);
if (NUM>0)
{
return AjaxResult.success();
}
return AjaxResult.error();
}
}

View File

@ -0,0 +1,9 @@
package com.ruoyi.web.controller.RemoteSensing;
/**
* ENSO影响监测
* @Author: JinSheng Song
* @Date: 2022/5/11 9:12
*/
public class ENSOController {
}

View File

@ -0,0 +1,9 @@
package com.ruoyi.web.controller.RemoteSensing;
/**
* 森林监测
* @Author: JinSheng Song
* @Date: 2022/5/11 9:13
*/
public class ForestController {
}

View File

@ -0,0 +1,15 @@
package com.ruoyi.web.controller.RemoteSensing;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
*全球生态环境监测
* @Author: JinSheng Song
* @Date: 2022/5/11 9:05
*/
@RestController
@RequestMapping("/monitor/clobal")
public class GlobalEcologyController {
}

View File

@ -0,0 +1,9 @@
package com.ruoyi.web.controller.RemoteSensing;
/**
* 专题报告
* @Author: JinSheng Song
* @Date: 2022/5/11 11:10
*/
public class SpecialReportController {
}

View File

@ -0,0 +1,9 @@
package com.ruoyi.web.controller.RemoteSensing;
/**
* 城市监测
* @Author: JinSheng Song
* @Date: 2022/5/11 10:55
*/
public class UrbanController {
}

View File

@ -8,8 +8,11 @@ import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.config.RuoYiConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.springframework.util.FastByteArrayOutputStream;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.google.code.kaptcha.Producer;
import com.ruoyi.common.constant.Constants;
@ -33,10 +36,10 @@ public class CaptchaController
@Resource(name = "captchaProducerMath")
private Producer captchaProducerMath;
@Autowired
@Resource
private RedisCache redisCache;
@Autowired
@Resource
private ISysConfigService configService;
/**
* 生成验证码

View File

@ -6,9 +6,9 @@ spring:
druid:
# 主库数据源
master:
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: password
url: jdbc:mysql://192.168.2.9:3306/nuoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: saas
password: XKrs123.
# 从库数据源
slave:
# 从数据源开关/默认关闭

View File

@ -41,12 +41,15 @@ logging:
# Spring配置
spring:
# config:
# activate:
# on-profile: druid
profiles:
active: druid
# 资源信息
messages:
# 国际化资源文件路径
basename: i18n/messages
profiles:
active: druid
# 文件上传
servlet:
multipart:
@ -66,9 +69,9 @@ spring:
# 端口默认为6379
port: 6379
# 数据库索引
database: 0
database: 3
# 密码
password:
password: yhy_app
# 连接超时时间
timeout: 10s
lettuce:

View File

@ -2,7 +2,7 @@ Application Version: ${ruoyi.version}
Spring Boot Version: ${spring-boot.version}
////////////////////////////////////////////////////////////////////
// _ooOoo_ //
// o8888888o //
// o6666666o //
// 88" . "88 //
// (| ^_^ |) //
// O\ = /O //

View File

@ -5,6 +5,8 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.math.BigDecimal;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
import com.ruoyi.common.utils.poi.ExcelHandlerAdapter;
/**
@ -56,11 +58,6 @@ public @interface Excel
*/
public int roundingMode() default BigDecimal.ROUND_HALF_EVEN;
/**
* 导出类型0数字 1字符串
*/
public ColumnType cellType() default ColumnType.STRING;
/**
* 导出时在excel中每个列的高度 单位为字符
*/
@ -107,9 +104,19 @@ public @interface Excel
public boolean isStatistics() default false;
/**
* 导出字段对齐方式0默认1靠左2居中3靠右
* 导出类型0数字 1字符串
*/
public Align align() default Align.AUTO;
public ColumnType cellType() default ColumnType.STRING;
/**
* 导出字体颜色
*/
public IndexedColors color() default IndexedColors.BLACK;
/**
* 导出字段对齐方式
*/
public HorizontalAlignment align() default HorizontalAlignment.CENTER;
/**
* 自定义数据处理器

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@ -31,7 +32,7 @@ public class SysDept extends BaseEntity
private String deptName;
/** 显示顺序 */
private String orderNum;
private Integer orderNum;
/** 负责人 */
private String leader;
@ -96,13 +97,13 @@ public class SysDept extends BaseEntity
this.deptName = deptName;
}
@NotBlank(message = "显示顺序不能为空")
public String getOrderNum()
@NotNull(message = "显示顺序不能为空")
public Integer getOrderNum()
{
return orderNum;
}
public void setOrderNum(String orderNum)
public void setOrderNum(Integer orderNum)
{
this.orderNum = orderNum;
}

View File

@ -1,6 +1,7 @@
package com.ruoyi.common.core.domain.entity;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@ -57,6 +58,7 @@ public class SysDictType extends BaseEntity
@NotBlank(message = "字典类型不能为空")
@Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符")
@Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)")
public String getDictType()
{
return dictType;

View File

@ -1,5 +1,6 @@
package com.ruoyi.common.core.page;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.utils.ServletUtils;
/**
@ -40,8 +41,8 @@ public class TableSupport
public static PageDomain getPageDomain()
{
PageDomain pageDomain = new PageDomain();
pageDomain.setPageNum(ServletUtils.getParameterToInt(PAGE_NUM));
pageDomain.setPageSize(ServletUtils.getParameterToInt(PAGE_SIZE));
pageDomain.setPageNum(Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1));
pageDomain.setPageSize(Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10));
pageDomain.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN));
pageDomain.setIsAsc(ServletUtils.getParameter(IS_ASC));
pageDomain.setReasonable(ServletUtils.getParameterToBool(REASONABLE));

View File

@ -15,18 +15,16 @@ public class PageUtils extends PageHelper
/**
* 设置请求分页数据
*/
public static void startPage()
public static void
startPage()
{
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize))
{
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
Boolean reasonable = pageDomain.getReasonable();
PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable);
}
}
/**
* 清理分页的线程变量

View File

@ -17,6 +17,7 @@ import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import org.apache.commons.io.FilenameUtils;
/**
* 文件处理工具类
@ -256,7 +257,7 @@ public class FileUtils
}
/**
* 获取名称
* 获取文件名称 /profile/upload/2022/04/16/ruoyi.png -- ruoyi.png
*
* @param fileName 路径名称
* @return 没有文件路径的名称
@ -272,4 +273,21 @@ public class FileUtils
int index = Math.max(lastUnixPos, lastWindowsPos);
return fileName.substring(index + 1);
}
/**
* 获取不带后缀文件名称 /profile/upload/2022/04/16/ruoyi.png -- ruoyi
*
* @param fileName 路径名称
* @return 没有文件路径和后缀的名称
*/
public static String getNameNotSuffix(String fileName)
{
if (fileName == null)
{
return null;
}
String baseName = FilenameUtils.getBaseName(fileName);
return baseName;
}
}

View File

@ -672,21 +672,46 @@ public class ExcelUtil<T>
style.setFont(totalFont);
styles.put("total", style);
style = wb.createCellStyle();
style.cloneStyleFrom(styles.get("data"));
style.setAlignment(HorizontalAlignment.LEFT);
styles.put("data1", style);
styles.putAll(annotationStyles(wb));
style = wb.createCellStyle();
style.cloneStyleFrom(styles.get("data"));
style.setAlignment(HorizontalAlignment.CENTER);
styles.put("data2", style);
return styles;
}
/**
* 根据Excel注解创建表格样式
*
* @param wb 工作薄对象
* @return 自定义样式列表
*/
private Map<String, CellStyle> annotationStyles(Workbook wb)
{
Map<String, CellStyle> styles = new HashMap<String, CellStyle>();
for (Object[] os : fields)
{
Excel excel = (Excel) os[1];
String key = "data_" + excel.align() + "_" + excel.color();
if (!styles.containsKey(key))
{
CellStyle style = wb.createCellStyle();
style = wb.createCellStyle();
style.cloneStyleFrom(styles.get("data"));
style.setAlignment(HorizontalAlignment.RIGHT);
styles.put("data3", style);
style.setAlignment(excel.align());
style.setVerticalAlignment(VerticalAlignment.CENTER);
style.setBorderRight(BorderStyle.THIN);
style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
style.setBorderLeft(BorderStyle.THIN);
style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
style.setBorderTop(BorderStyle.THIN);
style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
style.setBorderBottom(BorderStyle.THIN);
style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
Font dataFont = wb.createFont();
dataFont.setFontName("Arial");
dataFont.setFontHeightInPoints((short) 10);
dataFont.setColor(excel.color().index);
style.setFont(dataFont);
styles.put(key, style);
}
}
return styles;
}
@ -786,17 +811,10 @@ public class ExcelUtil<T>
// 设置列宽
sheet.setColumnWidth(column, (int) ((attr.width() + 0.72) * 256));
}
// 如果设置了提示信息则鼠标放上去提示.
if (StringUtils.isNotEmpty(attr.prompt()))
if (StringUtils.isNotEmpty(attr.prompt()) || attr.combo().length > 0)
{
// 这里默认设了2-101列提示.
setXSSFPrompt(sheet, "", attr.prompt(), 1, 100, column, column);
}
// 如果设置了combo属性则本列只能选择不能输入
if (attr.combo().length > 0)
{
// 这里默认设了2-101列只能选择不能输入.
setXSSFValidation(sheet, attr.combo(), 1, 100, column, column);
// 提示信息或只能选择不能输入的列内容.
setPromptOrValidation(sheet, attr.combo(), attr.prompt(), 1, 100, column, column);
}
}
@ -815,8 +833,7 @@ public class ExcelUtil<T>
{
// 创建cell
cell = row.createCell(column);
int align = attr.align().value();
cell.setCellStyle(styles.get("data" + (align >= 1 && align <= 3 ? align : "")));
cell.setCellStyle(styles.get("data_" + attr.align() + "_" + attr.color()));
// 用于读取对象中的属性
Object value = getTargetValue(vo, field, attr);
@ -860,48 +877,29 @@ public class ExcelUtil<T>
}
/**
* 设置 POI XSSFSheet 单元格提示
* 设置 POI XSSFSheet 单元格提示或选择框
*
* @param sheet 表单
* @param promptTitle 提示标题
* @param textlist 下拉框显示的内容
* @param promptContent 提示内容
* @param firstRow 开始行
* @param endRow 结束行
* @param firstCol 开始列
* @param endCol 结束列
*/
public void setXSSFPrompt(Sheet sheet, String promptTitle, String promptContent, int firstRow, int endRow,
public void setPromptOrValidation(Sheet sheet, String[] textlist, String promptContent, int firstRow, int endRow,
int firstCol, int endCol)
{
DataValidationHelper helper = sheet.getDataValidationHelper();
DataValidationConstraint constraint = helper.createCustomConstraint("DD1");
DataValidationConstraint constraint = textlist.length > 0 ? helper.createExplicitListConstraint(textlist) : helper.createCustomConstraint("DD1");
CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol);
DataValidation dataValidation = helper.createValidation(constraint, regions);
dataValidation.createPromptBox(promptTitle, promptContent);
dataValidation.setShowPromptBox(true);
sheet.addValidationData(dataValidation);
}
/**
* 设置某些列的值只能输入预制的数据,显示下拉框.
*
* @param sheet 要设置的sheet.
* @param textlist 下拉框显示的内容
* @param firstRow 开始行
* @param endRow 结束行
* @param firstCol 开始列
* @param endCol 结束列
* @return 设置好的sheet.
*/
public void setXSSFValidation(Sheet sheet, String[] textlist, int firstRow, int endRow, int firstCol, int endCol)
if (StringUtils.isNotEmpty(promptContent))
{
DataValidationHelper helper = sheet.getDataValidationHelper();
// 加载下拉列表内容
DataValidationConstraint constraint = helper.createExplicitListConstraint(textlist);
// 设置数据有效性加载在哪个单元格上,四个参数分别是:起始行、终止行、起始列、终止列
CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol);
// 数据有效性对象
DataValidation dataValidation = helper.createValidation(constraint, regions);
// 如果设置了提示信息则鼠标放上去提示
dataValidation.createPromptBox("", promptContent);
dataValidation.setShowPromptBox(true);
}
// 处理Excel兼容性问题
if (dataValidation instanceof XSSFDataValidation)
{
@ -912,7 +910,6 @@ public class ExcelUtil<T>
{
dataValidation.setSuppressDropDownArrow(false);
}
sheet.addValidationData(dataValidation);
}

View File

@ -78,14 +78,24 @@
v-hasPermi="['${moduleName}:${businessName}:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-sort"
size="mini"
@click="toggleExpandAll"
>展开/折叠</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table
v-if="refreshTable"
v-loading="loading"
:data="${businessName}List"
row-key="${treeCode}"
default-expand-all
:default-expand-all="isExpandAll"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
>
#foreach($column in $columns)
@ -293,6 +303,10 @@ export default {
title: "",
// 是否显示弹出层
open: false,
// 是否展开,默认全部展开
isExpandAll: true,
// 重新渲染表格状态
refreshTable: true,
#foreach ($column in $columns)
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
@ -423,6 +437,14 @@ export default {
this.open = true;
this.title = "添加${functionName}";
},
/** 展开/折叠操作 */
toggleExpandAll() {
this.refreshTable = false;
this.isExpandAll = !this.isExpandAll;
this.$nextTick(() => {
this.refreshTable = true;
});
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();

View File

@ -76,14 +76,23 @@
v-hasPermi="['${moduleName}:${businessName}:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="Sort"
@click="toggleExpandAll"
>展开/折叠</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table
v-if="refreshTable"
v-loading="loading"
:data="${businessName}List"
row-key="${treeCode}"
default-expand-all
:default-expand-all="isExpandAll"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
>
#foreach($column in $columns)
@ -165,11 +174,13 @@
#set($dictType=$column.dictType)
#if("" != $treeParentCode && $column.javaField == $treeParentCode)
<el-form-item label="${comment}" prop="${treeParentCode}">
<tree-select
v-model:value="form.${treeParentCode}"
:options="${businessName}Options"
:objMap="{ value: '${treeCode}', label: '${treeName}', children: 'children' }"
<el-tree-select
v-model="form.${treeParentCode}"
:data="${businessName}Options"
:props="{ value: '${treeCode}', label: '${treeName}', children: 'children' }"
value-key="${treeCode}"
placeholder="请选择${comment}"
check-strictly
/>
</el-form-item>
#elseif($column.htmlType == "input")
@ -283,6 +294,8 @@ const open = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const title = ref("");
const isExpandAll = ref(true);
const refreshTable = ref(true);
#foreach ($column in $columns)
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
@ -343,8 +356,8 @@ function getList() {
}
/** 查询${functionName}下拉树结构 */
async function getTreeselect() {
await list${BusinessName}().then(response => {
function getTreeselect() {
list${BusinessName}().then(response => {
${businessName}Options.value = [];
const data = { ${treeCode}: 0, ${treeName}: '顶级节点', children: [] };
data.children = proxy.handleTree(response.data, "${treeCode}", "${treeParentCode}");
@ -393,9 +406,9 @@ function resetQuery() {
}
/** 新增按钮操作 */
async function handleAdd(row) {
function handleAdd(row) {
reset();
await getTreeselect();
getTreeselect();
if (row != null && row.${treeCode}) {
form.value.${treeParentCode} = row.${treeCode};
} else {
@ -405,6 +418,15 @@ async function handleAdd(row) {
title.value = "添加${functionName}";
}
/** 展开/折叠操作 */
function toggleExpandAll() {
refreshTable.value = false;
isExpandAll.value = !isExpandAll.value;
nextTick(() => {
refreshTable.value = true;
});
}
/** 修改按钮操作 */
async function handleUpdate(row) {
reset();

View File

@ -15,6 +15,7 @@ import com.ruoyi.common.constant.ScheduleConstants;
import com.ruoyi.common.exception.job.TaskException;
import com.ruoyi.common.exception.job.TaskException.Code;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.quartz.domain.SysJob;
/**
@ -127,6 +128,7 @@ public class ScheduleUtils
{
return StringUtils.containsAnyIgnoreCase(invokeTarget, Constants.JOB_WHITELIST_STR);
}
return true;
Object obj = SpringUtils.getBean(StringUtils.split(invokeTarget, ".")[0]);
return StringUtils.containsAnyIgnoreCase(obj.getClass().getPackage().getName(), Constants.JOB_WHITELIST_STR);
}
}

View File

@ -0,0 +1,8 @@
package com.ruoyi.system.mapper;
/**
* @Author: JinSheng Song
* @Date: 2022/5/11 15:17
*/
public interface AdahTestingMapper {
}

View File

@ -0,0 +1,8 @@
package com.ruoyi.system.mapper;
/**
* @Author: JinSheng Song
* @Date: 2022/5/11 15:17
*/
public interface AtmosphereMapper {
}

View File

@ -0,0 +1,21 @@
package com.ruoyi.system.mapper;
import com.ruoyi.system.vo.AustraliaMiddleEastVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 澳大利亚中东部地区
* @Author: JinSheng Song
* @Date: 2022/5/11 15:17
*/
public interface AustraliaMiddleEastMapper {
List<AustraliaMiddleEastVO> selectAustralia();
Integer DelAustralia(@Param("id") String id);
Integer IntoAustralia(AustraliaMiddleEastVO eastVO);
}

View File

@ -0,0 +1,8 @@
package com.ruoyi.system.mapper;
/**
* @Author: JinSheng Song
* @Date: 2022/5/11 15:18
*/
public interface ENSOMapper {
}

View File

@ -0,0 +1,8 @@
package com.ruoyi.system.mapper;
/**
* @Author: JinSheng Song
* @Date: 2022/5/11 15:18
*/
public interface ForestMapper {
}

View File

@ -0,0 +1,8 @@
package com.ruoyi.system.mapper;
/**
* @Author: JinSheng Song
* @Date: 2022/5/11 15:18
*/
public interface GlobalEcologyMapper {
}

View File

@ -0,0 +1,20 @@
package com.ruoyi.system.mapper;
import com.ruoyi.system.vo.AustraliaMiddleEastVO;
import com.ruoyi.system.vo.RegionVGIVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Author: JinSheng Song
* @Date: 2022/5/11 15:17
*/
public interface RegionVGIMapper {
List<RegionVGIVO> selectRegion();
Integer DelRegion(@Param("id") String id);
Integer IntoRegion(RegionVGIVO regionVGIVO);
}

View File

@ -0,0 +1,8 @@
package com.ruoyi.system.mapper;
/**
* @Author: JinSheng Song
* @Date: 2022/5/11 15:18
*/
public interface UrbanMapper {
}

View File

@ -0,0 +1,9 @@
package com.ruoyi.system.service;
/**
* 亚大综合监测
* @Author: JinSheng Song
* @Date: 2022/5/11 11:32
*/
public interface IAdahTestingService {
}

View File

@ -0,0 +1,9 @@
package com.ruoyi.system.service;
/**
* 大气质量监测
* @Author: JinSheng Song
* @Date: 2022/5/11 11:34
*/
public interface IAtmosphereService {
}

View File

@ -0,0 +1,20 @@
package com.ruoyi.system.service;
import com.ruoyi.system.vo.AustraliaMiddleEastVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 澳大利亚中东部地区
* @Author: JinSheng Song
* @Date: 2022/5/11 11:32
*/
public interface IAustraliaMiddleEastService
{
public List<AustraliaMiddleEastVO> selectAustralia();
public Integer DelAustralia(@Param("id") String id);
public Integer IntoAustralia(AustraliaMiddleEastVO eastVO);
}

View File

@ -0,0 +1,9 @@
package com.ruoyi.system.service;
/**
* ENSO影响监测
* @Author: JinSheng Song
* @Date: 2022/5/11 11:35
*/
public interface IENSOService {
}

View File

@ -0,0 +1,9 @@
package com.ruoyi.system.service;
/**
* 森林监测
* @Author: JinSheng Song
* @Date: 2022/5/11 11:38
*/
public interface IForestService {
}

View File

@ -0,0 +1,9 @@
package com.ruoyi.system.service;
/**
* 全球生态环境监测
* @Author: JinSheng Song
* @Date: 2022/5/11 11:37
*/
public interface IGlobalEcologyService {
}

View File

@ -0,0 +1,20 @@
package com.ruoyi.system.service;
import com.ruoyi.system.vo.AustraliaMiddleEastVO;
import com.ruoyi.system.vo.RegionVGIVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Author: JinSheng Song
* @Date: 2022/5/11 11:34
*/
public interface IRegionVGIService {
public List<RegionVGIVO> selectRegion();
public Integer DelRegion(@Param("id") String id);
public Integer IntoRegion(RegionVGIVO eastVO);
}

View File

@ -0,0 +1,9 @@
package com.ruoyi.system.service;
/**
* 专题报告
* @Author: JinSheng Song
* @Date: 2022/5/11 11:39
*/
public interface ISpecialReportService {
}

View File

@ -2,12 +2,15 @@ package com.ruoyi.system.service;
import java.util.List;
import com.ruoyi.system.domain.SysConfig;
import org.springframework.stereotype.Service;
/**
* 参数配置 服务层
*
* @author ruoyi
*/
public interface ISysConfigService
{
/**

View File

@ -0,0 +1,9 @@
package com.ruoyi.system.service;
/**
* 城市监测
* @Author: JinSheng Song
* @Date: 2022/5/11 11:40
*/
public interface IUrbanService {
}

View File

@ -0,0 +1,11 @@
package com.ruoyi.system.service.impl;
import com.ruoyi.system.service.IAdahTestingService;
/**
* 亚大综合监测
* @Author: JinSheng Song
* @Date: 2022/5/11 11:43
*/
public class AdahTestingServiceimpl implements IAdahTestingService {
}

View File

@ -0,0 +1,11 @@
package com.ruoyi.system.service.impl;
import com.ruoyi.system.service.IAtmosphereService;
/**
* 大气质量监测
* @Author: JinSheng Song
* @Date: 2022/5/11 11:45
*/
public class AtmosphereServiceimpl implements IAtmosphereService {
}

View File

@ -0,0 +1,37 @@
package com.ruoyi.system.service.impl;
import com.ruoyi.system.mapper.AustraliaMiddleEastMapper;
import com.ruoyi.system.mapper.SysLogininforMapper;
import com.ruoyi.system.service.IAustraliaMiddleEastService;
import com.ruoyi.system.vo.AustraliaMiddleEastVO;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
/**
* 亚大综合监测
* @Author: JinSheng Song
* @Date: 2022/5/11 11:43
*/
public class AustraliaMiddleEastServiceimpl implements IAustraliaMiddleEastService
{
@Autowired
private AustraliaMiddleEastMapper australiaMiddleEastMapper;
@Override
public List<AustraliaMiddleEastVO> selectAustralia()
{
return australiaMiddleEastMapper.selectAustralia();
}
@Override
public Integer DelAustralia(String id) {
return australiaMiddleEastMapper.DelAustralia(id);
}
@Override
public Integer IntoAustralia(AustraliaMiddleEastVO eastVO) {
return australiaMiddleEastMapper.IntoAustralia(eastVO);
}
}

View File

@ -0,0 +1,11 @@
package com.ruoyi.system.service.impl;
import com.ruoyi.system.service.IENSOService;
/**
* ENSO影响监测
* @Author: JinSheng Song
* @Date: 2022/5/11 11:46
*/
public class ENSOServiceimpl implements IENSOService {
}

View File

@ -0,0 +1,11 @@
package com.ruoyi.system.service.impl;
import com.ruoyi.system.service.IForestService;
/**
* 森林监测
* @Author: JinSheng Song
* @Date: 2022/5/11 11:47
*/
public class ForestServiceimpl implements IForestService {
}

View File

@ -0,0 +1,11 @@
package com.ruoyi.system.service.impl;
import com.ruoyi.system.service.IGlobalEcologyService;
/**
* 全球生态环境监测
* @Author: JinSheng Song
* @Date: 2022/5/11 11:47
*/
public class GlobalEcologyServiceimpl implements IGlobalEcologyService {
}

View File

@ -0,0 +1,35 @@
package com.ruoyi.system.service.impl;
import com.ruoyi.system.mapper.AustraliaMiddleEastMapper;
import com.ruoyi.system.mapper.RegionVGIMapper;
import com.ruoyi.system.service.IRegionVGIService;
import com.ruoyi.system.vo.RegionVGIVO;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
/**
* 大气质量监测
* @Author: JinSheng Song
* @Date: 2022/5/11 11:45
*/
public class RegionVGIServiceimpl implements IRegionVGIService {
@Autowired
private RegionVGIMapper vgiMapper;
@Override
public List<RegionVGIVO> selectRegion() {
return vgiMapper.selectRegion();
}
@Override
public Integer DelRegion(String id) {
return vgiMapper.DelRegion(id);
}
@Override
public Integer IntoRegion(RegionVGIVO eastVO) {
return vgiMapper.IntoRegion(eastVO);
}
}

View File

@ -0,0 +1,11 @@
package com.ruoyi.system.service.impl;
import com.ruoyi.system.service.ISpecialReportService;
/**
* 专题报告
* @Author: JinSheng Song
* @Date: 2022/5/11 11:48
*/
public class SpecialReportServiceimpl implements ISpecialReportService {
}

View File

@ -14,6 +14,7 @@ import com.ruoyi.system.service.ISysConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.Collection;
import java.util.List;
@ -25,10 +26,10 @@ import java.util.List;
@Service
public class SysConfigServiceImpl implements ISysConfigService
{
@Autowired
@Resource
private SysConfigMapper configMapper;
@Autowired
@Resource
private RedisCache redisCache;
/**

View File

@ -0,0 +1,11 @@
package com.ruoyi.system.service.impl;
import com.ruoyi.system.service.IUrbanService;
/**
* * 城市监测
* @Author: JinSheng Song
* @Date: 2022/5/11 11:49
*/
public class UrbanServiceimpl implements IUrbanService {
}

View File

@ -0,0 +1,93 @@
package com.ruoyi.system.vo;
import javax.xml.crypto.Data;
import java.lang.ref.PhantomReference;
import java.time.LocalDate;
/**
* @Author: JinSheng Song
* @Date: 2022/5/19 14:50
*/
public class AustraliaMiddleEastVO
{
private String id;
private LocalDate yearMonth;
private Double sstAnomalyIndex;
private Double temperatureAnomolies;
private Double precipitationAnomolies;
private Double vaiAnomolies;
private String createdBy;
private String createdTime;
public LocalDate getYearMonth() {
return yearMonth;
}
public void setYearMonth(LocalDate yearMonth) {
this.yearMonth = yearMonth;
}
public Double getSstAnomalyIndex() {
return sstAnomalyIndex;
}
public void setSstAnomalyIndex(Double sstAnomalyIndex) {
this.sstAnomalyIndex = sstAnomalyIndex;
}
public Double getTemperatureAnomolies() {
return temperatureAnomolies;
}
public void setTemperatureAnomolies(Double temperatureAnomolies) {
this.temperatureAnomolies = temperatureAnomolies;
}
public Double getPrecipitationAnomolies() {
return precipitationAnomolies;
}
public void setPrecipitationAnomolies(Double precipitationAnomolies) {
this.precipitationAnomolies = precipitationAnomolies;
}
public Double getVaiAnomolies() {
return vaiAnomolies;
}
public void setVaiAnomolies(Double vaiAnomolies) {
this.vaiAnomolies = vaiAnomolies;
}
public String getCreatedBy() {
return createdBy;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
public String getCreatedTime() {
return createdTime;
}
public void setCreatedTime(String createdTime) {
this.createdTime = createdTime;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}

View File

@ -0,0 +1,126 @@
package com.ruoyi.system.vo;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @Author: JinSheng Song
* @Date: 2022/5/19 16:53
*/
public class RegionVGIVO implements Serializable {
private String id;
private String region;
private String regionEn;
private String typeName;
private String typeNameEn;
private Double forest;
private Double grassland;
private Integer particularYear;
private String createdBy;
private LocalDate createdTime;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getRegion() {
return region;
}
public void setRegion(String region) {
this.region = region;
}
public String getRegionEn() {
return regionEn;
}
public void setRegionEn(String regionEn) {
this.regionEn = regionEn;
}
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
public String getTypeNameEn() {
return typeNameEn;
}
public void setTypeNameEn(String typeNameEn) {
this.typeNameEn = typeNameEn;
}
public Double getForest() {
return forest;
}
public void setForest(Double forest) {
this.forest = forest;
}
public Double getGrassland() {
return grassland;
}
public void setGrassland(Double grassland) {
this.grassland = grassland;
}
public Integer getParticularYear() {
return particularYear;
}
public void setParticularYear(Integer particularYear) {
this.particularYear = particularYear;
}
public String getCreatedBy() {
return createdBy;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
public LocalDate getCreatedTime() {
return createdTime;
}
public void setCreatedTime(LocalDate createdTime) {
this.createdTime = createdTime;
}
@Override
public String toString() {
return "RegionVGIVO{" +
"id='" + id + '\'' +
", region='" + region + '\'' +
", regionEn='" + regionEn + '\'' +
", typeName='" + typeName + '\'' +
", typeNameEn='" + typeNameEn + '\'' +
", forest=" + forest +
", grassland=" + grassland +
", particularYear=" + particularYear +
", createdBy='" + createdBy + '\'' +
", createdTime=" + createdTime +
'}';
}
}

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.AdahTestingMapper">
</mapper>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.AtmosphereMapper">
</mapper>

View File

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.AustraliaMiddleEastMapper">
<resultMap id="RM_AustraliaMiddleEast" type="com.ruoyi.system.vo.AustraliaMiddleEastVO">
<result property="yearMonth" column="year_month"/>
<result property="id" column="ID"/>
<result property="sstAnomalyIndex" column="sst_anomaly_index"/>
<result property="temperatureAnomolies" column="temperature_anomolies"/>
<result property="precipitationAnomolies" column="precipitation_anomolies"/>
<result property="vaiAnomolies" column="vai_anomolies"/>
<result property="createdBy" column="created_by"/>
<result property="createdTime" column="created_time"/>
</resultMap>
<sql id="columns">
<![CDATA[
ID,year_month,sst_anomaly_index,temperature_anomolies,precipitation_anomolies,vai_anomolies,created_by,created_time
]]>
</sql>
<select id="selectAustralia" resultMap="RM_AustraliaMiddleEast">
SELECT <include refid="columns"/> FROM central_and_eastern_australia;
</select>
<delete id="DelAustralia">
DELETE FROM central_and_eastern_australia
WHERE ID=#{id}
</delete>
<insert id="IntoAustralia">
<![CDATA[
INSERT INTO central_and_eastern_australia (
ID ,
year_month ,
sst_anomaly_index ,
temperature_anomolies ,
precipitation_anomolies ,
vai_anomolies ,
created_by ,
created_time
) VALUES (
#{id,jdbcType=VARCHAR},
#{yearMonth,jdbcType=DATE},
#{sstAnomalyIndex,jdbcType=DOUBLE},
#{temperatureAnomolies,jdbcType=DOUBLE},
#{precipitationAnomolies,jdbcType=DOUBLE},
#{vaiAnomolies,jdbcType=DOUBLE},
#{createdBy,jdbcType=VARCHAR},
#{createdTime,jdbcType=VARCHAR}
)
]]>
</insert>
</mapper>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.ENSOMapper">
</mapper>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.ForestMapper">
</mapper>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.GlobalEcologyMapper">
</mapper>

View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.RegionVGIMapper">
<resultMap id="RM_RegionVGI" type="com.ruoyi.system.vo.RegionVGIVO">
<result property="region" column="region"/>
<result property="id" column="ID"/>
<result property="regionEn" column="region_en"/>
<result property="typeName" column="type_name"/>
<result property="typeNameEn" column="type_name_en"/>
<result property="forest" column="forest"/>
<result property="grassland" column="grassland"/>
<result property="particularYear" column="particular_year"/>
<result property="createdBy" column="created_by"/>
<result property="createdTime" column="created_time"/>
</resultMap>
<sql id="columns">
<![CDATA[
id,region,region_en,type_name,type_name_en,forest,created_by,created_time,grassland,particular_year
]]>
</sql>
<select id="selectRegion" resultMap="RM_RegionVGI">
SELECT <include refid="columns"/> FROM region_vgi;
</select>
<delete id="DelRegion">
DELETE FROM region_vgi
WHERE ID=#{id}
</delete>
<insert id="IntoRegion">
<![CDATA[
INSERT INTO region_vgi (
id,
region ,
region_en ,
type_name ,
type_name_en ,
forest ,
created_by ,
created_time,
grassland,
particular_year
) VALUES (
#{id,jdbcType=VARCHAR},
#{region,jdbcType=VARCHAR},
#{region_en,jdbcType=VARCHAR},
#{type_name,jdbcType=VARCHAR},
#{type_name_en,jdbcType=TIMESTAMP},
#{forest,jdbcType=DOUBLE},
#{createdBy,jdbcType=VARCHAR},
#{createdTime,jdbcType=DATE},
#{grassland,jdbcType=DOUBLE},
#{particularYear}
)
]]>
</insert>
</mapper>

View File

@ -91,7 +91,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="parentId != null and parentId != 0">parent_id,</if>
<if test="deptName != null and deptName != ''">dept_name,</if>
<if test="ancestors != null and ancestors != ''">ancestors,</if>
<if test="orderNum != null and orderNum != ''">order_num,</if>
<if test="orderNum != null">order_num,</if>
<if test="leader != null and leader != ''">leader,</if>
<if test="phone != null and phone != ''">phone,</if>
<if test="email != null and email != ''">email,</if>
@ -103,7 +103,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="parentId != null and parentId != 0">#{parentId},</if>
<if test="deptName != null and deptName != ''">#{deptName},</if>
<if test="ancestors != null and ancestors != ''">#{ancestors},</if>
<if test="orderNum != null and orderNum != ''">#{orderNum},</if>
<if test="orderNum != null">#{orderNum},</if>
<if test="leader != null and leader != ''">#{leader},</if>
<if test="phone != null and phone != ''">#{phone},</if>
<if test="email != null and email != ''">#{email},</if>
@ -119,7 +119,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="parentId != null and parentId != 0">parent_id = #{parentId},</if>
<if test="deptName != null and deptName != ''">dept_name = #{deptName},</if>
<if test="ancestors != null and ancestors != ''">ancestors = #{ancestors},</if>
<if test="orderNum != null and orderNum != ''">order_num = #{orderNum},</if>
<if test="orderNum != null">order_num = #{orderNum},</if>
<if test="leader != null">leader = #{leader},</if>
<if test="phone != null">phone = #{phone},</if>
<if test="email != null">email = #{email},</if>

View File

@ -130,7 +130,7 @@
<set>
<if test="menuName != null and menuName != ''">menu_name = #{menuName},</if>
<if test="parentId != null">parent_id = #{parentId},</if>
<if test="orderNum != null and orderNum != ''">order_num = #{orderNum},</if>
<if test="orderNum != null">order_num = #{orderNum},</if>
<if test="path != null and path != ''">path = #{path},</if>
<if test="component != null">component = #{component},</if>
<if test="query != null">`query` = #{query},</if>
@ -153,7 +153,7 @@
<if test="menuId != null and menuId != 0">menu_id,</if>
<if test="parentId != null and parentId != 0">parent_id,</if>
<if test="menuName != null and menuName != ''">menu_name,</if>
<if test="orderNum != null and orderNum != ''">order_num,</if>
<if test="orderNum != null">order_num,</if>
<if test="path != null and path != ''">path,</if>
<if test="component != null and component != ''">component,</if>
<if test="query != null and query != ''">`query`,</if>
@ -171,7 +171,7 @@
<if test="menuId != null and menuId != 0">#{menuId},</if>
<if test="parentId != null and parentId != 0">#{parentId},</if>
<if test="menuName != null and menuName != ''">#{menuName},</if>
<if test="orderNum != null and orderNum != ''">#{orderNum},</if>
<if test="orderNum != null">#{orderNum},</if>
<if test="path != null and path != ''">#{path},</if>
<if test="component != null and component != ''">#{component},</if>
<if test="query != null and query != ''">#{query},</if>

View File

@ -31,6 +31,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<id property="deptId" column="dept_id" />
<result property="parentId" column="parent_id" />
<result property="deptName" column="dept_name" />
<result property="ancestors" column="ancestors" />
<result property="orderNum" column="order_num" />
<result property="leader" column="leader" />
<result property="status" column="dept_status" />
@ -47,7 +48,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="selectUserVo">
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
d.dept_id, d.parent_id, d.dept_name, d.order_num, d.leader, d.status as dept_status,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u
left join sys_dept d on u.dept_id = d.dept_id

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.UrbanMapper">
</mapper>

View File

@ -39,15 +39,15 @@
"@riophae/vue-treeselect": "0.4.0",
"axios": "0.24.0",
"clipboard": "2.0.8",
"core-js": "3.19.1",
"core-js": "^3.19.1",
"echarts": "4.9.0",
"element-ui": "2.15.6",
"element-ui": "2.15.8",
"file-saver": "2.0.5",
"fuse.js": "6.4.3",
"highlight.js": "9.18.5",
"js-beautify": "1.13.0",
"js-cookie": "3.0.1",
"jsencrypt": "3.2.1",
"jsencrypt": "3.0.0-rc.1",
"nprogress": "0.2.0",
"quill": "1.3.7",
"screenfull": "5.0.2",

View File

@ -17,7 +17,7 @@ $--button-font-weight: 400;
$--border-color-light: #dfe4ed;
$--border-color-lighter: #e6ebf5;
$--table-border:1px solid#dfe6ec;
$--table-border: 1px solid #dfe6ec;
/* icon font path, required */
$--font-path: '~element-ui/lib/theme-chalk/fonts';

View File

@ -55,10 +55,10 @@ export default {
return store.dispatch('tagsView/delOthersViews', obj || router.currentRoute);
},
// 添加tab页签
openPage(title, url) {
openPage(title, url, params) {
var obj = { path: url, meta: { title: title } }
store.dispatch('tagsView/addView', obj);
return router.push(url);
return router.push({ path: url, query: params });
},
// 修改tab页签
updatePage(obj) {

View File

@ -106,7 +106,7 @@
<span>Java虚拟机信息</span>
</div>
<div class="el-table el-table--enable-row-hover el-table--medium">
<table cellspacing="0" style="width: 100%;">
<table cellspacing="0" style="width: 100%;table-layout:fixed;">
<tbody>
<tr>
<td class="el-table__cell is-leaf"><div class="cell">Java名称</div></td>

View File

@ -191,7 +191,7 @@
<script>
import { listData, getData, delData, addData, updateData } from "@/api/system/dict/data";
import { listType, getType } from "@/api/system/dict/type";
import { optionselect as getDictOptionselect, getType } from "@/api/system/dict/type";
export default {
name: "Data",
@ -287,8 +287,8 @@ export default {
},
/** 查询字典类型列表 */
getTypeList() {
listType().then(response => {
this.typeOptions = response.rows;
getDictOptionselect().then(response => {
this.typeOptions = response.data;
});
},
/** 查询字典数据列表 */

View File

@ -21,6 +21,7 @@
:filter-node-method="filterNode"
ref="tree"
default-expand-all
highlight-current
@node-click="handleNodeClick"
/>
</div>

View File

@ -305,7 +305,7 @@ export default {
return result.value || '&nbsp;';
},
/** 复制代码成功 */
clipboardSuccess(){
clipboardSuccess() {
this.$modal.msgSuccess("复制成功");
},
// 多选框选中数据
@ -318,7 +318,9 @@ export default {
/** 修改按钮操作 */
handleEditTable(row) {
const tableId = row.tableId || this.ids[0];
this.$router.push({ path: '/tool/gen-edit/index/' + tableId, query: { pageNum: this.queryParams.pageNum } });
const tableName = row.tableName || this.tableNames[0];
const params = { pageNum: this.queryParams.pageNum };
this.$tab.openPage("修改[" + tableName + "]生成配置", '/tool/gen-edit/index/' + tableId, params);
},
/** 删除按钮操作 */
handleDelete(row) {