Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
R
RuoYi-Vue-master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
融通安全管理系统
RuoYi-Vue-master
Commits
8c0dcc38
Commit
8c0dcc38
authored
Dec 08, 2023
by
鲍德
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
现状风险巡查定时任务
parent
9edc8b71
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
263 additions
and
3 deletions
+263
-3
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/controller/CurrentRiskPostController.java
...censoftrongtong/controller/CurrentRiskPostController.java
+8
-2
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/controller/CurrentRiskTask.java
...m/censoft/censoftrongtong/controller/CurrentRiskTask.java
+176
-0
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/domain/CurrentRiskPostList.java
...m/censoft/censoftrongtong/domain/CurrentRiskPostList.java
+2
-0
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/enums/CycleType.java
...ain/java/com/censoft/censoftrongtong/enums/CycleType.java
+53
-0
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/mapper/CurrentRiskPostListMapper.java
...oft/censoftrongtong/mapper/CurrentRiskPostListMapper.java
+6
-0
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/service/ICurrentRiskPostListService.java
.../censoftrongtong/service/ICurrentRiskPostListService.java
+1
-0
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/service/impl/CurrentRiskPostListServiceImpl.java
...rongtong/service/impl/CurrentRiskPostListServiceImpl.java
+5
-0
censoft-rongtong/src/main/resources/mapper/system/CurrentRiskPostListMapper.xml
...ain/resources/mapper/system/CurrentRiskPostListMapper.xml
+12
-1
No files found.
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/controller/CurrentRiskPostController.java
View file @
8c0dcc38
package
com
.
censoft
.
censoftrongtong
.
controller
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
...
...
@@ -89,7 +90,7 @@ public class CurrentRiskPostController extends BaseController
{
Long
currentRiskPostId
=
currentRiskPost
.
getId
();
if
(
currentRiskPostId
==
null
){
int
id
=
currentRiskPostService
.
insertCurrentRiskPost
(
currentRiskPost
);
currentRiskPostService
.
insertCurrentRiskPost
(
currentRiskPost
);
currentRiskPostId
=
currentRiskPost
.
getId
();
}
else
{
currentRiskPostService
.
updateCurrentRiskPost
(
currentRiskPost
);
...
...
@@ -146,6 +147,11 @@ public class CurrentRiskPostController extends BaseController
@DeleteMapping
(
"/{ids}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
ids
)
{
return
toAjax
(
currentRiskPostService
.
deleteCurrentRiskPostByIds
(
ids
));
currentRiskPostService
.
deleteCurrentRiskPostByIds
(
ids
);
//删除原有岗位用户信息
QueryWrapper
<
CurrentRiskPostList
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
in
(
"post_id"
,
Arrays
.
asList
(
ids
));
currentRiskPostListService
.
remove
(
queryWrapper
);
return
AjaxResult
.
success
();
}
}
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/controller/CurrentRiskTask.java
0 → 100644
View file @
8c0dcc38
package
com
.
censoft
.
censoftrongtong
.
controller
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.censoft.censoftrongtong.domain.CurrentRiskPostList
;
import
com.censoft.censoftrongtong.domain.CurrentRiskUserPatrol
;
import
com.censoft.censoftrongtong.domain.CurrentRiskUserPatrolDetail
;
import
com.censoft.censoftrongtong.enums.CycleType
;
import
com.censoft.censoftrongtong.service.*
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Slf4j
@AllArgsConstructor
@Component
(
"currentRiskTask"
)
public
class
CurrentRiskTask
{
private
ICurrentRiskPostListService
currentRiskPostListService
;
private
ICurrentRiskUserPatrolService
currentRiskUserPatrolService
;
private
ICurrentRiskUserPatrolDetailService
currentRiskUserPatrolDetailService
;
private
static
final
SimpleDateFormat
SDF
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
/**
* 每天零点发送任务
* @param isDailypOther 除每月 1 号外,是否新增日查之外的巡查 默认不新增
*/
private
void
senTask
(
boolean
isDailypOther
){
//判断是否查询当天巡查任务是否发放
Calendar
calendar
=
Calendar
.
getInstance
();
int
hour
=
calendar
.
get
(
Calendar
.
HOUR_OF_DAY
);
int
day
=
calendar
.
get
(
Calendar
.
DAY_OF_MONTH
);
//查询所有的任务列表
QueryWrapper
<
CurrentRiskPostList
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"status"
,
"0"
);
List
<
CurrentRiskPostList
>
currentRiskPostLists
=
currentRiskPostListService
.
list
();
if
(
CollectionUtils
.
isEmpty
(
currentRiskPostLists
)){
return
;
}
//查询所有人的巡查类型,按巡查类型分类
List
<
CurrentRiskPostList
>
patrolTypeList
=
currentRiskPostListService
.
selectCurrentRiskPostListList3
();
for
(
CurrentRiskPostList
patrolType
:
patrolTypeList
){
//初始化用户巡查总表
CurrentRiskUserPatrol
currentRiskUserPatrol
=
new
CurrentRiskUserPatrol
();
//开始时间,结束时间
try
{
initTime
(
currentRiskUserPatrol
,
patrolType
.
getPatrolType
());
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
log
.
info
(
"初始化时间出错"
);
}
//查询当天巡查任务是否发放
//查询是否发送过
QueryWrapper
<
CurrentRiskUserPatrol
>
patrolQueryWrapper
=
new
QueryWrapper
<>();
patrolQueryWrapper
.
eq
(
"user_id"
,
patrolType
.
getUserId
()).
eq
(
"risk_post_id"
,
patrolType
.
getPostId
())
.
eq
(
"patrol_type"
,
patrolType
.
getPatrolType
())
.
ge
(
"start_time"
,
currentRiskUserPatrol
.
getStartTime
()).
le
(
"start_time"
,
currentRiskUserPatrol
.
getEndTime
());
//如果是日查 且 属于主动点击行为,则进行校验
if
(
hour
>
2
&&
patrolType
.
getPatrolType
().
equals
(
CycleType
.
DAILY
.
getValue
())){
if
(
currentRiskUserPatrolService
.
count
(
patrolQueryWrapper
)
>
0
){
continue
;
}
}
// 大于1号 且 非日查 要添加 计划查询的数据要进行测验
if
(
day
>
1
&&
isDailypOther
&&
!
patrolType
.
getPatrolType
().
equals
(
CycleType
.
DAILY
.
getValue
())){
if
(
currentRiskUserPatrolService
.
count
(
patrolQueryWrapper
)
>
0
){
continue
;
}
}
//新增任务
List
<
CurrentRiskPostList
>
saveCurrentRiskPostLists
=
currentRiskPostLists
.
stream
().
filter
(
currentRiskPostList
->
currentRiskPostList
.
getPostId
().
equals
(
patrolType
.
getPostId
())
&&
currentRiskPostList
.
getPatrolType
().
equals
(
patrolType
.
getPatrolType
())
&&
currentRiskPostList
.
getUserId
().
equals
(
patrolType
.
getUserId
())).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
saveCurrentRiskPostLists
)){
continue
;
}
currentRiskPostLists
.
removeAll
(
saveCurrentRiskPostLists
);
//新增用户巡查总表
currentRiskUserPatrol
.
setUserId
(
patrolType
.
getUserId
());
currentRiskUserPatrol
.
setProjectId
(
patrolType
.
getProjectId
());
currentRiskUserPatrol
.
setRiskPostId
(
patrolType
.
getPostId
());
//状态 0 未巡查 1 已巡查 2 已请假 3 已过期
currentRiskUserPatrol
.
setPatrolType
(
Integer
.
valueOf
(
patrolType
.
getPatrolType
()));
currentRiskUserPatrol
.
setStatus
(
"0"
);
currentRiskUserPatrol
.
setCreateTime
(
new
Date
());
currentRiskUserPatrolService
.
insertCurrentRiskUserPatrol
(
currentRiskUserPatrol
);
//新增巡查明细信息
List
<
CurrentRiskUserPatrolDetail
>
list
=
new
ArrayList
<>();
saveCurrentRiskPostLists
.
forEach
(
saveCurrentRiskPostList
->{
CurrentRiskUserPatrolDetail
currentRiskUserPatrolDetail
=
new
CurrentRiskUserPatrolDetail
();
currentRiskUserPatrolDetail
.
setCurrentRiskId
(
saveCurrentRiskPostList
.
getCurrentRiskId
());
currentRiskUserPatrolDetail
.
setPatrolId
(
currentRiskUserPatrol
.
getId
());
//状态 0 正常 1 异常
currentRiskUserPatrolDetail
.
setStatus
(
"0"
);
currentRiskUserPatrolDetail
.
setCreateTime
(
new
Date
());
list
.
add
(
currentRiskUserPatrolDetail
);
});
currentRiskUserPatrolDetailService
.
saveBatch
(
list
);
}
}
/**
* 开始时间,结束时间计算
* @param currentRiskUserPatrol 对象
* @param patrolType 巡检类型 0 日查 1 周查 2 月查 3 季查 4 年查
*/
private
void
initTime
(
CurrentRiskUserPatrol
currentRiskUserPatrol
,
String
patrolType
)
throws
Exception
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Calendar
calendar
=
Calendar
.
getInstance
();
int
currentYear
=
calendar
.
get
(
Calendar
.
YEAR
);
int
currentMonth
=
calendar
.
get
(
Calendar
.
MONTH
)
+
1
;
String
startTime
=
""
;
String
endTime
=
""
;
//日查
if
(
patrolType
.
equals
(
CycleType
.
DAILY
.
getValue
())){
startTime
=
SDF
.
format
(
calendar
.
getTime
())
+
" 00:00:00"
;
endTime
=
SDF
.
format
(
calendar
.
getTime
())
+
" 23:59:59"
;
}
//周查
if
(
patrolType
.
equals
(
CycleType
.
WEEKLY
.
getValue
())){
// 获取当前是周几,注意返回值是1-7,1表示周日,2表示周一,以此类推
int
dayOfWeek
=
calendar
.
get
(
Calendar
.
DAY_OF_WEEK
);
if
(
dayOfWeek
==
1
){
calendar
.
add
(
Calendar
.
DATE
,
-
6
);
}
else
{
calendar
.
add
(
Calendar
.
DATE
,
2
-
dayOfWeek
);
}
startTime
=
SDF
.
format
(
calendar
.
getTime
())
+
" 00:00:00"
;
calendar
.
add
(
Calendar
.
DATE
,
6
);
endTime
=
SDF
.
format
(
calendar
.
getTime
())
+
" 23:59:59"
;
}
//月查
if
(
patrolType
.
equals
(
CycleType
.
MONTH
.
getValue
())){
startTime
=
currentYear
+
"-"
+
currentMonth
+
"-01 00:00:00"
;
calendar
.
set
(
Calendar
.
DAY_OF_MONTH
,
calendar
.
getActualMaximum
(
Calendar
.
DAY_OF_MONTH
));
int
lastDayOfMonth
=
calendar
.
get
(
Calendar
.
DAY_OF_MONTH
);
endTime
=
currentYear
+
"-"
+
currentMonth
+
"-"
+
lastDayOfMonth
+
" 23:59:59"
;
}
//季查
if
(
patrolType
.
equals
(
CycleType
.
QUARTERLY
.
getValue
())){
// 获取当前月份,注意返回值是0-11,因此需要加1
int
month
=
calendar
.
get
(
Calendar
.
MONTH
)
+
1
;
// 获取当前季度,注意返回值是1-4,1表示第一季度,以此类推
int
quarter
=
(
month
-
1
)
/
3
+
1
;
//季度初始月份
int
quarterMonth
=
1
+
(
3
*
(
quarter
-
1
));
startTime
=
currentYear
+
"-"
+
quarterMonth
+
"-01 00:00:00"
;
calendar
.
setTime
(
SDF
.
parse
(
startTime
));
calendar
.
add
(
Calendar
.
MONTH
,
2
);
calendar
.
set
(
Calendar
.
DAY_OF_MONTH
,
calendar
.
getActualMaximum
(
Calendar
.
DAY_OF_MONTH
));
int
lastDayOfMonth
=
calendar
.
get
(
Calendar
.
DAY_OF_MONTH
);
endTime
=
currentYear
+
"-"
+
currentMonth
+
"-"
+
lastDayOfMonth
+
" 23:59:59"
;
}
//年查
if
(
patrolType
.
equals
(
CycleType
.
YEARLY
.
getValue
())){
startTime
=
currentYear
+
"-01-01 00:00:00"
;
endTime
=
currentYear
+
"-12-31 23:59:59"
;
}
try
{
currentRiskUserPatrol
.
setStartTime
(
simpleDateFormat
.
parse
(
startTime
));
currentRiskUserPatrol
.
setEndTime
(
simpleDateFormat
.
parse
(
endTime
));
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
}
}
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/domain/CurrentRiskPostList.java
View file @
8c0dcc38
...
...
@@ -37,6 +37,8 @@ public class CurrentRiskPostList extends BaseEntityClean
@Excel
(
name
=
"现状风险 id"
)
private
Long
currentRiskId
;
private
String
status
;
/** 巡查类型 */
@Excel
(
name
=
"巡查类型"
)
private
String
patrolType
;
...
...
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/enums/CycleType.java
0 → 100644
View file @
8c0dcc38
package
com
.
censoft
.
censoftrongtong
.
enums
;
/**
* 巡查类型 0 日查 1 周查 2 月查 3 季查 4 年查
*/
public
enum
CycleType
{
//日查
DAILY
(
"0"
,
"日查"
),
//周查
WEEKLY
(
"1"
,
"周查"
),
//月查
MONTH
(
"2"
,
"月查"
),
//季查
QUARTERLY
(
"3"
,
"季查"
),
//年查
YEARLY
(
"4"
,
"年查"
);
private
String
value
;
private
String
name
;
CycleType
(
String
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
CycleType
()
{
}
public
String
getValue
()
{
return
value
;
}
public
void
setValue
(
String
value
)
{
this
.
value
=
value
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
static
CycleType
getByValue
(
String
value
)
{
for
(
CycleType
cycleType
:
values
())
{
if
(
cycleType
.
value
.
equals
(
value
))
{
return
cycleType
;
}
}
return
null
;
}
}
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/mapper/CurrentRiskPostListMapper.java
View file @
8c0dcc38
...
...
@@ -62,4 +62,10 @@ public interface CurrentRiskPostListMapper extends MPJBaseMapper<CurrentRiskPos
public
List
<
CurrentRiskPostList
>
selectCurrentRiskPostListList2
(
CurrentRiskPostList
currentRiskPostList
);
/**
* 查询所有人的巡查类型 根据类型分组
* @return 返回信息
*/
public
List
<
CurrentRiskPostList
>
selectCurrentRiskPostListList3
();
}
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/service/ICurrentRiskPostListService.java
View file @
8c0dcc38
...
...
@@ -61,4 +61,5 @@ public interface ICurrentRiskPostListService extends MPJBaseService<CurrentRisk
public
List
<
CurrentRiskPostList
>
selectCurrentRiskPostListList2
(
CurrentRiskPostList
currentRiskPostList
);
public
List
<
CurrentRiskPostList
>
selectCurrentRiskPostListList3
();
}
censoft-rongtong/src/main/java/com/censoft/censoftrongtong/service/impl/CurrentRiskPostListServiceImpl.java
View file @
8c0dcc38
...
...
@@ -98,4 +98,9 @@ public class CurrentRiskPostListServiceImpl extends MPJBaseServiceImpl<CurrentRi
public
List
<
CurrentRiskPostList
>
selectCurrentRiskPostListList2
(
CurrentRiskPostList
currentRiskPostList
)
{
return
currentRiskPostListMapper
.
selectCurrentRiskPostListList2
(
currentRiskPostList
);
}
@Override
public
List
<
CurrentRiskPostList
>
selectCurrentRiskPostListList3
()
{
return
currentRiskPostListMapper
.
selectCurrentRiskPostListList3
();
}
}
censoft-rongtong/src/main/resources/mapper/system/CurrentRiskPostListMapper.xml
View file @
8c0dcc38
...
...
@@ -18,6 +18,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result
property=
"updateBy"
column=
"update_by"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"remark"
column=
"remark"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"currentRiskType"
column=
"currentRiskType"
/>
<result
property=
"currentRiskId2"
column=
"current_risk_id2"
/>
<result
property=
"currentRiskType2"
column=
"currentRiskType2"
/>
...
...
@@ -73,6 +74,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a.update_by,
a.update_time,
a.remark,
a.status,
c.nick_name,
GROUP_CONCAT(a.current_risk_id) current_risk_id2,
GROUP_CONCAT(DISTINCT b.type)currentRiskType2
...
...
@@ -84,12 +86,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if
test=
"projectId != null "
>
and a.project_id = #{projectId}
</if>
<if
test=
"postId != null "
>
and a.post_id = #{postId}
</if>
<if
test=
"userId != null "
>
and a.user_id = #{userId}
</if>
<if
test=
"status != null "
>
and a.status = #{status}
</if>
<if
test=
"currentRiskId != null "
>
and a.current_risk_id = #{currentRiskId}
</if>
<if
test=
"patrolType != null and patrolType != ''"
>
and a.patrol_type = #{patrolType}
</if>
</where>
GROUP BY a.user_id
</select>
<select
id=
"selectCurrentRiskPostListList3"
resultMap=
"CurrentRiskPostListResult"
>
select * from current_risk_post_list where status = '1' GROUP BY user_id,patrol_type
</select>
<select
id=
"selectCurrentRiskPostListById"
parameterType=
"Long"
resultMap=
"CurrentRiskPostListResult"
>
<include
refid=
"selectCurrentRiskPostListVo"
/>
where id = #{id}
...
...
@@ -110,6 +118,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if
test=
"updateBy != null"
>
update_by,
</if>
<if
test=
"updateTime != null"
>
update_time,
</if>
<if
test=
"remark != null"
>
remark,
</if>
<if
test=
"status != null"
>
status,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"projectId != null"
>
#{projectId},
</if>
...
...
@@ -124,6 +133,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if
test=
"updateBy != null"
>
#{updateBy},
</if>
<if
test=
"updateTime != null"
>
#{updateTime},
</if>
<if
test=
"remark != null"
>
#{remark},
</if>
<if
test=
"status != null"
>
#{status},
</if>
</trim>
</insert>
...
...
@@ -142,6 +152,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if
test=
"updateBy != null"
>
update_by = #{updateBy},
</if>
<if
test=
"updateTime != null"
>
update_time = #{updateTime},
</if>
<if
test=
"remark != null"
>
remark = #{remark},
</if>
<if
test=
"status != null"
>
status = #{status},
</if>
</trim>
where id = #{id}
</update>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment