Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
cloud-web
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hqzhdj
cloud-web
Commits
ee8c0b0c
Commit
ee8c0b0c
authored
Sep 02, 2025
by
“Kongxiangkun”
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
测试管理-题库试题导入问题修改
parent
83565782
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
44 additions
and
29 deletions
+44
-29
cloud-web-manage/src/main/java/com/yizhi/application/exam/controller/ExamImportController.java
+1
-1
cloud-web-manage/src/main/java/com/yizhi/application/exam/controller/LibrarySubjectImport.java
+43
-28
No files found.
cloud-web-manage/src/main/java/com/yizhi/application/exam/controller/ExamImportController.java
View file @
ee8c0b0c
...
...
@@ -47,7 +47,7 @@ public class ExamImportController {
map
.
put
(
"libraryId"
,
importVO
.
getId
());
map
.
put
(
"url"
,
importVO
.
getUrl
());
log
.
info
(
"题目导入入参:{}"
,
JSONUtil
.
toJsonStr
(
map
));
librarySubjectImport
.
execute
(
map
,
false
);
librarySubjectImport
.
execute
(
map
);
return
Response
.
ok
();
}
...
...
cloud-web-manage/src/main/java/com/yizhi/application/exam/controller/LibrarySubjectImport.java
View file @
ee8c0b0c
...
...
@@ -12,7 +12,6 @@ package com.yizhi.application.exam.controller;
import
cn.hutool.json.JSONUtil
;
import
com.yizhi.core.application.context.TaskContext
;
import
com.yizhi.core.application.file.task.AbstractDefaultTask
;
import
com.yizhi.exam.application.feign.QuestionLibrarySubjectClient
;
import
com.yizhi.exam.application.vo.TrQuestionLibrarySubjectVO
;
import
com.yizhi.exam.application.vo.TrQuestionSubjectOptionVO
;
...
...
@@ -47,7 +46,7 @@ import java.util.*;
* @since 1.0.0
*/
@Component
public
class
LibrarySubjectImport
extends
AbstractDefaultTask
<
List
<
ImportExamQuestionSubjectVO
>,
Map
<
String
,
Object
>>
{
public
class
LibrarySubjectImport
/**extends AbstractDefaultTask<List<ImportExamQuestionSubjectVO>, Map<String, Object>>**/
{
private
static
String
BASEPATH
=
"e:/"
;
private
String
XLSX
=
".xlsx"
;
...
...
@@ -59,8 +58,8 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
@Autowired
QuestionLibrarySubjectClient
questionLibrarySubjectClient
;
@Override
p
rotected
List
<
ImportExamQuestionSubjectVO
>
execute
(
Map
<
String
,
Object
>
map
)
{
//
@Override
p
ublic
List
<
ImportExamQuestionSubjectVO
>
execute
(
Map
<
String
,
Object
>
map
)
{
QuestionLibrary
questionLibrary
;
TrQuestionLibrarySubjectVO
trQuestionLibrarySubjectVO
=
null
;
List
<
TrQuestionLibrarySubjectVO
>
insertList
=
new
ArrayList
<>();
...
...
@@ -81,7 +80,7 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
Workbook
book
=
getFile
(
url
);
Long
id
=
System
.
currentTimeMillis
();
TaskContext
taskContext
=
new
TaskContext
(
id
,
"QUESTION-IMPORT"
+
id
,
TASKNAME
,
accountId
,
time
,
siteId
,
companyId
);
working
(
taskContext
);
//
working(taskContext);
List
<
ImportExamQuestionSubjectVO
>
list
=
readExcelFile
(
book
,
taskContext
);
LOGGER
.
info
(
"题库导入入参内容:"
,
JSONUtil
.
toJsonStr
(
list
));
int
sort
=
1
;
//生成默认排序
...
...
@@ -112,7 +111,8 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
}
else
{
fail
++;
typeErrorList
.
add
(
sort
);
taskDetail
(
id
,
"第"
+
sort
+
"行试题类型不正确"
);
//taskDetail(id, "第" + sort + "行试题类型不正确");
LOGGER
.
error
(
"第{}行试题类型不正确"
,
sort
);
continue
;
}
if
(
type
>
0
&&
type
<=
4
)
{
...
...
@@ -147,28 +147,32 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
if
(
rightAnswerNum
!=
1
)
{
fail
++;
rightAnswerErrorList
.
add
(
sort
);
taskDetail
(
id
,
"第"
+
sort
+
"行正确答案数不正确"
);
//taskDetail(id, "第" + sort + "行正确答案数不正确");
LOGGER
.
error
(
"第{}行正确答案数不正确"
,
sort
);
}
}
if
(
type
==
2
)
{
if
(
rightAnswerNum
<=
1
||
rightAnswerNum
>
options
.
size
())
{
fail
++;
rightAnswerErrorList
.
add
(
sort
);
taskDetail
(
id
,
"第"
+
sort
+
"行正确答案数不正确"
);
// taskDetail(id, "第" + sort + "行正确答案数不正确");
LOGGER
.
error
(
"第{}行正确答案数不正确"
,
sort
);
}
}
if
(
type
==
3
)
{
if
(
rightAnswerNum
!=
1
)
{
fail
++;
rightAnswerErrorList
.
add
(
sort
);
taskDetail
(
id
,
"第"
+
sort
+
"行正确答案数不正确"
);
// taskDetail(id, "第" + sort + "行正确答案数不正确");
LOGGER
.
error
(
"第{}行正确答案数不正确"
,
sort
);
}
}
int
index
=
1
;
if
(
options
.
size
()
<
2
)
{
fail
++;
optionErrorList
.
add
(
sort
);
taskDetail
(
id
,
"第"
+
sort
+
"行试题选项个数不正确"
);
// taskDetail(id, "第" + sort + "行试题选项个数不正确");
LOGGER
.
error
(
"第{}行试题选项个数不正确"
,
sort
);
continue
;
}
...
...
@@ -202,7 +206,8 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
}
if
(!
hasRightAnswer
)
{
rightAnswerErrorList
.
add
(
sort
);
taskDetail
(
id
,
"第"
+
sort
+
"行正确答案数不正确"
);
//taskDetail(id, "第" + sort + "行正确答案数不正确");
LOGGER
.
error
(
"第{}行正确答案数不正确"
,
sort
);
}
trQuestionLibrarySubjectVO
.
setTrQuestionSubjectOptionVOList
(
trQuestionSubjectOptionVOList
);
}
...
...
@@ -216,15 +221,16 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
success
++;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
fail
(
taskContext
,
"导入过程中出现错误"
);
LOGGER
.
error
(
"
题库导入异常
:{}"
,
e
.
getMessage
());
//
fail(taskContext, "导入过程中出现错误");
LOGGER
.
error
(
"
导入过程中出现错误
:{}"
,
e
.
getMessage
());
}
}
boolean
result
=
true
;
try
{
if
(
CollectionUtils
.
isNotEmpty
(
optionErrorList
)
||
CollectionUtils
.
isNotEmpty
(
rightAnswerErrorList
)
||
CollectionUtils
.
isNotEmpty
(
typeErrorList
))
{
success
(
taskContext
,
"导入数据有误,请查看明细"
,
url
);
// success(taskContext, "导入数据有误,请查看明细", url);
LOGGER
.
error
(
"导入数据有误,请查看明细:{}"
,
url
);
return
null
;
}
LOGGER
.
info
(
"题库导入insertList:"
,
JSONUtil
.
toJsonStr
(
insertList
));
...
...
@@ -234,35 +240,43 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
for
(
int
i
=
0
;
i
<
n
;
i
++)
{
result
=
questionLibrarySubjectClient
.
insertList
(
insertList
.
subList
(
100
*
i
,
100
*
i
+
100
));
if
(!
result
)
{
success
(
taskContext
,
"数据保存过程中出现错误"
,
url
);
// success(taskContext, "数据保存过程中出现错误", url);
LOGGER
.
error
(
"数据保存过程中出现错误:{}"
,
url
);
}
}
if
(
insertList
.
size
()
%
100
>
0
)
{
result
=
questionLibrarySubjectClient
.
insertList
(
insertList
.
subList
(
100
*
n
,
insertList
.
size
()));
if
(!
result
)
{
success
(
taskContext
,
"数据保存过程中出现错误"
,
url
);
// success(taskContext, "数据保存过程中出现错误", url);
LOGGER
.
error
(
"数据保存过程中出现错误:{}"
,
url
);
}
}
}
else
{
result
=
questionLibrarySubjectClient
.
insertList
(
insertList
);
if
(!
result
)
{
success
(
taskContext
,
"数据保存过程中出现错误"
,
url
);
// success(taskContext, "数据保存过程中出现错误", url);
LOGGER
.
error
(
"数据保存过程中出现错误:{}"
,
url
);
}
}
}
else
{
success
(
taskContext
,
"未检测到数据"
,
""
);
// success(taskContext, "未检测到数据", "");
LOGGER
.
error
(
"未检测到数据:{}"
,
url
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
success
(
taskContext
,
"数据保存过程中出现错误"
,
url
);
//
success(taskContext, "数据保存过程中出现错误", url);
LOGGER
.
error
(
"题库导入选项异常:{}"
,
e
.
getMessage
());
}
if
(
result
)
{
success
(
taskContext
,
"成功导入"
+
insertList
.
size
()
+
"条"
,
url
);
// success(taskContext, "成功导入" + insertList.size() + "条", url);
LOGGER
.
info
(
"成功导入:{}条"
,
insertList
.
size
());
}
else
{
success
(
taskContext
,
"数据保存过程中出现错误"
,
url
);
// success(taskContext, "数据保存过程中出现错误", url);
LOGGER
.
info
(
"数据保存过程中出现错误:{}"
,
insertList
);
}
...
...
@@ -351,7 +365,7 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
}
catch
(
Exception
e
)
{
errorMessage
=
"第"
+
(
i
+
1
)
+
"行"
+
"第"
+
(
j
+
1
)
+
"列解析出错!"
;
e
.
printStackTrace
();
fail
(
taskContext
,
errorMessage
);
//
fail(taskContext, errorMessage);
}
}
try
{
...
...
@@ -362,7 +376,7 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
}
catch
(
Exception
e
)
{
errorMessage
=
"第"
+
(
i
+
2
)
+
"行"
+
"第"
+
(
index
+
1
)
+
"列解析出错!"
;
e
.
printStackTrace
();
fail
(
taskContext
,
errorMessage
);
//
fail(taskContext, errorMessage);
}
try
{
if
(
row
.
getCell
(
index
)
!=
null
)
{
...
...
@@ -372,7 +386,7 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
}
catch
(
Exception
e
)
{
errorMessage
=
"第"
+
(
i
+
2
)
+
"行"
+
"第"
+
(
index
+
1
)
+
"列解析出错!"
;
e
.
printStackTrace
();
fail
(
taskContext
,
errorMessage
);
//
fail(taskContext, errorMessage);
}
try
{
if
(
row
.
getCell
(
index
)
!=
null
)
{
...
...
@@ -382,7 +396,7 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
}
catch
(
Exception
e
)
{
errorMessage
=
"第"
+
(
i
+
2
)
+
"行"
+
"第"
+
(
index
+
1
)
+
"列解析出错!"
;
e
.
printStackTrace
();
fail
(
taskContext
,
errorMessage
);
//
fail(taskContext, errorMessage);
}
try
{
if
(
row
.
getCell
(
index
)
!=
null
)
{
...
...
@@ -392,7 +406,7 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
}
catch
(
Exception
e
)
{
errorMessage
=
"第"
+
(
i
+
2
)
+
"行"
+
"第"
+
(
index
+
1
)
+
"列解析出错!"
;
e
.
printStackTrace
();
fail
(
taskContext
,
errorMessage
);
//
fail(taskContext, errorMessage);
}
try
{
if
(
row
.
getCell
(
index
)
!=
null
)
{
...
...
@@ -401,9 +415,10 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
}
index
++;
}
catch
(
Exception
e
)
{
errorMessage
=
"第"
+
(
i
+
2
)
+
"行"
+
"第"
+
(
index
+
1
)
+
"列解析出错!"
;
//
errorMessage = "第" + (i + 2) + "行" + "第" + (index + 1) + "列解析出错!";
e
.
printStackTrace
();
fail
(
taskContext
,
errorMessage
);
LOGGER
.
error
(
"第{}行"
+
"第{}列解析出错!"
,
(
i
+
2
),
(
index
+
1
));
// fail(taskContext, errorMessage);
}
vo
.
setOption
(
options
);
...
...
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