Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
P
poc-api
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
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
poc
poc-api
Commits
12bd1e7b
Commit
12bd1e7b
authored
Aug 19, 2025
by
R10
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'release_gdghg' of
ssh://gitlab.gsstcloud.com:10022/poc/poc-api
into release_gdghg
parents
765ee98a
7cd572af
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
308 additions
and
15 deletions
+308
-15
AiLawServiceImpl.java
...in/java/cn/com/poc/law/service/impl/AiLawServiceImpl.java
+1
-1
LongTextDialoguesServiceImpl.java
...document/aggregate/impl/LongTextDialoguesServiceImpl.java
+1
-1
PortalServiceImpl.java
...a/cn/com/poc/portal/aggregate/impl/PortalServiceImpl.java
+1
-1
ExaminationService.java
...java/cn/com/poc/writing/aggregate/ExaminationService.java
+12
-1
AiWritingServiceImpl.java
.../com/poc/writing/aggregate/impl/AiWritingServiceImpl.java
+1
-1
ExaminationServiceImpl.java
...om/poc/writing/aggregate/impl/ExaminationServiceImpl.java
+116
-7
BizExaminationConvert.java
...ava/cn/com/poc/writing/convert/BizExaminationConvert.java
+8
-0
BizExaminationDto.java
src/main/java/cn/com/poc/writing/dto/BizExaminationDto.java
+24
-0
ExaminationDto.java
src/main/java/cn/com/poc/writing/dto/ExaminationDto.java
+30
-0
BizExaminationEntity.java
.../java/cn/com/poc/writing/entity/BizExaminationEntity.java
+24
-0
ExaminationEntity.java
...ain/java/cn/com/poc/writing/entity/ExaminationEntity.java
+30
-0
BizExaminationModel.java
...in/java/cn/com/poc/writing/model/BizExaminationModel.java
+32
-0
ExaminationRest.java
src/main/java/cn/com/poc/writing/rest/ExaminationRest.java
+7
-0
ExaminationRestImpl.java
...ava/cn/com/poc/writing/rest/impl/ExaminationRestImpl.java
+11
-3
ExaminationTest.java
src/test/java/cn/com/poc/examination/ExaminationTest.java
+10
-0
No files found.
src/main/java/cn/com/poc/law/service/impl/AiLawServiceImpl.java
View file @
12bd1e7b
...
@@ -128,7 +128,7 @@ public class AiLawServiceImpl implements AiLawService {
...
@@ -128,7 +128,7 @@ public class AiLawServiceImpl implements AiLawService {
List
<
Tool
>
tools
=
AgentApplicationTools
.
buildFunctionConfig
(
null
,
"N"
,
dialoguesId
,
dialoguesId
,
unitIds
,
"N"
);
List
<
Tool
>
tools
=
AgentApplicationTools
.
buildFunctionConfig
(
null
,
"N"
,
dialoguesId
,
dialoguesId
,
unitIds
,
"N"
);
CheckPluginUseEntity
checkPluginUseEntity
=
AgentApplicationTools
.
checkPluginUse
(
messages
,
tools
,
null
);
CheckPluginUseEntity
checkPluginUseEntity
=
AgentApplicationTools
.
checkPluginUse
(
messages
,
tools
,
null
);
FunctionCallResult
functionCallResult
=
checkPluginUseEntity
.
getFunctionCallResult
();
FunctionCallResult
functionCallResult
=
checkPluginUseEntity
.
getFunctionCallResult
();
if
(
functionCallResult
!=
null
)
{
if
(
functionCallResult
!=
null
&&
functionCallResult
.
isNeed
()
)
{
FunctionCall
functionCall
=
functionCallResult
.
getFunctionCall
();
FunctionCall
functionCall
=
functionCallResult
.
getFunctionCall
();
if
(
"web_search"
.
equals
(
functionCall
.
getName
()))
{
if
(
"web_search"
.
equals
(
functionCall
.
getName
()))
{
AbstractFunctionResult
<
List
<
WebSearchFunctionResult
>>
functionResult
=
webSearchFunction
.
doFunction
(
functionCall
.
getArguments
(),
dialoguesId
,
null
,
null
);
AbstractFunctionResult
<
List
<
WebSearchFunctionResult
>>
functionResult
=
webSearchFunction
.
doFunction
(
functionCall
.
getArguments
(),
dialoguesId
,
null
,
null
);
...
...
src/main/java/cn/com/poc/long_document/aggregate/impl/LongTextDialoguesServiceImpl.java
View file @
12bd1e7b
...
@@ -613,7 +613,7 @@ public class LongTextDialoguesServiceImpl implements LongTextDialoguesService {
...
@@ -613,7 +613,7 @@ public class LongTextDialoguesServiceImpl implements LongTextDialoguesService {
List
<
Tool
>
tools
=
AgentApplicationTools
.
buildFunctionConfig
(
null
,
"N"
,
dialoguesId
,
dialoguesId
,
unitIds
,
"N"
);
List
<
Tool
>
tools
=
AgentApplicationTools
.
buildFunctionConfig
(
null
,
"N"
,
dialoguesId
,
dialoguesId
,
unitIds
,
"N"
);
CheckPluginUseEntity
checkPluginUseEntity
=
AgentApplicationTools
.
checkPluginUse
(
messages
,
tools
,
null
);
CheckPluginUseEntity
checkPluginUseEntity
=
AgentApplicationTools
.
checkPluginUse
(
messages
,
tools
,
null
);
FunctionCallResult
functionCallResult
=
checkPluginUseEntity
.
getFunctionCallResult
();
FunctionCallResult
functionCallResult
=
checkPluginUseEntity
.
getFunctionCallResult
();
if
(
functionCallResult
!=
null
)
{
if
(
functionCallResult
!=
null
&&
functionCallResult
.
isNeed
()
)
{
FunctionCall
functionCall
=
functionCallResult
.
getFunctionCall
();
FunctionCall
functionCall
=
functionCallResult
.
getFunctionCall
();
if
(
functionCallResult
.
isNeed
()
&&
functionCall
!=
null
&&
"web_search"
.
equals
(
functionCall
.
getName
()))
{
if
(
functionCallResult
.
isNeed
()
&&
functionCall
!=
null
&&
"web_search"
.
equals
(
functionCall
.
getName
()))
{
AbstractFunctionResult
<
List
<
WebSearchFunctionResult
>>
functionResult
=
webSearchFunction
.
doFunction
(
functionCall
.
getArguments
(),
dialoguesId
,
null
,
null
);
AbstractFunctionResult
<
List
<
WebSearchFunctionResult
>>
functionResult
=
webSearchFunction
.
doFunction
(
functionCall
.
getArguments
(),
dialoguesId
,
null
,
null
);
...
...
src/main/java/cn/com/poc/portal/aggregate/impl/PortalServiceImpl.java
View file @
12bd1e7b
...
@@ -143,7 +143,7 @@ public class PortalServiceImpl implements PortalService {
...
@@ -143,7 +143,7 @@ public class PortalServiceImpl implements PortalService {
List
<
Tool
>
tools
=
AgentApplicationTools
.
buildFunctionConfig
(
null
,
"N"
,
callEntity
.
getDialoguesId
(),
callEntity
.
getDialoguesId
(),
unitIds
,
"N"
);
List
<
Tool
>
tools
=
AgentApplicationTools
.
buildFunctionConfig
(
null
,
"N"
,
callEntity
.
getDialoguesId
(),
callEntity
.
getDialoguesId
(),
unitIds
,
"N"
);
CheckPluginUseEntity
checkPluginUseEntity
=
AgentApplicationTools
.
checkPluginUse
(
messages
,
tools
,
null
);
CheckPluginUseEntity
checkPluginUseEntity
=
AgentApplicationTools
.
checkPluginUse
(
messages
,
tools
,
null
);
FunctionCallResult
functionCallResult
=
checkPluginUseEntity
.
getFunctionCallResult
();
FunctionCallResult
functionCallResult
=
checkPluginUseEntity
.
getFunctionCallResult
();
if
(
functionCallResult
!=
null
)
{
if
(
functionCallResult
!=
null
&&
functionCallResult
.
isNeed
()
)
{
FunctionCall
functionCall
=
functionCallResult
.
getFunctionCall
();
FunctionCall
functionCall
=
functionCallResult
.
getFunctionCall
();
if
(
"web_search"
.
equals
(
functionCall
.
getName
()))
{
if
(
"web_search"
.
equals
(
functionCall
.
getName
()))
{
AbstractFunctionResult
<
List
<
WebSearchFunctionResult
>>
functionResult
=
webSearchFunction
.
doFunction
(
functionCall
.
getArguments
(),
callEntity
.
getDialoguesId
(),
null
,
null
);
AbstractFunctionResult
<
List
<
WebSearchFunctionResult
>>
functionResult
=
webSearchFunction
.
doFunction
(
functionCall
.
getArguments
(),
callEntity
.
getDialoguesId
(),
null
,
null
);
...
...
src/main/java/cn/com/poc/writing/aggregate/ExaminationService.java
View file @
12bd1e7b
...
@@ -47,8 +47,19 @@ public interface ExaminationService {
...
@@ -47,8 +47,19 @@ public interface ExaminationService {
/**
/**
* 批量删除
* 批量删除
*
* @param examinationIds 试卷ID
* @param examinationIds 试卷ID
* @param userId 用户ID
* @param userId 用户ID
*/
*/
boolean
batchDelete
(
List
<
String
>
examinationIds
,
Long
userId
);
boolean
batchDelete
(
List
<
String
>
examinationIds
,
Long
userId
);
/**
* 试卷文件下载
*
* @param examinationId 试卷id
* @param userId 用户id
* @return 下载地址
*/
String
downloadExamination
(
String
examinationId
,
Long
userId
);
}
}
src/main/java/cn/com/poc/writing/aggregate/impl/AiWritingServiceImpl.java
View file @
12bd1e7b
...
@@ -236,7 +236,7 @@ public class AiWritingServiceImpl implements AiWritingService {
...
@@ -236,7 +236,7 @@ public class AiWritingServiceImpl implements AiWritingService {
List
<
Tool
>
tools
=
AgentApplicationTools
.
buildFunctionConfig
(
null
,
"N"
,
dialoguesId
,
dialoguesId
,
unitIds
,
"N"
);
List
<
Tool
>
tools
=
AgentApplicationTools
.
buildFunctionConfig
(
null
,
"N"
,
dialoguesId
,
dialoguesId
,
unitIds
,
"N"
);
CheckPluginUseEntity
checkPluginUseEntity
=
AgentApplicationTools
.
checkPluginUse
(
messages
,
tools
,
null
);
CheckPluginUseEntity
checkPluginUseEntity
=
AgentApplicationTools
.
checkPluginUse
(
messages
,
tools
,
null
);
FunctionCallResult
functionCallResult
=
checkPluginUseEntity
.
getFunctionCallResult
();
FunctionCallResult
functionCallResult
=
checkPluginUseEntity
.
getFunctionCallResult
();
if
(
functionCallResult
!=
null
)
{
if
(
functionCallResult
!=
null
&&
functionCallResult
.
isNeed
()
)
{
FunctionCall
functionCall
=
functionCallResult
.
getFunctionCall
();
FunctionCall
functionCall
=
functionCallResult
.
getFunctionCall
();
if
(
functionCallResult
.
isNeed
()
&&
functionCall
!=
null
&&
"web_search"
.
equals
(
functionCall
.
getName
()))
{
if
(
functionCallResult
.
isNeed
()
&&
functionCall
!=
null
&&
"web_search"
.
equals
(
functionCall
.
getName
()))
{
AbstractFunctionResult
<
List
<
WebSearchFunctionResult
>>
functionResult
=
webSearchFunction
.
doFunction
(
functionCall
.
getArguments
(),
dialoguesId
,
null
,
null
);
AbstractFunctionResult
<
List
<
WebSearchFunctionResult
>>
functionResult
=
webSearchFunction
.
doFunction
(
functionCall
.
getArguments
(),
dialoguesId
,
null
,
null
);
...
...
src/main/java/cn/com/poc/writing/aggregate/impl/ExaminationServiceImpl.java
View file @
12bd1e7b
...
@@ -3,7 +3,11 @@ package cn.com.poc.writing.aggregate.impl;
...
@@ -3,7 +3,11 @@ package cn.com.poc.writing.aggregate.impl;
import
cn.com.poc.agent_application.entity.BizAgentApplicationGcConfigEntity
;
import
cn.com.poc.agent_application.entity.BizAgentApplicationGcConfigEntity
;
import
cn.com.poc.agent_application.service.BizAgentApplicationGcConfigService
;
import
cn.com.poc.agent_application.service.BizAgentApplicationGcConfigService
;
import
cn.com.poc.common.constant.CommonConstant
;
import
cn.com.poc.common.constant.CommonConstant
;
import
cn.com.poc.common.utils.*
;
import
cn.com.poc.common.service.BosConfigService
;
import
cn.com.poc.common.utils.DocumentLoad
;
import
cn.com.poc.common.utils.JsonUtils
;
import
cn.com.poc.common.utils.SSEUtil
;
import
cn.com.poc.common.utils.UUIDTool
;
import
cn.com.poc.thirdparty.resource.demand.ai.constants.LLMRoleEnum
;
import
cn.com.poc.thirdparty.resource.demand.ai.constants.LLMRoleEnum
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Message
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Message
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult
;
...
@@ -20,15 +24,16 @@ import cn.com.yict.framemax.frame.service.FmxParamConfigService;
...
@@ -20,15 +24,16 @@ import cn.com.yict.framemax.frame.service.FmxParamConfigService;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.xwpf.usermodel.*
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.io.
BufferedReader
;
import
java.io.
*
;
import
java.
io.File
;
import
java.
util.ArrayList
;
import
java.
io.IOException
;
import
java.
util.Arrays
;
import
java.util.
*
;
import
java.util.
List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -49,6 +54,9 @@ public class ExaminationServiceImpl implements ExaminationService {
...
@@ -49,6 +54,9 @@ public class ExaminationServiceImpl implements ExaminationService {
@Resource
@Resource
private
LLMService
llmService
;
private
LLMService
llmService
;
@Resource
private
BosConfigService
bosConfigService
;
@Resource
@Resource
private
BizAgentApplicationGcConfigService
bizAgentApplicationGcConfigService
;
private
BizAgentApplicationGcConfigService
bizAgentApplicationGcConfigService
;
...
@@ -130,6 +138,8 @@ public class ExaminationServiceImpl implements ExaminationService {
...
@@ -130,6 +138,8 @@ public class ExaminationServiceImpl implements ExaminationService {
saveExaminationEntity
.
setLevel
(
generateExaminationEntity
.
getLevel
());
saveExaminationEntity
.
setLevel
(
generateExaminationEntity
.
getLevel
());
saveExaminationEntity
.
setLanguage
(
generateExaminationEntity
.
getLanguage
());
saveExaminationEntity
.
setLanguage
(
generateExaminationEntity
.
getLanguage
());
saveExaminationEntity
.
setPositions
(
generateExaminationEntity
.
getPositions
());
saveExaminationEntity
.
setPositions
(
generateExaminationEntity
.
getPositions
());
saveExaminationEntity
.
setFileUrl
(
generateExaminationEntity
.
getFileUrl
());
saveExaminationEntity
.
setContent
(
generateExaminationEntity
.
getContent
());
saveExaminationEntity
.
setExaminationDetail
(
JsonUtils
.
serialize
(
examinationDetailEntities
));
saveExaminationEntity
.
setExaminationDetail
(
JsonUtils
.
serialize
(
examinationDetailEntities
));
bizExaminationService
.
save
(
saveExaminationEntity
);
bizExaminationService
.
save
(
saveExaminationEntity
);
}
else
{
}
else
{
...
@@ -140,6 +150,8 @@ public class ExaminationServiceImpl implements ExaminationService {
...
@@ -140,6 +150,8 @@ public class ExaminationServiceImpl implements ExaminationService {
updateExaminationEntity
.
setN
(
generateExaminationEntity
.
getN
());
updateExaminationEntity
.
setN
(
generateExaminationEntity
.
getN
());
updateExaminationEntity
.
setLevel
(
generateExaminationEntity
.
getLevel
());
updateExaminationEntity
.
setLevel
(
generateExaminationEntity
.
getLevel
());
updateExaminationEntity
.
setLanguage
(
generateExaminationEntity
.
getLanguage
());
updateExaminationEntity
.
setLanguage
(
generateExaminationEntity
.
getLanguage
());
updateExaminationEntity
.
setFileUrl
(
generateExaminationEntity
.
getFileUrl
());
updateExaminationEntity
.
setContent
(
generateExaminationEntity
.
getContent
());
updateExaminationEntity
.
setPositions
(
generateExaminationEntity
.
getPositions
());
updateExaminationEntity
.
setPositions
(
generateExaminationEntity
.
getPositions
());
updateExaminationEntity
.
setExaminationDetail
(
JsonUtils
.
serialize
(
examinationDetailEntities
));
updateExaminationEntity
.
setExaminationDetail
(
JsonUtils
.
serialize
(
examinationDetailEntities
));
bizExaminationService
.
update
(
updateExaminationEntity
);
bizExaminationService
.
update
(
updateExaminationEntity
);
...
@@ -177,9 +189,12 @@ public class ExaminationServiceImpl implements ExaminationService {
...
@@ -177,9 +189,12 @@ public class ExaminationServiceImpl implements ExaminationService {
result
.
setTitle
(
examinationEntity
.
getTitle
());
result
.
setTitle
(
examinationEntity
.
getTitle
());
result
.
setN
(
examinationEntity
.
getN
());
result
.
setN
(
examinationEntity
.
getN
());
result
.
setLevel
(
examinationEntity
.
getLevel
());
result
.
setLevel
(
examinationEntity
.
getLevel
());
result
.
setQuestionType
(
Arrays
.
stream
(
examinationEntity
.
getQuestionType
().
split
(
","
)).
collect
(
Collectors
.
toList
()));
result
.
setDate
(
examinationEntity
.
getModifiedTime
());
result
.
setDate
(
examinationEntity
.
getModifiedTime
());
result
.
setTotalScore
(
examinationEntity
.
getTotalScore
());
result
.
setTotalScore
(
examinationEntity
.
getTotalScore
());
result
.
setPositions
(
examinationEntity
.
getPositions
());
result
.
setPositions
(
examinationEntity
.
getPositions
());
result
.
setFileUrl
(
examinationEntity
.
getFileUrl
());
result
.
setContent
(
examinationEntity
.
getContent
());
return
result
;
return
result
;
}
}
...
@@ -226,8 +241,102 @@ public class ExaminationServiceImpl implements ExaminationService {
...
@@ -226,8 +241,102 @@ public class ExaminationServiceImpl implements ExaminationService {
return
true
;
return
true
;
}
}
@Override
public
String
downloadExamination
(
String
examinationId
,
Long
userId
)
{
BizExaminationEntity
bizExaminationEntity
=
new
BizExaminationEntity
();
bizExaminationEntity
.
setExaminationId
(
examinationId
);
bizExaminationEntity
.
setMemberId
(
userId
);
bizExaminationEntity
.
setIsDeleted
(
CommonConstant
.
IsDeleted
.
N
);
List
<
BizExaminationEntity
>
bizExaminationEntities
=
bizExaminationService
.
findByExample
(
bizExaminationEntity
,
null
);
if
(
CollectionUtils
.
isEmpty
(
bizExaminationEntities
)
||
StringUtils
.
isBlank
(
bizExaminationEntities
.
get
(
0
).
getExaminationDetail
()))
{
throw
new
BusinessException
(
"无法获取试卷内容"
);
}
BizExaminationEntity
examinationEntity
=
bizExaminationEntities
.
get
(
0
);
File
file
=
buildExaminationFile
(
examinationEntity
);
try
(
FileInputStream
fileInputStream
=
new
FileInputStream
(
file
))
{
return
bosConfigService
.
upload
(
fileInputStream
,
"docx"
,
""
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"------------ 生成试卷文件失败 ---------------"
,
e
);
throw
new
BusinessException
(
"生成文件失败"
);
}
finally
{
if
(
file
.
exists
())
{
file
.
delete
();
}
}
}
/**
* 生成试卷文件
*
* @param examinationEntity
* @return
*/
private
File
buildExaminationFile
(
BizExaminationEntity
examinationEntity
)
{
// 遍历试卷题目,写入试卷
List
<
ExaminationDetail
>
examinationDetails
=
JsonUtils
.
deSerialize
(
examinationEntity
.
getExaminationDetail
(),
new
TypeReference
<
List
<
ExaminationDetail
>>()
{
}.
getType
());
try
(
XWPFDocument
document
=
new
XWPFDocument
())
{
// 写入标题
XWPFParagraph
titleParagraph
=
document
.
createParagraph
();
titleParagraph
.
setAlignment
(
ParagraphAlignment
.
CENTER
);
titleParagraph
.
setVerticalAlignment
(
TextAlignment
.
CENTER
);
XWPFRun
titleParagraphRun
=
titleParagraph
.
createRun
();
titleParagraphRun
.
setText
(
examinationEntity
.
getTitle
());
titleParagraphRun
.
setBold
(
true
);
titleParagraphRun
.
setFontSize
(
22
);
// 详情
XWPFParagraph
detailParagraph
=
document
.
createParagraph
();
detailParagraph
.
setAlignment
(
ParagraphAlignment
.
CENTER
);
detailParagraph
.
setVerticalAlignment
(
TextAlignment
.
CENTER
);
XWPFRun
detailParagraphRun
=
detailParagraph
.
createRun
();
detailParagraphRun
.
setText
(
"总分: "
+
examinationEntity
.
getTotalScore
()
+
"分 难度级别:"
+
examinationEntity
.
getLevel
()
+
" 总题数: "
+
examinationDetails
.
size
());
detailParagraphRun
.
addBreak
();
//问题
for
(
int
i
=
0
;
i
<
examinationDetails
.
size
();
i
++)
{
ExaminationDetail
examinationDetail
=
examinationDetails
.
get
(
i
);
//题目类型/分数
XWPFParagraph
questionTypeParagraph
=
document
.
createParagraph
();
questionTypeParagraph
.
setAlignment
(
ParagraphAlignment
.
LEFT
);
questionTypeParagraph
.
setVerticalAlignment
(
TextAlignment
.
AUTO
);
XWPFRun
questionTypeParagraphRun
=
questionTypeParagraph
.
createRun
();
questionTypeParagraphRun
.
setText
(
i
+
1
+
"."
+
examinationDetail
.
getQuestionType
()
+
"("
+
examinationDetail
.
getScore
()
+
"分)"
);
// 问题
XWPFParagraph
questionParagraph
=
document
.
createParagraph
();
questionParagraph
.
setAlignment
(
ParagraphAlignment
.
LEFT
);
questionParagraph
.
setVerticalAlignment
(
TextAlignment
.
AUTO
);
XWPFRun
questionParagraphRun
=
questionParagraph
.
createRun
();
String
question
=
examinationDetail
.
getQuestion
();
questionParagraphRun
.
setText
(
question
+
"( )"
);
//选项
XWPFParagraph
choiceParagraph
=
document
.
createParagraph
();
choiceParagraph
.
setAlignment
(
ParagraphAlignment
.
LEFT
);
choiceParagraph
.
setVerticalAlignment
(
TextAlignment
.
AUTO
);
XWPFRun
choiceParagraphRun
=
choiceParagraph
.
createRun
();
List
<
String
>
choice
=
examinationDetail
.
getChoice
();
for
(
int
j
=
0
;
j
<
choice
.
size
();
j
++)
{
choiceParagraphRun
.
setText
(
choice
.
get
(
j
),
j
);
choiceParagraphRun
.
addBreak
();
}
}
File
tempFile
=
File
.
createTempFile
(
UUIDTool
.
getUUID
(),
".docx"
);
try
(
FileOutputStream
out
=
new
FileOutputStream
(
tempFile
))
{
document
.
write
(
out
);
}
return
tempFile
;
}
catch
(
IOException
e
)
{
throw
new
BusinessException
(
e
);
}
}
private
Message
[]
buildMessage
(
String
prompt
,
GenerateExaminationEntity
generateExaminationEntity
)
{
private
Message
[]
buildMessage
(
String
prompt
,
GenerateExaminationEntity
generateExaminationEntity
)
{
String
fileContent
=
generateExaminationEntity
.
getPositions
()
;
String
fileContent
=
StringUtils
.
EMPTY
;
if
(
StringUtils
.
isNoneBlank
(
generateExaminationEntity
.
getFileUrl
()))
{
if
(
StringUtils
.
isNoneBlank
(
generateExaminationEntity
.
getFileUrl
()))
{
File
file
=
DocumentLoad
.
downloadURLDocument
(
generateExaminationEntity
.
getFileUrl
());
File
file
=
DocumentLoad
.
downloadURLDocument
(
generateExaminationEntity
.
getFileUrl
());
fileContent
=
DocumentLoad
.
documentToText
(
file
);
fileContent
=
DocumentLoad
.
documentToText
(
file
);
...
@@ -238,7 +347,7 @@ public class ExaminationServiceImpl implements ExaminationService {
...
@@ -238,7 +347,7 @@ public class ExaminationServiceImpl implements ExaminationService {
.
replace
(
"${number}"
,
generateExaminationEntity
.
getN
().
toString
())
.
replace
(
"${number}"
,
generateExaminationEntity
.
getN
().
toString
())
.
replace
(
"${total_score}"
,
generateExaminationEntity
.
getTotalScore
().
toString
())
.
replace
(
"${total_score}"
,
generateExaminationEntity
.
getTotalScore
().
toString
())
.
replace
(
"${level}"
,
generateExaminationEntity
.
getLevel
())
.
replace
(
"${level}"
,
generateExaminationEntity
.
getLevel
())
.
replace
(
"${position}"
,
generateExaminationEntity
.
getPositions
())
.
replace
(
"${position}"
,
StringUtils
.
isBlank
(
generateExaminationEntity
.
getPositions
())
?
StringUtils
.
EMPTY
:
generateExaminationEntity
.
getPositions
())
.
replace
(
"${question_type}"
,
StringUtils
.
join
(
generateExaminationEntity
.
getQuestionType
(),
","
));
.
replace
(
"${question_type}"
,
StringUtils
.
join
(
generateExaminationEntity
.
getQuestionType
(),
","
));
Message
userMessage
=
new
Message
();
Message
userMessage
=
new
Message
();
...
...
src/main/java/cn/com/poc/writing/convert/BizExaminationConvert.java
View file @
12bd1e7b
...
@@ -20,6 +20,8 @@ public class BizExaminationConvert {
...
@@ -20,6 +20,8 @@ public class BizExaminationConvert {
entity
.
setLanguage
(
model
.
getLanguage
());
entity
.
setLanguage
(
model
.
getLanguage
());
entity
.
setPositions
(
model
.
getPositions
());
entity
.
setPositions
(
model
.
getPositions
());
entity
.
setExaminationDetail
(
model
.
getExaminationDetail
());
entity
.
setExaminationDetail
(
model
.
getExaminationDetail
());
entity
.
setFileUrl
(
model
.
getFileUrl
());
entity
.
setContent
(
model
.
getContent
());
entity
.
setIsDeleted
(
model
.
getIsDeleted
());
entity
.
setIsDeleted
(
model
.
getIsDeleted
());
entity
.
setCreator
(
model
.
getCreator
());
entity
.
setCreator
(
model
.
getCreator
());
entity
.
setCreatedTime
(
model
.
getCreatedTime
());
entity
.
setCreatedTime
(
model
.
getCreatedTime
());
...
@@ -42,6 +44,8 @@ public class BizExaminationConvert {
...
@@ -42,6 +44,8 @@ public class BizExaminationConvert {
model
.
setLanguage
(
entity
.
getLanguage
());
model
.
setLanguage
(
entity
.
getLanguage
());
model
.
setPositions
(
entity
.
getPositions
());
model
.
setPositions
(
entity
.
getPositions
());
model
.
setExaminationDetail
(
entity
.
getExaminationDetail
());
model
.
setExaminationDetail
(
entity
.
getExaminationDetail
());
model
.
setFileUrl
(
entity
.
getFileUrl
());
model
.
setContent
(
entity
.
getContent
());
model
.
setIsDeleted
(
entity
.
getIsDeleted
());
model
.
setIsDeleted
(
entity
.
getIsDeleted
());
model
.
setCreator
(
entity
.
getCreator
());
model
.
setCreator
(
entity
.
getCreator
());
model
.
setCreatedTime
(
entity
.
getCreatedTime
());
model
.
setCreatedTime
(
entity
.
getCreatedTime
());
...
@@ -64,6 +68,8 @@ public class BizExaminationConvert {
...
@@ -64,6 +68,8 @@ public class BizExaminationConvert {
dto
.
setLanguage
(
entity
.
getLanguage
());
dto
.
setLanguage
(
entity
.
getLanguage
());
dto
.
setPositions
(
entity
.
getPositions
());
dto
.
setPositions
(
entity
.
getPositions
());
dto
.
setExaminationDetail
(
entity
.
getExaminationDetail
());
dto
.
setExaminationDetail
(
entity
.
getExaminationDetail
());
dto
.
setFileUrl
(
entity
.
getFileUrl
());
dto
.
setContent
(
entity
.
getContent
());
dto
.
setIsDeleted
(
entity
.
getIsDeleted
());
dto
.
setIsDeleted
(
entity
.
getIsDeleted
());
dto
.
setCreator
(
entity
.
getCreator
());
dto
.
setCreator
(
entity
.
getCreator
());
dto
.
setCreatedTime
(
entity
.
getCreatedTime
());
dto
.
setCreatedTime
(
entity
.
getCreatedTime
());
...
@@ -86,6 +92,8 @@ public class BizExaminationConvert {
...
@@ -86,6 +92,8 @@ public class BizExaminationConvert {
entity
.
setLanguage
(
dto
.
getLanguage
());
entity
.
setLanguage
(
dto
.
getLanguage
());
entity
.
setPositions
(
dto
.
getPositions
());
entity
.
setPositions
(
dto
.
getPositions
());
entity
.
setExaminationDetail
(
dto
.
getExaminationDetail
());
entity
.
setExaminationDetail
(
dto
.
getExaminationDetail
());
entity
.
setFileUrl
(
dto
.
getFileUrl
());
entity
.
setContent
(
dto
.
getContent
());
entity
.
setIsDeleted
(
dto
.
getIsDeleted
());
entity
.
setIsDeleted
(
dto
.
getIsDeleted
());
entity
.
setCreator
(
dto
.
getCreator
());
entity
.
setCreator
(
dto
.
getCreator
());
entity
.
setCreatedTime
(
dto
.
getCreatedTime
());
entity
.
setCreatedTime
(
dto
.
getCreatedTime
());
...
...
src/main/java/cn/com/poc/writing/dto/BizExaminationDto.java
View file @
12bd1e7b
...
@@ -135,6 +135,30 @@ public class BizExaminationDto {
...
@@ -135,6 +135,30 @@ public class BizExaminationDto {
public
void
setExaminationDetail
(
java
.
lang
.
String
examinationDetail
){
public
void
setExaminationDetail
(
java
.
lang
.
String
examinationDetail
){
this
.
examinationDetail
=
examinationDetail
;
this
.
examinationDetail
=
examinationDetail
;
}
/** file_url
*文件地址
*/
private
java
.
lang
.
String
fileUrl
;
public
java
.
lang
.
String
getFileUrl
(){
return
this
.
fileUrl
;
}
public
void
setFileUrl
(
java
.
lang
.
String
fileUrl
){
this
.
fileUrl
=
fileUrl
;
}
/** content
*输入文本
*/
private
java
.
lang
.
String
content
;
public
java
.
lang
.
String
getContent
(){
return
this
.
content
;
}
public
void
setContent
(
java
.
lang
.
String
content
){
this
.
content
=
content
;
}
}
/** is_deleted
/** is_deleted
*是否删除 Y 是 N 否
*是否删除 Y 是 N 否
...
...
src/main/java/cn/com/poc/writing/dto/ExaminationDto.java
View file @
12bd1e7b
...
@@ -29,6 +29,36 @@ public class ExaminationDto {
...
@@ -29,6 +29,36 @@ public class ExaminationDto {
private
String
positions
;
private
String
positions
;
private
List
<
String
>
questionType
;
private
String
content
;
private
String
fileUrl
;
public
String
getContent
()
{
return
content
;
}
public
void
setContent
(
String
content
)
{
this
.
content
=
content
;
}
public
String
getFileUrl
()
{
return
fileUrl
;
}
public
void
setFileUrl
(
String
fileUrl
)
{
this
.
fileUrl
=
fileUrl
;
}
public
List
<
String
>
getQuestionType
()
{
return
questionType
;
}
public
void
setQuestionType
(
List
<
String
>
questionType
)
{
this
.
questionType
=
questionType
;
}
public
Integer
getTotalScore
()
{
public
Integer
getTotalScore
()
{
return
totalScore
;
return
totalScore
;
}
}
...
...
src/main/java/cn/com/poc/writing/entity/BizExaminationEntity.java
View file @
12bd1e7b
...
@@ -135,6 +135,30 @@ public class BizExaminationEntity {
...
@@ -135,6 +135,30 @@ public class BizExaminationEntity {
public
void
setExaminationDetail
(
java
.
lang
.
String
examinationDetail
){
public
void
setExaminationDetail
(
java
.
lang
.
String
examinationDetail
){
this
.
examinationDetail
=
examinationDetail
;
this
.
examinationDetail
=
examinationDetail
;
}
/** file_url
*文件地址
*/
private
java
.
lang
.
String
fileUrl
;
public
java
.
lang
.
String
getFileUrl
(){
return
this
.
fileUrl
;
}
public
void
setFileUrl
(
java
.
lang
.
String
fileUrl
){
this
.
fileUrl
=
fileUrl
;
}
/** content
*输入文本
*/
private
java
.
lang
.
String
content
;
public
java
.
lang
.
String
getContent
(){
return
this
.
content
;
}
public
void
setContent
(
java
.
lang
.
String
content
){
this
.
content
=
content
;
}
}
/** is_deleted
/** is_deleted
*是否删除 Y 是 N 否
*是否删除 Y 是 N 否
...
...
src/main/java/cn/com/poc/writing/entity/ExaminationEntity.java
View file @
12bd1e7b
...
@@ -23,8 +23,38 @@ public class ExaminationEntity {
...
@@ -23,8 +23,38 @@ public class ExaminationEntity {
private
String
positions
;
private
String
positions
;
private
List
<
String
>
questionType
;
private
List
<
ExaminationDetail
>
examinationDetails
;
private
List
<
ExaminationDetail
>
examinationDetails
;
private
String
content
;
private
String
fileUrl
;
public
String
getContent
()
{
return
content
;
}
public
void
setContent
(
String
content
)
{
this
.
content
=
content
;
}
public
String
getFileUrl
()
{
return
fileUrl
;
}
public
void
setFileUrl
(
String
fileUrl
)
{
this
.
fileUrl
=
fileUrl
;
}
public
List
<
String
>
getQuestionType
()
{
return
questionType
;
}
public
void
setQuestionType
(
List
<
String
>
questionType
)
{
this
.
questionType
=
questionType
;
}
public
Integer
getTotalScore
()
{
public
Integer
getTotalScore
()
{
return
totalScore
;
return
totalScore
;
}
}
...
...
src/main/java/cn/com/poc/writing/model/BizExaminationModel.java
View file @
12bd1e7b
...
@@ -202,6 +202,38 @@ public class BizExaminationModel extends BaseModelClass implements Serializable
...
@@ -202,6 +202,38 @@ public class BizExaminationModel extends BaseModelClass implements Serializable
}
}
/** file_url
*文件地址
*/
private
java
.
lang
.
String
fileUrl
;
@Column
(
name
=
"file_url"
,
length
=
150
)
public
java
.
lang
.
String
getFileUrl
(){
return
this
.
fileUrl
;
}
public
void
setFileUrl
(
java
.
lang
.
String
fileUrl
){
this
.
fileUrl
=
fileUrl
;
super
.
addValidField
(
"fileUrl"
);
}
/** content
*输入文本
*/
private
java
.
lang
.
String
content
;
@Column
(
name
=
"content"
,
length
=
2147483647
)
public
java
.
lang
.
String
getContent
(){
return
this
.
content
;
}
public
void
setContent
(
java
.
lang
.
String
content
){
this
.
content
=
content
;
super
.
addValidField
(
"content"
);
}
/** is_deleted
/** is_deleted
*是否删除 Y 是 N 否
*是否删除 Y 是 N 否
*/
*/
...
...
src/main/java/cn/com/poc/writing/rest/ExaminationRest.java
View file @
12bd1e7b
...
@@ -59,4 +59,11 @@ public interface ExaminationRest extends BaseRest {
...
@@ -59,4 +59,11 @@ public interface ExaminationRest extends BaseRest {
*/
*/
void
batchDelete
(
@RequestBody
ExaminationBatchDeleteDto
dto
);
void
batchDelete
(
@RequestBody
ExaminationBatchDeleteDto
dto
);
/**
* 试卷文件下载
*
* @param examinationId 试卷ID
*/
String
downloadExamination
(
@RequestParam
(
value
=
"examinationId"
)
String
examinationId
);
}
}
src/main/java/cn/com/poc/writing/rest/impl/ExaminationRestImpl.java
View file @
12bd1e7b
...
@@ -48,9 +48,10 @@ public class ExaminationRestImpl implements ExaminationRest {
...
@@ -48,9 +48,10 @@ public class ExaminationRestImpl implements ExaminationRest {
Assert
.
notBlank
(
generateExaminationDto
.
getLanguage
());
Assert
.
notBlank
(
generateExaminationDto
.
getLanguage
());
Assert
.
notBlank
(
generateExaminationDto
.
getTitle
());
Assert
.
notBlank
(
generateExaminationDto
.
getTitle
());
Assert
.
notBlank
(
generateExaminationDto
.
getLevel
());
Assert
.
notBlank
(
generateExaminationDto
.
getLevel
());
Assert
.
notBlank
(
generateExaminationDto
.
getPositions
());
//
Assert.notBlank(generateExaminationDto.getPositions());
Assert
.
notEmpty
(
generateExaminationDto
.
getQuestionType
());
Assert
.
notEmpty
(
generateExaminationDto
.
getQuestionType
());
Assert
.
notNull
(
generateExaminationDto
.
getN
());
Assert
.
notNull
(
generateExaminationDto
.
getN
());
Assert
.
isTrue
(
generateExaminationDto
.
getN
()
<=
20
,
"总题数不可大于20题"
);
UserBaseEntity
currentUser
=
BlContext
.
getCurrentUser
();
UserBaseEntity
currentUser
=
BlContext
.
getCurrentUser
();
GenerateExaminationEntity
generateExaminationEntity
=
new
GenerateExaminationEntity
();
GenerateExaminationEntity
generateExaminationEntity
=
new
GenerateExaminationEntity
();
...
@@ -89,11 +90,18 @@ public class ExaminationRestImpl implements ExaminationRest {
...
@@ -89,11 +90,18 @@ public class ExaminationRestImpl implements ExaminationRest {
@Override
@Override
public
void
batchDelete
(
ExaminationBatchDeleteDto
dto
)
{
public
void
batchDelete
(
ExaminationBatchDeleteDto
dto
)
{
Assert
.
notEmpty
(
dto
.
getExaminationIds
(),
"删除ID不能为空"
);
Assert
.
notEmpty
(
dto
.
getExaminationIds
(),
"删除ID不能为空"
);
UserBaseEntity
currentUser
=
BlContext
.
getCurrentUser
();
UserBaseEntity
currentUser
=
BlContext
.
getCurrentUser
();
boolean
deleted
=
examinationService
.
batchDelete
(
dto
.
getExaminationIds
(),
currentUser
.
getUserId
());
boolean
deleted
=
examinationService
.
batchDelete
(
dto
.
getExaminationIds
(),
currentUser
.
getUserId
());
if
(!
deleted
){
if
(!
deleted
)
{
throw
new
BusinessException
(
"删除异常"
);
throw
new
BusinessException
(
"删除异常"
);
}
}
}
}
@Override
public
String
downloadExamination
(
String
examinationId
)
{
Assert
.
notBlank
(
examinationId
,
"examinationId 不能为空"
);
UserBaseEntity
currentUser
=
BlContext
.
getCurrentUser
();
return
examinationService
.
downloadExamination
(
examinationId
,
currentUser
.
getUserId
());
}
}
}
src/test/java/cn/com/poc/examination/ExaminationTest.java
View file @
12bd1e7b
...
@@ -204,4 +204,14 @@ public class ExaminationTest {
...
@@ -204,4 +204,14 @@ public class ExaminationTest {
String
query
;
String
query
;
Long
userId
;
Long
userId
;
}
}
@Test
public
void
text_genereateExaminationFile
()
{
String
examinationId
=
"EXAMINATION_75ad7043b8064640a3eb222a0c6ab59b"
;
Long
userId
=
198L
;
String
url
=
examinationService
.
downloadExamination
(
examinationId
,
userId
);
System
.
out
.
println
(
url
);
}
}
}
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