Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
项目统一框架
amos-boot-biz
Commits
37ba82a4
Commit
37ba82a4
authored
Aug 01, 2022
by
tangwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改任务
parent
8292944a
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
590 additions
and
9 deletions
+590
-9
Plan.java
...rc/main/java/com/yeejoin/amos/patrol/dao/entity/Plan.java
+25
-0
OrgUsrController.java
...s/boot/module/common/biz/controller/OrgUsrController.java
+30
-0
PlanTaskController.java
...n/amos/patrol/business/controller/PlanTaskController.java
+45
-0
JcsFeignClient.java
...om/yeejoin/amos/patrol/business/feign/JcsFeignClient.java
+6
-0
PlanTaskServiceImpl.java
...mos/patrol/business/service/impl/PlanTaskServiceImpl.java
+258
-0
IPlanTaskService.java
.../amos/patrol/business/service/intfc/IPlanTaskService.java
+5
-0
JobService.java
.../main/java/com/yeejoin/amos/patrol/quartz/JobService.java
+221
-9
No files found.
amos-boot-module/amos-boot-module-api/amos-boot-module-patrol-api/src/main/java/com/yeejoin/amos/patrol/dao/entity/Plan.java
View file @
37ba82a4
...
@@ -245,6 +245,31 @@ public class Plan extends BasicEntity {
...
@@ -245,6 +245,31 @@ public class Plan extends BasicEntity {
@Column
(
name
=
"user_dept"
)
@Column
(
name
=
"user_dept"
)
private
String
userDept
;
private
String
userDept
;
//单位code
@Column
(
name
=
"biz_org_code"
)
private
String
bizOrgCode
;
//单位名称
@Column
(
name
=
"biz_org_name"
)
private
String
bizOrgName
;
public
String
getBizOrgCode
()
{
return
bizOrgCode
;
}
public
void
setBizOrgCode
(
String
bizOrgCode
)
{
this
.
bizOrgCode
=
bizOrgCode
;
}
public
String
getBizOrgName
()
{
return
bizOrgName
;
}
public
void
setBizOrgName
(
String
bizOrgName
)
{
this
.
bizOrgName
=
bizOrgName
;
}
public
String
getUserDept
()
{
public
String
getUserDept
()
{
return
userDept
;
return
userDept
;
}
}
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/controller/OrgUsrController.java
View file @
37ba82a4
...
@@ -10,6 +10,7 @@ import java.util.stream.Collectors;
...
@@ -10,6 +10,7 @@ import java.util.stream.Collectors;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
com.yeejoin.amos.boot.module.common.api.enums.OrgPersonEnum
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
...
@@ -986,4 +987,32 @@ public class OrgUsrController extends BaseController {
...
@@ -986,4 +987,32 @@ public class OrgUsrController extends BaseController {
return
ResponseHelper
.
buildResponse
(
iOrgUsrService
.
getDetByCompanyId
(
parentId
.
getResult
()));
return
ResponseHelper
.
buildResponse
(
iOrgUsrService
.
getDetByCompanyId
(
parentId
.
getResult
()));
}
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"查询单位基本信息"
,
notes
=
"查询单位基本信息"
)
@GetMapping
(
value
=
"/selectByIdDeptList"
)
public
ResponseModel
<
Object
>
selectByIdDeptList
(
@RequestBody
String
ids
)
throws
Exception
{
String
[]
slid
=
ids
.
split
(
","
);
LambdaQueryWrapper
<
OrgUsr
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
eq
(
OrgUsr:
:
getIsDelete
,
false
);
wrapper
.
in
(
OrgUsr:
:
getSequenceNbr
,
Arrays
.
asList
(
slid
));
List
<
OrgUsr
>
orgUsrList
=
orgUsrMapper
.
selectList
(
wrapper
);
return
ResponseHelper
.
buildResponse
(
orgUsrList
);
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"查询单位基本信息"
,
notes
=
"查询单位基本信息"
)
@GetMapping
(
value
=
"/selectByAmosOrgIdDeptList"
)
public
ResponseModel
<
Object
>
selectByAmosOrgIdDeptList
(
@RequestBody
String
ids
)
throws
Exception
{
String
[]
slid
=
ids
.
split
(
","
);
LambdaQueryWrapper
<
OrgUsr
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
eq
(
OrgUsr:
:
getIsDelete
,
false
);
wrapper
.
in
(
OrgUsr:
:
getAmosOrgId
,
Arrays
.
asList
(
slid
));
List
<
OrgUsr
>
orgUsrList
=
orgUsrMapper
.
selectList
(
wrapper
);
return
ResponseHelper
.
buildResponse
(
orgUsrList
);
}
}
}
\ No newline at end of file
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/src/main/java/com/yeejoin/amos/patrol/business/controller/PlanTaskController.java
View file @
37ba82a4
...
@@ -88,6 +88,51 @@ public class PlanTaskController extends AbstractBaseController {
...
@@ -88,6 +88,51 @@ public class PlanTaskController extends AbstractBaseController {
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
value
=
"计划执行重做"
,
notes
=
"计划执行重做"
)
@RequestMapping
(
value
=
"/regenPlanTaskNew"
,
produces
=
"application/json;charset=UTF-8"
,
method
=
RequestMethod
.
POST
)
public
CommonResponse
planTaskReGenNew
(
@ApiParam
(
value
=
"巡检计划"
,
required
=
true
)
@RequestBody
HashMap
<
String
,
Object
>
param
)
{
if
(
param
.
get
(
"planId"
)
==
null
)
{
throw
new
YeeException
(
"计划编号不能为空"
);
}
if
(
param
.
get
(
"beginDate"
)
==
null
)
{
throw
new
YeeException
(
"开始日期能为空"
);
}
if
(
param
.
get
(
"endDate"
)
==
null
)
{
throw
new
YeeException
(
"结束日期不能为空"
);
}
if
(
param
.
get
(
"changeFlag"
)
==
null
)
{
throw
new
YeeException
(
"是否记为合格不能为空"
);
}
try
{
planTaskService
.
reGenPlanTaskNew
(
param
);
return
CommonResponseUtil
.
success
();
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
return
CommonResponseUtil
.
failure
(
"计划执行重做失败"
);
}
}
/**
/**
* 计划执行删除
* 计划执行删除
*
*
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/src/main/java/com/yeejoin/amos/patrol/business/feign/JcsFeignClient.java
View file @
37ba82a4
...
@@ -65,5 +65,11 @@ public interface JcsFeignClient {
...
@@ -65,5 +65,11 @@ public interface JcsFeignClient {
@GetMapping
(
value
=
"/org-usr/getCompanyInfo"
)
@GetMapping
(
value
=
"/org-usr/getCompanyInfo"
)
ResponseModel
<
Object
>
getCompanyInfo
(
@RequestParam
(
value
=
"companyId"
)
String
companyId
);
ResponseModel
<
Object
>
getCompanyInfo
(
@RequestParam
(
value
=
"companyId"
)
String
companyId
);
@PostMapping
(
value
=
"/org-usr/selectByIdDeptList"
)
FeignClientResult
<
List
<
Map
<
String
,
Object
>>>
selectByIdDeptList
(
@RequestBody
String
ids
);
@PostMapping
(
value
=
"/org-usr/selectByAmosOrgIdDeptList"
)
FeignClientResult
<
List
<
Map
<
String
,
Object
>>>
selectByAmosOrgIdDeptList
(
@RequestBody
String
ids
);
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/src/main/java/com/yeejoin/amos/patrol/business/service/impl/PlanTaskServiceImpl.java
View file @
37ba82a4
...
@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONObject;
...
@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONObject;
import
com.google.common.base.Joiner
;
import
com.google.common.base.Joiner
;
import
com.yeejoin.amos.boot.biz.common.constants.RuleConstant
;
import
com.yeejoin.amos.boot.biz.common.constants.RuleConstant
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.component.feign.model.FeignClientResult
;
import
com.yeejoin.amos.component.rule.RuleTrigger
;
import
com.yeejoin.amos.component.rule.RuleTrigger
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
com.yeejoin.amos.feign.privilege.model.DepartmentModel
;
import
com.yeejoin.amos.feign.privilege.model.DepartmentModel
;
...
@@ -24,6 +25,7 @@ import com.yeejoin.amos.patrol.business.entity.mybatis.CheckChkExListBo;
...
@@ -24,6 +25,7 @@ import com.yeejoin.amos.patrol.business.entity.mybatis.CheckChkExListBo;
import
com.yeejoin.amos.patrol.business.entity.mybatis.PointCheckDetailBo
;
import
com.yeejoin.amos.patrol.business.entity.mybatis.PointCheckDetailBo
;
import
com.yeejoin.amos.patrol.business.feign.Business
;
import
com.yeejoin.amos.patrol.business.feign.Business
;
import
com.yeejoin.amos.patrol.business.feign.EquipFeign
;
import
com.yeejoin.amos.patrol.business.feign.EquipFeign
;
import
com.yeejoin.amos.patrol.business.feign.JcsFeignClient
;
import
com.yeejoin.amos.patrol.business.param.CheckPtListPageParam
;
import
com.yeejoin.amos.patrol.business.param.CheckPtListPageParam
;
import
com.yeejoin.amos.patrol.business.param.PlanTaskPageParam
;
import
com.yeejoin.amos.patrol.business.param.PlanTaskPageParam
;
import
com.yeejoin.amos.patrol.business.service.intfc.ICheckService
;
import
com.yeejoin.amos.patrol.business.service.intfc.ICheckService
;
...
@@ -119,6 +121,8 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
...
@@ -119,6 +121,8 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
@Autowired
@Autowired
RedisUtils
redisUtils
;
RedisUtils
redisUtils
;
@Autowired
JcsFeignClient
jcsFeignClient
;
private
final
String
PATROL_PLAN_TASK_KEY
=
"PATROL_PLAN_ID:"
;
private
final
String
PATROL_PLAN_TASK_KEY
=
"PATROL_PLAN_ID:"
;
...
@@ -310,6 +314,62 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
...
@@ -310,6 +314,62 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
}
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
reGenPlanTaskNew
(
HashMap
<
String
,
Object
>
param
)
throws
ParseException
{
//1.公共参数准备
String
planId
=
param
.
get
(
"planId"
).
toString
();
//重做的计划编号id
String
strBginDate
=
param
.
get
(
"beginDate"
).
toString
();
//开始日期(yyyy-MM-dd)
String
strEndDate
=
param
.
get
(
"endDate"
).
toString
();
//结束日期(yyyy-MM-dd)
String
flag
=
param
.
get
(
"changeFlag"
).
toString
();
//是否记为合格标记:0-否,1-是
Plan
plan
=
iplanDao
.
findById
(
Long
.
parseLong
(
planId
)).
get
();
//
if
(
plan
==
null
)
{
throw
new
YeeException
(
"计划不存在"
);
}
if
(
StringUtil
.
isNotEmpty
(
plan
.
getUserId
()))
{
//2.数据必输校验,不满足直接return,不再向下进行
Boolean
fileFlag
=
PlanTaskUtil
.
checkMustFile
(
plan
);
if
(!
fileFlag
)
{
return
;
}
//3.计算生成数据的日期区间(前10位:yyyy-MM-dd)
CalDateVo
vo
=
PlanTaskUtil
.
reGenPlanTaskData
(
plan
,
strBginDate
,
strEndDate
);
if
(
null
==
vo
)
{
//计划未开始,则结束
return
;
}
if
(!
vo
.
getIsGenData
())
{
//日期不符合条件直接结束
return
;
}
//3.删除planTask表,按照计划id+日期
deletePlanTaskAndDet
(
param
);
//5.执行数据生成(具体时间 + 人员)
List
<
HashMap
<
String
,
Object
>>
list
=
genAllExeDate
(
plan
,
vo
,
XJConstant
.
REGEN_FLAG
);
//6.插入planTask及planTaskDetail
insertPlanTaskAndDetNew
(
list
,
plan
,
flag
,
new
Date
());
//7.重新统计计划
if
(
ObjectUtils
.
isEmpty
(
plan
.
getUserId
()))
{
return
;
}
reformStatisticsPlanTask
(
strBginDate
,
strEndDate
,
plan
.
getUserId
(),
plan
.
getBizOrgCode
());
//8.通知3d数据统计进行更新(换流站全景监控)
// this.notifyBusinessRefresh(NotifyBusinessTypeEum.planTask.getCode());
}
}
private
void
notifyBusinessRefresh
(
String
type
)
{
private
void
notifyBusinessRefresh
(
String
type
)
{
try
{
try
{
business
.
planTaskInsertToB
(
type
);
business
.
planTaskInsertToB
(
type
);
...
@@ -601,6 +661,204 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
...
@@ -601,6 +661,204 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
}
}
/**
* plantask及det入库
*
* @param list
* @param plan
* @param flag 是否初始状态0-初始 1-非初始
*/
public
void
insertPlanTaskAndDetNew
(
List
<
HashMap
<
String
,
Object
>>
list
,
Plan
plan
,
String
flag
,
Date
now
)
{
if
(
list
==
null
||
list
.
size
()
<=
0
)
{
HashMap
<
String
,
Object
>
paramMap
=
new
HashMap
<
String
,
Object
>();
paramMap
.
put
(
"id"
,
plan
.
getId
());
paramMap
.
put
(
"next_gen_date"
,
DateUtil
.
formatDatrToStr
(
now
,
"yyyy-MM-dd"
));
planMapper
.
updPlanStatusOrGenDate
(
paramMap
);
// 更新下次任务生成日期
}
Toke
toke
=
remoteSecurityService
.
getServerToken
();
Map
<
String
,
String
>
deptMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
nameMap
=
new
HashMap
<>();
try
{
String
isFixDate
=
plan
.
getIsFixedDate
();
// 是否固定日期
List
<
Long
>
pointIdList
=
iRoutePointDao
.
queryRoutePointIds
(
plan
.
getRouteId
());
int
pointNum
=
iRoutePointDao
.
countRoutePoint
(
plan
.
getRouteId
());
long
batchNo
=
now
.
getTime
();
// List<AgencyUserModel> agencyUserModels = remoteSecurityService.listUserByUserIds(toke.getToke(), toke.getProduct(), toke.getAppKey(),
// plan.getUserId());
FeignClientResult
<
List
<
Map
<
String
,
Object
>>>
agencyUserModelsDate
=
jcsFeignClient
.
selectByAmosOrgIdDeptList
(
plan
.
getUserId
());
List
<
Map
<
String
,
Object
>>
agencyUserModels
=
agencyUserModelsDate
.
getResult
();
for
(
int
i
=
0
;
i
<
agencyUserModels
.
size
();
i
++)
{
//遍历获取orgcode
nameMap
.
put
(
agencyUserModels
.
get
(
i
).
get
(
"amosOrgId"
).
toString
(),
agencyUserModels
.
get
(
i
).
get
(
"bizOrgName"
));
}
Set
<
String
>
departmentIds
=
new
HashSet
<>();
List
<
String
>
depts
=
Arrays
.
asList
(
plan
.
getUserDept
().
split
(
","
));
depts
.
stream
().
forEach
(
dept
->
{
deptMap
.
put
(
dept
.
substring
(
0
,
dept
.
indexOf
(
"@"
)),
dept
.
substring
(
dept
.
indexOf
(
"@"
)
+
1
));
});
for
(
String
entry
:
deptMap
.
keySet
())
{
String
entryValue
=
deptMap
.
get
(
entry
);
departmentIds
.
add
(
entryValue
);
}
StringBuffer
departmentIdBuffer
=
new
StringBuffer
();
Iterator
<
String
>
it
=
departmentIds
.
iterator
();
while
(
it
.
hasNext
())
{
departmentIdBuffer
.
append
(
it
.
next
()).
append
(
","
);
}
Map
<
String
,
String
>
orgCodeMap
=
new
HashMap
<>();
if
(
departmentIds
.
size
()
>
0
)
{
// List<DepartmentModel> departmentModels = remoteSecurityService.getlistDepartmentByDeptIds(
// toke.getToke(), toke.getProduct(), toke.getAppKey(),
// departmentIdBuffer.toString().substring(0, departmentIdBuffer.toString().length() - 1));
FeignClientResult
<
List
<
Map
<
String
,
Object
>>>
departmentModeldate
=
jcsFeignClient
.
selectByIdDeptList
(
departmentIdBuffer
.
toString
().
substring
(
0
,
departmentIdBuffer
.
toString
().
length
()
-
1
));
List
<
Map
<
String
,
Object
>>
departmentModels
=
departmentModeldate
.
getResult
();
for
(
String
key
:
deptMap
.
keySet
())
{
String
entryValue
=
deptMap
.
get
(
key
);
for
(
Map
<
String
,
Object
>
departmentModel
:
departmentModels
)
{
if
(
entryValue
.
equals
(
departmentModel
.
get
(
"sequenceNbr"
).
toString
()))
{
orgCodeMap
.
put
(
key
,
departmentModel
.
get
(
"bizOrgCode"
).
toString
());
}
}
}
}
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
String
startTime
=
list
.
get
(
i
).
get
(
"BEGIN_TIME"
).
toString
();
String
endTime
=
list
.
get
(
i
).
get
(
"END_TIME"
).
toString
();
String
userId
=
list
.
get
(
i
).
get
(
"USER_ID"
)
==
null
?
"-1"
:
list
.
get
(
i
).
get
(
"USER_ID"
).
toString
();
String
userDept
=
list
.
get
(
i
).
get
(
"USER_DEPT"
)
==
null
?
"-1"
:
list
.
get
(
i
).
get
(
"USER_DEPT"
).
toString
();
PlanTask
planTask
=
iplanTaskDao
.
findByUserIdAndBeginTimeAndEndTimeAndPlanIdAndRouteId
(
userId
,
startTime
,
endTime
,
plan
.
getId
(),
plan
.
getRouteId
());
if
(
planTask
!=
null
)
{
continue
;
}
planTask
=
new
PlanTask
();
//修改巡检p_plan_task orgcode为执行人的org_code -- add by wujunkai 20201216
if
(
plan
.
getUserDept
().
indexOf
(
","
)
>
0
&&
plan
.
getIsSingleExecution
()
!=
true
)
{
Set
<
String
>
orgCodes
=
new
HashSet
<>();
StringBuffer
nameBuffer
=
new
StringBuffer
();
orgCodeMap
.
forEach
((
key
,
entryValue
)
->
{
orgCodes
.
add
(
entryValue
);
});
for
(
Map
.
Entry
<
String
,
Object
>
entry
:
nameMap
.
entrySet
())
{
String
entryValue
=
entry
.
getValue
().
toString
();
nameBuffer
.
append
(
entryValue
).
append
(
","
);
}
planTask
.
setOrgCode
(
orgCodes
.
toString
().
substring
(
1
,
orgCodes
.
toString
().
length
()
-
1
));
planTask
.
setUserName
(
nameBuffer
.
toString
().
substring
(
0
,
nameBuffer
.
toString
().
length
()
-
1
));
}
else
{
planTask
.
setOrgCode
(
orgCodeMap
.
get
(
userId
));
planTask
.
setUserName
(
nameMap
.
get
(
userId
).
toString
());
}
planTask
.
setPlanId
(
plan
.
getId
());
planTask
.
setBatchNo
(
batchNo
);
planTask
.
setRouteId
(
plan
.
getRouteId
());
planTask
.
setInOrder
(
plan
.
getInOrder
());
planTask
.
setUserId
(
userId
);
planTask
.
setUserDept
(
userDept
);
planTask
.
setPointNum
(
pointNum
);
if
(
XJConstant
.
FIX_DATE_NO
.
equals
(
isFixDate
))
{
if
(
sdf
.
parse
(
startTime
).
getTime
()
<=
now
.
getTime
()
&&
sdf
.
parse
(
endTime
).
getTime
()
>=
now
.
getTime
())
{
planTask
.
setFinishStatus
(
XJConstant
.
TASK_STATUS_DEAL
);
planTask
.
setFinishNum
(
0
);
}
else
{
if
(
sdf
.
parse
(
endTime
).
getTime
()
<
now
.
getTime
())
{
planTask
.
setFinishStatus
(
XJConstant
.
TASK_STATUS_TIMEOUT
);
planTask
.
setFinishNum
(
0
);
}
}
}
else
{
if
(
sdf
.
parse
(
startTime
).
getTime
()
<=
now
.
getTime
()
&&
sdf
.
parse
(
endTime
).
getTime
()
>=
now
.
getTime
())
{
planTask
.
setFinishStatus
(
XJConstant
.
TASK_STATUS_DEAL
);
planTask
.
setFinishNum
(
0
);
}
if
(
sdf
.
parse
(
endTime
).
getTime
()
<
now
.
getTime
())
{
planTask
.
setFinishStatus
(
XJConstant
.
TASK_STATUS_TIMEOUT
);
planTask
.
setFinishNum
(
0
);
}
}
if
(
XJConstant
.
CHECK_CHANGE_YES
.
equals
(
flag
))
{
planTask
.
setFinishStatus
(
XJConstant
.
TASK_STATUS_FINISH
);
planTask
.
setFinishNum
(
pointNum
);
}
if
(
XJConstant
.
FIX_DATE_YES
.
equals
(
isFixDate
)
||
(
XJConstant
.
FIX_DATE_NO
.
equals
(
isFixDate
)
&&
XJConstant
.
PLAN_TYPE_DAY
.
equals
(
plan
.
getPlanType
())))
{
planTask
.
setCheckDate
(
list
.
get
(
i
).
get
(
"BEGIN_TIME"
).
toString
().
substring
(
0
,
10
));
}
planTask
.
setBeginTime
(
startTime
);
planTask
.
setEndTime
(
endTime
);
// 1.保存执行数据主表
iplanTaskDao
.
saveAndFlush
(
planTask
);
// 发送APP待办消息 (20220617 改为定时任务发送消息)
// sendMessage(plan, planTask);
String
executorId
=
planTask
.
getUserId
();
long
planId
=
planTask
.
getId
();
for
(
int
i1
=
0
;
i1
<
pointIdList
.
size
();
i1
++)
{
Number
pointId
=
pointIdList
.
get
(
i1
);
PlanTaskDetail
planTaskDetailInstance
=
new
PlanTaskDetail
();
planTaskDetailInstance
.
setPointId
(
pointId
.
longValue
());
planTaskDetailInstance
.
setTaskNo
(
planId
);
planTaskDetailInstance
.
setStatus
(
"0"
);
if
(
XJConstant
.
TASK_STATUS_TIMEOUT
==
planTask
.
getFinishStatus
())
{
planTaskDetailInstance
.
setIsFinish
(
Integer
.
parseInt
(
XJConstant
.
PLAN_TASK_DET_FINISH_OUT
));
planTaskDetailInstance
.
setStatus
(
"3"
);
}
if
(
XJConstant
.
CHECK_CHANGE_YES
.
equals
(
flag
))
{
planTaskDetailInstance
.
setIsFinish
(
Integer
.
parseInt
(
XJConstant
.
PLAN_TASK_DET_FINISH_YES
));
planTaskDetailInstance
.
setStatus
(
"1"
);
}
// 2.保存执行数据明细表
planTaskDetail
.
saveAndFlush
(
planTaskDetailInstance
);
}
// 定时任务监控
jobService
.
planTaskAddJob
(
planTask
);
}
// 3.如果为自动任务调用,则更新id,如果重做或且下次时间大于等于明天,则更新planTaskId到plan表
Date
genDate
=
DateUtil
.
str2Date
(
list
.
get
(
list
.
size
()
-
1
).
get
(
"NEXT_GEN_DATE"
).
toString
(),
"yyyy-MM-dd"
);
//下次生成日期
Date
tomorrow
=
DateUtil
.
getIntervalDate
(
now
,
1
);
//明天
String
strGenDate
=
list
.
get
(
list
.
size
()
-
1
).
get
(
"NEXT_GEN_DATE"
).
toString
().
substring
(
0
,
10
);
HashMap
<
String
,
Object
>
paramMap
=
new
HashMap
<
String
,
Object
>();
paramMap
.
put
(
"id"
,
plan
.
getId
());
paramMap
.
put
(
"next_gen_date"
,
strGenDate
);
if
(
XJConstant
.
SCHED_FLAG
.
equals
(
flag
))
{
paramMap
.
put
(
"plan_task_id"
,
0
);
//修改为初始值
paramMap
.
put
(
"first_flag"
,
XJConstant
.
PLAN_FIRST_STATUS_NO
);
}
else
if
(!
XJConstant
.
SCHED_FLAG
.
equals
(
flag
)
&&
(
genDate
.
getTime
()
-
tomorrow
.
getTime
()
>=
0
)
&&
XJConstant
.
FIX_DATE_NO
.
equals
(
plan
.
getIsFixedDate
()))
{
//更新日期及plantaskId到plan表
long
planTaskId
=
iplanTaskDao
.
findMaxIdByBatchNo
(
batchNo
);
paramMap
.
put
(
"plan_task_id"
,
planTaskId
);
// 更新新的任务id到plan
paramMap
.
put
(
"first_flag"
,
XJConstant
.
PLAN_FIRST_STATUS_NO
);
}
if
(
DateUtil
.
str2Date
(
strGenDate
,
"yyyy-MM-dd"
).
getTime
()
-
now
.
getTime
()
<
0
||
org
.
apache
.
commons
.
lang
.
StringUtils
.
isBlank
(
strGenDate
))
{
paramMap
.
put
(
"next_gen_date"
,
DateUtil
.
formatDatrToStr
(
now
,
"yyyy-MM-dd"
));
}
planMapper
.
updPlanStatusOrGenDate
(
paramMap
);
// 更新下次任务生成日期
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
// return deptMap;
}
/**
/**
* plantask及det入库
* plantask及det入库
*
*
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/src/main/java/com/yeejoin/amos/patrol/business/service/intfc/IPlanTaskService.java
View file @
37ba82a4
...
@@ -40,6 +40,11 @@ public interface IPlanTaskService {
...
@@ -40,6 +40,11 @@ public interface IPlanTaskService {
void
reGenPlanTask
(
HashMap
<
String
,
Object
>
param
)
throws
ParseException
;
void
reGenPlanTask
(
HashMap
<
String
,
Object
>
param
)
throws
ParseException
;
/**
/**
* 计划执行重做
*/
void
reGenPlanTaskNew
(
HashMap
<
String
,
Object
>
param
)
throws
ParseException
;
/**
* 计划执行删除
* 计划执行删除
*/
*/
void
planTaskDet
(
String
[]
strArry
);
void
planTaskDet
(
String
[]
strArry
);
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/src/main/java/com/yeejoin/amos/patrol/quartz/JobService.java
View file @
37ba82a4
package
com
.
yeejoin
.
amos
.
patrol
.
quartz
;
package
com
.
yeejoin
.
amos
.
patrol
.
quartz
;
import
com.yeejoin.amos.component.feign.model.FeignClientResult
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
com.yeejoin.amos.feign.privilege.model.DepartmentModel
;
import
com.yeejoin.amos.feign.privilege.model.DepartmentModel
;
import
com.yeejoin.amos.patrol.business.constants.XJConstant
;
import
com.yeejoin.amos.patrol.business.constants.XJConstant
;
...
@@ -8,6 +9,7 @@ import com.yeejoin.amos.patrol.business.dao.mapper.MsgMapper;
...
@@ -8,6 +9,7 @@ import com.yeejoin.amos.patrol.business.dao.mapper.MsgMapper;
import
com.yeejoin.amos.patrol.business.dao.mapper.PlanTaskMapper
;
import
com.yeejoin.amos.patrol.business.dao.mapper.PlanTaskMapper
;
import
com.yeejoin.amos.patrol.business.dao.repository.*
;
import
com.yeejoin.amos.patrol.business.dao.repository.*
;
import
com.yeejoin.amos.patrol.business.entity.mybatis.PlanTaskPointInputItemBo
;
import
com.yeejoin.amos.patrol.business.entity.mybatis.PlanTaskPointInputItemBo
;
import
com.yeejoin.amos.patrol.business.feign.JcsFeignClient
;
import
com.yeejoin.amos.patrol.business.param.MsgConfigParam
;
import
com.yeejoin.amos.patrol.business.param.MsgConfigParam
;
import
com.yeejoin.amos.patrol.business.service.intfc.IMessageService
;
import
com.yeejoin.amos.patrol.business.service.intfc.IMessageService
;
import
com.yeejoin.amos.patrol.business.util.DateUtil
;
import
com.yeejoin.amos.patrol.business.util.DateUtil
;
...
@@ -82,6 +84,13 @@ public class JobService implements IJobService {
...
@@ -82,6 +84,13 @@ public class JobService implements IJobService {
private
String
patrolTopic
;
private
String
patrolTopic
;
@Autowired
@Autowired
private
WebMqttComponent
webMqttComponent
;
private
WebMqttComponent
webMqttComponent
;
@Autowired
JcsFeignClient
jcsFeignClient
;
@Override
@Override
@Transactional
@Transactional
public
void
initScheduler
()
{
public
void
initScheduler
()
{
...
@@ -228,14 +237,25 @@ public class JobService implements IJobService {
...
@@ -228,14 +237,25 @@ public class JobService implements IJobService {
// for (int j = 0; j < ids.size(); j++) {
// for (int j = 0; j < ids.size(); j++) {
String
realNames
=
""
;
String
realNames
=
""
;
List
<
DepartmentModel
>
departmentModels
=
remoteSecurityService
.
getlistDepartmentByDeptIds
(
toke
.
getToke
(),
toke
.
getProduct
(),
toke
.
getAppKey
(),
deptIds
.
toString
().
substring
(
0
,
deptIds
.
toString
().
length
()-
1
));
// List<DepartmentModel> departmentModels = remoteSecurityService.getlistDepartmentByDeptIds(toke.getToke(),
List
<
AgencyUserModel
>
agencyUserModels
=
remoteSecurityService
.
listUserByUserIds
(
toke
.
getToke
(),
toke
.
getProduct
(),
toke
.
getAppKey
(),
planTask
.
getUserId
());
// toke.getProduct(), toke.getAppKey(), deptIds.toString().substring(0,deptIds.toString().length()-1));
// List<AgencyUserModel> agencyUserModels = remoteSecurityService.listUserByUserIds(toke.getToke(),
// toke.getProduct(), toke.getAppKey(), planTask.getUserId());
FeignClientResult
<
List
<
Map
<
String
,
Object
>>>
agencyUserModelsDate
=
jcsFeignClient
.
selectByAmosOrgIdDeptList
(
planTask
.
getUserId
());
List
<
Map
<
String
,
Object
>>
agencyUserModels
=
agencyUserModelsDate
.
getResult
();
FeignClientResult
<
List
<
Map
<
String
,
Object
>>>
departmentModeldate
=
jcsFeignClient
.
selectByIdDeptList
(
deptIds
.
toString
().
substring
(
0
,
deptIds
.
toString
().
length
()-
1
));
List
<
Map
<
String
,
Object
>>
departmentModels
=
departmentModeldate
.
getResult
();
if
(!
agencyUserModels
.
isEmpty
()){
if
(!
agencyUserModels
.
isEmpty
()){
realNames
=
agencyUserModels
.
stream
().
map
(
AgencyUserModel:
:
getRealName
).
collect
(
Collectors
.
joining
(
","
));
realNames
=
agencyUserModels
.
stream
().
map
(
map
->
map
.
get
(
"bizOrgName"
).
toString
()
).
collect
(
Collectors
.
joining
(
","
));
userName
.
append
(
realNames
);
userName
.
append
(
realNames
);
}
}
if
(!
departmentModels
.
isEmpty
()){
if
(!
departmentModels
.
isEmpty
()){
String
departmentName
=
departmentModels
.
stream
().
map
(
DepartmentModel:
:
getDepartmentName
).
collect
(
Collectors
.
joining
(
","
));
String
departmentName
=
departmentModels
.
stream
().
map
(
map
->
map
.
get
(
"bizOrgName"
).
toString
()
).
collect
(
Collectors
.
joining
(
","
));
deptName
.
append
(
departmentName
);
deptName
.
append
(
departmentName
);
};
};
// }
// }
...
@@ -244,18 +264,36 @@ public class JobService implements IJobService {
...
@@ -244,18 +264,36 @@ public class JobService implements IJobService {
String
realNames
=
""
;
String
realNames
=
""
;
deptId
.
append
(
planTask
.
getUserDept
().
substring
(
planTask
.
getUserDept
().
indexOf
(
"@"
)+
1
)).
append
(
","
);
deptId
.
append
(
planTask
.
getUserDept
().
substring
(
planTask
.
getUserDept
().
indexOf
(
"@"
)+
1
)).
append
(
","
);
deptMap
.
put
(
planTask
.
getUserDept
().
substring
(
0
,
planTask
.
getUserDept
().
indexOf
(
"@"
)),
planTask
.
getUserDept
().
substring
(
planTask
.
getUserDept
().
indexOf
(
"@"
)+
1
));
deptMap
.
put
(
planTask
.
getUserDept
().
substring
(
0
,
planTask
.
getUserDept
().
indexOf
(
"@"
)),
planTask
.
getUserDept
().
substring
(
planTask
.
getUserDept
().
indexOf
(
"@"
)+
1
));
List
<
DepartmentModel
>
departmentModel
=
remoteSecurityService
.
getlistDepartmentByDeptIds
(
toke
.
getToke
(),
toke
.
getProduct
(),
toke
.
getAppKey
(),
deptMap
.
get
(
planTask
.
getUserId
()));
// List<DepartmentModel> departmentModel = remoteSecurityService.getlistDepartmentByDeptIds(
// toke.getToke(), toke.getProduct(), toke.getAppKey(), deptMap.get(planTask.getUserId()));
FeignClientResult
<
List
<
Map
<
String
,
Object
>>>
departmentModeldate
=
jcsFeignClient
.
selectByIdDeptList
(
deptMap
.
get
(
planTask
.
getUserId
()));
List
<
Map
<
String
,
Object
>>
departmentModel
=
departmentModeldate
.
getResult
();
if
(
departmentModel
.
size
()>
0
){
if
(
departmentModel
.
size
()>
0
){
departmentModel
.
stream
().
forEach
(
model
->{
departmentModel
.
stream
().
forEach
(
model
->{
deptName
.
append
(
model
.
get
DepartmentName
());
deptName
.
append
(
model
.
get
(
"bizOrgName"
).
toString
());
});
});
}
else
{
}
else
{
deptName
.
append
(
"其他"
).
append
(
","
);
deptName
.
append
(
"其他"
).
append
(
","
);
}
}
List
<
AgencyUserModel
>
agencyUserModels
=
remoteSecurityService
.
listUserByUserIds
(
toke
.
getToke
(),
toke
.
getProduct
(),
toke
.
getAppKey
(),
planTask
.
getUserId
());
// List<AgencyUserModel> agencyUserModels = remoteSecurityService.listUserByUserIds(toke.getToke(), toke.getProduct(), toke.getAppKey(),
// planTask.getUserId());
FeignClientResult
<
List
<
Map
<
String
,
Object
>>>
agencyUserModelsDate
=
jcsFeignClient
.
selectByAmosOrgIdDeptList
(
planTask
.
getUserId
());
List
<
Map
<
String
,
Object
>>
agencyUserModels
=
agencyUserModelsDate
.
getResult
();
if
(!
agencyUserModels
.
isEmpty
()){
if
(!
agencyUserModels
.
isEmpty
()){
realNames
=
agencyUserModels
.
stream
().
map
(
AgencyUserModel:
:
getRealName
).
collect
(
Collectors
.
joining
(
","
));
realNames
=
agencyUserModels
.
stream
().
map
(
map
->
map
.
get
(
"bizOrgName"
).
toString
()).
collect
(
Collectors
.
joining
(
","
));
// userIds = agencyUserModels.stream().map(AgencyUserModel::getUserId).collect(Collectors.joining(","));
}
}
userName
.
append
(
realNames
);
userName
.
append
(
realNames
);
}
}
...
@@ -366,6 +404,180 @@ public class JobService implements IJobService {
...
@@ -366,6 +404,180 @@ public class JobService implements IJobService {
}
}
// private void createOmissionCheckRecord(PlanTask planTask) {
// List<PlanTaskPointInputItemBo> planTaskPointInputItems = planTaskMapper
// .getPlanTaskPointInputItemByPlanTaskId(planTask.getId(),PlanTaskDetailStatusEnum.OMISSION.getValue());
// Map<Long, Check> checkMap = new HashMap<>();
// Set<Long> checkIds = new HashSet<Long>();
// Map<String,String> deptMap =new HashMap<>();
// Toke toke= remoteSecurityService.getServerToken();
// //查询用户名字
//
// //修改巡检p_plan_task orgcode为执行人的org_coed -- add by wujunkai 20201216
// String userIds="";
// StringBuffer deptName = new StringBuffer();
// StringBuffer deptId = new StringBuffer();
// StringBuffer userName = new StringBuffer();
// if(planTask.getUserDept().indexOf(",")>0){
// List<String> ids = Arrays.asList(planTask.getUserId().split(","));
// List<String> depts = Arrays.asList(planTask.getUserDept().split(","));
// depts.stream().forEach(dept->{
// deptMap.put(dept.substring(0,dept.indexOf("@")),dept.substring(dept.indexOf("@")+1));
// deptId.append(dept.substring(dept.indexOf("@")+1)).append(",");
// });
// Set<String> departmentOrgCode= new HashSet<>();
// for (String key:deptMap.keySet()) {
// departmentOrgCode.add(deptMap.get(key));
// }
// StringBuffer deptIds = new StringBuffer();
// Iterator it = departmentOrgCode.iterator();
// while(it.hasNext()){
// deptIds.append(it.next()).append(",");
// }
//
//// for (int j = 0; j < ids.size(); j++) {
// String realNames="";
// List<DepartmentModel> departmentModels = remoteSecurityService.getlistDepartmentByDeptIds(toke.getToke(), toke.getProduct(), toke.getAppKey(), deptIds.toString().substring(0,deptIds.toString().length()-1));
// List<AgencyUserModel> agencyUserModels = remoteSecurityService.listUserByUserIds(toke.getToke(), toke.getProduct(), toke.getAppKey(), planTask.getUserId());
// if(!agencyUserModels.isEmpty()){
// realNames = agencyUserModels.stream().map(AgencyUserModel::getRealName).collect(Collectors.joining(","));
// userName.append(realNames);
// }
// if(!departmentModels.isEmpty()){
// String departmentName = departmentModels.stream().map(DepartmentModel::getDepartmentName).collect(Collectors.joining(","));
// deptName.append(departmentName);
// };
//// }
//
// }else{
// String realNames="";
// deptId.append(planTask.getUserDept().substring(planTask.getUserDept().indexOf("@")+1)).append(",");
// deptMap.put(planTask.getUserDept().substring(0,planTask.getUserDept().indexOf("@")),planTask.getUserDept().substring(planTask.getUserDept().indexOf("@")+1));
// List<DepartmentModel> departmentModel = remoteSecurityService.getlistDepartmentByDeptIds(toke.getToke(), toke.getProduct(), toke.getAppKey(), deptMap.get(planTask.getUserId()));
// if(departmentModel.size()>0){
// departmentModel.stream().forEach(model->{
// deptName.append(model.getDepartmentName());
// });
// }else{
// deptName.append("其他").append(",");
// }
// List<AgencyUserModel> agencyUserModels = remoteSecurityService.listUserByUserIds(toke.getToke(), toke.getProduct(), toke.getAppKey(), planTask.getUserId());
// if(!agencyUserModels.isEmpty()){
// realNames = agencyUserModels.stream().map(AgencyUserModel::getRealName).collect(Collectors.joining(","));
//// userIds = agencyUserModels.stream().map(AgencyUserModel::getUserId).collect(Collectors.joining(","));
// }
// userName.append(realNames);
// }
//
// //查询部门名称
//// String depId="";
//// String depName="";
// /**
// * 对部门查询有问题需要修改
//
// if(iPlanDao.existsById(planTask.getPlanId())){
// Plan plan = iPlanDao.findById(planTask.getPlanId()).get();
// DepartmentModel departmentModel = remoteSecurityService.getDepartmentByDeptId(toke.getToke(), toke.getProduct(), toke.getAppKey(), plan.getDeptId());
// depId = plan.getDeptId();
// depName = departmentModel.getDepartmentName();
// } */
//
// for(PlanTaskPointInputItemBo arg:planTaskPointInputItems){
// Check check = new Check();
// if (checkMap.get(arg.getPointId()) == null) {
// check.setOrgCode(arg.getOrgCode());
// check.setUserId(planTask.getUserId());
// int len = userName.toString().indexOf(",");
// if (len != -1) {
// check.setUserName(userName.toString());
// } else {
// check.setUserName(userName.toString());
// }
// check.setDepId(deptId.toString().substring(0,deptId.length()-1));
// check.setDepName(deptName.toString());
// check.setPointId(arg.getPointId());
// check.setUploadTime(new Date());
// check.setPlanId(arg.getPlanId());
// check.setPlanTaskId(arg.getPlanTaskId());
// check.setPlanTaskDetailId(arg.getPlanTaskDetailId());
// check.setRouteId(arg.getRouteId());
// check.setCheckTime(arg.getEndTime());
// check.setIsOk(CheckStatusEnum.OMISSION.getCode());
// check = iCheckDao.saveAndFlush(check);
// checkMap.put(arg.getPointId(), check);
// checkIds.add(check.getId());
// } else {
// check = checkMap.get(arg.getPointId());
// }
// if (arg.getInputItemId() != null) {
// CheckInput checkInput = new CheckInput();
// checkInput.setCheckId(check.getId());
// checkInput.setInputId(arg.getInputItemId());
// checkInput.setIsOk(CheckStatusEnum.OMISSION.getCode());
// checkInput.setRoutePointItemId(arg.getRoutePointItemId());
// checkInput.setOrderNo(arg.getOrderNo());
// checkInput.setOrgCode(arg.getOrgCode());
// checkInput.setInputName(arg.getInputName());
// checkInput.setPointClassifyId(arg.getClassifyId());
// checkInput.setPointClassifyName(arg.getClassifyName());
// iCheckInputDao.saveAndFlush(checkInput);
// }
// }
//
// String usrIds = planTask.getUserId();
// if (!ObjectUtils.isEmpty(usrIds)) {
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// String[] ids = usrIds.split(",");
// for (String userId : usrIds.split(",")) {
// Map<String,AgencyUserModel> agencyUserModelMap = remoteSecurityService.getUsersMap(toke.getToke(),toke.getProduct(),toke.getAppKey(), Collections.singleton(userIds));
// List<Map<String, String>> idOrgCodeList = new ArrayList<>();
// for(Map.Entry<String, AgencyUserModel> entry : agencyUserModelMap.entrySet()){
// String id = entry.getKey();
// AgencyUserModel agencyUserModel = entry.getValue();
// StringBuffer agencyUserOrgcode = new StringBuffer();
// agencyUserModel.getCompanys().forEach(companyModel -> {
// agencyUserOrgcode.append(companyModel.getOrgCode()).append(",");
// });
// Map<String,String> map = new HashMap<>();
// map.put(id,agencyUserOrgcode.toString().substring(0,agencyUserOrgcode.length()-1));
// }
// Map<String, String> userIdOrgCodeMap = new HashMap<>(ids.length);
// if (!CollectionUtils.isEmpty(idOrgCodeList)) {
// userIdOrgCodeMap = idOrgCodeList.stream().collect(Collectors.toMap(x-> String.valueOf(x.get(
// "id")), x->x.get("org_code")));
// }
// if (ObjectUtils.isEmpty(userId)) {
// continue;
// }
//// planTaskMapper.reformStatistics(userId, sdf.format(new Date()), planTask.getOrgCode());
// planTaskMapper.reformStatistics(userId, sdf.format(new Date()), userIdOrgCodeMap.get(userId));
//
// }
// }
//
// // 向3d推送数据,发送消息推送
// checkIds.forEach(checkId -> {
// try {
// asyncTask.pushCheckInfoTo3D(checkId);
// asyncTask.pushCheckMessage(checkId);
// } catch (InterruptedException e) {
// log.error(e.getMessage(), e);
// e.printStackTrace();
// }
// });
// //数字换流站页面刷新
// try {
// webMqttComponent.publish(patrolTopic, "");
// }catch (Exception e){
// log.error("数字换流站页面推送失败-----------"+e.getMessage());
// }
//
//
// }
private
void
removeJob
(
String
jobName
)
{
private
void
removeJob
(
String
jobName
)
{
log
.
debug
(
"removeJob==jobName=="
+
jobName
);
log
.
debug
(
"removeJob==jobName=="
+
jobName
);
QuartzManager
.
removeJob
(
jobName
);
QuartzManager
.
removeJob
(
jobName
);
...
...
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