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
0f5c9b9d
Commit
0f5c9b9d
authored
Dec 31, 2025
by
alex yao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:Ai软著
parent
de1f0f89
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
866 additions
and
47 deletions
+866
-47
SoftwareCopyRightService.java
...oftware_copyright/aggregate/SoftwareCopyRightService.java
+38
-1
SoftwareCopyRightServiceImpl.java
...opyright/aggregate/impl/SoftwareCopyRightServiceImpl.java
+172
-0
BizSoftwareCopyrightDocRecordConvert.java
...pyright/convert/BizSoftwareCopyrightDocRecordConvert.java
+85
-0
BizSoftwareCopyrightDocRecordEntity.java
...copyright/entity/BizSoftwareCopyrightDocRecordEntity.java
+163
-0
BizSoftwareCopyrightDocRecordModel.java
...e_copyright/model/BizSoftwareCopyrightDocRecordModel.java
+238
-0
BizSoftwareCopyrightDocRecordRepository.java
...t/repository/BizSoftwareCopyrightDocRecordRepository.java
+6
-0
BizSoftwareCopyrightRest.java
.../ai_software_copyright/rest/BizSoftwareCopyrightRest.java
+2
-2
BizSoftwareCopyrightRestImpl.java
...are_copyright/rest/impl/BizSoftwareCopyrightRestImpl.java
+9
-44
BizSoftwareCopyrightDocRecordService.java
...pyright/service/BizSoftwareCopyrightDocRecordService.java
+23
-0
BizSoftwareCopyrightDocRecordServiceImpl.java
...ervice/impl/BizSoftwareCopyrightDocRecordServiceImpl.java
+130
-0
No files found.
src/main/java/cn/com/poc/ai_software_copyright/aggregate/SoftwareCopyRightService.java
View file @
0f5c9b9d
...
...
@@ -8,6 +8,10 @@ import cn.com.gsst.dify_client.exception.DifyApiException;
import
cn.com.poc.ai_software_copyright.contant.AiSoftWareCopyRightEnum
;
import
cn.com.poc.ai_software_copyright.domian.BaseInfo
;
import
cn.com.poc.ai_software_copyright.domian.TechnicalContent
;
import
cn.com.poc.ai_software_copyright.dto.SoftwareCopyRightFilesDto
;
import
cn.com.poc.ai_software_copyright.entity.BizSoftwareCopyrightDocRecordEntity
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.multipart.MultipartFile
;
/**
* AI软著-聚合服务
...
...
@@ -37,9 +41,42 @@ public interface SoftwareCopyRightService {
* AI-生成技术内容
*
* @param fileUrls
* @param question
* @param baseInfo
* @return
*/
TechnicalContent
createTechnicalContent
(
List
<
String
>
fileUrls
,
BaseInfo
baseInfo
)
throws
IOException
;
/**
* AI软著-文件列表
*
* @param id biz_software_copyright 主键id
*/
BizSoftwareCopyrightDocRecordEntity
listFile
(
Long
id
)
throws
Exception
;
/**
* 获取下载地址
*
* @param id biz_software_copyright 主键id
* @return 文件下载地址
*/
String
getDownloadUrl
(
Long
id
)
throws
Exception
;
/**
* 文件上传
*
* @param file 文件
* @return 文件地址
*/
String
upload
(
MultipartFile
file
)
throws
IOException
;
/**
* 压缩文件并更新记录
*
* @param recordEntity
* @return 压缩文件地址
*/
String
zipFilesAndUpdateRecord
(
BizSoftwareCopyrightDocRecordEntity
recordEntity
);
}
src/main/java/cn/com/poc/ai_software_copyright/aggregate/impl/SoftwareCopyRightServiceImpl.java
View file @
0f5c9b9d
...
...
@@ -3,10 +3,14 @@ package cn.com.poc.ai_software_copyright.aggregate.impl;
import
javax.annotation.Resource
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.nio.charset.Charset
;
import
java.nio.file.Files
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.CopyOnWriteArrayList
;
import
cn.com.gsst.dify_client.exception.DifyApiException
;
import
cn.com.poc.ai_software_copyright.agent.SoftwareCopyRightAgent
;
...
...
@@ -14,6 +18,14 @@ import cn.com.poc.ai_software_copyright.aggregate.SoftwareCopyRightService;
import
cn.com.poc.ai_software_copyright.contant.AiSoftWareCopyRightEnum
;
import
cn.com.poc.ai_software_copyright.domian.BaseInfo
;
import
cn.com.poc.ai_software_copyright.domian.TechnicalContent
;
import
cn.com.poc.ai_software_copyright.entity.BizSoftwareCopyrightDocRecordEntity
;
import
cn.com.poc.ai_software_copyright.entity.BizSoftwareCopyrightEntity
;
import
cn.com.poc.ai_software_copyright.service.BizSoftwareCopyrightDocRecordService
;
import
cn.com.poc.ai_software_copyright.service.BizSoftwareCopyrightService
;
import
cn.com.poc.common.constant.CommonConstant
;
import
cn.com.poc.common.model.BizFileUploadRecordModel
;
import
cn.com.poc.common.service.BizFileUploadRecordService
;
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.StringUtils
;
...
...
@@ -21,10 +33,12 @@ import cn.com.yict.framemax.core.exception.BusinessException;
import
cn.hutool.core.collection.ListUtil
;
import
cn.hutool.core.io.FileUtil
;
import
cn.hutool.core.util.ZipUtil
;
import
cn.hutool.crypto.digest.MD5
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.multipart.MultipartFile
;
/**
* @author alex.yao
...
...
@@ -35,9 +49,22 @@ public class SoftwareCopyRightServiceImpl implements SoftwareCopyRightService {
private
final
Logger
logger
=
LoggerFactory
.
getLogger
(
SoftwareCopyRightService
.
class
);
@Resource
private
BosConfigService
bosConfigService
;
@Resource
private
BizFileUploadRecordService
bizFileUploadRecordService
;
@Resource
private
SoftwareCopyRightAgent
softwareCopyRightAgent
;
@Resource
private
BizSoftwareCopyrightService
bizSoftwareCopyrightService
;
@Resource
private
BizSoftwareCopyrightDocRecordService
bizSoftwareCopyrightDocRecordService
;
@Override
public
void
softwareCopyRightAssistant
(
AiSoftWareCopyRightEnum
.
AI_ASSISTANT_TYPE
type
,
...
...
@@ -130,4 +157,149 @@ public class SoftwareCopyRightServiceImpl implements SoftwareCopyRightService {
return
ListUtil
.
toList
(
extractedFiles
);
}
@Override
public
BizSoftwareCopyrightDocRecordEntity
listFile
(
Long
id
)
throws
Exception
{
checkTaskIsComplete
(
id
);
BizSoftwareCopyrightDocRecordEntity
bizSoftwareCopyrightDocRecordEntity
=
new
BizSoftwareCopyrightDocRecordEntity
();
bizSoftwareCopyrightDocRecordEntity
.
setRelationId
(
id
);
bizSoftwareCopyrightDocRecordEntity
.
setIsDeleted
(
CommonConstant
.
IsDeleted
.
N
);
List
<
BizSoftwareCopyrightDocRecordEntity
>
recordEntities
=
bizSoftwareCopyrightDocRecordService
.
findByExample
(
bizSoftwareCopyrightDocRecordEntity
,
null
);
return
recordEntities
.
get
(
0
);
}
@Override
public
String
getDownloadUrl
(
Long
id
)
throws
Exception
{
checkTaskIsComplete
(
id
);
BizSoftwareCopyrightDocRecordEntity
bizSoftwareCopyrightDocRecordEntity
=
new
BizSoftwareCopyrightDocRecordEntity
();
bizSoftwareCopyrightDocRecordEntity
.
setRelationId
(
id
);
bizSoftwareCopyrightDocRecordEntity
.
setIsDeleted
(
CommonConstant
.
IsDeleted
.
N
);
List
<
BizSoftwareCopyrightDocRecordEntity
>
recordEntities
=
bizSoftwareCopyrightDocRecordService
.
findByExample
(
bizSoftwareCopyrightDocRecordEntity
,
null
);
if
(
CollectionUtils
.
isEmpty
(
recordEntities
))
{
throw
new
BusinessException
(
"查询无记录"
);
}
BizSoftwareCopyrightDocRecordEntity
recordEntity
=
recordEntities
.
get
(
0
);
if
(
StringUtils
.
isBlank
(
recordEntity
.
getAggregationUrl
()))
{
zipFilesAndUpdateRecord
(
recordEntity
);
}
return
recordEntity
.
getAggregationUrl
();
}
private
void
checkTaskIsComplete
(
Long
id
)
{
BizSoftwareCopyrightEntity
bizSoftwareCopyrightEntity
=
bizSoftwareCopyrightService
.
get
(
id
);
if
(
bizSoftwareCopyrightEntity
==
null
)
{
throw
new
BusinessException
(
"查询任务失败"
);
}
String
generatedStatus
=
bizSoftwareCopyrightEntity
.
getGeneratedStatus
();
if
(!
generatedStatus
.
equals
(
AiSoftWareCopyRightEnum
.
GENERATED_STATUS
.
Complete
.
name
()))
{
throw
new
BusinessException
(
"任务未完成"
);
}
}
@Override
public
String
upload
(
MultipartFile
file
)
throws
IOException
{
String
contentType
=
file
.
getContentType
();
String
originalFilename
=
file
.
getOriginalFilename
();
String
prefix
=
originalFilename
.
substring
(
originalFilename
.
lastIndexOf
(
"."
)).
replaceAll
(
"\\."
,
""
);
String
upload
=
bosConfigService
.
upload
(
file
.
getInputStream
(),
prefix
,
contentType
);
//计算文件MD5值
InputStream
inputStream
=
file
.
getInputStream
();
byte
[]
bytes
=
new
byte
[
inputStream
.
available
()];
inputStream
.
read
(
bytes
);
String
md5
=
MD5
.
create
().
digestHex
(
bytes
);
BizFileUploadRecordModel
bizFileUploadRecordModel
=
new
BizFileUploadRecordModel
();
bizFileUploadRecordModel
.
setFileName
(
file
.
getOriginalFilename
());
bizFileUploadRecordModel
.
setFileUrl
(
upload
);
bizFileUploadRecordModel
.
setMd5
(
md5
);
bizFileUploadRecordModel
.
setCoverSheetUrl
(
""
);
bizFileUploadRecordService
.
save
(
bizFileUploadRecordModel
);
return
upload
;
}
public
String
zipFilesAndUpdateRecord
(
BizSoftwareCopyrightDocRecordEntity
recordEntity
)
{
String
pcOperatingManualUrl
=
recordEntity
.
getPcOperatingManual
();
String
informationUrl
=
recordEntity
.
getInformation
();
String
phOperatingManualUrl
=
recordEntity
.
getPhOperatingManual
();
String
sourceCodeUrl
=
recordEntity
.
getSourceCode
();
List
<
File
>
files
=
new
CopyOnWriteArrayList
<>();
// 添加所有有效的文件URL到文件列表,使用异步并行下载
CompletableFuture
<
Void
>
pcOperatingManualUrlFuture
=
CompletableFuture
.
runAsync
(()
->
{
addFileIfNotBlank
(
pcOperatingManualUrl
,
files
);
});
CompletableFuture
<
Void
>
informationUrlFuture
=
CompletableFuture
.
runAsync
(()
->
{
addFileIfNotBlank
(
informationUrl
,
files
);
});
CompletableFuture
<
Void
>
phOperatingManualUrlFuture
=
CompletableFuture
.
runAsync
(()
->
{
addFileIfNotBlank
(
phOperatingManualUrl
,
files
);
});
CompletableFuture
<
Void
>
sourceCodeUrlFuture
=
CompletableFuture
.
runAsync
(()
->
{
addFileIfNotBlank
(
sourceCodeUrl
,
files
);
});
// 等待所有文件下载完成后再执行压缩和上传
CompletableFuture
.
allOf
(
pcOperatingManualUrlFuture
,
informationUrlFuture
,
phOperatingManualUrlFuture
,
sourceCodeUrlFuture
).
join
();
if
(
CollectionUtils
.
isEmpty
(
files
))
{
throw
new
BusinessException
(
"文档下载失败"
);
}
File
zipFile
=
null
;
try
{
// 创建临时文件用于存放压缩包
zipFile
=
File
.
createTempFile
(
"aggregation_"
+
recordEntity
.
getId
(),
".zip"
);
// 将所有文件打包成zip
ZipUtil
.
zip
(
zipFile
,
Charset
.
defaultCharset
(),
false
,
files
.
toArray
(
new
File
[
0
]));
// 上传压缩包到BOS并获取URL
String
aggregationUrl
=
bosConfigService
.
upload
(
Files
.
newInputStream
(
zipFile
.
toPath
()),
"zip"
,
"application/zip"
);
// 更新数据库中的聚合URL
recordEntity
.
setAggregationUrl
(
aggregationUrl
);
bizSoftwareCopyrightDocRecordService
.
update
(
recordEntity
);
return
aggregationUrl
;
}
catch
(
Exception
e
)
{
throw
new
BusinessException
(
"压缩包创建或上传失败"
,
e
);
}
finally
{
// 清理临时文件
files
.
forEach
(
file
->
{
try
{
Files
.
deleteIfExists
(
file
.
toPath
());
}
catch
(
IOException
e
)
{
logger
.
error
(
"删除临时文件失败: {}"
,
file
.
getAbsolutePath
(),
e
);
}
});
if
(
zipFile
!=
null
&&
zipFile
.
exists
())
{
try
{
Files
.
deleteIfExists
(
zipFile
.
toPath
());
}
catch
(
IOException
e
)
{
logger
.
error
(
"删除临时压缩文件失败: {}"
,
zipFile
.
getAbsolutePath
(),
e
);
}
}
}
}
/**
* 如果URL不为空白,则下载文件并添加到文件列表
*
* @param fileUrl 文件URL
* @param files 文件列表
*/
private
void
addFileIfNotBlank
(
String
fileUrl
,
List
<
File
>
files
)
{
if
(
StringUtils
.
isNotBlank
(
fileUrl
))
{
File
file
=
DocumentLoad
.
downloadURLDocument
(
fileUrl
);
files
.
add
(
file
);
}
}
}
\ No newline at end of file
src/main/java/cn/com/poc/ai_software_copyright/convert/BizSoftwareCopyrightDocRecordConvert.java
0 → 100644
View file @
0f5c9b9d
package
cn
.
com
.
poc
.
ai_software_copyright
.
convert
;
import
java.util.ArrayList
;
import
java.util.List
;
import
cn.com.poc.ai_software_copyright.contant.AiSoftWareCopyRightEnum
;
import
cn.com.poc.ai_software_copyright.dto.SoftwareCopyRightFilesDto
;
import
cn.com.poc.ai_software_copyright.model.BizSoftwareCopyrightDocRecordModel
;
import
cn.com.poc.ai_software_copyright.entity.BizSoftwareCopyrightDocRecordEntity
;
import
org.apache.commons.lang3.StringUtils
;
public
class
BizSoftwareCopyrightDocRecordConvert
{
public
static
BizSoftwareCopyrightDocRecordEntity
modelToEntity
(
BizSoftwareCopyrightDocRecordModel
model
)
{
BizSoftwareCopyrightDocRecordEntity
entity
=
new
BizSoftwareCopyrightDocRecordEntity
();
entity
.
setId
(
model
.
getId
());
entity
.
setRelationId
(
model
.
getRelationId
());
entity
.
setInformation
(
model
.
getInformation
());
entity
.
setPcOperatingManual
(
model
.
getPcOperatingManual
());
entity
.
setPhOperatingManual
(
model
.
getPhOperatingManual
());
entity
.
setSourceCode
(
model
.
getSourceCode
());
entity
.
setAggregationUrl
(
model
.
getAggregationUrl
());
entity
.
setIsDeleted
(
model
.
getIsDeleted
());
entity
.
setCreator
(
model
.
getCreator
());
entity
.
setCreatedTime
(
model
.
getCreatedTime
());
entity
.
setModifier
(
model
.
getModifier
());
entity
.
setModifiedTime
(
model
.
getModifiedTime
());
entity
.
setSysVersion
(
model
.
getSysVersion
());
return
entity
;
}
public
static
BizSoftwareCopyrightDocRecordModel
entityToModel
(
BizSoftwareCopyrightDocRecordEntity
entity
)
{
BizSoftwareCopyrightDocRecordModel
model
=
new
BizSoftwareCopyrightDocRecordModel
();
model
.
setId
(
entity
.
getId
());
model
.
setRelationId
(
entity
.
getRelationId
());
model
.
setInformation
(
entity
.
getInformation
());
model
.
setPcOperatingManual
(
entity
.
getPcOperatingManual
());
model
.
setPhOperatingManual
(
entity
.
getPhOperatingManual
());
model
.
setSourceCode
(
entity
.
getSourceCode
());
model
.
setAggregationUrl
(
entity
.
getAggregationUrl
());
model
.
setIsDeleted
(
entity
.
getIsDeleted
());
model
.
setCreator
(
entity
.
getCreator
());
model
.
setCreatedTime
(
entity
.
getCreatedTime
());
model
.
setModifier
(
entity
.
getModifier
());
model
.
setModifiedTime
(
entity
.
getModifiedTime
());
model
.
setSysVersion
(
entity
.
getSysVersion
());
return
model
;
}
public
static
List
<
SoftwareCopyRightFilesDto
>
entityToDto
(
BizSoftwareCopyrightDocRecordEntity
recordEntity
)
{
List
<
SoftwareCopyRightFilesDto
>
dtos
=
new
ArrayList
<>();
String
information
=
recordEntity
.
getInformation
();
String
pcOperatingManual
=
recordEntity
.
getPcOperatingManual
();
String
phOperatingManual
=
recordEntity
.
getPhOperatingManual
();
String
sourceCode
=
recordEntity
.
getSourceCode
();
if
(
StringUtils
.
isNotBlank
(
information
))
{
SoftwareCopyRightFilesDto
dto
=
new
SoftwareCopyRightFilesDto
();
dto
.
setType
(
AiSoftWareCopyRightEnum
.
DOC_TYPE
.
information
.
name
());
dto
.
setFileUrl
(
information
);
dtos
.
add
(
dto
);
}
if
(
StringUtils
.
isNotBlank
(
sourceCode
))
{
SoftwareCopyRightFilesDto
dto
=
new
SoftwareCopyRightFilesDto
();
dto
.
setType
(
AiSoftWareCopyRightEnum
.
DOC_TYPE
.
source_code
.
name
());
dto
.
setFileUrl
(
sourceCode
);
dtos
.
add
(
dto
);
}
if
(
StringUtils
.
isNotBlank
(
pcOperatingManual
))
{
SoftwareCopyRightFilesDto
dto
=
new
SoftwareCopyRightFilesDto
();
dto
.
setType
(
AiSoftWareCopyRightEnum
.
DOC_TYPE
.
pc_operating_manual
.
name
());
dto
.
setFileUrl
(
pcOperatingManual
);
dtos
.
add
(
dto
);
}
if
(
StringUtils
.
isNotBlank
(
phOperatingManual
))
{
SoftwareCopyRightFilesDto
dto
=
new
SoftwareCopyRightFilesDto
();
dto
.
setType
(
AiSoftWareCopyRightEnum
.
DOC_TYPE
.
ph_operating_manual
.
name
());
dto
.
setFileUrl
(
phOperatingManual
);
dtos
.
add
(
dto
);
}
return
dtos
;
}
}
\ No newline at end of file
src/main/java/cn/com/poc/ai_software_copyright/entity/BizSoftwareCopyrightDocRecordEntity.java
0 → 100644
View file @
0f5c9b9d
package
cn
.
com
.
poc
.
ai_software_copyright
.
entity
;
public
class
BizSoftwareCopyrightDocRecordEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/** id
*
*/
private
java
.
lang
.
Long
id
;
public
java
.
lang
.
Long
getId
(){
return
this
.
id
;
}
public
void
setId
(
java
.
lang
.
Long
id
){
this
.
id
=
id
;
}
/** relation_id
*任务id
*/
private
java
.
lang
.
Long
relationId
;
public
java
.
lang
.
Long
getRelationId
(){
return
this
.
relationId
;
}
public
void
setRelationId
(
java
.
lang
.
Long
relationId
){
this
.
relationId
=
relationId
;
}
/** information
*信息采集表
*/
private
java
.
lang
.
String
information
;
public
java
.
lang
.
String
getInformation
(){
return
this
.
information
;
}
public
void
setInformation
(
java
.
lang
.
String
information
){
this
.
information
=
information
;
}
/** pc_operating_manual
*电脑端使用说明书
*/
private
java
.
lang
.
String
pcOperatingManual
;
public
java
.
lang
.
String
getPcOperatingManual
(){
return
this
.
pcOperatingManual
;
}
public
void
setPcOperatingManual
(
java
.
lang
.
String
pcOperatingManual
){
this
.
pcOperatingManual
=
pcOperatingManual
;
}
/** ph_operating_manual
*手机端使用说明书
*/
private
java
.
lang
.
String
phOperatingManual
;
public
java
.
lang
.
String
getPhOperatingManual
(){
return
this
.
phOperatingManual
;
}
public
void
setPhOperatingManual
(
java
.
lang
.
String
phOperatingManual
){
this
.
phOperatingManual
=
phOperatingManual
;
}
/** source_code
*源代码文档
*/
private
java
.
lang
.
String
sourceCode
;
public
java
.
lang
.
String
getSourceCode
(){
return
this
.
sourceCode
;
}
public
void
setSourceCode
(
java
.
lang
.
String
sourceCode
){
this
.
sourceCode
=
sourceCode
;
}
/** aggregation_url
*文档聚合下载地址
*/
private
java
.
lang
.
String
aggregationUrl
;
public
java
.
lang
.
String
getAggregationUrl
(){
return
this
.
aggregationUrl
;
}
public
void
setAggregationUrl
(
java
.
lang
.
String
aggregationUrl
){
this
.
aggregationUrl
=
aggregationUrl
;
}
/** is_deleted
*是否删除 Y 是 N 否
*/
private
java
.
lang
.
String
isDeleted
;
public
java
.
lang
.
String
getIsDeleted
(){
return
this
.
isDeleted
;
}
public
void
setIsDeleted
(
java
.
lang
.
String
isDeleted
){
this
.
isDeleted
=
isDeleted
;
}
/** CREATOR
*创建人
*/
private
java
.
lang
.
String
creator
;
public
java
.
lang
.
String
getCreator
(){
return
this
.
creator
;
}
public
void
setCreator
(
java
.
lang
.
String
creator
){
this
.
creator
=
creator
;
}
/** CREATED_TIME
*创建时间
*/
private
java
.
util
.
Date
createdTime
;
public
java
.
util
.
Date
getCreatedTime
(){
return
this
.
createdTime
;
}
public
void
setCreatedTime
(
java
.
util
.
Date
createdTime
){
this
.
createdTime
=
createdTime
;
}
/** MODIFIER
*修改人
*/
private
java
.
lang
.
String
modifier
;
public
java
.
lang
.
String
getModifier
(){
return
this
.
modifier
;
}
public
void
setModifier
(
java
.
lang
.
String
modifier
){
this
.
modifier
=
modifier
;
}
/** MODIFIED_TIME
*修改时间
*/
private
java
.
util
.
Date
modifiedTime
;
public
java
.
util
.
Date
getModifiedTime
(){
return
this
.
modifiedTime
;
}
public
void
setModifiedTime
(
java
.
util
.
Date
modifiedTime
){
this
.
modifiedTime
=
modifiedTime
;
}
/** SYS_VERSION
*乐观锁,版本号
*/
private
java
.
lang
.
Integer
sysVersion
;
public
java
.
lang
.
Integer
getSysVersion
(){
return
this
.
sysVersion
;
}
public
void
setSysVersion
(
java
.
lang
.
Integer
sysVersion
){
this
.
sysVersion
=
sysVersion
;
}
}
\ No newline at end of file
src/main/java/cn/com/poc/ai_software_copyright/model/BizSoftwareCopyrightDocRecordModel.java
0 → 100644
View file @
0f5c9b9d
package
cn
.
com
.
poc
.
ai_software_copyright
.
model
;
import
java.io.Serializable
;
import
cn.com.yict.framemax.data.model.BaseModelClass
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
javax.persistence.Id
;
import
org.hibernate.annotations.DynamicInsert
;
import
org.hibernate.annotations.DynamicUpdate
;
import
javax.persistence.Version
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
/**
* Model class for biz_software_copyright_doc_record
* AI软著-文档记录
*/
@Entity
@Table
(
name
=
"biz_software_copyright_doc_record"
)
@DynamicInsert
@DynamicUpdate
public
class
BizSoftwareCopyrightDocRecordModel
extends
BaseModelClass
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/** id
*
*/
private
java
.
lang
.
Long
id
;
@Column
(
name
=
"id"
,
length
=
19
)
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
AUTO
)
public
java
.
lang
.
Long
getId
(){
return
this
.
id
;
}
public
void
setId
(
java
.
lang
.
Long
id
){
this
.
id
=
id
;
super
.
addValidField
(
"id"
);
}
/** relation_id
*任务id
*/
private
java
.
lang
.
Long
relationId
;
@Column
(
name
=
"relation_id"
,
length
=
19
)
public
java
.
lang
.
Long
getRelationId
(){
return
this
.
relationId
;
}
public
void
setRelationId
(
java
.
lang
.
Long
relationId
){
this
.
relationId
=
relationId
;
super
.
addValidField
(
"relationId"
);
}
/** information
*信息采集表
*/
private
java
.
lang
.
String
information
;
@Column
(
name
=
"information"
,
length
=
200
)
public
java
.
lang
.
String
getInformation
(){
return
this
.
information
;
}
public
void
setInformation
(
java
.
lang
.
String
information
){
this
.
information
=
information
;
super
.
addValidField
(
"information"
);
}
/** pc_operating_manual
*电脑端使用说明书
*/
private
java
.
lang
.
String
pcOperatingManual
;
@Column
(
name
=
"pc_operating_manual"
,
length
=
200
)
public
java
.
lang
.
String
getPcOperatingManual
(){
return
this
.
pcOperatingManual
;
}
public
void
setPcOperatingManual
(
java
.
lang
.
String
pcOperatingManual
){
this
.
pcOperatingManual
=
pcOperatingManual
;
super
.
addValidField
(
"pcOperatingManual"
);
}
/** ph_operating_manual
*手机端使用说明书
*/
private
java
.
lang
.
String
phOperatingManual
;
@Column
(
name
=
"ph_operating_manual"
,
length
=
200
)
public
java
.
lang
.
String
getPhOperatingManual
(){
return
this
.
phOperatingManual
;
}
public
void
setPhOperatingManual
(
java
.
lang
.
String
phOperatingManual
){
this
.
phOperatingManual
=
phOperatingManual
;
super
.
addValidField
(
"phOperatingManual"
);
}
/** source_code
*源代码文档
*/
private
java
.
lang
.
String
sourceCode
;
@Column
(
name
=
"source_code"
,
length
=
200
)
public
java
.
lang
.
String
getSourceCode
(){
return
this
.
sourceCode
;
}
public
void
setSourceCode
(
java
.
lang
.
String
sourceCode
){
this
.
sourceCode
=
sourceCode
;
super
.
addValidField
(
"sourceCode"
);
}
/** aggregation_url
*文档聚合下载地址
*/
private
java
.
lang
.
String
aggregationUrl
;
@Column
(
name
=
"aggregation_url"
,
length
=
200
)
public
java
.
lang
.
String
getAggregationUrl
(){
return
this
.
aggregationUrl
;
}
public
void
setAggregationUrl
(
java
.
lang
.
String
aggregationUrl
){
this
.
aggregationUrl
=
aggregationUrl
;
super
.
addValidField
(
"aggregationUrl"
);
}
/** is_deleted
*是否删除 Y 是 N 否
*/
private
java
.
lang
.
String
isDeleted
;
@Column
(
name
=
"is_deleted"
,
length
=
1
)
public
java
.
lang
.
String
getIsDeleted
(){
return
this
.
isDeleted
;
}
public
void
setIsDeleted
(
java
.
lang
.
String
isDeleted
){
this
.
isDeleted
=
isDeleted
;
super
.
addValidField
(
"isDeleted"
);
}
/** CREATOR
*创建人
*/
private
java
.
lang
.
String
creator
;
@Column
(
name
=
"CREATOR"
,
length
=
50
)
public
java
.
lang
.
String
getCreator
(){
return
this
.
creator
;
}
public
void
setCreator
(
java
.
lang
.
String
creator
){
this
.
creator
=
creator
;
super
.
addValidField
(
"creator"
);
}
/** CREATED_TIME
*创建时间
*/
private
java
.
util
.
Date
createdTime
;
@Column
(
name
=
"CREATED_TIME"
,
length
=
19
)
public
java
.
util
.
Date
getCreatedTime
(){
return
this
.
createdTime
;
}
public
void
setCreatedTime
(
java
.
util
.
Date
createdTime
){
this
.
createdTime
=
createdTime
;
super
.
addValidField
(
"createdTime"
);
}
/** MODIFIER
*修改人
*/
private
java
.
lang
.
String
modifier
;
@Column
(
name
=
"MODIFIER"
,
length
=
50
)
public
java
.
lang
.
String
getModifier
(){
return
this
.
modifier
;
}
public
void
setModifier
(
java
.
lang
.
String
modifier
){
this
.
modifier
=
modifier
;
super
.
addValidField
(
"modifier"
);
}
/** MODIFIED_TIME
*修改时间
*/
private
java
.
util
.
Date
modifiedTime
;
@Column
(
name
=
"MODIFIED_TIME"
,
length
=
19
)
public
java
.
util
.
Date
getModifiedTime
(){
return
this
.
modifiedTime
;
}
public
void
setModifiedTime
(
java
.
util
.
Date
modifiedTime
){
this
.
modifiedTime
=
modifiedTime
;
super
.
addValidField
(
"modifiedTime"
);
}
/** SYS_VERSION
*乐观锁,版本号
*/
private
java
.
lang
.
Integer
sysVersion
;
@Column
(
name
=
"SYS_VERSION"
,
length
=
10
)
@Version
public
java
.
lang
.
Integer
getSysVersion
(){
return
this
.
sysVersion
;
}
public
void
setSysVersion
(
java
.
lang
.
Integer
sysVersion
){
this
.
sysVersion
=
sysVersion
;
super
.
addValidField
(
"sysVersion"
);
}
}
\ No newline at end of file
src/main/java/cn/com/poc/ai_software_copyright/repository/BizSoftwareCopyrightDocRecordRepository.java
0 → 100644
View file @
0f5c9b9d
package
cn
.
com
.
poc
.
ai_software_copyright
.
repository
;
import
cn.com.yict.framemax.data.repository.Repository
;
import
cn.com.poc.ai_software_copyright.model.BizSoftwareCopyrightDocRecordModel
;
public
interface
BizSoftwareCopyrightDocRecordRepository
extends
Repository
<
BizSoftwareCopyrightDocRecordModel
,
java
.
lang
.
Long
>
{
}
\ No newline at end of file
src/main/java/cn/com/poc/ai_software_copyright/rest/BizSoftwareCopyrightRest.java
View file @
0f5c9b9d
...
...
@@ -49,10 +49,10 @@ public interface BizSoftwareCopyrightRest extends BaseRest {
/**
* AI软著-文件列表
*/
List
<
SoftwareCopyRightFilesDto
>
listFile
(
@RequestParam
Long
id
);
List
<
SoftwareCopyRightFilesDto
>
listFile
(
@RequestParam
Long
id
)
throws
Exception
;
/**
* 获取下载地址
*/
String
getDownloadUrl
(
@RequestParam
Long
id
);
String
getDownloadUrl
(
@RequestParam
Long
id
)
throws
Exception
;
}
\ No newline at end of file
src/main/java/cn/com/poc/ai_software_copyright/rest/impl/BizSoftwareCopyrightRestImpl.java
View file @
0f5c9b9d
...
...
@@ -2,16 +2,14 @@ package cn.com.poc.ai_software_copyright.rest.impl;
import
javax.annotation.Resource
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
cn.com.gsst.dify_client.exception.DifyApiException
;
import
cn.com.poc.ai_software_copyright.agent.SoftwareCopyRightAgent
;
import
cn.com.poc.ai_software_copyright.aggregate.SoftwareCopyRightService
;
import
cn.com.poc.ai_software_copyright.contant.AiSoftWareCopyRightEnum
;
import
cn.com.poc.ai_software_copyright.convert.BizSoftwareCopyrightConvert
;
import
cn.com.poc.ai_software_copyright.convert.BizSoftwareCopyrightDocRecordConvert
;
import
cn.com.poc.ai_software_copyright.domian.TechnicalContent
;
import
cn.com.poc.ai_software_copyright.dto.SoftwareCopyRightAssistantDto
;
import
cn.com.poc.ai_software_copyright.dto.SoftwareCopyRightDto
;
...
...
@@ -21,11 +19,7 @@ import cn.com.poc.ai_software_copyright.query.SoftwareCopyrightQueryCondition;
import
cn.com.poc.ai_software_copyright.query.SoftwareCopyrightQueryItem
;
import
cn.com.poc.ai_software_copyright.rest.BizSoftwareCopyrightRest
;
import
cn.com.poc.ai_software_copyright.service.BizSoftwareCopyrightService
;
import
cn.com.poc.common.model.BizFileUploadRecordModel
;
import
cn.com.poc.common.service.BizFileUploadRecordService
;
import
cn.com.poc.common.service.BosConfigService
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
cn.hutool.crypto.digest.MD5
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.Assert
;
import
org.springframework.web.multipart.MultipartFile
;
...
...
@@ -34,18 +28,14 @@ import org.springframework.web.multipart.MultipartFile;
public
class
BizSoftwareCopyrightRestImpl
implements
BizSoftwareCopyrightRest
{
@Resource
private
BosConfigService
bosConfigService
;
@Resource
private
BizFileUploadRecordService
bizFileUploadRecordService
;
@Resource
private
SoftwareCopyRightService
softwareCopyRightService
;
@Resource
private
BizSoftwareCopyrightService
bizSoftwareCopyrightService
;
public
SoftwareCopyRightDto
getById
(
java
.
lang
.
Long
id
)
throws
Exception
{
Assert
.
notNull
(
id
);
return
BizSoftwareCopyrightConvert
.
entityToDto
(
bizSoftwareCopyrightService
.
get
(
id
));
...
...
@@ -100,42 +90,17 @@ public class BizSoftwareCopyrightRestImpl implements BizSoftwareCopyrightRest {
@Override
public
String
upload
(
MultipartFile
file
)
throws
IOException
{
cn
.
com
.
poc
.
common
.
utils
.
Assert
.
notNull
(
file
);
String
contentType
=
file
.
getContentType
();
String
originalFilename
=
file
.
getOriginalFilename
();
String
prefix
=
originalFilename
.
substring
(
originalFilename
.
lastIndexOf
(
"."
)).
replaceAll
(
"\\."
,
""
);
String
upload
=
bosConfigService
.
upload
(
file
.
getInputStream
(),
prefix
,
contentType
);
//计算文件MD5值
InputStream
inputStream
=
file
.
getInputStream
();
byte
[]
bytes
=
new
byte
[
inputStream
.
available
()];
inputStream
.
read
(
bytes
);
String
md5
=
MD5
.
create
().
digestHex
(
bytes
);
BizFileUploadRecordModel
bizFileUploadRecordModel
=
new
BizFileUploadRecordModel
();
bizFileUploadRecordModel
.
setFileName
(
file
.
getOriginalFilename
());
bizFileUploadRecordModel
.
setFileUrl
(
upload
);
bizFileUploadRecordModel
.
setMd5
(
md5
);
bizFileUploadRecordModel
.
setCoverSheetUrl
(
""
);
bizFileUploadRecordService
.
save
(
bizFileUploadRecordModel
);
return
upload
;
Assert
.
notNull
(
file
);
return
softwareCopyRightService
.
upload
(
file
);
}
@Override
public
List
<
SoftwareCopyRightFilesDto
>
listFile
(
Long
id
)
{
List
<
SoftwareCopyRightFilesDto
>
dtos
=
new
ArrayList
<>();
for
(
AiSoftWareCopyRightEnum
.
DOC_TYPE
value
:
AiSoftWareCopyRightEnum
.
DOC_TYPE
.
values
())
{
SoftwareCopyRightFilesDto
dto
=
new
SoftwareCopyRightFilesDto
();
dto
.
setType
(
value
.
name
());
dto
.
setFileUrl
(
"https://gsst-poe-sit.gz.bcebos.com/v1/1755516924342.docx"
);
dtos
.
add
(
dto
);
}
return
dtos
;
public
List
<
SoftwareCopyRightFilesDto
>
listFile
(
Long
id
)
throws
Exception
{
return
BizSoftwareCopyrightDocRecordConvert
.
entityToDto
(
softwareCopyRightService
.
listFile
(
id
));
}
@Override
public
String
getDownloadUrl
(
Long
id
)
{
return
"https://gsst-poe-sit.gz.bcebos.com/v1/1755516924342.docx"
;
public
String
getDownloadUrl
(
Long
id
)
throws
Exception
{
return
softwareCopyRightService
.
getDownloadUrl
(
id
)
;
}
}
\ No newline at end of file
src/main/java/cn/com/poc/ai_software_copyright/service/BizSoftwareCopyrightDocRecordService.java
0 → 100644
View file @
0f5c9b9d
package
cn
.
com
.
poc
.
ai_software_copyright
.
service
;
import
cn.com.yict.framemax.core.service.BaseService
;
import
cn.com.poc.ai_software_copyright.entity.BizSoftwareCopyrightDocRecordEntity
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
java.util.Collection
;
import
java.util.List
;
public
interface
BizSoftwareCopyrightDocRecordService
extends
BaseService
{
BizSoftwareCopyrightDocRecordEntity
get
(
java
.
lang
.
Long
id
)
throws
Exception
;
List
<
BizSoftwareCopyrightDocRecordEntity
>
findByExample
(
BizSoftwareCopyrightDocRecordEntity
example
,
PagingInfo
pagingInfo
)
throws
Exception
;
BizSoftwareCopyrightDocRecordEntity
save
(
BizSoftwareCopyrightDocRecordEntity
entity
)
throws
Exception
;
BizSoftwareCopyrightDocRecordEntity
update
(
BizSoftwareCopyrightDocRecordEntity
entity
)
throws
Exception
;
void
deletedById
(
java
.
lang
.
Long
id
)
throws
Exception
;
}
\ No newline at end of file
src/main/java/cn/com/poc/ai_software_copyright/service/impl/BizSoftwareCopyrightDocRecordServiceImpl.java
0 → 100644
View file @
0f5c9b9d
package
cn
.
com
.
poc
.
ai_software_copyright
.
service
.
impl
;
import
cn.com.yict.framemax.core.exception.BusinessException
;
import
cn.com.yict.framemax.core.service.impl.BaseServiceImpl
;
import
cn.com.poc.ai_software_copyright.service.BizSoftwareCopyrightDocRecordService
;
import
cn.com.poc.ai_software_copyright.model.BizSoftwareCopyrightDocRecordModel
;
import
cn.com.poc.ai_software_copyright.entity.BizSoftwareCopyrightDocRecordEntity
;
import
cn.com.poc.ai_software_copyright.convert.BizSoftwareCopyrightDocRecordConvert
;
import
cn.com.poc.ai_software_copyright.repository.BizSoftwareCopyrightDocRecordRepository
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
cn.hutool.core.util.ZipUtil
;
import
org.springframework.stereotype.Service
;
import
org.apache.commons.collections4.CollectionUtils
;
import
java.io.File
;
import
java.io.IOException
;
import
java.nio.charset.Charset
;
import
java.nio.file.Files
;
import
java.util.ArrayList
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.CopyOnWriteArrayList
;
import
java.util.stream.Collectors
;
import
java.util.List
;
import
javax.annotation.Resource
;
import
org.springframework.util.Assert
;
@Service
public
class
BizSoftwareCopyrightDocRecordServiceImpl
extends
BaseServiceImpl
implements
BizSoftwareCopyrightDocRecordService
{
@Resource
private
BizSoftwareCopyrightDocRecordRepository
repository
;
public
BizSoftwareCopyrightDocRecordEntity
get
(
java
.
lang
.
Long
id
)
throws
Exception
{
Assert
.
notNull
(
id
);
BizSoftwareCopyrightDocRecordModel
model
=
this
.
repository
.
get
(
id
);
if
(
model
==
null
)
{
return
null
;
}
if
(
"Y"
.
equals
(
model
.
getIsDeleted
()))
{
return
null
;
}
return
BizSoftwareCopyrightDocRecordConvert
.
modelToEntity
(
model
);
}
public
List
<
BizSoftwareCopyrightDocRecordEntity
>
findByExample
(
BizSoftwareCopyrightDocRecordEntity
example
,
PagingInfo
pagingInfo
)
throws
Exception
{
List
<
BizSoftwareCopyrightDocRecordEntity
>
result
=
new
ArrayList
<
BizSoftwareCopyrightDocRecordEntity
>();
BizSoftwareCopyrightDocRecordModel
model
=
new
BizSoftwareCopyrightDocRecordModel
();
if
(
example
!=
null
)
{
model
=
BizSoftwareCopyrightDocRecordConvert
.
entityToModel
(
example
);
}
model
.
setIsDeleted
(
"N"
);
List
<
BizSoftwareCopyrightDocRecordModel
>
models
=
this
.
repository
.
findByExample
(
model
,
pagingInfo
);
if
(
CollectionUtils
.
isNotEmpty
(
models
))
{
result
=
models
.
stream
().
map
(
BizSoftwareCopyrightDocRecordConvert:
:
modelToEntity
)
.
collect
(
Collectors
.
toList
());
}
return
result
;
}
public
BizSoftwareCopyrightDocRecordEntity
save
(
BizSoftwareCopyrightDocRecordEntity
entity
)
throws
Exception
{
Assert
.
notNull
(
entity
);
entity
.
setId
(
null
);
entity
.
setIsDeleted
(
"N"
);
BizSoftwareCopyrightDocRecordModel
model
=
BizSoftwareCopyrightDocRecordConvert
.
entityToModel
(
entity
);
BizSoftwareCopyrightDocRecordModel
saveModel
=
this
.
repository
.
save
(
model
);
return
BizSoftwareCopyrightDocRecordConvert
.
modelToEntity
(
saveModel
);
}
public
BizSoftwareCopyrightDocRecordEntity
update
(
BizSoftwareCopyrightDocRecordEntity
entity
)
throws
Exception
{
Assert
.
notNull
(
entity
);
Assert
.
notNull
(
entity
.
getId
(),
"update pk can not be null"
);
BizSoftwareCopyrightDocRecordModel
model
=
this
.
repository
.
get
(
entity
.
getId
());
if
(
entity
.
getRelationId
()
!=
null
)
{
model
.
setRelationId
(
entity
.
getRelationId
());
}
if
(
entity
.
getInformation
()
!=
null
)
{
model
.
setInformation
(
entity
.
getInformation
());
}
if
(
entity
.
getPcOperatingManual
()
!=
null
)
{
model
.
setPcOperatingManual
(
entity
.
getPcOperatingManual
());
}
if
(
entity
.
getPhOperatingManual
()
!=
null
)
{
model
.
setPhOperatingManual
(
entity
.
getPhOperatingManual
());
}
if
(
entity
.
getSourceCode
()
!=
null
)
{
model
.
setSourceCode
(
entity
.
getSourceCode
());
}
if
(
entity
.
getAggregationUrl
()
!=
null
)
{
model
.
setAggregationUrl
(
entity
.
getAggregationUrl
());
}
if
(
entity
.
getIsDeleted
()
!=
null
)
{
model
.
setIsDeleted
(
entity
.
getIsDeleted
());
}
if
(
entity
.
getCreator
()
!=
null
)
{
model
.
setCreator
(
entity
.
getCreator
());
}
if
(
entity
.
getCreatedTime
()
!=
null
)
{
model
.
setCreatedTime
(
entity
.
getCreatedTime
());
}
if
(
entity
.
getModifier
()
!=
null
)
{
model
.
setModifier
(
entity
.
getModifier
());
}
if
(
entity
.
getModifiedTime
()
!=
null
)
{
model
.
setModifiedTime
(
entity
.
getModifiedTime
());
}
if
(
entity
.
getSysVersion
()
!=
null
)
{
model
.
setSysVersion
(
entity
.
getSysVersion
());
}
BizSoftwareCopyrightDocRecordModel
saveModel
=
this
.
repository
.
save
(
model
);
return
BizSoftwareCopyrightDocRecordConvert
.
modelToEntity
(
saveModel
);
}
public
void
deletedById
(
java
.
lang
.
Long
id
)
throws
Exception
{
Assert
.
notNull
(
id
);
BizSoftwareCopyrightDocRecordModel
model
=
this
.
repository
.
get
(
id
);
if
(
model
!=
null
)
{
if
(
"N"
.
equals
(
model
.
getIsDeleted
()))
{
model
.
setIsDeleted
(
"Y"
);
this
.
repository
.
save
(
model
);
}
}
}
}
\ No newline at end of file
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