Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
Y
yifu-mvp
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
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
fangxinjiang
yifu-mvp
Commits
d9f43408
Commit
d9f43408
authored
Jan 14, 2026
by
huyuchen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
huych-商险问题修改
parent
c9c0ba25
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
53 additions
and
42 deletions
+53
-42
ElectronicArchiveImportServiceImpl.java
...atch/service/impl/ElectronicArchiveImportServiceImpl.java
+38
-28
FileUploadServiceImpl.java
...oud/plus/v1/batch/service/impl/FileUploadServiceImpl.java
+15
-14
No files found.
yifu-batch/yifu-batch-biz/src/main/java/com/yifu/cloud/plus/v1/batch/service/impl/ElectronicArchiveImportServiceImpl.java
View file @
d9f43408
...
@@ -619,10 +619,10 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
...
@@ -619,10 +619,10 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
List
<
String
>
materialTypes
=
new
ArrayList
<>();
List
<
String
>
materialTypes
=
new
ArrayList
<>();
List
<
String
>
failReasons
=
new
ArrayList
<>();
List
<
String
>
failReasons
=
new
ArrayList
<>();
// 遍历该人员的所有文件夹
// 遍历该人员的所有文件夹
for
(
File
personDir
:
personDirs
)
{
for
(
File
personDir
:
personDirs
)
{
processPersonDirectoryWithResult
(
personDir
,
detail
,
materialTypes
,
failReasons
,
taskId
);
processPersonDirectoryWithResult
(
personDir
,
detail
,
materialTypes
,
failReasons
,
taskId
,
userId
,
userName
);
}
}
personMaterialTypesMap
.
put
(
uniqueKey
,
materialTypes
);
personMaterialTypesMap
.
put
(
uniqueKey
,
materialTypes
);
...
@@ -849,9 +849,12 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
...
@@ -849,9 +849,12 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
* @param materialTypes 成功处理的资料类型列表(输出参数)
* @param materialTypes 成功处理的资料类型列表(输出参数)
* @param failReasons 失败原因列表(输出参数)
* @param failReasons 失败原因列表(输出参数)
* @param taskId 任务ID
* @param taskId 任务ID
* @param userId 用户ID
* @param userName 用户名
*/
*/
private
void
processPersonDirectoryWithResult
(
File
personDir
,
TElectronicArchiveDetail
detail
,
private
void
processPersonDirectoryWithResult
(
File
personDir
,
TElectronicArchiveDetail
detail
,
List
<
String
>
materialTypes
,
List
<
String
>
failReasons
,
String
taskId
)
{
List
<
String
>
materialTypes
,
List
<
String
>
failReasons
,
String
taskId
,
String
userId
,
String
userName
)
{
// 处理第三级目录(资料类型或直接是文件)
// 处理第三级目录(资料类型或直接是文件)
File
[]
subFiles
=
personDir
.
listFiles
();
File
[]
subFiles
=
personDir
.
listFiles
();
if
(
subFiles
==
null
||
subFiles
.
length
==
0
)
{
if
(
subFiles
==
null
||
subFiles
.
length
==
0
)
{
...
@@ -887,14 +890,14 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
...
@@ -887,14 +890,14 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
continue
;
continue
;
}
}
// 按资料类型分组处理目录下的所有文件
// 按资料类型分组处理目录下的所有文件
String
result
=
processMaterialTypeDirectoryWithResult
(
subFile
,
detail
,
materialType
,
taskId
);
String
result
=
processMaterialTypeDirectoryWithResult
(
subFile
,
detail
,
materialType
,
taskId
,
userId
,
userName
);
if
(
"success"
.
equals
(
result
))
{
if
(
"success"
.
equals
(
result
))
{
materialTypesSet
.
add
(
materialType
);
materialTypesSet
.
add
(
materialType
);
}
else
{
failReasons
.
add
(
materialType
+
":"
+
result
);
}
}
else
{
}
else
{
failReasons
.
add
(
materialType
+
":"
+
result
);
}
}
else
{
// 直接是文件,收集起来统一作为存量类型处理
// 直接是文件,收集起来统一作为存量类型处理
stockFiles
.
add
(
subFile
);
stockFiles
.
add
(
subFile
);
}
}
...
@@ -902,7 +905,7 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
...
@@ -902,7 +905,7 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
// 统一处理所有直接文件(存量类型)
// 统一处理所有直接文件(存量类型)
if
(!
stockFiles
.
isEmpty
())
{
if
(!
stockFiles
.
isEmpty
())
{
String
result
=
processMaterialTypeFilesWithResult
(
stockFiles
,
detail
,
ArchiveConstants
.
MATERIAL_TYPE_STOCK
,
taskId
);
String
result
=
processMaterialTypeFilesWithResult
(
stockFiles
,
detail
,
ArchiveConstants
.
MATERIAL_TYPE_STOCK
,
taskId
,
userId
,
userName
);
if
(
"success"
.
equals
(
result
))
{
if
(
"success"
.
equals
(
result
))
{
materialTypesSet
.
add
(
ArchiveConstants
.
MATERIAL_TYPE_STOCK
);
materialTypesSet
.
add
(
ArchiveConstants
.
MATERIAL_TYPE_STOCK
);
}
else
{
}
else
{
...
@@ -947,10 +950,12 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
...
@@ -947,10 +950,12 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
* @param detail 电子档案明细
* @param detail 电子档案明细
* @param materialType 资料类型
* @param materialType 资料类型
* @param taskId 任务ID
* @param taskId 任务ID
* @param userId 用户ID
* @param userName 用户名
* @return "success" 表示成功,其他表示失败原因
* @return "success" 表示成功,其他表示失败原因
*/
*/
private
String
processMaterialTypeDirectoryWithResult
(
File
directory
,
TElectronicArchiveDetail
detail
,
private
String
processMaterialTypeDirectoryWithResult
(
File
directory
,
TElectronicArchiveDetail
detail
,
String
materialType
,
String
taskId
)
{
String
materialType
,
String
taskId
,
String
userId
,
String
userName
)
{
// 收集该资料类型目录下的所有文件(递归收集子目录中的文件)
// 收集该资料类型目录下的所有文件(递归收集子目录中的文件)
List
<
File
>
allFiles
=
new
ArrayList
<>();
List
<
File
>
allFiles
=
new
ArrayList
<>();
collectAllFiles
(
directory
,
allFiles
);
collectAllFiles
(
directory
,
allFiles
);
...
@@ -960,7 +965,7 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
...
@@ -960,7 +965,7 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
}
}
// 统一处理该资料类型下的所有文件
// 统一处理该资料类型下的所有文件
return
processMaterialTypeFilesWithResult
(
allFiles
,
detail
,
materialType
,
taskId
);
return
processMaterialTypeFilesWithResult
(
allFiles
,
detail
,
materialType
,
taskId
,
userId
,
userName
);
}
}
/**
/**
...
@@ -1063,10 +1068,12 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
...
@@ -1063,10 +1068,12 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
* @param detail 电子档案明细
* @param detail 电子档案明细
* @param materialType 资料类型
* @param materialType 资料类型
* @param taskId 任务ID
* @param taskId 任务ID
* @param userId 用户ID
* @param userName 用户名
* @return "success" 表示成功,其他表示失败原因
* @return "success" 表示成功,其他表示失败原因
*/
*/
private
String
processMaterialTypeFilesWithResult
(
List
<
File
>
files
,
TElectronicArchiveDetail
detail
,
private
String
processMaterialTypeFilesWithResult
(
List
<
File
>
files
,
TElectronicArchiveDetail
detail
,
String
materialType
,
String
taskId
)
{
String
materialType
,
String
taskId
,
String
userId
,
String
userName
)
{
// 第一步:验证所有文件格式
// 第一步:验证所有文件格式
for
(
File
file
:
files
)
{
for
(
File
file
:
files
)
{
String
fileName
=
file
.
getName
();
String
fileName
=
file
.
getName
();
...
@@ -1092,20 +1099,23 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
...
@@ -1092,20 +1099,23 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
return
"文件转换失败:"
+
fileName
;
return
"文件转换失败:"
+
fileName
;
}
}
// 上传文件到阿里云OSS,uploadFileReturnAtta会自动生成TAttaInfo记录
// 上传文件到阿里云OSS,uploadFileReturnAtta会自动生成TAttaInfo记录
R
<
TAttaInfo
>
uploadResult
=
fileUploadService
.
uploadFileReturnAtta
(
// 传递用户信息,支持异步场景
multipartFile
,
R
<
TAttaInfo
>
uploadResult
=
fileUploadService
.
uploadFileReturnAtta
(
ossDirectory
,
multipartFile
,
CommonConstants
.
FOUR_STRING
,
ossDirectory
,
detail
.
getId
(),
CommonConstants
.
FOUR_STRING
,
taskId
detail
.
getId
(),
);
taskId
,
userId
,
userName
);
if
(!
R
.
isSuccess
(
uploadResult
))
{
if
(!
R
.
isSuccess
(
uploadResult
))
{
// 上传失败,整体失败
// 上传失败,整体失败
return
"文件上传失败:"
+
fileName
+
",原因:"
+
(
uploadResult
!=
null
?
uploadResult
.
getMsg
()
:
"未知错误"
);
return
"文件上传失败:"
+
fileName
+
",原因:"
+
(
uploadResult
!=
null
?
uploadResult
.
getMsg
()
:
"未知错误"
);
}
}
}
}
// 第三步:所有文件上传成功
// 第三步:所有文件上传成功
return
"success"
;
return
"success"
;
...
...
yifu-batch/yifu-batch-biz/src/main/java/com/yifu/cloud/plus/v1/batch/service/impl/FileUploadServiceImpl.java
View file @
d9f43408
package
com
.
yifu
.
cloud
.
plus
.
v1
.
batch
.
service
.
impl
;
package
com
.
yifu
.
cloud
.
plus
.
v1
.
batch
.
service
.
impl
;
import
cn.hutool.core.util.StrUtil
;
import
com.yifu.cloud.plus.v1.batch.entity.TAttaInfo
;
import
com.yifu.cloud.plus.v1.batch.entity.TAttaInfo
;
import
com.yifu.cloud.plus.v1.batch.mapper.SysConfigLimitMapper
;
import
com.yifu.cloud.plus.v1.batch.mapper.SysConfigLimitMapper
;
import
com.yifu.cloud.plus.v1.batch.service.FileUploadService
;
import
com.yifu.cloud.plus.v1.batch.service.FileUploadService
;
...
@@ -105,22 +106,22 @@ public class FileUploadServiceImpl implements FileUploadService {
...
@@ -105,22 +106,22 @@ public class FileUploadServiceImpl implements FileUploadService {
attaInfo
.
setDomainId
(
domainId
);
attaInfo
.
setDomainId
(
domainId
);
attaInfo
.
setTaskId
(
taskId
);
attaInfo
.
setTaskId
(
taskId
);
// 优先使用传入的用户信息(支持异步场景)
// 优先使用传入的用户信息(支持异步场景)
if
(
Common
.
isNotNull
(
userId
))
{
if
(
Common
.
isNotNull
(
userId
)
&&
StrUtil
.
isNotBlank
(
userId
))
{
attaInfo
.
setCreateBy
(
userId
);
attaInfo
.
setCreateBy
(
userId
);
attaInfo
.
setCreateName
(
userName
);
attaInfo
.
setCreateName
(
userName
);
}
else
{
}
else
{
// 从上下文获取(同步场景)
// 从上下文获取(同步场景)
try
{
try
{
YifuUser
user
=
SecurityUtils
.
getUser
();
YifuUser
user
=
SecurityUtils
.
getUser
();
if
(
user
!=
null
)
{
if
(
user
!=
null
)
{
attaInfo
.
setCreateBy
(
user
.
getId
());
attaInfo
.
setCreateBy
(
user
.
getId
());
attaInfo
.
setCreateName
(
user
.
getNickname
());
attaInfo
.
setCreateName
(
user
.
getNickname
());
}
}
catch
(
Exception
e
)
{
log
.
warn
(
"获取用户上下文失败,使用默认值"
,
e
);
}
}
}
catch
(
Exception
e
)
{
log
.
warn
(
"获取用户上下文失败,附件创建人将为空"
,
e
);
}
}
}
attaInfo
=
tAttaInfoService
.
add
(
attaInfo
);
attaInfo
=
tAttaInfoService
.
add
(
attaInfo
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
...
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