Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
indicators
Overview
Overview
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
zhangkb
indicators
Commits
6fcbdfd8
Commit
6fcbdfd8
authored
Jul 09, 2020
by
张祺
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改任务启动支持多个
parent
badcce0c
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
32 additions
and
144 deletions
+32
-144
TaskCtrl.java
...java/com/keymobile/indicators/api/hytobacco/TaskCtrl.java
+9
-143
TaskService.java
...m/keymobile/indicators/service/dataenter/TaskService.java
+23
-1
TaskServiceImpl.java
...le/indicators/service/dataenter/impl/TaskServiceImpl.java
+0
-0
No files found.
src/main/java/com/keymobile/indicators/api/hytobacco/TaskCtrl.java
View file @
6fcbdfd8
...
...
@@ -34,165 +34,31 @@ import java.util.List;
@RequestMapping
(
value
=
"/task"
)
public
class
TaskCtrl
{
@Autowired
private
TaskRuleService
taskRuleService
;
@Autowired
private
TaskService
taskService
;
@Autowired
private
SystemAuthService
systemAuth
Service
;
private
TaskService
task
Service
;
@Autowired
private
IndicatorsRelService
indRelService
;
@ApiOperation
(
"(启动)根据规则生成相关填报任务"
)
@GetMapping
(
"generateTaskByRule"
)
public
Result
generateTaskByRule
(
@ApiParam
(
"规则id"
)
@RequestParam
(
"ruleId"
)
Integer
ruleId
,
public
Result
generateTaskByRule
(
@ApiParam
(
"规则id"
)
@RequestParam
(
"ruleId"
)
List
<
Integer
>
ruleIds
,
@ApiParam
(
"收数月份, 格式: 2020-03、2020-06、2020-09、2020-12"
)
@RequestParam
(
"valueTime"
)
String
valueTime
)
{
Result
result
=
null
;
TaskRule
rule
=
taskRuleService
.
getById
(
ruleId
,
true
);
if
(
rule
!=
null
)
{
String
roleIdStr
=
rule
.
getToRoleIds
();
if
(
StringUtils
.
isNotBlank
(
roleIdStr
))
{
String
[]
roleIds
=
StringUtils
.
split
(
roleIdStr
,
Constants
.
SEP_COMMA
);
List
<
RoleRefUserModel
>
users
=
new
ArrayList
<>();
for
(
String
roleId
:
roleIds
)
{
List
<
JSONObject
>
list
=
systemAuthService
.
findUserList
(
roleId
,
true
,
null
,
null
,
null
,
1
,
100
);
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
for
(
JSONObject
jo
:
list
)
{
RoleRefUserModel
user
=
new
RoleRefUserModel
();
user
.
setId
(
jo
.
getString
(
"id"
));
user
.
setDisName
(
jo
.
getString
(
"disname"
));
user
.
setRefIndDept
(
jo
.
getString
(
"refIndDept"
));
String
refIndDept
=
user
.
getRefIndDept
();
if
(
StringUtils
.
isBlank
(
refIndDept
))
{
continue
;
}
if
(!
users
.
contains
(
user
))
{
users
.
add
(
user
);
}
}
}
}
if
(
users
.
size
()
>
0
)
{
List
<
TaskRuleIndicator
>
indicators
=
rule
.
getIndicators
();
if
(
CollectionUtils
.
isNotEmpty
(
indicators
))
{
List
<
TaskIndicator
>
taskIndicators
=
new
ArrayList
<>();
for
(
TaskRuleIndicator
indicator
:
indicators
)
{
List
<
BaseIndDef
>
baseIndDefs
=
this
.
indRelService
.
getRelByIndId
(
indicator
.
getIndId
(),
"1"
);
getBaseIndDef
(
ruleId
,
null
,
baseIndDefs
,
taskIndicators
);
}
if
(
CollectionUtils
.
isNotEmpty
(
taskIndicators
))
{
//数据项按归属部门分组
ImmutableListMultimap
<
String
,
TaskIndicator
>
deptMapInds
=
Multimaps
.
index
(
taskIndicators
,
(
taskIndicator
)->
taskIndicator
.
getIndDept
());
//角色关联用户按归属部门分组
ImmutableListMultimap
<
String
,
RoleRefUserModel
>
deptUsers
=
Multimaps
.
index
(
users
,
(
roleRefUser
)->
roleRefUser
.
getRefIndDept
());
//每个分组组成一个任务
Date
now
=
new
Date
();
int
addEndDate
=
rule
.
getTimeLimit
();
int
addAuditDate
=
rule
.
getAuditLimit
();
Date
editEndDate
=
DateUtils
.
addDay
(
now
,
addEndDate
);
Date
auditEndDate
=
DateUtils
.
addDay
(
now
,
addEndDate
+
addAuditDate
);
String
userId
=
SystemUserUtil
.
getCurrentUserId
();
List
<
Task
>
allTasks
=
new
ArrayList
<>();
for
(
String
dept
:
deptMapInds
.
keys
())
{
List
<
TaskIndicator
>
tis
=
deptMapInds
.
get
(
dept
);
List
<
RoleRefUserModel
>
refUsers
=
deptUsers
.
get
(
dept
);
if
(
CollectionUtils
.
isEmpty
(
refUsers
))
{
result
=
Result
.
genFailedResult
(
"该规则对应的数据项所属部门{"
+
dept
+
"}找不到对应的用户"
);
break
;
}
else
{
Task
task
=
new
Task
();
task
.
setValueTime
(
valueTime
);
task
.
setStatus
(
Constants
.
APPLY_STATE_DRAFT
);
task
.
setIndicators
(
tis
);
task
.
setCreateTime
(
now
);
task
.
setCreator
(
userId
);
task
.
setUpdateTime
(
now
);
task
.
setUpdater
(
userId
);
task
.
setNeedSelfEnter
(
false
);
task
.
setNeedSum
(
false
);
task
.
setEndDate
(
editEndDate
);
task
.
setAuditEndDate
(
auditEndDate
);
task
.
setRuleName
(
rule
.
getName
());
task
.
setRuleType
(
rule
.
getRuleType
());
task
.
setRuleId
(
rule
.
getId
());
task
.
setRuleLevel
(
rule
.
getRuleLevel
());
task
.
setGroupId
(
rule
.
getGroupId
());
task
.
setDescription
(
rule
.
getDescription
());
StringBuilder
userNames
=
new
StringBuilder
(
Constants
.
SEP_COMMA
);
StringBuilder
userIds
=
new
StringBuilder
(
Constants
.
SEP_COMMA
);
for
(
RoleRefUserModel
um
:
refUsers
)
{
userNames
.
append
(
um
.
getDisName
());
userNames
.
append
(
Constants
.
SEP_COMMA
);
userIds
.
append
(
um
.
getId
());
userIds
.
append
(
Constants
.
SEP_COMMA
);
}
task
.
setEnterUsers
(
userIds
.
toString
());
task
.
setEnterUserNames
(
userNames
.
toString
());
}
taskService
.
createTaskByRule
(
allTasks
,
valueTime
,
ruleId
);
rule
.
setLastActiveTime
(
now
);
taskRuleService
.
updateRule
(
rule
);
}
}
else
{
result
=
Result
.
genFailedResult
(
"规则配置的指标没有可用的数据项"
);
}
}
else
{
result
=
Result
.
genFailedResult
(
"规则没有配置相关的指标"
);
}
}
else
{
result
=
Result
.
genFailedResult
(
"找不到用户来生成任务"
);
}
if
(
CollectionUtils
.
isNotEmpty
(
ruleIds
))
{
if
(
ruleIds
.
size
()
>
1
)
{
taskService
.
batchCreateTaskByRule
(
ruleIds
,
valueTime
);
result
=
Result
.
genOkResult
(
"开始批量启动任务"
);
}
else
{
result
=
Result
.
genFailedResult
(
"规则没有配置对应的下发对象"
);
result
=
taskService
.
createTaskByRule
(
ruleIds
.
get
(
0
),
valueTime
);
}
}
else
{
result
=
Result
.
genFailedResult
(
"
规则不存在
"
);
result
=
Result
.
genFailedResult
(
"
没有选择需要启动的任务
"
);
}
return
result
;
return
result
;
}
/**
* 获取关联的数据项和子数据项
* @param ruleId
* @param parentIndId
* @param baseIndDefs
* @param taskIndicators
*/
private
void
getBaseIndDef
(
Integer
ruleId
,
String
parentIndId
,
List
<
BaseIndDef
>
baseIndDefs
,
List
<
TaskIndicator
>
taskIndicators
)
{
if
(
CollectionUtils
.
isNotEmpty
(
baseIndDefs
))
{
for
(
BaseIndDef
baseIndDef
:
baseIndDefs
)
{
TaskIndicator
taskIndicator
=
new
TaskIndicator
();
taskIndicator
.
setIndFormula
(
baseIndDef
.
getIndFormat
());
taskIndicator
.
setRuleId
(
ruleId
);
taskIndicator
.
setParentIndId
(
parentIndId
);
taskIndicator
.
setIndSource
(
baseIndDef
.
getIndSource
());
taskIndicator
.
setIndUnit
(
baseIndDef
.
getIndUnit
());
taskIndicator
.
setIndId
(
baseIndDef
.
getIndId
());
taskIndicator
.
setIndDept
(
baseIndDef
.
getIndDept
());
if
(!
taskIndicators
.
contains
(
taskIndicator
))
{
taskIndicators
.
add
(
taskIndicator
);
}
else
{
continue
;
}
List
<
BaseIndDef
>
children
=
baseIndDef
.
getChildrens
();
if
(
CollectionUtils
.
isNotEmpty
(
children
))
{
taskIndicator
.
setHasChildren
(
true
);
}
else
{
taskIndicator
.
setHasChildren
(
false
);
}
getBaseIndDef
(
ruleId
,
taskIndicator
.
getIndId
(),
children
,
taskIndicators
);
}
}
}
@ApiOperation
(
"根据关键字、规则类型、用户获取相关的填报任务"
)
@PostMapping
(
"findByPage"
)
...
...
src/main/java/com/keymobile/indicators/service/dataenter/TaskService.java
View file @
6fcbdfd8
package
com
.
keymobile
.
indicators
.
service
.
dataenter
;
import
com.keymobile.indicators.model.entity.dataenter.*
;
import
com.keymobile.indicators.result.Result
;
import
io.swagger.annotations.ApiParam
;
import
org.springframework.data.domain.Page
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
java.util.List
;
...
...
@@ -23,7 +26,7 @@ public interface TaskService {
* @param valueTime
* @param ruleId
*/
void
createTaskByRule
(
List
<
Task
>
tasks
,
String
valueTime
,
Integer
ruleId
);
void
batchCreateTask
(
List
<
Task
>
tasks
,
String
valueTime
,
Integer
ruleId
);
/**
* 更新任务
* @param task
...
...
@@ -140,4 +143,23 @@ public interface TaskService {
* @return
*/
TaskAnalysisResult
analysisTask
(
QueryTaskParam
param
);
/**
* 批量启动任务
* @param ruleIds
* @param valueTime
* @return
*/
void
batchCreateTaskByRule
(
List
<
Integer
>
ruleIds
,
@ApiParam
(
"收数月份, 格式: 2020-03、2020-06、2020-09、2020-12"
)
String
valueTime
);
/**
* 单个生成任务
* @param ruleId
* @param valueTime
* @return
*/
Result
createTaskByRule
(
Integer
ruleId
,
@ApiParam
(
"收数月份, 格式: 2020-03、2020-06、2020-09、2020-12"
)
String
valueTime
);
}
src/main/java/com/keymobile/indicators/service/dataenter/impl/TaskServiceImpl.java
View file @
6fcbdfd8
This diff is collapsed.
Click to expand it.
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