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
89cbab89
Commit
89cbab89
authored
Apr 17, 2024
by
盖献康
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
检验报告PDF - 检验结论、签发日期
发布/编辑/暂存 任务
parent
c6ec4578
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
193 additions
and
51 deletions
+193
-51
ModelTestTask.java
...-review/src/main/java/com/ruoyi/domain/ModelTestTask.java
+8
-0
InspectionItemVO.java
...w/src/main/java/com/ruoyi/domain/vo/InspectionItemVO.java
+27
-0
TestConclusionVO.java
...w/src/main/java/com/ruoyi/domain/vo/TestConclusionVO.java
+39
-0
TaskMapper.java
...ity-review/src/main/java/com/ruoyi/mapper/TaskMapper.java
+7
-0
PdfTemplateManagementServiceImpl.java
.../ruoyi/service/impl/PdfTemplateManagementServiceImpl.java
+70
-33
StrategyModelTestTaskPending.java
.../com/ruoyi/service/impl/StrategyModelTestTaskPending.java
+6
-2
TaskServiceImpl.java
...src/main/java/com/ruoyi/service/impl/TaskServiceImpl.java
+19
-16
TaskMapper.xml
quality-review/src/main/resources/mapper/TaskMapper.xml
+17
-0
receipt_template_04_02.pdf
...ew/src/main/resources/template/receipt_template_04_02.pdf
+0
-0
No files found.
quality-review/src/main/java/com/ruoyi/domain/ModelTestTask.java
View file @
89cbab89
...
...
@@ -46,6 +46,14 @@ public class ModelTestTask {
@TableField
(
exist
=
false
)
public
static
final
String
TASK_STATUS_FINISH
=
"FINISH"
;
/**
* 任务结果
*/
@TableField
(
exist
=
false
)
public
static
final
String
TASK_STATUS_PASS
=
"PASS"
;
@TableField
(
exist
=
false
)
public
static
final
String
TASK_STATUS_REJECT
=
"REJECT"
;
@ApiModelProperty
(
"主键"
)
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
)
...
...
quality-review/src/main/java/com/ruoyi/domain/vo/InspectionItemVO.java
0 → 100644
View file @
89cbab89
package
com
.
ruoyi
.
domain
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* 检验项目VO
* @author gxk
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel
(
"检验项目VO"
)
public
class
InspectionItemVO
{
@ApiModelProperty
(
"检验项目名"
)
private
String
inspectionItemName
;
@ApiModelProperty
(
"检验项目结果"
)
private
String
taskResult
;
}
quality-review/src/main/java/com/ruoyi/domain/vo/TestConclusionVO.java
0 → 100644
View file @
89cbab89
package
com
.
ruoyi
.
domain
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* 用于检验报告PDF 的 检验结论
* @author gxk
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel
(
"检验结论VO"
)
public
class
TestConclusionVO
{
@ApiModelProperty
(
"体系审查任务结论"
)
private
String
systemReviewTaskResult
;
@ApiModelProperty
(
"车辆检验任务结论"
)
private
String
carReviewTaskResult
;
@ApiModelProperty
(
"车型试验任务结论"
)
private
String
modelTestTaskResult
;
@ApiModelProperty
(
"系统审查任务完成日期"
)
private
String
systemReviewTaskDate
;
@ApiModelProperty
(
"车辆检验任务完成日期"
)
private
String
carReviewTaskDate
;
@ApiModelProperty
(
"车型试验任务完成日期"
)
private
String
modelTestTaskDate
;
}
quality-review/src/main/java/com/ruoyi/mapper/TaskMapper.java
View file @
89cbab89
...
...
@@ -5,6 +5,7 @@ import com.ruoyi.domain.Task;
import
com.ruoyi.domain.TaskUserRelation
;
import
com.ruoyi.domain.vo.EnterpriseFilePdfVO
;
import
com.ruoyi.domain.vo.InspectionReportPdfVO
;
import
com.ruoyi.domain.vo.TestConclusionVO
;
import
com.ruoyi.web.request.TaskFindFinishRequest
;
import
com.ruoyi.web.request.TaskFindPendingRequest
;
import
com.ruoyi.web.request.TaskFindRequest
;
...
...
@@ -67,4 +68,10 @@ public interface TaskMapper extends BaseMapper<Task> {
List
<
UserNameResponse
>
findByFinishTaskList
(
@Param
(
"taskList"
)
List
<
Task
>
taskList
);
/**
* 通过总任务ID查询当前任务的每个子任务的结果
* @param taskId
* @return
*/
TestConclusionVO
selectTestConclusion
(
Long
taskId
);
}
quality-review/src/main/java/com/ruoyi/service/impl/PdfTemplateManagementServiceImpl.java
View file @
89cbab89
...
...
@@ -27,11 +27,10 @@ import com.ruoyi.common.core.domain.entity.SysDictData;
import
com.ruoyi.common.utils.DateUtils
;
import
com.ruoyi.common.utils.PdfBaseWriter
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.domain.ModelTestTask
;
import
com.ruoyi.domain.Sample
;
import
com.ruoyi.domain.TestRecords
;
import
com.ruoyi.domain.vo.EnterpriseFilePdfVO
;
import
com.ruoyi.domain.vo.InspectionReportPdfVO
;
import
com.ruoyi.domain.vo.ReviewEnterpriseArchiveViewVO
;
import
com.ruoyi.domain.vo.*
;
import
com.ruoyi.mapper.SampleManagementMapper
;
import
com.ruoyi.mapper.TaskMapper
;
import
com.ruoyi.mapper.TestRecordsMapper
;
...
...
@@ -42,11 +41,6 @@ import io.minio.MinioClient;
import
io.minio.ObjectWriteArgs
;
import
io.minio.PutObjectArgs
;
import
lombok.SneakyThrows
;
import
org.commonmark.node.Node
;
import
org.commonmark.parser.Parser
;
import
org.commonmark.renderer.html.HtmlRenderer
;
import
org.jsoup.Jsoup
;
import
org.jsoup.nodes.Entities
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
...
...
@@ -670,30 +664,6 @@ public class PdfTemplateManagementServiceImpl implements PdfTemplateManagementSe
}
/**
*
* @param markdownContent
* @return
*/
public
static
String
convertMarkdownToHtml
(
String
markdownContent
)
{
// 创建 Markdown 解析器
Parser
parser
=
Parser
.
builder
().
build
();
// 解析 Markdown
Node
document
=
parser
.
parse
(
markdownContent
);
// 创建 HTML 渲染器
HtmlRenderer
renderer
=
HtmlRenderer
.
builder
().
build
();
// 渲染 HTML
org
.
jsoup
.
nodes
.
Document
doc
=
Jsoup
.
parse
(
renderer
.
render
(
document
).
replaceAll
(
"\\\\n"
,
"<br>"
));
// jsoup标准化标签,生成闭合标签
doc
.
outputSettings
().
syntax
(
org
.
jsoup
.
nodes
.
Document
.
OutputSettings
.
Syntax
.
xml
);
doc
.
outputSettings
().
escapeMode
(
Entities
.
EscapeMode
.
xhtml
);
return
doc
.
html
();
}
private
static
String
headerText
;
public
static
class
MyHeaderFooter
extends
PdfPageEventHelper
{
...
...
@@ -792,10 +762,77 @@ public class PdfTemplateManagementServiceImpl implements PdfTemplateManagementSe
+
inspectionReport
.
getTaskBeginTime
()
+
"至"
+
inspectionReport
.
getTaskEndTime
()
+
"在"
+
inspectionReport
.
getInspectionCenterName
()
+
"进行"
);
inspectionReport
.
setInspectionItem
(
getInspectionItemByTaskItem
(
inspectionReport
.
getInspectionItem
()));
String
taskItem
=
getInspectionItemByTaskItem
(
inspectionReport
.
getInspectionItem
());
inspectionReport
.
setInspectionItem
(
taskItem
);
// 检验结论
inspectionReport
.
setTestConclusion
(
getTestConclusion
(
taskItem
,
taskId
,
inspectionReport
));
return
inspectionReport
;
}
/**
* 获取检验结论
* @return
*/
private
String
getTestConclusion
(
String
taskItem
,
Long
taskId
,
InspectionReportPdfVO
inspectionReport
)
{
int
num
=
0
;
String
result
=
""
;
String
issueDate
=
""
;
String
passItemName
=
""
;
String
failItemName
=
""
;
List
<
String
>
taskItemList
=
Arrays
.
asList
(
taskItem
.
split
(
","
));
List
<
InspectionItemVO
>
list
=
new
ArrayList
<>();
TestConclusionVO
testConclusionVO
=
taskMapper
.
selectTestConclusion
(
taskId
);
if
(
ObjectUtil
.
isNotEmpty
(
testConclusionVO
.
getSystemReviewTaskResult
()))
{
list
.
add
(
InspectionItemVO
.
builder
()
.
inspectionItemName
(
taskItemList
.
get
(
num
))
.
taskResult
(
testConclusionVO
.
getSystemReviewTaskResult
()).
build
());
issueDate
=
testConclusionVO
.
getSystemReviewTaskDate
();
num
++;
}
if
(
ObjectUtil
.
isNotEmpty
(
testConclusionVO
.
getCarReviewTaskResult
()))
{
list
.
add
(
InspectionItemVO
.
builder
()
.
inspectionItemName
(
taskItemList
.
get
(
num
))
.
taskResult
(
testConclusionVO
.
getCarReviewTaskResult
()).
build
());
issueDate
=
testConclusionVO
.
getCarReviewTaskDate
();
num
++;
}
if
(
ObjectUtil
.
isNotEmpty
(
testConclusionVO
.
getModelTestTaskResult
()))
{
list
.
add
(
InspectionItemVO
.
builder
()
.
inspectionItemName
(
taskItemList
.
get
(
num
))
.
taskResult
(
testConclusionVO
.
getModelTestTaskResult
()).
build
());
issueDate
=
testConclusionVO
.
getModelTestTaskDate
();
}
inspectionReport
.
setIssueDate
(
issueDate
);
for
(
InspectionItemVO
item
:
list
)
{
if
(
item
.
getTaskResult
().
equals
(
ModelTestTask
.
TASK_STATUS_PASS
))
{
passItemName
+=
item
.
getInspectionItemName
()
+
"、"
;
}
if
(
item
.
getTaskResult
().
equals
(
ModelTestTask
.
TASK_STATUS_REJECT
))
{
failItemName
+=
item
.
getInspectionItemName
()
+
"、"
;
}
}
if
(
StrUtil
.
isNotEmpty
(
passItemName
))
{
passItemName
=
passItemName
.
substring
(
0
,
passItemName
.
length
()
-
1
);
result
=
"经检验,该样品的"
+
passItemName
+
"检验项目的检验结果符合"
+
inspectionReport
.
getInspectionBasis
()
+
"的要求,"
;
}
if
(
StrUtil
.
isNotEmpty
(
failItemName
))
{
failItemName
=
failItemName
.
substring
(
0
,
failItemName
.
length
()
-
1
);
result
+=
"该样品的"
+
failItemName
+
"检验项目的检验结果不符合"
+
inspectionReport
.
getInspectionBasis
()
+
"的要求。"
;
}
if
(
result
.
endsWith
(
","
))
{
result
=
result
.
substring
(
0
,
result
.
length
()
-
1
)
+
"。"
;
}
return
" "
+
result
;
}
/**
* 渲染数据
* @param fields
...
...
quality-review/src/main/java/com/ruoyi/service/impl/StrategyModelTestTaskPending.java
View file @
89cbab89
...
...
@@ -63,22 +63,26 @@ public class StrategyModelTestTaskPending implements StrategyModelTestTask, Init
JSONObject
jsonObject
=
testUseCaseService
.
callThirdPartyInterface
(
url
,
map
);
Integer
sumCount
=
(
Integer
)
jsonObject
.
get
(
"case_count"
);
AtomicReference
<
Integer
>
currentCount
=
new
AtomicReference
<>(
0
);
AtomicReference
<
Integer
>
failedCount
=
new
AtomicReference
<>(
0
);
List
<
CaseStatistics
>
caseStatisticsList
=
jsonObject
.
getList
(
"case_statistics"
,
CaseStatistics
.
class
);
if
(
CollUtil
.
isNotEmpty
(
caseStatisticsList
))
{
caseStatisticsList
.
forEach
(
obj
->
{
if
(
CaseStatistics
.
CASE_STATUS_FAILED
.
equals
(
obj
.
status
)
||
CaseStatistics
.
CASE_STATUS_PASSED
.
equals
(
obj
.
status
))
{
currentCount
.
updateAndGet
(
v
->
v
+
obj
.
getCount
());
}
if
(
CaseStatistics
.
CASE_STATUS_FAILED
.
equals
(
obj
.
status
))
{
failedCount
.
updateAndGet
(
v
->
v
+
obj
.
getCount
());
}
});
}
Integer
integer
=
currentCount
.
get
();
System
.
out
.
println
(
integer
);
// 进行中的任务, 点击返回后, 判断当前用例完成程度, 用例都完成后状态改为待签字
if
(
sumCount
.
equals
(
currentCount
.
get
()))
{
modelTestTaskMapper
.
update
(
new
ModelTestTask
(),
new
LambdaUpdateWrapper
<
ModelTestTask
>()
.
set
(
ModelTestTask:
:
getTaskEndTime
,
new
Date
())
.
set
(
ModelTestTask:
:
getTaskStatus
,
ModelTestTask
.
TASK_STATUS_SIGNED
)
.
set
(
failedCount
.
get
()
>
0
,
ModelTestTask:
:
getTaskResult
,
ModelTestTask
.
TASK_STATUS_REJECT
)
.
set
(
failedCount
.
get
().
equals
(
0
),
ModelTestTask:
:
getTaskResult
,
ModelTestTask
.
TASK_STATUS_PASS
)
.
eq
(
ModelTestTask:
:
getId
,
modelTestTask
.
getId
()));
}
}
...
...
quality-review/src/main/java/com/ruoyi/service/impl/TaskServiceImpl.java
View file @
89cbab89
...
...
@@ -2,6 +2,7 @@ package com.ruoyi.service.impl;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.http.HttpUtil
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
...
...
@@ -201,7 +202,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task>implements Tas
taskService
.
save
(
task
);
// 总任务包含车型试验,添加任务-场景关联信息
saveTaskScenario
(
task
.
getId
(),
request
.
getTestScenarioList
());
//
saveTaskScenario(task.getId(), request.getTestScenarioList());
// 构建并保存该任务所关联的审核组信息
saveUserRelation
(
auditors
,
task
);
...
...
@@ -423,7 +424,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task>implements Tas
}
// 测试场景
response
.
setTestScenarioList
(
selectTestScenarioList
(
task
));
//
response.setTestScenarioList(selectTestScenarioList(task));
// 小组成员
response
.
setAuditors
(
setAuditors
(
request
.
getId
()));
...
...
@@ -501,7 +502,9 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task>implements Tas
}
task
.
setTaskStatus
(
Task
.
TASK_STATUS_TEMPORARILY
);
String
joinTaskList
=
StringUtils
.
join
(
request
.
getTaskList
(),
","
);
if
(
StrUtil
.
isNotEmpty
(
joinTaskList
))
{
task
.
setTaskList
(
joinTaskList
);
}
BeanUtils
.
copyBeanProp
(
task
,
request
);
if
(
standard
!=
null
)
{
...
...
@@ -530,7 +533,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task>implements Tas
taskService
.
save
(
task
);
// 测试场景
saveTaskScenario
(
task
.
getId
(),
request
.
getTestScenarioList
());
//
saveTaskScenario(task.getId(), request.getTestScenarioList());
// 保存任务与小组信息
saveUserRelation
(
auditors
,
task
);
...
...
@@ -549,7 +552,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task>implements Tas
@Override
public
void
editTemporaryStorageTask
(
TaskEditRequest
request
)
{
Task
oldTask
=
taskMapper
.
findByName
(
request
.
getTaskName
());
//
Task oldTask = taskMapper.findByName(request.getTaskName());
// TODO 任务名称验重
// if (oldTask == null || Objects.equals(oldTask.getId(), request.getId())) {
...
...
@@ -571,8 +574,8 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task>implements Tas
task
.
setFile
(
standard
.
getFile
());
}
taskScenarioRelationMapper
.
delete
(
new
QueryWrapper
<
TaskScenarioRelation
>().
lambda
().
eq
(
TaskScenarioRelation:
:
getTaskId
,
task
.
getId
()));
saveTaskScenario
(
task
.
getId
(),
request
.
getTestScenarioList
());
//
taskScenarioRelationMapper.delete(new QueryWrapper<TaskScenarioRelation>().lambda().eq(TaskScenarioRelation::getTaskId, task.getId()));
//
saveTaskScenario(task.getId(), request.getTestScenarioList());
// 找到审查组长
TaskUserRelation
leader
=
null
;
...
...
@@ -619,13 +622,13 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task>implements Tas
BeanUtils
.
copyBeanProp
(
response
,
task
);
if
(
response
.
getTaskList
().
startsWith
(
","
))
{
String
taskList
=
response
.
getTaskList
().
substring
(
1
);
response
.
setTaskList
(
taskList
);
}
//
if (response.getTaskList().startsWith(",")) {
//
String taskList = response.getTaskList().substring(1);
//
response.setTaskList(taskList);
//
}
// 测试场景
response
.
setTestScenarioList
(
selectTestScenarioList
(
task
));
//
response.setTestScenarioList(selectTestScenarioList(task));
// 小组成员
response
.
setAuditors
(
setAuditors
(
task
.
getId
()));
...
...
@@ -1055,14 +1058,14 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task>implements Tas
BeanUtils
.
copyBeanProp
(
createRequest
,
request
);
task
.
setModelTestTaskId
(
saveModelTest
(
createRequest
,
initiator
,
standard
,
leader
));
// 任务-场景
saveTaskScenario
(
task
.
getId
(),
createRequest
.
getTestScenarioList
());
//
saveTaskScenario(task.getId(), createRequest.getTestScenarioList());
}
if
(!
request
.
getTaskList
().
contains
(
Task
.
SUB_TASK_TRFIS
)
&&
ObjectUtil
.
isNotNull
(
task
.
getModelTestTaskId
()))
{
// 删除
modelTestTaskService
.
removeById
(
task
.
getModelTestTaskId
());
task
.
setModelTestTaskIdNull
();
// 删除 任务-场景
taskScenarioRelationMapper
.
delete
(
new
QueryWrapper
<
TaskScenarioRelation
>().
lambda
().
eq
(
TaskScenarioRelation:
:
getTaskId
,
task
.
getId
()));
//
taskScenarioRelationMapper.delete(new QueryWrapper<TaskScenarioRelation>().lambda().eq(TaskScenarioRelation::getTaskId, task.getId()));
}
if
(
request
.
getTaskList
().
contains
(
Task
.
SUB_TASK_TRFIS
)
&&
!
request
.
getTaskList
().
contains
(
Task
.
SUB_TASK_GRFIS
)
&&
...
...
@@ -1075,8 +1078,8 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task>implements Tas
)
{
TaskCreateRequest
createRequest
=
new
TaskCreateRequest
();
BeanUtils
.
copyBeanProp
(
createRequest
,
request
);
taskScenarioRelationMapper
.
delete
(
new
QueryWrapper
<
TaskScenarioRelation
>().
lambda
().
eq
(
TaskScenarioRelation:
:
getTaskId
,
task
.
getId
()));
saveTaskScenario
(
task
.
getId
(),
createRequest
.
getTestScenarioList
());
//
taskScenarioRelationMapper.delete(new QueryWrapper<TaskScenarioRelation>().lambda().eq(TaskScenarioRelation::getTaskId, task.getId()));
//
saveTaskScenario(task.getId(), createRequest.getTestScenarioList());
}
}
}
...
...
quality-review/src/main/resources/mapper/TaskMapper.xml
View file @
89cbab89
...
...
@@ -390,5 +390,22 @@
</foreach>
</select>
<select
id=
"selectTestConclusion"
parameterType=
"java.lang.Long"
resultType=
"com.ruoyi.domain.vo.TestConclusionVO"
>
select
srt.task_result AS systemReviewTaskResult,
DATE_FORMAT(srt.task_end_time, '%Y-%m-%d') AS systemReviewTaskDate,
crt.task_result AS carReviewTaskResult,
DATE_FORMAT(crt.task_end_time, '%Y-%m-%d') AS carReviewTaskDate,
mtt.task_result AS modelTestTaskResult,
DATE_FORMAT(mtt.task_end_time, '%Y-%m-%d') AS modelTestTaskDate
from
t_task t
left join t_system_review_task srt on t.system_review_task_id = srt.id
left join t_car_review_task crt on t.car_review_task_id = crt.id
left join t_model_test_task mtt on t.model_test_task_id = mtt.id
where
t.id = #{taskId}
</select>
</mapper>
quality-review/src/main/resources/template/receipt_template_04_02.pdf
View file @
89cbab89
No preview for this file type
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