Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
device-back
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
1
议题
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
device-back
Commits
7c654f0d
提交
7c654f0d
authored
11月 29, 2021
作者:
ljj234
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: 修改核查模块(重构)
上级
83606bac
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
75 行增加
和
385 行删除
+75
-385
DeviceCheckController.java
...device/confirmcheck/controller/DeviceCheckController.java
+68
-385
TaskDao.java
...ain/java/com/tykj/dev/device/task/repository/TaskDao.java
+7
-0
没有找到文件。
dev-confirmcheck/src/main/java/com/tykj/dev/device/confirmcheck/controller/DeviceCheckController.java
浏览文件 @
7c654f0d
...
@@ -145,6 +145,61 @@ public class DeviceCheckController {
...
@@ -145,6 +145,61 @@ public class DeviceCheckController {
@Autowired
@Autowired
private
CheckUnitService
checkUnitService
;
private
CheckUnitService
checkUnitService
;
@GetMapping
(
"/msg"
)
@ApiOperation
(
value
=
"添加阅知信息:终止检查/核查任务"
)
public
ResponseEntity
sendMsg
(
@RequestParam
Integer
billId
,
@RequestParam
Integer
type
)
{
Optional
<
Task
>
taskOpt
=
taskRepo
.
findByBillIdAndBusinessType
(
billId
,
type
);
Task
node
=
taskOpt
.
orElseThrow
(()
->
new
ApiException
(
"查询的任务不存在"
));
// 生成终止任务的信息
String
billCunstom
=
"check"
.
equals
(
node
.
getCustomInfo
())?
"核查"
:
"检查"
;
String
title
=
node
.
getTitle
().
split
(
"]"
)[
1
];
String
adminUser
=
authenticationUtils
.
getAuthentication
().
getCurrentUserInfo
().
getName
();
String
shutDownMsg
=
adminUser
+
"终止"
+
billCunstom
+
"任务:【"
+
title
+
"】"
;
List
<
Integer
>
rsUserIds
=
new
ArrayList
<>();
List
<
Task
>
rsTask
=
new
ArrayList
<>();
// 二级任务对象
List
<
Task
>
secondNode
=
taskRepo
.
findAllByParentTaskId
(
node
.
getId
());
// 三级任务对象
if
(
secondNode
!=
null
&&
!
secondNode
.
isEmpty
())
{
List
<
Task
>
thridNode
=
taskRepo
.
findAllByParentTaskIdIn
(
secondNode
.
stream
().
map
(
Task:
:
getId
).
collect
(
toList
()));
if
(
thridNode
!=
null
&&
!
thridNode
.
isEmpty
())
{
// 这里处理市终止区检查任务的情况
rsTask
.
addAll
(
thridNode
);
}
}
rsTask
.
add
(
node
);
rsTask
.
addAll
(
secondNode
);
// 构建所有阅知对象
for
(
Task
task
:
rsTask
)
{
// 查询应该发阅知的人员列表
List
<
Integer
>
involveUserIds
=
task
.
parse2Bto
().
getInvolveUserIdList
();
int
lastUserId
=
involveUserIds
.
get
(
involveUserIds
.
size
()
-
1
)
==
null
?
0
:
involveUserIds
.
get
(
involveUserIds
.
size
()
-
1
);
List
<
Integer
>
msgUserIds
=
new
ArrayList
<>();
if
(
lastUserId
==
0
)
{
msgUserIds
=
userService
.
findByUniteId
(
task
.
getOwnUnit
()).
stream
()
.
map
(
UserShenRe:
:
getUserId
)
.
collect
(
toList
());
}
else
{
msgUserIds
=
new
ArrayList
<>();
msgUserIds
.
add
(
lastUserId
);
}
rsUserIds
.
addAll
(
msgUserIds
);
}
// 发送阅知
MessageBto
msgBto
=
new
MessageBto
(
node
.
getId
(),
node
.
getBusinessType
(),
shutDownMsg
,
rsUserIds
.
stream
().
distinct
().
collect
(
toList
()));
messageService
.
add
(
msgBto
);
return
ResponseEntity
.
ok
(
"ok"
);
}
@GetMapping
(
"/area/{fatherId}"
)
@GetMapping
(
"/area/{fatherId}"
)
@ApiOperation
(
value
=
"查询指定区域下的所有区域信息"
)
@ApiOperation
(
value
=
"查询指定区域下的所有区域信息"
)
public
ResponseEntity
<
ResultObj
<
List
<
Area
>>>
findAreaUnderId
(
@PathVariable
Integer
fatherId
)
{
public
ResponseEntity
<
ResultObj
<
List
<
Area
>>>
findAreaUnderId
(
@PathVariable
Integer
fatherId
)
{
...
@@ -364,22 +419,6 @@ public class DeviceCheckController {
...
@@ -364,22 +419,6 @@ public class DeviceCheckController {
}
}
}
}
// todo
// 代管 - 如果当前自查为省本级自查,则需要将被代管的装备加入到省本级
// Units unit = unitsRepo.findByName(checkUnit);
// boolean isProv = unit.getLevel() == 1 && unit.getType() == 1;
// if (isProv) {
// //获得所有的需要被代管的单位的在库与非在库装备,添加到省本级的在库与非在库中去
// List<Units> escrowUnits = unitsRepo.findByTypeAndEscrow(2, 1);
// for (Units eu : escrowUnits) {
// log.info("[核查模块] 正在将 {} 单位的装备托管代理到 {} 单位", checkUnit, eu.getName());
// Map<Boolean, List<DeviceLibrary>> libMap = getDevLibMap(eu.getName(), allDevices);
// devInLib.addAll(libMap.get(true));
// devNotInLib.addAll(libMap.get(false));
// }
//
// }
detail
.
updateDevice
(
devInLib
,
devNotInLib
);
detail
.
updateDevice
(
devInLib
,
devNotInLib
);
//更新应查装备数量
//更新应查装备数量
...
@@ -679,362 +718,6 @@ public class DeviceCheckController {
...
@@ -679,362 +718,6 @@ public class DeviceCheckController {
return
ResponseEntity
.
ok
(
unitsList
);
return
ResponseEntity
.
ok
(
unitsList
);
}
}
@ApiOperation
(
value
=
"检查地区是否可以发起核查"
,
notes
=
"检查地区是否可以发起核查"
)
@PostMapping
(
"/checkPossible/bak"
)
public
ResponseEntity
checkPossible
(
@RequestBody
UnitIds
unitIds
)
{
List
<
String
>
unitNames
=
unitIds
.
getIds
().
stream
()
.
map
(
id
->
auService
.
findOne
(
AuExample
.
UnitId
,
id
))
.
map
(
AreaUnit:
:
getUnitName
)
.
collect
(
toList
());
boolean
findEmpty
=
false
;
String
alertString
=
"["
;
for
(
String
unitName
:
unitNames
)
{
List
<
DeviceLibrary
>
devices
=
deviceRepo
.
findAllByOwnUnit
(
unitName
);
if
(
devices
.
size
()
==
0
)
{
findEmpty
=
true
;
alertString
+=
unitName
+
" "
;
}
}
alertString
+=
"]"
;
alertString
+=
"单位没有装备数据,请重新勾选!"
;
return
ResponseEntity
.
ok
(
ImmutableMap
.
of
(
"empty"
,
findEmpty
,
"msg"
,
alertString
));
}
@ApiOperation
(
value
=
"发起核查"
,
notes
=
"对指定单位发起核查任务"
)
@PostMapping
(
"/startCheck/bak"
)
public
ResponseEntity
startCheck
(
@RequestBody
CheckCheckVo
ccVO
)
{
// 代管单位id
List
<
Integer
>
esIds
=
checkUnitService
.
findAllEscrow
().
stream
().
map
(
Units:
:
getUnitId
).
collect
(
toList
());
esIds
.
retainAll
(
ccVO
.
getUnitRange
());
// 构建省的统计账单
Integer
startUnitId
=
ccVO
.
getUnitId
();
Units
startUnit
=
unitsRepo
.
findById
(
startUnitId
).
get
();
List
<
Units
>
checkedUnits
=
unitsRepo
.
findAllById
(
ccVO
.
getUnitRange
());
// 1.发起自己的自查 (市,tpye=2,省 level = 0,1,2)
// 2.发起自己的检查(只是市级别的 level=2)
List
<
String
>
checkedUnitNames
=
checkedUnits
.
stream
().
map
(
Units:
:
getName
).
collect
(
toList
());
log
.
info
(
"[核查模块]发起核查,发起单位为{},被查单位为{}"
,
startUnit
.
getName
(),
checkedUnitNames
);
// 构建省的统计账单,所有的checkedUnits都要被包含到统计中去
DeviceCheckStat
provinceCheckStat
=
initStatData
(
ccVO
.
getTitle
(),
ccVO
.
getRemark
(),
0
,
0
,
startUnit
.
getName
(),
checkedUnits
,
ccVO
.
getEndTime
().
atStartOfDay
());
provinceCheckStat
.
setCheckType
(
CheckType
.
CT_CHECK
);
Integer
statId
=
statRepo
.
save
(
provinceCheckStat
).
getId
();
List
<
CheckDeviceStatVo
>
deviceStatVos
=
Arrays
.
stream
(
Objects
.
requireNonNull
(
JacksonUtil
.
readValue
(
provinceCheckStat
.
getStatInfo
(),
CheckDeviceStatVo
[].
class
)))
.
collect
(
toList
());
// 构建省的统计任务
TaskBto
provStatTask
=
new
Task
(
CHECK_STAT_1
.
id
,
getUnitDateString
(
startUnit
,
ccVO
.
getTitle
()),
0
,
".0."
,
CONFIRM_CHECK_STAT
.
id
,
statId
,
startUnitId
)
.
parse2Bto
();
provStatTask
.
getInvolveUserIdList
().
add
(
authenticationUtils
.
getAuthentication
().
getCurrentUserInfo
().
getUserId
());
provStatTask
.
getInvolveUserIdList
().
add
(
0
);
provStatTask
.
setCurrentPoint
(
1
);
provStatTask
.
setCustomInfo
(
"check"
);
provStatTask
=
taskService
.
start
(
provStatTask
);
desMap
.
put
(
provStatTask
.
getId
(),
ccVO
.
getRemark
());
//构建市的检查任务(level=2)
List
<
Units
>
examCheckUnits
=
checkedUnits
.
stream
()
.
filter
(
units
->
Arrays
.
asList
(
2
).
contains
(
units
.
getLevel
()))
.
collect
(
toList
());
Map
<
Integer
,
Integer
>
cityExamIdMap
=
new
HashMap
<>();
// 获取哪些市建立了统计任务
List
<
Integer
>
citys
=
new
ArrayList
<>();
for
(
Units
unit
:
examCheckUnits
)
{
//构建市的统计账单
String
cityTitle
=
unit
.
getName
()
+
"检查统计"
;
DeviceCheckStat
cityCheckStat
=
initStatData
(
cityTitle
,
ccVO
.
getRemark
(),
0
,
0
,
unit
.
getName
(),
Collections
.
emptyList
(),
ccVO
.
getEndTime
().
atStartOfDay
());
cityCheckStat
.
setCheckType
(
CheckType
.
CT_EXAM
);
Integer
cityStatId
=
statRepo
.
save
(
cityCheckStat
).
getId
();
log
.
info
(
"[核查模块] {} 检查统计账单构建完毕,id 为 {}"
,
unit
.
getName
(),
cityStatId
);
// 构建市的统计任务
TaskBto
cityStatTask
=
new
TaskBto
(
CHECK_EXAM_STAT_0
.
id
,
getUnitDateString
(
unit
,
ccVO
.
getTitle
()),
provStatTask
.
getId
(),
addNode
(
provStatTask
.
getNodeIdDetail
(),
provStatTask
.
getId
()),
CONFIRM_CHECK_STAT
.
id
,
cityStatId
,
unit
.
getUnitId
(),
0
);
cityStatTask
.
getInvolveUserIdList
().
add
(
0
);
cityStatTask
.
setCurrentPoint
(
1
);
cityStatTask
.
setCustomInfo
(
"exam"
);
cityStatTask
=
taskService
.
start
(
cityStatTask
);
//将市的检查id记录下,以便设置市的自查任务的父级节点
cityExamIdMap
.
put
(
unit
.
getUnitId
(),
cityStatTask
.
getId
());
// 自动创建市里的任务
List
<
Units
>
inCitys
=
unitsCache
.
findByIdSubordinateAndOneself
(
unit
.
getUnitId
());
CheckExamVo
checkExamVo
=
new
CheckExamVo
();
checkExamVo
.
setDetail
(
Collections
.
singletonList
(
CheckExamDetailVo
.
builder
().
unitIds
(
checkUnitService
.
findExistDevice
(
inCitys
.
stream
()
.
filter
(
units
->
units
.
getUnitId
()
!=
unit
.
getUnitId
())
.
map
(
Units:
:
getUnitId
)
.
collect
(
toList
())
)
)
.
remark
(
ccVO
.
getRemark
())
.
build
())
);
checkExamVo
.
setTitle
(
ccVO
.
getTitle
());
checkExamVo
.
setUnitId
(
unit
.
getUnitId
());
checkExamVo
.
setExamStatId
(
cityStatId
);
checkExamVo
.
setEndTime
(
ccVO
.
getEndTime
());
startExam
(
checkExamVo
);
}
// 构建自核查任务(levl = 0,1) tpye = 2
List
<
Units
>
selfCheckUnits
=
checkedUnits
.
stream
()
.
filter
(
units
->
Arrays
.
asList
(
0
,
1
).
contains
(
units
.
getLevel
())
||
units
.
getType
()
==
2
)
.
collect
(
toList
());
// 获取所有在库装备 lifeStatus ==2 or 14
Map
<
String
,
List
<
DeviceLibrary
>>
devInLib
=
dcService
.
getAllDeviceLibraryList
().
stream
()
// .filter(device -> device.getOwnUnit().equals(device.getLocationUnit()))
.
filter
(
d
->
d
.
getLifeStatus
()
==
2
||
d
.
getLifeStatus
()
==
14
)
.
collect
(
groupingBy
(
DeviceLibrary:
:
getOwnUnit
));
// 获取所有非在库装备 ls != 2 and != 14
Map
<
String
,
List
<
DeviceLibrary
>>
devNotInLib
=
dcService
.
getAllDeviceLibraryList
().
stream
()
// .filter(device -> !device.getOwnUnit().equals(device.getLocationUnit()))
.
filter
(
d
->
d
.
getLifeStatus
()
!=
2
&&
d
.
getLifeStatus
()
!=
14
)
.
collect
(
groupingBy
(
DeviceLibrary:
:
getOwnUnit
));
User
loginUser
=
authenticationUtils
.
getAuthentication
().
getCurrentUserInfo
();
for
(
Units
unit
:
selfCheckUnits
)
{
//核查组成员名称用当前登录用户
String
names
=
"默认检查组"
;
// 如果是市level=2 的话,father Id为市的检查id
Integer
fatherId
=
0
;
Integer
initStatusId
=
0
;
// level = 1 或者2 市省级 否则 就是区级 ,市省级的自查初始状态160,区级的自查初始状态140
// type = 2 160 ,tpye = 1 && level = 1 || level = 2 160
boolean
directProv
=
unit
.
getType
()
==
2
;
boolean
normalProv
=
unit
.
getType
()
==
1
&&
(
unit
.
getLevel
()
==
1
||
unit
.
getLevel
()
==
2
);
if
(
directProv
||
normalProv
)
{
fatherId
=
cityExamIdMap
.
get
(
unit
.
getUnitId
());
initStatusId
=
CHECK_DETAIL_CITY_0
.
id
;
if
(
fatherId
==
null
)
{
fatherId
=
provStatTask
.
getId
();
}
}
else
{
fatherId
=
provStatTask
.
getId
();
initStatusId
=
CHECK_DETAIL_REGION_0
.
id
;
}
// 3-1 构建被查单位的 自核查账单
DeviceCheckDetail
unitDetailDoc
=
DeviceCheckDetail
.
EmptyWithChecker
(
names
+
"|"
+
"默认备注"
,
ccVO
.
getRemark
(),
0
,
0
,
0
,
0
,
unit
.
getName
(),
unitsRepo
.
findByName
(
unit
.
getName
()).
getUnitId
(),
devInLib
.
getOrDefault
(
unit
.
getName
(),
new
ArrayList
<>()),
devNotInLib
.
getOrDefault
(
unit
.
getName
(),
new
ArrayList
<>()));
unitDetailDoc
.
setVar2
(
String
.
valueOf
(
initStatusId
));
DeviceCheckDetail
detail
=
detailRepo
.
save
(
unitDetailDoc
);
// 将id放入统计中去 model -> areaName -> detailId
String
areaName
=
auService
.
findOne
(
AuExample
.
UnitId
,
unit
.
getUnitId
()).
getName
();
for
(
CheckDeviceStatVo
statVo
:
deviceStatVos
)
{
for
(
CheckAreaStatVo
asv
:
statVo
.
getAreaStatList
())
{
if
(
asv
.
getAreaName
().
equals
(
areaName
))
{
asv
.
setAreaStatId
(
statId
);
asv
.
setAreaDetailId
(
detail
.
getId
());
}
}
}
// 3-2 构建被查单位的 自查任务 (根据被查单位的级别来区分是县级状态是市级状态) 这里的父级任务应该是省统计
//处理ownUnit的代码 - 如果省直属有账号发给省直属的,没有账号就发给省做 用于处理没有账号的单位的可见性
Integer
ownUnitId
=
0
;
boolean
notHasAccount
=
unit
.
getEscrow
()
==
1
;
if
(
notHasAccount
)
{
ownUnitId
=
1
;
}
else
{
ownUnitId
=
unit
.
getUnitId
();
}
TaskBto
checkedTask
=
new
TaskBto
(
initStatusId
,
getUnitDateString
(
unit
,
ccVO
.
getTitle
()),
fatherId
,
addNode
(
provStatTask
.
getNodeIdDetail
(),
provStatTask
.
getId
()),
CONFIRM_CHECK_DETAIL
.
id
,
detail
.
getId
(),
ownUnitId
,
0
);
checkedTask
.
setCustomInfo
(
"manual"
);
taskService
.
start
(
checkedTask
);
}
return
ResponseEntity
.
ok
(
ImmutableMap
.
of
(
"msg"
,
"发起核查成功"
));
}
/**
* 发起检查
* <li>1. 添加发起核查bill记录</>
* <li>2. 构建发起单位的统计账单与Task</>
* <li>3. 构建被核查单位的详情账单与Task</li>
*
* @param ceVo 核查发起对象
*/
@ApiOperation
(
value
=
"发起检查"
,
notes
=
"手动发起核查,需要指定参数"
)
@PostMapping
(
"/startExam/old"
)
public
ResponseEntity
<
ResultObj
>
startExam
(
@RequestBody
CheckExamVo
ceVo
)
{
// 获取需要处理的代管单位集合
List
<
Integer
>
esIds
=
checkUnitService
.
findAllEscrow
().
stream
().
map
(
Units:
:
getUnitId
).
collect
(
toList
());
esIds
.
retainAll
(
ceVo
.
getDetail
().
get
(
0
).
getUnitIds
());
//设置截止时间
ceVo
.
setEndTime
(
LocalDateTime
.
of
(
ceVo
.
getEndTime
(),
LocalTime
.
MAX
).
toLocalDate
());
//初始化数据结构
List
<
Integer
>
detailIds
=
new
ArrayList
<>();
Integer
startUnitId
=
ceVo
.
getUnitId
();
Units
startUnit
=
unitsRepo
.
findById
(
startUnitId
).
get
();
List
<
CheckExamDetailVo
>
examDetailVos
=
new
ArrayList
<>(
ceVo
.
getDetail
());
//如果是create检查,那么不需要添加自己单位的自查,如果是update检查,那么需要添加单位的自查
if
(
ceVo
.
getExamStatId
()
!=
0
)
{
//update
log
.
info
(
"[核查模块] update核查,自动添加id = {}市的自核查任务"
,
startUnitId
);
examDetailVos
.
add
(
examDetailVos
.
get
(
0
).
copy
(
startUnitId
,
"由省核查发起的自检查"
));
}
// 拼接检查组和检查组成员
String
groupUserString
=
"默认检查组,默认人员"
;
List
<
Integer
>
unitIds
=
examDetailVos
.
stream
().
flatMap
(
cv
->
cv
.
getUnitIds
().
stream
()).
collect
(
toList
());
List
<
Units
>
checkedUnits
=
unitsRepo
.
findAllById
(
unitIds
);
List
<
String
>
checkedUnitNames
=
checkedUnits
.
stream
().
map
(
Units:
:
getName
).
collect
(
toList
());
// 2-1 构建发起单位的 统计账单
DeviceCheckStat
provinceCheckStat
;
//根据examStatId来判断是update还是create 此时初始化的为指定检查区域的数据
DeviceCheckStat
initCheckStat
=
initStatData
(
checkedUnitNames
,
ceVo
.
getTitle
(),
groupUserString
,
0
,
0
,
startUnit
.
getName
(),
checkedUnits
,
ceVo
.
getEndTime
().
atStartOfDay
());
if
(
ceVo
.
getExamStatId
()
!=
0
)
{
// 这里是市转发给区的逻辑
DeviceCheckStat
oriCheckStat
=
statRepo
.
findById
(
ceVo
.
getExamStatId
()).
get
();
oriCheckStat
.
setRemark
(
initCheckStat
.
getRemark
());
oriCheckStat
.
setStatInfo
(
initCheckStat
.
getStatInfo
());
provinceCheckStat
=
oriCheckStat
;
}
else
{
provinceCheckStat
=
initCheckStat
;
}
log
.
info
(
"[核查模块]发起手动检查,发起单位为{},被查单位为{}"
,
startUnit
.
getName
(),
checkedUnitNames
);
provinceCheckStat
.
setCheckType
(
CheckType
.
CT_EXAM
);
Integer
statId
=
statRepo
.
save
(
provinceCheckStat
).
getId
();
// 2-2 构建发起单位的 统计任务
// 根据examStatId来判断要不要重新创建任务
Integer
currentUserId
=
authenticationUtils
.
getAuthentication
().
getCurrentUserInfo
().
getUserId
();
TaskBto
cityStatTask
;
if
(
ceVo
.
getExamStatId
()
==
0
)
{
cityStatTask
=
new
Task
(
CHECK_EXAM_STAT_1
.
id
,
getUnitDateString
(
startUnit
,
ceVo
.
getTitle
()),
0
,
".0."
,
CONFIRM_CHECK_STAT
.
id
,
statId
,
startUnitId
)
.
parse2Bto
();
cityStatTask
.
setCustomInfo
(
"exam"
);
cityStatTask
.
getInvolveUserIdList
().
add
(
currentUserId
);
// 检查变为待办
cityStatTask
.
getInvolveUserIdList
().
add
(
0
);
cityStatTask
.
setCurrentPoint
(
1
);
cityStatTask
=
taskService
.
start
(
cityStatTask
);
}
else
{
// 将原来的待办改为跟踪
cityStatTask
=
taskRepo
.
findByBillIdAndBusinessType
(
ceVo
.
getExamStatId
(),
CONFIRM_CHECK_STAT
.
id
).
get
().
parse2Bto
();
//检查变为待办
cityStatTask
.
getInvolveUserIdList
().
add
(
0
);
// cityStatTask.setRemark(String.valueOf(CHECK_EXAM_STAT_1.id));
cityStatTask
.
setCustomInfo
(
"exam"
);
cityStatTask
.
setCurrentPoint
(
cityStatTask
.
getCurrentPoint
()
+
1
);
cityStatTask
.
setCreateUserId
(
currentUserId
);
cityStatTask
.
setBillStatus
(
CHECK_EXAM_STAT_1
.
id
);
taskService
.
update
(
cityStatTask
);
}
// 3 构建被查单位的 自查账单 与 自查任务
// 获取所有在库装备 ls == 2 or ls == 14
Map
<
String
,
List
<
DeviceLibrary
>>
devInLib
=
dcService
.
getAllDeviceLibraryList
().
stream
()
.
filter
(
d
->
d
.
getLifeStatus
()
==
2
||
d
.
getLifeStatus
()
==
14
)
.
collect
(
groupingBy
(
DeviceLibrary:
:
getOwnUnit
));
// 非在库装备 ls !=2 and ls !=14
Map
<
String
,
List
<
DeviceLibrary
>>
devNotInLib
=
dcService
.
getAllDeviceLibraryList
().
stream
()
.
filter
(
d
->
d
.
getLifeStatus
()
!=
2
&&
d
.
getLifeStatus
()
!=
14
)
.
collect
(
groupingBy
(
DeviceLibrary:
:
getOwnUnit
));
// 3. 构建被核查单位的详情账单与Task
// 对每个需要核查的单位构建其detail账单与task
boolean
isProvUser
=
authenticationUtils
.
getAuthentication
()
.
getCurrentUserInfo
().
getUnitsId
()
==
1
;
for
(
CheckExamDetailVo
ed
:
examDetailVos
)
{
List
<
Integer
>
uid
=
ed
.
getUnitIds
();
for
(
Integer
u
:
uid
)
{
Units
unit
=
unitsRepo
.
findById
(
u
).
get
();
String
names
=
"默认名称"
;
// 根据发起人决定初始状态id 省发起人- 160 其他发起人 被查的市160 被查的是区140
int
initTaskStatusId
=
0
;
if
(
isProvUser
)
{
initTaskStatusId
=
CHECK_DETAIL_CITY_0
.
id
;
}
else
{
//再根据被查单位的级别 level = 3 区140 level =2市 160
if
(
unit
.
getLevel
()
==
3
)
{
initTaskStatusId
=
CHECK_DETAIL_REGION_0
.
id
;
}
else
{
initTaskStatusId
=
CHECK_DETAIL_CITY_0
.
id
;
}
}
;
// 3-1 构建被查单位的 自查账单
DeviceCheckDetail
unitDetailDoc
=
DeviceCheckDetail
.
EmptyWithChecker
(
names
+
"|"
+
ed
.
getRemark
(),
ceVo
.
getTitle
()
+
"%^&"
+
ed
.
getRemark
(),
0
,
0
,
0
,
0
,
unit
.
getName
(),
unitsRepo
.
findByName
(
unit
.
getName
()).
getUnitId
(),
devInLib
.
getOrDefault
(
unit
.
getName
(),
new
ArrayList
<>()),
devNotInLib
.
getOrDefault
(
unit
.
getName
(),
new
ArrayList
<>()));
unitDetailDoc
.
setVar2
(
String
.
valueOf
(
initTaskStatusId
));
DeviceCheckDetail
detail
=
detailRepo
.
save
(
unitDetailDoc
);
detailIds
.
add
(
detail
.
getId
());
// 将id放入统计中去 model -> areaName -> detailId
String
areaName
=
auService
.
findOne
(
AuExample
.
UnitId
,
unit
.
getUnitId
()).
getName
();
// 3-2 构建被查单位的 自查任务 (根据被查单位的级别来区分是县级状态是市级状态)
TaskBto
checkedTask
=
new
TaskBto
(
initTaskStatusId
,
getUnitDateString
(
unit
,
ceVo
.
getTitle
()),
cityStatTask
.
getId
(),
addNode
(
cityStatTask
.
getNodeIdDetail
(),
cityStatTask
.
getId
()),
CONFIRM_CHECK_DETAIL
.
id
,
detail
.
getId
(),
unit
.
getUnitId
(),
0
);
// checkedTask.setRemark(String.valueOf(CHECK_EXAM_DETAIL_0.id));
checkedTask
.
setCustomInfo
(
"manual"
);
checkedTask
=
taskService
.
start
(
checkedTask
);
desBillMap
.
put
(
detail
.
getId
(),
ed
.
getRemark
());
desMap
.
put
(
checkedTask
.
getId
(),
ed
.
getRemark
());
}
}
// 4. 重新设置并保存统计账单
statRepo
.
save
(
provinceCheckStat
);
log
.
info
(
"[核查模块] {}单位成功发起对 {} 单位的检查任务分发"
,
startUnit
.
getName
(),
checkedUnitNames
);
return
ResponseEntity
.
ok
(
new
ResultObj
<>(
ImmutableMap
.
of
(
"statIds"
,
statId
,
"detailIds"
,
detailIds
),
String
.
format
(
"[核查模块] [%s]单位成功发起对 [%s] 单位的检查任务分发"
,
startUnit
.
getName
(),
checkedUnitNames
)
));
}
/**
/**
* 根据taskId查询Remark
* 根据taskId查询Remark
...
@@ -1879,19 +1562,19 @@ public class DeviceCheckController {
...
@@ -1879,19 +1562,19 @@ public class DeviceCheckController {
TaskLogBto
taskLog
=
new
TaskLogBto
(
node
.
getId
(),
shutDownMsg
);
TaskLogBto
taskLog
=
new
TaskLogBto
(
node
.
getId
(),
shutDownMsg
);
taskLogService
.
addLog
(
taskLog
);
taskLogService
.
addLog
(
taskLog
);
// 添加阅知信息
// 添加阅知信息
List
<
Integer
>
involveUserIds
=
node
.
parse2Bto
().
getInvolveUserIdList
();
//
List<Integer> involveUserIds = node.parse2Bto().getInvolveUserIdList();
int
lastUserId
=
involveUserIds
.
get
(
involveUserIds
.
size
()
-
1
)
==
null
?
0
:
involveUserIds
.
get
(
involveUserIds
.
size
()
-
1
);
//
int lastUserId = involveUserIds.get(involveUserIds.size() - 1) == null ? 0 : involveUserIds.get(involveUserIds.size() - 1);
List
<
Integer
>
msgUserIds
=
new
ArrayList
<>();
//
List<Integer> msgUserIds = new ArrayList<>();
if
(
lastUserId
==
0
)
{
//
if (lastUserId == 0) {
msgUserIds
=
userService
.
findByUniteId
(
node
.
getOwnUnit
()).
stream
()
//
msgUserIds = userService.findByUniteId(node.getOwnUnit()).stream()
.
map
(
UserShenRe:
:
getUserId
)
//
.map(UserShenRe::getUserId)
.
collect
(
toList
());
//
.collect(toList());
}
else
{
//
} else {
msgUserIds
=
new
ArrayList
<>();
//
msgUserIds = new ArrayList<>();
msgUserIds
.
add
(
lastUserId
);
//
msgUserIds.add(lastUserId);
}
//
}
MessageBto
msgBto
=
new
MessageBto
(
node
.
getId
(),
node
.
getBusinessType
(),
shutDownMsg
,
msgUserIds
);
//
MessageBto msgBto = new MessageBto(node.getId(), node.getBusinessType(), shutDownMsg, msgUserIds);
messageService
.
add
(
msgBto
);
//
messageService.add(msgBto);
}
}
private
void
supplyLogMsg2
(
Task
node
)
{
private
void
supplyLogMsg2
(
Task
node
)
{
...
...
dev-task/src/main/java/com/tykj/dev/device/task/repository/TaskDao.java
浏览文件 @
7c654f0d
...
@@ -76,6 +76,13 @@ public interface TaskDao extends JpaRepository<Task, Integer>, JpaSpecificationE
...
@@ -76,6 +76,13 @@ public interface TaskDao extends JpaRepository<Task, Integer>, JpaSpecificationE
List
<
Task
>
findTaskEntitiesByParentTaskIdAndAndBusinessType
(
Integer
parentTaskId
,
Integer
businessType
);
List
<
Task
>
findTaskEntitiesByParentTaskIdAndAndBusinessType
(
Integer
parentTaskId
,
Integer
businessType
);
List
<
Task
>
findAllByParentTaskId
(
Integer
parentTaskId
);
List
<
Task
>
findAllByParentTaskId
(
Integer
parentTaskId
);
/**
* 根绝parentid 查task
* @param ids parentid
* @return tasks
*/
List
<
Task
>
findAllByParentTaskIdIn
(
List
<
Integer
>
ids
);
Task
findByBusinessTypeAndOwnUnitAndBillStatus
(
Integer
type
,
Integer
ownUnit
,
Integer
billStatus
);
Task
findByBusinessTypeAndOwnUnitAndBillStatus
(
Integer
type
,
Integer
ownUnit
,
Integer
billStatus
);
Task
findByParentTaskIdAndAndTitle
(
Integer
parentId
,
String
title
);
Task
findByParentTaskIdAndAndTitle
(
Integer
parentId
,
String
title
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论