Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vehicle-quality-review
Project
Project
Details
Activity
Releases
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
王飞
vehicle-quality-review
Commits
0498bc07
Commit
0498bc07
authored
Mar 27, 2024
by
wdy
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'wangdingyi' into 'dev'
待办任务车型测试子任务进度 See merge request
!233
parents
242ae6fb
a5c2e8c1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
166 additions
and
57 deletions
+166
-57
ModelTestTaskMapper.java
...w/src/main/java/com/ruoyi/mapper/ModelTestTaskMapper.java
+9
-0
TaskServiceImpl.java
...src/main/java/com/ruoyi/service/impl/TaskServiceImpl.java
+125
-53
ModelTestTaskMapper.xml
...-review/src/main/resources/mapper/ModelTestTaskMapper.xml
+32
-4
No files found.
quality-review/src/main/java/com/ruoyi/mapper/ModelTestTaskMapper.java
View file @
0498bc07
...
...
@@ -2,6 +2,9 @@ package com.ruoyi.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.ruoyi.domain.ModelTestTask
;
import
com.ruoyi.web.response.ResultCountResponse
;
import
com.ruoyi.web.response.TaskFindResponse
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
...
...
@@ -15,4 +18,10 @@ public interface ModelTestTaskMapper extends BaseMapper<ModelTestTask> {
// 查询pending状态下的所有任务
List
<
ModelTestTask
>
findByStatus
();
// 根据总任务列表查询子任务
List
<
ModelTestTask
>
findByTaskList
(
@Param
(
"responses"
)
List
<
TaskFindResponse
>
responses
);
// 根据子任务列表查询进度
List
<
ResultCountResponse
>
testAnswerCount
(
@Param
(
"responses"
)
List
<
TaskFindResponse
>
responses
);
}
quality-review/src/main/java/com/ruoyi/service/impl/TaskServiceImpl.java
View file @
0498bc07
...
...
@@ -22,9 +22,7 @@ import com.ruoyi.web.response.DataStatisticsResponse;
import
com.ruoyi.web.response.ResultCountResponse
;
import
com.ruoyi.web.response.TaskFindResponse
;
import
com.ruoyi.web.response.TaskGetInfoResponse
;
import
org.apache.poi.ss.formula.functions.T
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -103,6 +101,9 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task>implements Tas
@Autowired
private
TaskFileRelationService
taskFileRelationService
;
@Autowired
private
ModelTestTaskMapper
modelTestTaskMapper
;
@Override
public
List
<
Task
>
findList
(
TaskListRequest
request
)
{
return
taskMapper
.
findList
(
request
);
...
...
@@ -213,60 +214,16 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task>implements Tas
if
(
responses
!=
null
&&
responses
.
size
()
!=
0
)
{
// 体系审查子任务列表
List
<
SystemReviewTask
>
systemReviewTaskList
=
systemReviewTaskMapper
.
findByTaskList
(
responses
);
if
(
systemReviewTaskList
!=
null
&&
systemReviewTaskList
.
size
()
!=
0
)
{
// 子任务列表进度
List
<
ResultCountResponse
>
responseLists
=
reviewDetailsMapper
.
systemAnswerCount
(
systemReviewTaskList
,
SystemReviewTask
.
TYPE
);
if
(
responseLists
!=
null
&&
responseLists
.
size
()
!=
0
)
{
// 设置子任务不为finish时,最大进度为90
for
(
ResultCountResponse
response
:
responseLists
)
{
if
(
Objects
.
equals
(
response
.
getTaskStatus
(),
SystemReviewTask
.
STATUS_FINISH
))
{
response
.
setSchedule
(
100.0
);
}
else
{
BigDecimal
num
=
new
BigDecimal
(
response
.
getSchedule
());
response
.
setSchedule
(
num
.
setScale
(
1
,
BigDecimal
.
ROUND_UP
).
doubleValue
());
}
}
for
(
ResultCountResponse
responseList
:
responseLists
)
{
for
(
TaskFindResponse
response
:
responses
)
{
if
(
responseList
.
getTaskId
().
equals
(
response
.
getSystemReviewTaskId
()))
{
response
.
setSystemReview
(
responseList
.
getSchedule
());
}
}
}
}
}
setSystemProgress
(
systemReviewTaskList
,
responses
);
// 车型问卷子任务列表
List
<
CarReviewTask
>
carReviewTaskList
=
carReviewTaskMapper
.
findByTaskList
(
responses
);
setCarProgress
(
carReviewTaskList
,
responses
);
if
(
carReviewTaskList
!=
null
&&
carReviewTaskList
.
size
()
!=
0
)
{
// 子任务列表进度
List
<
ResultCountResponse
>
carResponseList
=
reviewDetailsMapper
.
carAnswerCount
(
carReviewTaskList
,
CarReviewTask
.
TYPE
);
if
(
carResponseList
!=
null
&&
carResponseList
.
size
()
!=
0
)
{
// 设置子任务不为finish时,最大进度为90
for
(
ResultCountResponse
response
:
carResponseList
)
{
if
(
Objects
.
equals
(
response
.
getTaskStatus
(),
CarReviewTask
.
TASK_STATUS_FINISH
))
{
response
.
setSchedule
(
100.0
);
}
else
{
BigDecimal
num
=
new
BigDecimal
(
response
.
getSchedule
());
response
.
setSchedule
(
num
.
setScale
(
1
,
BigDecimal
.
ROUND_UP
).
doubleValue
());
}
}
// 车型试验子任务列表
List
<
ModelTestTask
>
modelTestTaskList
=
modelTestTaskMapper
.
findByTaskList
(
responses
);
setModelProgress
(
modelTestTaskList
,
responses
);
for
(
ResultCountResponse
responseList
:
carResponseList
)
{
for
(
TaskFindResponse
response
:
responses
)
{
if
(
responseList
.
getTaskId
().
equals
(
response
.
getCarReviewTaskId
()))
{
response
.
setCarReview
(
responseList
.
getSchedule
());
}
}
}
}
}
for
(
TaskFindResponse
response
:
responses
)
{
String
[]
taskList
=
response
.
getTaskList
().
split
(
","
);
...
...
@@ -349,6 +306,30 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task>implements Tas
systemReviewTaskMapper
.
deleteById
(
task
.
getSystemReviewTaskId
());
carReviewTaskMapper
.
deleteById
(
task
.
getCarReviewTaskId
());
modelTestTaskMapper
.
deleteById
(
task
.
getModelTestTaskId
());
// 小组
List
<
TaskUserRelation
>
list
=
taskUserRelationService
.
selectQTeamMembers
(
task
.
getId
());
if
(
list
!=
null
&&
list
.
size
()
!=
0
)
{
taskFileRelationService
.
removeBatchByIds
(
list
);
}
// 样品
List
<
TaskSampleRelation
>
relationList
=
taskSampleRelationService
.
selectByTaskId
(
task
.
getId
(),
TaskSampleRelation
.
COMPLETE_VEHICLE_SAMPLE
);
if
(
relationList
!=
null
&&
relationList
.
size
()
!=
0
)
{
taskSampleRelationService
.
removeBatchByIds
(
relationList
);
}
List
<
TaskSampleRelation
>
partRelationList
=
taskSampleRelationService
.
selectByTaskId
(
task
.
getId
(),
TaskSampleRelation
.
PART_VEHICLE_SAMPLE
);
if
(
partRelationList
!=
null
&&
partRelationList
.
size
()
!=
0
)
{
taskSampleRelationService
.
removeBatchByIds
(
partRelationList
);
}
// 文件
List
<
TaskFileRelation
>
fileList
=
taskFileRelationService
.
findByTaskId
(
task
.
getId
());
if
(
fileList
!=
null
&&
fileList
.
size
()
!=
0
)
{
taskFileRelationService
.
removeBatchByIds
(
fileList
);
}
taskMapper
.
deleteById
(
request
.
getId
());
}
...
...
@@ -479,7 +460,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task>implements Tas
// 找到审查组长
TaskUserRelation
leader
=
null
;
List
<
TaskUserRelation
>
auditors
=
request
.
getAuditors
();
if
(
auditors
.
size
()
!=
0
&&
auditors
!=
null
)
{
if
(
auditors
!=
null
&&
auditors
.
size
()
!=
0
)
{
for
(
TaskUserRelation
auditor
:
auditors
)
{
if
(
auditor
.
getIsLeader
()
==
1
)
{
leader
=
auditor
;
...
...
@@ -542,7 +523,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task>implements Tas
// 找到审查组长
TaskUserRelation
leader
=
null
;
List
<
TaskUserRelation
>
auditors
=
request
.
getAuditors
();
if
(
auditors
.
size
()
!=
0
&&
auditors
!=
null
)
{
if
(
auditors
!=
null
&&
auditors
.
size
()
!=
0
)
{
for
(
TaskUserRelation
auditor
:
auditors
)
{
if
(
auditor
.
getIsLeader
()
==
1
)
{
leader
=
auditor
;
...
...
@@ -678,6 +659,97 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task>implements Tas
}
private
void
setModelProgress
(
List
<
ModelTestTask
>
modelTestTaskList
,
List
<
TaskFindResponse
>
responses
)
{
if
(
modelTestTaskList
!=
null
&&
modelTestTaskList
.
size
()
!=
0
)
{
// 子任务进度列表
List
<
ResultCountResponse
>
testResponseList
=
modelTestTaskMapper
.
testAnswerCount
(
responses
);
if
(
testResponseList
!=
null
&&
testResponseList
.
size
()
!=
0
)
{
// 设置子任务不为finish时,最大进度为90 进度为null时,改为0
for
(
ResultCountResponse
response
:
testResponseList
)
{
if
(
Objects
.
equals
(
response
.
getTaskStatus
(),
ModelTestTask
.
TASK_STATUS_FINISH
))
{
response
.
setSchedule
(
100.0
);
}
else
if
(
Objects
.
equals
(
response
.
getTaskStatus
(),
ModelTestTask
.
TASK_STATUS_SIGNED
))
{
response
.
setSchedule
(
90.0
);
}
else
if
(
response
.
getSchedule
()
==
null
)
{
response
.
setSchedule
(
0.0
);
}
else
{
BigDecimal
num
=
new
BigDecimal
(
response
.
getSchedule
());
response
.
setSchedule
(
num
.
setScale
(
1
,
BigDecimal
.
ROUND_UP
).
doubleValue
());
}
}
for
(
ResultCountResponse
responseList
:
testResponseList
)
{
for
(
TaskFindResponse
response
:
responses
)
{
if
(
responseList
.
getTaskId
().
equals
(
response
.
getModelTestTaskId
()))
{
response
.
setTest
(
responseList
.
getSchedule
());
}
}
}
}
}
}
private
void
setCarProgress
(
List
<
CarReviewTask
>
carReviewTaskList
,
List
<
TaskFindResponse
>
responses
)
{
if
(
carReviewTaskList
!=
null
&&
carReviewTaskList
.
size
()
!=
0
)
{
// 子任务列表进度
List
<
ResultCountResponse
>
carResponseList
=
reviewDetailsMapper
.
carAnswerCount
(
carReviewTaskList
,
CarReviewTask
.
TYPE
);
if
(
carResponseList
!=
null
&&
carResponseList
.
size
()
!=
0
)
{
// 设置子任务不为finish时,最大进度为90
for
(
ResultCountResponse
response
:
carResponseList
)
{
if
(
Objects
.
equals
(
response
.
getTaskStatus
(),
CarReviewTask
.
TASK_STATUS_FINISH
))
{
response
.
setSchedule
(
100.0
);
}
else
{
BigDecimal
num
=
new
BigDecimal
(
response
.
getSchedule
());
response
.
setSchedule
(
num
.
setScale
(
1
,
BigDecimal
.
ROUND_UP
).
doubleValue
());
}
}
for
(
ResultCountResponse
responseList
:
carResponseList
)
{
for
(
TaskFindResponse
response
:
responses
)
{
if
(
responseList
.
getTaskId
().
equals
(
response
.
getCarReviewTaskId
()))
{
response
.
setCarReview
(
responseList
.
getSchedule
());
}
}
}
}
}
}
private
void
setSystemProgress
(
List
<
SystemReviewTask
>
systemReviewTaskList
,
List
<
TaskFindResponse
>
responses
)
{
if
(
systemReviewTaskList
!=
null
&&
systemReviewTaskList
.
size
()
!=
0
)
{
// 子任务列表进度
List
<
ResultCountResponse
>
responseLists
=
reviewDetailsMapper
.
systemAnswerCount
(
systemReviewTaskList
,
SystemReviewTask
.
TYPE
);
if
(
responseLists
!=
null
&&
responseLists
.
size
()
!=
0
)
{
// 设置子任务不为finish时,最大进度为90
for
(
ResultCountResponse
response
:
responseLists
)
{
if
(
Objects
.
equals
(
response
.
getTaskStatus
(),
SystemReviewTask
.
STATUS_FINISH
))
{
response
.
setSchedule
(
100.0
);
}
else
{
BigDecimal
num
=
new
BigDecimal
(
response
.
getSchedule
());
response
.
setSchedule
(
num
.
setScale
(
1
,
BigDecimal
.
ROUND_UP
).
doubleValue
());
}
}
for
(
ResultCountResponse
responseList
:
responseLists
)
{
for
(
TaskFindResponse
response
:
responses
)
{
if
(
responseList
.
getTaskId
().
equals
(
response
.
getSystemReviewTaskId
()))
{
response
.
setSystemReview
(
responseList
.
getSchedule
());
}
}
}
}
}
}
// 按顺序设置taskList
private
void
setTaskList
(
List
<
String
>
taskList
,
Task
task
)
{
// 定义一个比较器,按照 "sraif, grfis, trfis" 的顺序排序
...
...
quality-review/src/main/resources/mapper/ModelTestTaskMapper.xml
View file @
0498bc07
...
...
@@ -27,10 +27,38 @@
<result
property=
"standards"
column=
"standards"
jdbcType=
"INTEGER"
/>
<result
property=
"testSchemeId"
column=
"test_scheme_id"
jdbcType=
"VARCHAR"
/>
</resultMap>
<select
id=
"findByStatus"
resultType=
"com.ruoyi.domain.ModelTestTask"
>
SELECT id,task_no,task_status,task_initiator,task_initiator_dept,task_result,task_begin_time,task_end_time,test_case,create_time,leader_id,leader,standard_id,name,standard_no,submit_id,submit_name,images_url,details,standards,test_scheme_id
FROM t_model_test_task WHERE task_status = 'PENDING'
</select>
<select
id=
"findByStatus"
resultType=
"com.ruoyi.domain.ModelTestTask"
>
SELECT id,task_no,task_status,task_initiator,task_initiator_dept,task_result,task_begin_time,task_end_time,test_case,create_time,leader_id,leader,standard_id,name,standard_no,submit_id,submit_name,images_url,details,standards,test_scheme_id
FROM t_model_test_task WHERE task_status = 'PENDING'
</select>
<select
id=
"findByTaskList"
resultType=
"com.ruoyi.domain.ModelTestTask"
>
SELECT id,task_no,task_status,task_initiator,task_initiator_dept,task_result,task_begin_time,task_end_time,test_case,create_time,leader_id,leader,standard_id,name,standard_no,submit_id,submit_name,images_url,details,standards,test_scheme_id
FROM t_model_test_task
WHERE id IN
<foreach
collection=
"responses"
item=
"task"
open=
"("
separator=
","
close=
")"
>
#{task.modelTestTaskId}
</foreach>
</select>
<select
id=
"testAnswerCount"
resultType=
"com.ruoyi.web.response.ResultCountResponse"
>
<foreach
item=
"task"
collection=
"responses"
separator=
"UNION ALL"
>
SELECT
#{task.modelTestTaskId} AS taskId,
(IFNULL(
(SELECT COUNT(*) FROM t_test_records WHERE task_id = #{task.modelTestTaskId}),
0
) /
IFNULL(
(SELECT COUNT(*) FROM t_task_scenario_relation tsr
INNER JOIN t_test_scenario tts ON tts.id = tsr.test_scenario_id
INNER JOIN t_test_usecase ttu ON tts.id = ttu.test_scenario_id
WHERE tsr.task_id = #{task.id}),
1
)) * 90 AS schedule,
tm.task_status AS taskStatus
from t_model_test_task tm where tm.id = #{task.modelTestTaskId}
</foreach>
group by taskId
</select>
</mapper>
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