系统修复完善
This commit is contained in:
parent
356b603e55
commit
31dd1d97e9
|
@ -129,7 +129,7 @@ V1.4 2021-03-28
|
||||||
|
|
||||||
V1.5 2021-05-05
|
V1.5 2021-05-05
|
||||||
- 1.0 集成开源积木报表
|
- 1.0 集成开源积木报表
|
||||||
- 可在线设计各类报表(表格类报表和图表类报表)。
|
- 可在线设计各类报表(表格类报表和图表类报表)
|
||||||
- 2.0 新增业务管理模块
|
- 2.0 新增业务管理模块
|
||||||
- 新增客户准入流程,添加客户流入客户公海,发起准入流程,准入客户进入客户私海,可业务员拜访跟进,未准入客户进入黑名单
|
- 新增客户准入流程,添加客户流入客户公海,发起准入流程,准入客户进入客户私海,可业务员拜访跟进,未准入客户进入黑名单
|
||||||
- 原数据大屏并入业务管理
|
- 原数据大屏并入业务管理
|
||||||
|
@ -137,6 +137,7 @@ V1.5 2021-05-05
|
||||||
- 4.0 在线邮件更改为站内邮件,不在调用邮件发送功能,便于系统内用户沟通,跟进业务
|
- 4.0 在线邮件更改为站内邮件,不在调用邮件发送功能,便于系统内用户沟通,跟进业务
|
||||||
- 5.0 修复流程父角色查询所属子角色异常情况
|
- 5.0 修复流程父角色查询所属子角色异常情况
|
||||||
- 6.0 修复添加用户时部门树筛选异常
|
- 6.0 修复添加用户时部门树筛选异常
|
||||||
|
- 7.0 新增Snow社区在线文档(地址见友情链接)
|
||||||
|
|
||||||
|
|
||||||
## 未来规划
|
## 未来规划
|
||||||
|
@ -160,6 +161,7 @@ V1.5 2021-05-05
|
||||||
## 友情链接
|
## 友情链接
|
||||||
- 博客:http://snowblog.shop.csj361.com
|
- 博客:http://snowblog.shop.csj361.com
|
||||||
- 若依:http://ruoyi.vip
|
- 若依:http://ruoyi.vip
|
||||||
|
- 在线文档:http://47.114.7.28:9527
|
||||||
|
|
||||||
## 最后,特别感谢若依系统提供框架
|
## 最后,特别感谢若依系统提供框架
|
||||||
|
|
||||||
|
|
2
pom.xml
2
pom.xml
|
@ -28,7 +28,7 @@
|
||||||
<oshi.version>3.9.1</oshi.version>
|
<oshi.version>3.9.1</oshi.version>
|
||||||
<commons.io.version>2.5</commons.io.version>
|
<commons.io.version>2.5</commons.io.version>
|
||||||
<commons.fileupload.version>1.3.3</commons.fileupload.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>
|
<velocity.version>1.7</velocity.version>
|
||||||
<flowable.version>6.4.1</flowable.version>
|
<flowable.version>6.4.1</flowable.version>
|
||||||
<dingtalk.version>dingtalk-SNAPSHOT</dingtalk.version>
|
<dingtalk.version>dingtalk-SNAPSHOT</dingtalk.version>
|
||||||
|
|
|
@ -22,11 +22,6 @@
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-thymeleaf</artifactId>
|
<artifactId>spring-boot-starter-thymeleaf</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.commons</groupId>
|
|
||||||
<artifactId>commons-lang3</artifactId>
|
|
||||||
<version>3.10</version>
|
|
||||||
</dependency>
|
|
||||||
<!--积木报表-->
|
<!--积木报表-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jeecgframework.jimureport</groupId>
|
<groupId>org.jeecgframework.jimureport</groupId>
|
||||||
|
|
|
@ -73,37 +73,33 @@ public class ThirdOauthController extends BaseController {
|
||||||
{
|
{
|
||||||
String appId= iSysConfigService.selectConfigByKey("ding.login.appid");
|
String appId= iSysConfigService.selectConfigByKey("ding.login.appid");
|
||||||
String appSecret= iSysConfigService.selectConfigByKey("ding.login.appSecret");
|
String appSecret= iSysConfigService.selectConfigByKey("ding.login.appSecret");
|
||||||
String url="http://workflow.vaiwan.com/third/oauth/dingTalkLogin";
|
String redirectUri= iSysConfigService.selectConfigByKey("ding.login.redirectUri");
|
||||||
|
|
||||||
AuthRequest authRequest = new AuthDingTalkRequest(AuthConfig.builder()
|
AuthRequest authRequest = new AuthDingTalkRequest(AuthConfig.builder()
|
||||||
.clientId(appId)
|
.clientId(appId)
|
||||||
.clientSecret(appSecret)
|
.clientSecret(appSecret)
|
||||||
.redirectUri(url)
|
.redirectUri(redirectUri)
|
||||||
.build());
|
.build());
|
||||||
String authorizeUrl = authRequest.authorize(AuthStateUtils.createState());
|
String authorizeUrl = authRequest.authorize(AuthStateUtils.createState());
|
||||||
ServletUtils.getResponse().sendRedirect(authorizeUrl);
|
ServletUtils.getResponse().sendRedirect(authorizeUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 回调结果
|
* 钉钉回调
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@GetMapping("/dingTalkLogin")
|
@GetMapping("/dingTalkLogin")
|
||||||
public Object callbackAuth(@PathVariable("source") String source, AuthCallback callback, HttpServletRequest request)
|
public Object callbackAuth(AuthCallback callback, HttpServletRequest request)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (StringUtils.isEmpty(source))
|
String source="dingtalk";
|
||||||
{
|
|
||||||
return new ModelAndView("error/unauth");
|
|
||||||
}
|
|
||||||
|
|
||||||
String appId= iSysConfigService.selectConfigByKey("ding.login.appid");
|
String appId= iSysConfigService.selectConfigByKey("ding.login.appid");
|
||||||
String appSecret= iSysConfigService.selectConfigByKey("ding.login.appSecret");
|
String appSecret= iSysConfigService.selectConfigByKey("ding.login.appSecret");
|
||||||
String url="http://workflow.vaiwan.com/third/oauth/dingTalkLogin";
|
String redirectUri= iSysConfigService.selectConfigByKey("ding.login.redirectUri");
|
||||||
AuthRequest authRequest = new AuthDingTalkRequest(AuthConfig.builder()
|
AuthRequest authRequest = new AuthDingTalkRequest(AuthConfig.builder()
|
||||||
.clientId(appId)
|
.clientId(appId)
|
||||||
.clientSecret(appSecret)
|
.clientSecret(appSecret)
|
||||||
.redirectUri(url)
|
.redirectUri(redirectUri)
|
||||||
.build());
|
.build());
|
||||||
AuthResponse<AuthUser> response = authRequest.login(callback);
|
AuthResponse<AuthUser> response = authRequest.login(callback);
|
||||||
if (response.ok())
|
if (response.ok())
|
||||||
|
@ -121,7 +117,7 @@ public class ThirdOauthController extends BaseController {
|
||||||
authUser.setUuid(source + response.getData().getUuid());
|
authUser.setUuid(source + response.getData().getUuid());
|
||||||
authUser.setUserId(ShiroUtils.getUserId());
|
authUser.setUserId(ShiroUtils.getUserId());
|
||||||
authUser.setUserName(response.getData().getNickname());
|
authUser.setUserName(response.getData().getNickname());
|
||||||
authUser.setLoginName(response.getData().getUsername());
|
authUser.setLoginName(ShiroUtils.getLoginName());
|
||||||
authUser.setEmail(response.getData().getEmail());
|
authUser.setEmail(response.getData().getEmail());
|
||||||
authUser.setSource(source);
|
authUser.setSource(source);
|
||||||
userMapper.insertAuthUser(authUser);
|
userMapper.insertAuthUser(authUser);
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.snow.web.controller.system;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.snow.common.core.page.TableDataInfo;
|
||||||
import com.snow.system.domain.RegionTreeVO;
|
import com.snow.system.domain.RegionTreeVO;
|
||||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -41,7 +42,7 @@ public class SysOaRegionController extends BaseController
|
||||||
@GetMapping()
|
@GetMapping()
|
||||||
public String region()
|
public String region()
|
||||||
{
|
{
|
||||||
return prefix + "/region";
|
return prefix + "/area";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -50,10 +51,18 @@ public class SysOaRegionController extends BaseController
|
||||||
@RequiresPermissions("system:region:list")
|
@RequiresPermissions("system:region:list")
|
||||||
@PostMapping("/list")
|
@PostMapping("/list")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public List<SysOaRegion> list(SysOaRegion sysOaRegion)
|
public TableDataInfo list(SysOaRegion sysOaRegion)
|
||||||
{
|
{
|
||||||
|
startPage();
|
||||||
|
if(StringUtils.isEmpty(sysOaRegion.getName())){
|
||||||
List<SysOaRegion> list = sysOaRegionService.selectSysOaRegionList(sysOaRegion);
|
List<SysOaRegion> list = sysOaRegionService.selectSysOaRegionList(sysOaRegion);
|
||||||
return list;
|
return getDataTable(list);
|
||||||
|
}else {
|
||||||
|
SysOaRegion sysOaRegionName=new SysOaRegion();
|
||||||
|
sysOaRegionName.setName(sysOaRegion.getName());
|
||||||
|
List<SysOaRegion> list = sysOaRegionService.selectSysOaRegionList(sysOaRegionName);
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -73,7 +82,7 @@ public class SysOaRegionController extends BaseController
|
||||||
/**
|
/**
|
||||||
* 新增地区
|
* 新增地区
|
||||||
*/
|
*/
|
||||||
@GetMapping(value = { "/add/{code}", "/add/" })
|
@GetMapping(value = { "/add/{code}", "/add" })
|
||||||
public String add(@PathVariable(value = "code", required = false) Long code, ModelMap mmap)
|
public String add(@PathVariable(value = "code", required = false) Long code, ModelMap mmap)
|
||||||
{
|
{
|
||||||
if (StringUtils.isNotNull(code))
|
if (StringUtils.isNotNull(code))
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package com.snow.web.controller.system;
|
package com.snow.web.controller.system;
|
||||||
|
|
||||||
|
import com.snow.common.core.page.TableDataInfo;
|
||||||
import com.snow.framework.storage.StorageService;
|
import com.snow.framework.storage.StorageService;
|
||||||
|
import com.snow.system.domain.SysAuthUser;
|
||||||
import com.snow.system.domain.SysFile;
|
import com.snow.system.domain.SysFile;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -25,6 +27,8 @@ import com.snow.framework.util.ShiroUtils;
|
||||||
import com.snow.system.domain.SysUser;
|
import com.snow.system.domain.SysUser;
|
||||||
import com.snow.system.service.ISysUserService;
|
import com.snow.system.service.ISysUserService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 个人信息 业务处理
|
* 个人信息 业务处理
|
||||||
*
|
*
|
||||||
|
@ -55,11 +59,20 @@ public class SysProfileController extends BaseController
|
||||||
{
|
{
|
||||||
SysUser user = ShiroUtils.getSysUser();
|
SysUser user = ShiroUtils.getSysUser();
|
||||||
mmap.put("user", user);
|
mmap.put("user", user);
|
||||||
|
mmap.put("auths", userService.selectAuthUserListByUserId(user.getUserId()));
|
||||||
mmap.put("roleGroup", userService.selectUserRoleGroup(user.getUserId()));
|
mmap.put("roleGroup", userService.selectUserRoleGroup(user.getUserId()));
|
||||||
mmap.put("postGroup", userService.selectUserPostGroup(user.getUserId()));
|
mmap.put("postGroup", userService.selectUserPostGroup(user.getUserId()));
|
||||||
return prefix + "/profile";
|
return prefix + "/profile";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/list")
|
||||||
|
@ResponseBody
|
||||||
|
public TableDataInfo getAuthUserList(){
|
||||||
|
SysUser user = ShiroUtils.getSysUser();
|
||||||
|
List<SysAuthUser> sysAuthUsers = userService.selectAuthUserListByUserId(user.getUserId());
|
||||||
|
return getDataTable(sysAuthUsers);
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/checkPassword")
|
@GetMapping("/checkPassword")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public boolean checkPassword(String password)
|
public boolean checkPassword(String password)
|
||||||
|
|
|
@ -67,7 +67,6 @@ public class SysSyncLogController extends BaseController
|
||||||
ExcelUtil<SysDingtalkSyncLog> util = new ExcelUtil<SysDingtalkSyncLog>(SysDingtalkSyncLog.class);
|
ExcelUtil<SysDingtalkSyncLog> util = new ExcelUtil<SysDingtalkSyncLog>(SysDingtalkSyncLog.class);
|
||||||
return util.exportExcel(list, "log");
|
return util.exportExcel(list, "log");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增钉钉同步日志记录
|
* 新增钉钉同步日志记录
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -6,9 +6,9 @@ spring:
|
||||||
druid:
|
druid:
|
||||||
# 主库数据源
|
# 主库数据源
|
||||||
master:
|
master:
|
||||||
url: jdbc:mysql://localhost:3306/snow-dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
|
url: jdbc:mysql://rm-bp1j1554xv1qs04295o.mysql.rds.aliyuncs.com:3306/snow-dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
|
||||||
username: root
|
username: cloud_root
|
||||||
password: root
|
password: Jin!152377
|
||||||
# 从库数据源
|
# 从库数据源
|
||||||
slave:
|
slave:
|
||||||
# 从数据源开关/默认关闭
|
# 从数据源开关/默认关闭
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 34 KiB |
|
@ -103,7 +103,53 @@ $(function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
//时间 带时分秒的
|
||||||
|
if ($(".datetime-input").length > 0) {
|
||||||
|
layui.use('laydate', function () {
|
||||||
|
var com = layui.laydate;
|
||||||
|
$(".datetime-input").each(function (index, item) {
|
||||||
|
var time = $(item);
|
||||||
|
// 控制控件外观
|
||||||
|
var type = time.attr("data-type") || 'datetime';
|
||||||
|
// 控制回显格式
|
||||||
|
var format = time.attr("data-format") || 'yyyy-MM-dd HH:mm:ss';
|
||||||
|
// 控制日期控件按钮
|
||||||
|
var buttons = time.attr("data-btn") || 'clear|now|confirm', newBtnArr = [];
|
||||||
|
// 日期控件选择完成后回调处理
|
||||||
|
var callback = time.attr("data-callback") || {};
|
||||||
|
if (buttons) {
|
||||||
|
if (buttons.indexOf("|") > 0) {
|
||||||
|
var btnArr = buttons.split("|"), btnLen = btnArr.length;
|
||||||
|
for (var j = 0; j < btnLen; j++) {
|
||||||
|
if ("clear" === btnArr[j] || "now" === btnArr[j] || "confirm" === btnArr[j]) {
|
||||||
|
newBtnArr.push(btnArr[j]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ("clear" === buttons || "now" === buttons || "confirm" === buttons) {
|
||||||
|
newBtnArr.push(buttons);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
newBtnArr = ['clear', 'now', 'confirm'];
|
||||||
|
}
|
||||||
|
com.render({
|
||||||
|
elem: item,
|
||||||
|
theme: 'molv',
|
||||||
|
trigger: 'click',
|
||||||
|
type: type,
|
||||||
|
format: format,
|
||||||
|
btns: newBtnArr,
|
||||||
|
done: function (value, data) {
|
||||||
|
if (typeof window[callback] != 'undefined'
|
||||||
|
&& window[callback] instanceof Function) {
|
||||||
|
window[callback](value, data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
// laydate time-input 时间控件绑定
|
// laydate time-input 时间控件绑定
|
||||||
if ($(".time-input").length > 0) {
|
if ($(".time-input").length > 0) {
|
||||||
layui.use('laydate', function () {
|
layui.use('laydate', function () {
|
||||||
|
|
|
@ -32,12 +32,14 @@
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<div id="element_id">
|
<div id="element_id">
|
||||||
<select class="province form-control m-b" name="customerProvinceCode">
|
<select class="province form-control m-b" name="customerProvinceCode">
|
||||||
<!--<option th:field="*{customerProvinceName}"></option>-->
|
<option th:value="${sysOaCustomer.customerProvinceCode}" selected>[[${sysOaCustomer.customerProvinceName}]]</option>
|
||||||
</select>
|
</select>
|
||||||
<select class="city form-control m-b" name="customerCityCode">
|
<select class="city form-control m-b" name="customerCityCode">
|
||||||
<!-- <option th:field="*{customerCityName}"></option>-->
|
<option th:value="${sysOaCustomer.customerCityCode}" selected>[[${sysOaCustomer.customerCityName}]]</option>
|
||||||
|
</select>
|
||||||
|
<select class="area form-control m-b" name="customerAreaCode" >
|
||||||
|
<option th:value="${sysOaCustomer.customerAreaCode}" selected>[[${sysOaCustomer.customerAreaName}]]</option>
|
||||||
</select>
|
</select>
|
||||||
<select class="area form-control m-b" name="customerAreaCode" th:value="${sysOaCustomer.customerAreaName}"></select>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -17,15 +17,15 @@
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-sm-3 control-label">请假理由:</label>
|
<label class="col-sm-3 control-label">请假理由:</label>
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<textarea name="reason" class="form-control"></textarea>
|
<textarea name="reason" class="form-control" required></textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-sm-3 control-label">开始时间:</label>
|
<label class="col-sm-3 control-label">开始时间:</label>
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<div class="input-group date">
|
<div class="input-group date">
|
||||||
<input name="startTime" class="form-control" placeholder="yyyy-MM-dd" type="text" required>
|
<input type="text" class="datetime-input form-control" name="startTime" placeholder="开始时间" required/>
|
||||||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
|
<!-- <span class="input-group-addon"><i class="fa fa-calendar"></i></span>-->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -33,8 +33,9 @@
|
||||||
<label class="col-sm-3 control-label">结束时间:</label>
|
<label class="col-sm-3 control-label">结束时间:</label>
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<div class="input-group date">
|
<div class="input-group date">
|
||||||
<input name="endTime" class="form-control" placeholder="yyyy-MM-dd" type="text" required>
|
<!-- <input name="endTime" class="form-control" placeholder="yyyy-MM-dd mm:hh:ss" type="text" required>-->
|
||||||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
|
<input type="text" class="datetime-input form-control" name="endTime" placeholder="结束时间" required/>
|
||||||
|
<!-- <span class="input-group-addon"><i class="fa fa-calendar"></i></span>-->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
|
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
|
||||||
<head>
|
<head>
|
||||||
<th:block th:include="include :: header('修改请假单')" />
|
<th:block th:include="include :: header('发起请假申请')" />
|
||||||
<th:block th:include="include :: datetimepicker-css" />
|
<th:block th:include="include :: datetimepicker-css" />
|
||||||
<th:block th:include="include :: bootstrap-fileinput-css"/>
|
<th:block th:include="include :: bootstrap-fileinput-css"/>
|
||||||
</head>
|
</head>
|
||||||
|
@ -18,22 +18,22 @@
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-sm-3 control-label">请假名称:</label>
|
<label class="col-sm-3 control-label">请假名称:</label>
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<input name="name" th:field="*{name}" class="form-control" type="text">
|
<input name="name" th:field="*{name}" class="form-control" type="text" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-sm-3 control-label">请假理由:</label>
|
<label class="col-sm-3 control-label">请假理由:</label>
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<textarea name="reason" class="form-control">[[*{reason}]]</textarea>
|
<textarea name="reason" class="form-control" required>[[*{reason}]]</textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-sm-3 control-label">开始时间:</label>
|
<label class="col-sm-3 control-label">开始时间:</label>
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<div class="input-group date">
|
<div class="input-group date">
|
||||||
<input name="startTime" id="startTime" th:value="${#dates.format(sysOaLeave.startTime, 'yyyy-MM-dd HH:mm:ss')}" class="form-control" placeholder="yyyy-MM-dd" type="text">
|
<input name="startTime" id="startTime" th:value="${#dates.format(sysOaLeave.startTime, 'yyyy-MM-dd HH:mm:ss')}" class=" datetime-input form-control" placeholder="yyyy-MM-dd" type="text" required>
|
||||||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -41,8 +41,7 @@
|
||||||
<label class="col-sm-3 control-label">结束时间:</label>
|
<label class="col-sm-3 control-label">结束时间:</label>
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<div class="input-group date">
|
<div class="input-group date">
|
||||||
<input name="endTime" id="endTime" th:value="${#dates.format(sysOaLeave.endTime, 'yyyy-MM-dd HH:mm:ss')}" class="form-control" placeholder="yyyy-MM-dd" type="text">
|
<input name="endTime" id="endTime" th:value="${#dates.format(sysOaLeave.endTime, 'yyyy-MM-dd HH:mm:ss')}" class="datetime-input form-control" placeholder="结束时间" type="text" required>
|
||||||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -108,6 +107,8 @@
|
||||||
$(this).fileinput('_initFileActions');
|
$(this).fileinput('_initFileActions');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function formatBetweenTime(date1,date2) {
|
function formatBetweenTime(date1,date2) {
|
||||||
var date3 = date2.getTime() - date1.getTime() //时间差的毫秒数
|
var date3 = date2.getTime() - date1.getTime() //时间差的毫秒数
|
||||||
console.log(date3)
|
console.log(date3)
|
||||||
|
@ -131,15 +132,10 @@
|
||||||
<script th:inline="javascript">
|
<script th:inline="javascript">
|
||||||
$('#endTime').blur(function () {
|
$('#endTime').blur(function () {
|
||||||
var startTime =$("#startTime").val();
|
var startTime =$("#startTime").val();
|
||||||
console.log(startTime)
|
|
||||||
var endTime = $("#endTime").val();
|
var endTime = $("#endTime").val();
|
||||||
console.log(endTime)
|
|
||||||
|
|
||||||
var formatBetweenTime1 = formatBetweenTime(new Date(startTime),new Date(endTime));
|
var formatBetweenTime1 = formatBetweenTime(new Date(startTime),new Date(endTime));
|
||||||
$("#leaveTime").val(formatBetweenTime1);
|
$("#leaveTime").val(formatBetweenTime1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
|
@ -38,16 +38,16 @@
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<label>操作类别:</label>
|
<label>操作类别:</label>
|
||||||
<select name="businessType" th:with="type=${@dict.getType('dingtalk_sync_type')}">
|
<select name="operatorType" th:with="type=${@dict.getType('dingtalk_sync_type')}">
|
||||||
<option value="">所有</option>
|
<option value="">所有</option>
|
||||||
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
|
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
|
||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
<li class="select-time">
|
<li class="select-time">
|
||||||
<label>操作时间:</label>
|
<label>操作时间:</label>
|
||||||
<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginOperTime]"/>
|
<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginTime]"/>
|
||||||
<span>-</span>
|
<span>-</span>
|
||||||
<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endOperTime]"/>
|
<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endTime]"/>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> 搜索</a>
|
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> 搜索</a>
|
||||||
|
@ -145,10 +145,10 @@
|
||||||
field: 'deptName',
|
field: 'deptName',
|
||||||
title: '部门名称'
|
title: '部门名称'
|
||||||
},
|
},
|
||||||
{
|
/* {
|
||||||
field: 'operIp',
|
field: 'operIp',
|
||||||
title: '主机地址'
|
title: '主机地址'
|
||||||
},
|
},*/
|
||||||
{
|
{
|
||||||
field: 'operLocation',
|
field: 'operLocation',
|
||||||
title: '操作地点'
|
title: '操作地点'
|
||||||
|
@ -175,10 +175,10 @@
|
||||||
align: 'center',
|
align: 'center',
|
||||||
formatter: function(value, row, index) {
|
formatter: function(value, row, index) {
|
||||||
var actions = [];
|
var actions = [];
|
||||||
if(row.status==1){
|
/* if(row.status==1){
|
||||||
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.logId + '\')"><i class="fa fa-edit"></i>手工同步</a> ');
|
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.logId + '\')"><i class="fa fa-edit"></i>手工同步</a> ');
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.logId + '\')"><i class="fa fa-remove"></i>删除</a> ');
|
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.logId + '\')"><i class="fa fa-remove"></i>删除</a> ');
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,160 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
|
||||||
|
<head>
|
||||||
|
<th:block th:include="include :: header('省市区')" />
|
||||||
|
<th:block th:include="include :: layout-latest-css" />
|
||||||
|
<th:block th:include="include :: ztree-css" />
|
||||||
|
</head>
|
||||||
|
<body class="gray-bg">
|
||||||
|
<div class="ui-layout-west">
|
||||||
|
<div class="box box-main">
|
||||||
|
<div class="box-header">
|
||||||
|
<div class="box-title">
|
||||||
|
<i class="fa icon-grid"></i> 省市区
|
||||||
|
</div>
|
||||||
|
<div class="box-tools pull-right">
|
||||||
|
<!-- <a type="button" class="btn btn-box-tool" href="#" onclick="newsNode()" title="省市区"><i class="fa fa-edit"></i></a>-->
|
||||||
|
<button type="button" class="btn btn-box-tool" id="btnExpand" title="展开" style="display:none;"><i class="fa fa-chevron-up"></i></button>
|
||||||
|
<button type="button" class="btn btn-box-tool" id="btnCollapse" title="折叠"><i class="fa fa-chevron-down"></i></button>
|
||||||
|
<button type="button" class="btn btn-box-tool" id="btnRefresh" title="刷新"><i class="fa fa-refresh"></i></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="ui-layout-content">
|
||||||
|
<div id="tree" class="ztree"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="ui-layout-center">
|
||||||
|
<div class="container-div">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12 search-collapse">
|
||||||
|
<form id="formId">
|
||||||
|
<input type="hidden" id="code" name="code">
|
||||||
|
<input type="hidden" id="pCode" name="pCode">
|
||||||
|
<div class="select-list">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<label>名称:</label>
|
||||||
|
<input type="text" name="name"/>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> 搜索</a>
|
||||||
|
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i> 重置</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="btn-group-sm" id="toolbar" role="group">
|
||||||
|
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:region:add">
|
||||||
|
<i class="fa fa-plus"></i> 新增
|
||||||
|
</a>
|
||||||
|
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:region:remove">
|
||||||
|
<i class="fa fa-remove"></i> 删除
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-sm-12 select-table table-striped">
|
||||||
|
<table id="bootstrap-table"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<th:block th:include="include :: footer" />
|
||||||
|
<th:block th:include="include :: layout-latest-js" />
|
||||||
|
<th:block th:include="include :: ztree-js" />
|
||||||
|
<script th:inline="javascript">
|
||||||
|
var addFlag = [[${@permission.hasPermi('system:region:add')}]];
|
||||||
|
var editFlag = [[${@permission.hasPermi('system:region:edit')}]];
|
||||||
|
var removeFlag = [[${@permission.hasPermi('system:region:remove')}]];
|
||||||
|
var prefix = ctx + "system/region";
|
||||||
|
|
||||||
|
$(function() {
|
||||||
|
var panehHidden = false;
|
||||||
|
if ($(this).width() < 769) {
|
||||||
|
panehHidden = true;
|
||||||
|
}
|
||||||
|
$('body').layout({ initClosed: panehHidden, west__size: 185 });
|
||||||
|
queryAreaList();
|
||||||
|
queryAreaTree();
|
||||||
|
});
|
||||||
|
|
||||||
|
function queryAreaList() {
|
||||||
|
var options = {
|
||||||
|
url: prefix + "/list",
|
||||||
|
createUrl: prefix + "/add",
|
||||||
|
updateUrl: prefix + "/edit/{id}",
|
||||||
|
removeUrl: prefix + "/remove",
|
||||||
|
modalName: "省市区",
|
||||||
|
columns: [{
|
||||||
|
checkbox: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'code',
|
||||||
|
title: '地区代码',
|
||||||
|
align: 'left'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'pcode',
|
||||||
|
title: '上级地区代码',
|
||||||
|
align: 'left'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'name',
|
||||||
|
title: '区域名称',
|
||||||
|
align: 'left'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
align: 'center',
|
||||||
|
align: 'left',
|
||||||
|
formatter: function(value, row, index) {
|
||||||
|
var actions = [];
|
||||||
|
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.code + '\')"><i class="fa fa-edit"></i>编辑</a> ');
|
||||||
|
actions.push('<a class="btn btn-info btn-xs ' + addFlag + '" href="javascript:void(0)" onclick="$.operate.add(\'' + row.code + '\')"><i class="fa fa-plus"></i>新增</a> ');
|
||||||
|
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.code + '\')"><i class="fa fa-remove"></i>删除</a>');
|
||||||
|
return actions.join('');
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
$.table.init(options);
|
||||||
|
}
|
||||||
|
|
||||||
|
function queryAreaTree()
|
||||||
|
{
|
||||||
|
var url = "../system/region/treeData";
|
||||||
|
var options = {
|
||||||
|
url: url,
|
||||||
|
expandLevel: 0,
|
||||||
|
onClick : zOnClick
|
||||||
|
};
|
||||||
|
$.tree.init(options);
|
||||||
|
|
||||||
|
function zOnClick(event, treeId, treeNode) {
|
||||||
|
//console.log(JSON.stringify(treeNode))
|
||||||
|
$("#code").val(treeNode.id);
|
||||||
|
$("#pCode").val(treeNode.pId);
|
||||||
|
$.table.search();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#btnExpand').click(function() {
|
||||||
|
$._tree.expandAll(true);
|
||||||
|
$(this).hide();
|
||||||
|
$('#btnCollapse').show();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#btnCollapse').click(function() {
|
||||||
|
$._tree.expandAll(false);
|
||||||
|
$(this).hide();
|
||||||
|
$('#btnExpand').show();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#btnRefresh').click(function() {
|
||||||
|
queryDeptTree();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -148,14 +148,9 @@
|
||||||
<div id="git-user-binding">
|
<div id="git-user-binding">
|
||||||
<h4 class="provider-desc">你可以绑定以下第三方帐号用于DingFlow系统</h4>
|
<h4 class="provider-desc">你可以绑定以下第三方帐号用于DingFlow系统</h4>
|
||||||
<div id="authlist" class="user-bind">
|
<div id="authlist" class="user-bind">
|
||||||
<a class="third-app" href="#" onclick="authUrl('gitee');" title="使用 Gitee 账号授权登录">
|
<a class="third-app" href="javascript:void(0)" th:onclick="authUrl('dingtalk');" title="使用 DingTalk 账号授权登录">
|
||||||
<div class="git-other-login-icon"><img th:src="@{/img/gitee.svg}"></div>
|
<div class="git-other-login-icon"><img th:src="@{/img/dingding.jpg}"></div>
|
||||||
<span class="app-name">DingTalk</span></a>
|
<span class="app-name">DingTalk</span></a>
|
||||||
|
|
||||||
<!-- <a class="third-app" href="#" onclick="authUrl('github');" title="使用 GitHub 账号授权登录">
|
|
||||||
<div class="git-other-login-icon"><img th:src="@{/img/github.svg}"></div>
|
|
||||||
<span class="app-name">Github</span></a>
|
|
||||||
-->
|
|
||||||
<a class="third-app" href="#" title="功能开发中...">
|
<a class="third-app" href="#" title="功能开发中...">
|
||||||
<div class="git-other-login-icon"><img th:src="@{/img/weixin.svg}"></div>
|
<div class="git-other-login-icon"><img th:src="@{/img/weixin.svg}"></div>
|
||||||
<span class="app-name">WeiXin</span></a>
|
<span class="app-name">WeiXin</span></a>
|
||||||
|
@ -329,9 +324,8 @@
|
||||||
|
|
||||||
// 第三方授权列表
|
// 第三方授权列表
|
||||||
$(function() {
|
$(function() {
|
||||||
var auths = [[${auths}]]
|
|
||||||
var options = {
|
var options = {
|
||||||
data: auths,
|
url:"/system/user/profile/list",
|
||||||
sidePagination: "client",
|
sidePagination: "client",
|
||||||
showSearch: false,
|
showSearch: false,
|
||||||
showRefresh: false,
|
showRefresh: false,
|
||||||
|
@ -374,6 +368,8 @@
|
||||||
}]
|
}]
|
||||||
};
|
};
|
||||||
$.table.init(options);
|
$.table.init(options);
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// 解除绑定
|
// 解除绑定
|
||||||
|
@ -381,7 +377,7 @@
|
||||||
$.modal.confirm("您确定要解除" + source + "的账号绑定吗?", function() {
|
$.modal.confirm("您确定要解除" + source + "的账号绑定吗?", function() {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "post",
|
type: "post",
|
||||||
url: ctx + "/third/oauth/unlock",
|
url: "/third/oauth/unlock",
|
||||||
data: { "authId": authId },
|
data: { "authId": authId },
|
||||||
success: function(r) {
|
success: function(r) {
|
||||||
if (r.code == web_status.SUCCESS) {
|
if (r.code == web_status.SUCCESS) {
|
||||||
|
|
|
@ -149,6 +149,14 @@
|
||||||
<groupId>org.apache.httpcomponents</groupId>
|
<groupId>org.apache.httpcomponents</groupId>
|
||||||
<artifactId>httpclient</artifactId>
|
<artifactId>httpclient</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- https://mvnrepository.com/artifact/commons-lang/commons-lang -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-lang</groupId>
|
||||||
|
<artifactId>commons-lang</artifactId>
|
||||||
|
<version>2.6</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
|
@ -7,6 +7,7 @@ package com.snow.common.enums;
|
||||||
* @date 2020/9/18 10:18
|
* @date 2020/9/18 10:18
|
||||||
*/
|
*/
|
||||||
public enum DingTalkListenerType {
|
public enum DingTalkListenerType {
|
||||||
|
|
||||||
DEPARTMENT_CREATE(1, 2,"org_dept_create"),
|
DEPARTMENT_CREATE(1, 2,"org_dept_create"),
|
||||||
|
|
||||||
DEPARTMENT_UPDATE(2, 2,"org_dept_modify"),
|
DEPARTMENT_UPDATE(2, 2,"org_dept_modify"),
|
||||||
|
@ -17,7 +18,7 @@ public enum DingTalkListenerType {
|
||||||
|
|
||||||
USER_DELETE(3,1,"user_leave_org"),
|
USER_DELETE(3,1,"user_leave_org"),
|
||||||
|
|
||||||
CALL_BACK_CHECK_URL(1,10, "check_url"),
|
CALL_BACK_CHECK_URL(1,10, "回调check_url"),
|
||||||
|
|
||||||
CALL_BACK_REGISTER(1,10, "回调注册"),
|
CALL_BACK_REGISTER(1,10, "回调注册"),
|
||||||
|
|
||||||
|
|
|
@ -145,7 +145,7 @@ public class SendMessageEventLister extends AbstractEventListener {
|
||||||
|
|
||||||
|
|
||||||
//根据任务ID获取任务获选人
|
//根据任务ID获取任务获选人
|
||||||
TaskEntity entity = (TaskEntity) event.getEntity();
|
/* TaskEntity entity = (TaskEntity) event.getEntity();
|
||||||
Set<SysUser> flowCandidates = getFlowCandidates(entity);
|
Set<SysUser> flowCandidates = getFlowCandidates(entity);
|
||||||
if(CollectionUtils.isNotEmpty(flowCandidates)){
|
if(CollectionUtils.isNotEmpty(flowCandidates)){
|
||||||
MessageEventDTO messageEventDTO=new MessageEventDTO(MessageEventType.TASK_TODO.getCode());
|
MessageEventDTO messageEventDTO=new MessageEventDTO(MessageEventType.TASK_TODO.getCode());
|
||||||
|
@ -153,7 +153,7 @@ public class SendMessageEventLister extends AbstractEventListener {
|
||||||
messageEventDTO.setMessageEventType(MessageEventType.TASK_TODO);
|
messageEventDTO.setMessageEventType(MessageEventType.TASK_TODO);
|
||||||
messageEventDTO.setMessageOutsideId(entity.getId());
|
messageEventDTO.setMessageOutsideId(entity.getId());
|
||||||
applicationContext.publishEvent(messageEventDTO);
|
applicationContext.publishEvent(messageEventDTO);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ public class SysDingtalkSyncLog extends BaseEntity
|
||||||
private String title;
|
private String title;
|
||||||
|
|
||||||
/** 模块类型(0其它 1用户 2部门 3角色 10回调) */
|
/** 模块类型(0其它 1用户 2部门 3角色 10回调) */
|
||||||
@Excel(name = "模块类型", readConverterExp = "0=其它,1=用户,2=部门,3=角色,1=0回调")
|
@Excel(name = "模块类型", readConverterExp = "0=其它,1=用户,2=部门,3=角色,1=回调")
|
||||||
private Integer moduleType;
|
private Integer moduleType;
|
||||||
|
|
||||||
/** 业务类型(0其它 1新增 2修改 3删除) */
|
/** 业务类型(0其它 1新增 2修改 3删除) */
|
||||||
|
|
|
@ -22,7 +22,9 @@ public class SysOaLeave extends BaseEntity
|
||||||
|
|
||||||
/** id */
|
/** id */
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
/** 请假单号 */
|
||||||
|
@Excel(name = "请假单号")
|
||||||
|
private String leaveNo;
|
||||||
/** 请假名称 */
|
/** 请假名称 */
|
||||||
@Excel(name = "请假名称")
|
@Excel(name = "请假名称")
|
||||||
private String name;
|
private String name;
|
||||||
|
@ -32,17 +34,17 @@ public class SysOaLeave extends BaseEntity
|
||||||
private String reason;
|
private String reason;
|
||||||
|
|
||||||
/** 开始时间 */
|
/** 开始时间 */
|
||||||
@Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
|
@Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date startTime;
|
private Date startTime;
|
||||||
|
|
||||||
/** 结束时间 */
|
/** 结束时间 */
|
||||||
@Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
|
@Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date endTime;
|
private Date endTime;
|
||||||
|
|
||||||
/** 流程状态(0--待审批,1-审批中,2--审批通过,3--已驳回) */
|
/** 流程状态(0--待审批,1-审批中,2--审批通过,3--已驳回) */
|
||||||
@Excel(name = "流程状态", readConverterExp = "0=--待审批,1-审批中,2--审批通过,3--已驳回")
|
@Excel(name = "流程状态", readConverterExp = "0=待审批,1=审批中,2=审批通过,3=已驳回")
|
||||||
private Integer processStatus;
|
private Integer processStatus;
|
||||||
|
|
||||||
/** 流程实例ID */
|
/** 流程实例ID */
|
||||||
|
@ -59,9 +61,7 @@ public class SysOaLeave extends BaseEntity
|
||||||
/** 附件 */
|
/** 附件 */
|
||||||
@Excel(name = "附件")
|
@Excel(name = "附件")
|
||||||
private String fileUrl;
|
private String fileUrl;
|
||||||
/** 请假单号 */
|
|
||||||
@Excel(name = "请假单号")
|
|
||||||
private String leaveNo;
|
|
||||||
/**
|
/**
|
||||||
* 请假时长
|
* 请假时长
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -167,7 +167,7 @@ public interface SysUserMapper
|
||||||
/**
|
/**
|
||||||
* 根据用户编号查询授权列表
|
* 根据用户编号查询授权列表
|
||||||
*
|
*
|
||||||
* @param loginName 登录账户
|
* @param userId 登录账户
|
||||||
* @return 授权列表
|
* @return 授权列表
|
||||||
*/
|
*/
|
||||||
public List<SysAuthUser> selectAuthUserListByUserId(Long userId);
|
public List<SysAuthUser> selectAuthUserListByUserId(Long userId);
|
||||||
|
|
|
@ -47,7 +47,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="status != null "> and status = #{status}</if>
|
<if test="status != null "> and status = #{status}</if>
|
||||||
<if test="operTime != null "> and oper_time = #{operTime}</if>
|
<if test="operTime != null "> and oper_time = #{operTime}</if>
|
||||||
<if test="logType != null "> and log_type = #{logType}</if>
|
<if test="logType != null "> and log_type = #{logType}</if>
|
||||||
|
<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="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
|
||||||
|
AND date_format(oper_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d')
|
||||||
|
</if>
|
||||||
</where>
|
</where>
|
||||||
|
order by oper_time desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectSysDingtalkSyncLogById" parameterType="Long" resultMap="SysDingtalkSyncLogResult">
|
<select id="selectSysDingtalkSyncLogById" parameterType="Long" resultMap="SysDingtalkSyncLogResult">
|
||||||
|
|
|
@ -40,7 +40,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="processInstanceId != null and processInstanceId != ''"> and process_instance_id = #{processInstanceId}</if>
|
<if test="processInstanceId != null and processInstanceId != ''"> and process_instance_id = #{processInstanceId}</if>
|
||||||
<if test="applyPerson != null and applyPerson != ''"> and apply_person = #{applyPerson}</if>
|
<if test="applyPerson != null and applyPerson != ''"> and apply_person = #{applyPerson}</if>
|
||||||
<if test="createTime != null"> and create_time = #{createTime}</if>
|
<if test="createTime != null"> and create_time = #{createTime}</if>
|
||||||
|
|
||||||
</where>
|
</where>
|
||||||
|
order by create_time desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectSysOaLeaveById" parameterType="Integer" resultMap="SysOaLeaveResult">
|
<select id="selectSysOaLeaveById" parameterType="Integer" resultMap="SysOaLeaveResult">
|
||||||
|
|
Loading…
Reference in New Issue