Merge branch 'master' of https://gitee.com/y_project/RuoYi-Vue
Conflicts:
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java
ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml
ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml
ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml
ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml
ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml
ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
ruoyi-ui/src/utils/request.js
| | |
| | | <java.version>1.8</java.version>
|
| | | <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
|
| | | <druid.version>1.2.2</druid.version>
|
| | | <bitwalker.version>1.19</bitwalker.version>
|
| | | <bitwalker.version>1.21</bitwalker.version>
|
| | | <swagger.version>2.9.2</swagger.version>
|
| | | <kaptcha.version>2.3.2</kaptcha.version>
|
| | | <pagehelper.boot.version>1.3.0</pagehelper.boot.version>
|
| | |
| | | <jna.version>5.6.0</jna.version>
|
| | | <commons.io.version>2.5</commons.io.version>
|
| | | <commons.fileupload.version>1.3.3</commons.fileupload.version>
|
| | | <poi.version>3.17</poi.version>
|
| | | <poi.version>4.1.2</poi.version>
|
| | | <velocity.version>1.7</velocity.version>
|
| | | <jwt.version>0.9.1</jwt.version>
|
| | | <mybatis-plus.version>3.4.1</mybatis-plus.version>
|
| | |
| | | public boolean isStatistics() default false;
|
| | |
|
| | | /**
|
| | | * 导出字段对齐方式(0:默认;1:靠左;2:居中;3:靠右)
|
| | | */
|
| | | Align align() default Align.AUTO;
|
| | |
|
| | | public enum Align
|
| | | {
|
| | | AUTO(0), LEFT(1), CENTER(2), RIGHT(3);
|
| | | private final int value;
|
| | |
|
| | | Align(int value)
|
| | | {
|
| | | this.value = value;
|
| | | }
|
| | |
|
| | | public int value()
|
| | | {
|
| | | return this.value;
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 字段类型(0:导出导入;1:仅导出;2:仅导入)
|
| | | */
|
| | | Type type() default Type.ALL;
|
| | |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.fasterxml.jackson.annotation.JsonIgnore; |
| | | |
| | | /** |
| | | * Entity基类 |
| | |
| | | |
| | | /** 备注 */ |
| | | private String remark; |
| | | |
| | | /** 开始时间 */ |
| | | @JsonIgnore |
| | | private String beginTime; |
| | | |
| | | /** 结束时间 */ |
| | | @JsonIgnore |
| | | private String endTime; |
| | | |
| | | /** 请求参数 */ |
| | | private Map<String, Object> params; |
| | |
| | | public void setRemark(String remark) |
| | | { |
| | | this.remark = remark; |
| | | } |
| | | |
| | | public String getBeginTime() |
| | | { |
| | | return beginTime; |
| | | } |
| | | |
| | | public void setBeginTime(String beginTime) |
| | | { |
| | | this.beginTime = beginTime; |
| | | } |
| | | |
| | | public String getEndTime() |
| | | { |
| | | return endTime; |
| | | } |
| | | |
| | | public void setEndTime(String endTime) |
| | | { |
| | | this.endTime = endTime; |
| | | } |
| | | |
| | | public Map<String, Object> getParams() |
| | |
| | | import java.util.Set;
|
| | | import java.util.UUID;
|
| | | import java.util.stream.Collectors;
|
| | | import org.apache.poi.hssf.usermodel.HSSFDateUtil;
|
| | | import org.apache.poi.ss.usermodel.BorderStyle;
|
| | | import org.apache.poi.ss.usermodel.Cell;
|
| | | import org.apache.poi.ss.usermodel.CellStyle;
|
| | |
| | | style.setFont(totalFont);
|
| | | styles.put("total", style);
|
| | |
|
| | | style = wb.createCellStyle();
|
| | | style.cloneStyleFrom(styles.get("data"));
|
| | | style.setAlignment(HorizontalAlignment.LEFT);
|
| | | styles.put("data1", style);
|
| | |
|
| | | style = wb.createCellStyle();
|
| | | style.cloneStyleFrom(styles.get("data"));
|
| | | style.setAlignment(HorizontalAlignment.CENTER);
|
| | | styles.put("data2", style);
|
| | |
|
| | | style = wb.createCellStyle();
|
| | | style.cloneStyleFrom(styles.get("data"));
|
| | | style.setAlignment(HorizontalAlignment.RIGHT);
|
| | | styles.put("data3", style);
|
| | |
|
| | | return styles;
|
| | | }
|
| | |
|
| | |
| | | {
|
| | | if (ColumnType.STRING == attr.cellType())
|
| | | {
|
| | | cell.setCellType(CellType.STRING);
|
| | | cell.setCellValue(StringUtils.isNull(value) ? attr.defaultValue() : value + attr.suffix());
|
| | | }
|
| | | else if (ColumnType.NUMERIC == attr.cellType())
|
| | | {
|
| | | cell.setCellType(CellType.NUMERIC);
|
| | | cell.setCellValue(StringUtils.contains(Convert.toStr(value), ".") ? Convert.toDouble(value) : Convert.toInt(value));
|
| | | }
|
| | | }
|
| | |
| | | {
|
| | | // 创建cell
|
| | | cell = row.createCell(column);
|
| | | cell.setCellStyle(styles.get("data"));
|
| | | int align = attr.align().value();
|
| | | cell.setCellStyle(styles.get("data" + (align >= 1 && align <= 3 ? align : "")));
|
| | |
|
| | | // 用于读取对象中的属性
|
| | | Object value = getTargetValue(vo, field, attr);
|
| | |
| | | Cell cell = row.getCell(column);
|
| | | if (StringUtils.isNotNull(cell))
|
| | | {
|
| | | if (cell.getCellTypeEnum() == CellType.NUMERIC || cell.getCellTypeEnum() == CellType.FORMULA)
|
| | | if (cell.getCellType() == CellType.NUMERIC || cell.getCellType() == CellType.FORMULA)
|
| | | {
|
| | | val = cell.getNumericCellValue();
|
| | | if (HSSFDateUtil.isCellDateFormatted(cell))
|
| | | if (DateUtil.isCellDateFormatted(cell))
|
| | | {
|
| | | val = DateUtil.getJavaDate((Double) val); // POI Excel 日期格式转换
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | else if (cell.getCellTypeEnum() == CellType.STRING)
|
| | | else if (cell.getCellType() == CellType.STRING)
|
| | | {
|
| | | val = cell.getStringCellValue();
|
| | | }
|
| | | else if (cell.getCellTypeEnum() == CellType.BOOLEAN)
|
| | | else if (cell.getCellType() == CellType.BOOLEAN)
|
| | | {
|
| | | val = cell.getBooleanCellValue();
|
| | | }
|
| | | else if (cell.getCellTypeEnum() == CellType.ERROR)
|
| | | else if (cell.getCellType() == CellType.ERROR)
|
| | | {
|
| | | val = cell.getErrorCellValue();
|
| | | }
|
| | |
| | | <if test="tableComment != null and tableComment != ''"> |
| | | AND lower(table_comment) like lower(concat('%', #{tableComment}, '%')) |
| | | </if> |
| | | <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 --> |
| | | AND date_format(create_time,'%y%m%d') >= date_format(#{beginTime},'%y%m%d') |
| | | <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 --> |
| | | AND date_format(create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') |
| | | </if> |
| | | <if test="endTime != null and endTime != ''"><!-- 结束时间检索 --> |
| | | AND date_format(create_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d') |
| | | <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 --> |
| | | AND date_format(create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') |
| | | </if> |
| | | </where> |
| | | </select> |
| | |
| | | <if test="tableComment != null and tableComment != ''"> |
| | | AND lower(table_comment) like lower(concat('%', #{tableComment}, '%')) |
| | | </if> |
| | | <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 --> |
| | | AND date_format(create_time,'%y%m%d') >= date_format(#{beginTime},'%y%m%d') |
| | | <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 --> |
| | | AND date_format(create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') |
| | | </if> |
| | | <if test="endTime != null and endTime != ''"><!-- 结束时间检索 --> |
| | | AND date_format(create_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d') |
| | | <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 --> |
| | | AND date_format(create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') |
| | | </if> |
| | | </select> |
| | | |
| | |
| | | <if test="invokeTarget != null and invokeTarget != ''">
|
| | | AND invoke_target like concat('%', #{invokeTarget}, '%')
|
| | | </if>
|
| | | <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
|
| | | and date_format(create_time,'%y%m%d') >= date_format(#{beginTime},'%y%m%d')
|
| | | <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
|
| | | and date_format(create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d')
|
| | | </if>
|
| | | <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
|
| | | and date_format(create_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d')
|
| | | <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
|
| | | and date_format(create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d')
|
| | | </if>
|
| | | </where>
|
| | | </select>
|
| | |
| | | <if test="configKey != null and configKey != ''"> |
| | | AND config_key like concat('%', #{configKey}, '%') |
| | | </if> |
| | | <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 --> |
| | | and date_format(create_time,'%y%m%d') >= date_format(#{beginTime},'%y%m%d') |
| | | <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 --> |
| | | and date_format(create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') |
| | | </if> |
| | | <if test="endTime != null and endTime != ''"><!-- 结束时间检索 --> |
| | | and date_format(create_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d') |
| | | <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 --> |
| | | and date_format(create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') |
| | | </if> |
| | | </where> |
| | | </select> |
| | |
| | | <if test="dictType != null and dictType != ''"> |
| | | AND dict_type like concat('%', #{dictType}, '%') |
| | | </if> |
| | | <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 --> |
| | | and date_format(create_time,'%y%m%d') >= date_format(#{beginTime},'%y%m%d') |
| | | <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 --> |
| | | and date_format(create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') |
| | | </if> |
| | | <if test="endTime != null and endTime != ''"><!-- 结束时间检索 --> |
| | | and date_format(create_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d') |
| | | <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 --> |
| | | and date_format(create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') |
| | | </if> |
| | | </where> |
| | | </select> |
| | |
| | | <if test="userName != null and userName != ''"> |
| | | AND user_name like concat('%', #{userName}, '%') |
| | | </if> |
| | | <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 --> |
| | | and date_format(login_time,'%y%m%d') >= date_format(#{beginTime},'%y%m%d') |
| | | <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 --> |
| | | and date_format(login_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') |
| | | </if> |
| | | <if test="endTime != null and endTime != ''"><!-- 结束时间检索 --> |
| | | and date_format(login_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d') |
| | | <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 --> |
| | | and date_format(login_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') |
| | | </if> |
| | | </where> |
| | | order by info_id desc |
| | |
| | | <if test="operName != null and operName != ''"> |
| | | AND oper_name like concat('%', #{operName}, '%') |
| | | </if> |
| | | <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 --> |
| | | and date_format(oper_time,'%y%m%d') >= date_format(#{beginTime},'%y%m%d') |
| | | <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 --> |
| | | and date_format(oper_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') |
| | | </if> |
| | | <if test="endTime != null and endTime != ''"><!-- 结束时间检索 --> |
| | | and date_format(oper_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d') |
| | | <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 --> |
| | | and date_format(oper_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') |
| | | </if> |
| | | </where> |
| | | order by oper_id desc |
| | |
| | | <if test="roleKey != null and roleKey != ''"> |
| | | AND r.role_key like concat('%', #{roleKey}, '%') |
| | | </if> |
| | | <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 --> |
| | | and date_format(r.create_time,'%y%m%d') >= date_format(#{beginTime},'%y%m%d') |
| | | <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 --> |
| | | and date_format(r.create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') |
| | | </if> |
| | | <if test="endTime != null and endTime != ''"><!-- 结束时间检索 --> |
| | | and date_format(r.create_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d') |
| | | <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 --> |
| | | and date_format(r.create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') |
| | | </if> |
| | | <!-- 数据范围过滤 --> |
| | | ${params.dataScope} |
| | |
| | | <if test="phonenumber != null and phonenumber != ''"> |
| | | AND u.phonenumber like concat('%', #{phonenumber}, '%') |
| | | </if> |
| | | <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 --> |
| | | AND date_format(u.create_time,'%y%m%d') >= date_format(#{beginTime},'%y%m%d') |
| | | <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 --> |
| | | AND date_format(u.create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') |
| | | </if> |
| | | <if test="endTime != null and endTime != ''"><!-- 结束时间检索 --> |
| | | AND date_format(u.create_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d') |
| | | <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 --> |
| | | AND date_format(u.create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') |
| | | </if> |
| | | <if test="deptId != null and deptId != 0"> |
| | | AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) )) |
| | |
| | | if (getToken() && !isToken) { |
| | | config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 |
| | | } |
| | | // get请求映射params参数 |
| | | if (config.method === 'get' && config.params) { |
| | | let url = config.url + '?'; |
| | | for (const propName of Object.keys(config.params)) { |
| | | const value = config.params[propName]; |
| | | var part = encodeURIComponent(propName) + "="; |
| | | if (typeof(value) !== "undefined") { |
| | | if (typeof value === 'object') { |
| | | for (const key of Object.keys(value)) { |
| | | let params = propName + '[' + key + ']'; |
| | | var subPart = encodeURIComponent(params) + "="; |
| | | url += subPart + encodeURIComponent(value[key]) + "&"; |
| | | } |
| | | } else { |
| | | url += part + encodeURIComponent(value) + "&"; |
| | | } |
| | | } |
| | | } |
| | | url = url.slice(0, -1); |
| | | config.params = {}; |
| | | config.url = url; |
| | | } |
| | | return config |
| | | }, error => { |
| | | console.log(error) |
| | |
| | | } |
| | | |
| | | // 添加日期范围 |
| | | export function addDateRange(params, dateRange) { |
| | | export function addDateRange(params, dateRange, propName) { |
| | | var search = params; |
| | | search.beginTime = ""; |
| | | search.endTime = ""; |
| | | search.params = {}; |
| | | if (null != dateRange && '' != dateRange) { |
| | | search.beginTime = dateRange[0]; |
| | | search.endTime = dateRange[1]; |
| | | if (typeof(propName) === "undefined") { |
| | | search.params["beginTime"] = dateRange[0]; |
| | | search.params["endTime"] = dateRange[1]; |
| | | } else { |
| | | search.params[propName + "BeginTime"] = dateRange[0]; |
| | | search.params[propName + "EndTime"] = dateRange[1]; |
| | | } |
| | | } |
| | | return search; |
| | | } |