Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
finance-manage
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
finance-oa
finance-manage
Commits
b508e6f2
Commit
b508e6f2
authored
Dec 11, 2019
by
RuoYi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增用户导入
parent
8216d4e8
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
220 additions
and
10 deletions
+220
-10
ruoyi-ui/src/api/system/user.js
ruoyi-ui/src/api/system/user.js
+8
-0
ruoyi-ui/src/views/system/user/index.vue
ruoyi-ui/src/views/system/user/index.vue
+88
-5
ruoyi/src/main/java/com/ruoyi/project/system/controller/SysUserController.java
...om/ruoyi/project/system/controller/SysUserController.java
+27
-0
ruoyi/src/main/java/com/ruoyi/project/system/domain/SysUser.java
...rc/main/java/com/ruoyi/project/system/domain/SysUser.java
+8
-3
ruoyi/src/main/java/com/ruoyi/project/system/service/ISysConfigService.java
...a/com/ruoyi/project/system/service/ISysConfigService.java
+1
-1
ruoyi/src/main/java/com/ruoyi/project/system/service/ISysUserService.java
...ava/com/ruoyi/project/system/service/ISysUserService.java
+10
-0
ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysConfigServiceImpl.java
...oyi/project/system/service/impl/SysConfigServiceImpl.java
+1
-1
ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java
...ruoyi/project/system/service/impl/SysUserServiceImpl.java
+77
-0
No files found.
ruoyi-ui/src/api/system/user.js
View file @
b508e6f2
...
@@ -117,3 +117,11 @@ export function uploadAvatar(data) {
...
@@ -117,3 +117,11 @@ export function uploadAvatar(data) {
data
:
data
data
:
data
})
})
}
}
// 下载用户导入模板
export
function
importTemplate
()
{
return
request
({
url
:
'
/system/user/importTemplate
'
,
method
:
'
get
'
})
}
ruoyi-ui/src/views/system/user/index.vue
View file @
b508e6f2
...
@@ -112,6 +112,15 @@
...
@@ -112,6 +112,15 @@
v-hasPermi=
"['system:user:remove']"
v-hasPermi=
"['system:user:remove']"
>
删除
</el-button>
>
删除
</el-button>
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"info"
icon=
"el-icon-upload2"
size=
"mini"
@
click=
"handleImport"
v-hasPermi=
"['system:user:import']"
>
导入
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
<el-button
type=
"warning"
type=
"warning"
...
@@ -284,11 +293,43 @@
...
@@ -284,11 +293,43 @@
<el-button
@
click=
"cancel"
>
取 消
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</div>
</el-dialog>
</el-dialog>
<!-- 用户导入对话框 -->
<el-dialog
:title=
"upload.title"
:visible.sync=
"upload.open"
width=
"400px"
>
<el-upload
ref=
"upload"
:limit=
"1"
accept=
".xlsx, .xls"
:headers=
"upload.headers"
:action=
"upload.url + '?updateSupport=' + upload.updateSupport"
:disabled=
"upload.isUploading"
:on-progress=
"handleFileUploadProgress"
:on-success=
"handleFileSuccess"
:auto-upload=
"false"
drag
>
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em>
</div>
<div
class=
"el-upload__tip"
slot=
"tip"
>
<el-checkbox
v-model=
"upload.updateSupport"
/>
是否更新已经存在的用户数据
<el-link
type=
"info"
style=
"font-size:12px"
@
click=
"importTemplate"
>
下载模板
</el-link>
</div>
<div
class=
"el-upload__tip"
style=
"color:red"
slot=
"tip"
>
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitFileForm"
>
确 定
</el-button>
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
</div>
</el-dialog>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
listUser
,
getUser
,
delUser
,
addUser
,
updateUser
,
exportUser
,
resetUserPwd
,
changeUserStatus
}
from
"
@/api/system/user
"
;
import
{
listUser
,
getUser
,
delUser
,
addUser
,
updateUser
,
exportUser
,
resetUserPwd
,
changeUserStatus
,
importTemplate
}
from
"
@/api/system/user
"
;
import
{
getToken
}
from
"
@/utils/auth
"
;
import
{
treeselect
}
from
"
@/api/system/dept
"
;
import
{
treeselect
}
from
"
@/api/system/dept
"
;
import
Treeselect
from
"
@riophae/vue-treeselect
"
;
import
Treeselect
from
"
@riophae/vue-treeselect
"
;
import
"
@riophae/vue-treeselect/dist/vue-treeselect.css
"
;
import
"
@riophae/vue-treeselect/dist/vue-treeselect.css
"
;
...
@@ -336,6 +377,21 @@ export default {
...
@@ -336,6 +377,21 @@ export default {
children
:
"
children
"
,
children
:
"
children
"
,
label
:
"
label
"
label
:
"
label
"
},
},
// 用户导入参数
upload
:
{
// 是否显示弹出层(用户导入)
open
:
false
,
// 弹出层标题(用户导入)
title
:
""
,
// 是否禁用上传
isUploading
:
false
,
// 是否更新已经存在的用户数据
updateSupport
:
0
,
// 设置上传的请求头部
headers
:
{
Authorization
:
"
Bearer
"
+
getToken
()
},
// 上传的地址
url
:
process
.
env
.
VUE_APP_BASE_API
+
"
/system/user/importData
"
},
// 查询参数
// 查询参数
queryParams
:
{
queryParams
:
{
pageNum
:
1
,
pageNum
:
1
,
...
@@ -473,9 +529,9 @@ export default {
...
@@ -473,9 +529,9 @@ export default {
},
},
// 多选框选中数据
// 多选框选中数据
handleSelectionChange
(
selection
)
{
handleSelectionChange
(
selection
)
{
this
.
ids
=
selection
.
map
(
item
=>
item
.
userId
)
this
.
ids
=
selection
.
map
(
item
=>
item
.
userId
)
;
this
.
single
=
selection
.
length
!=
1
this
.
single
=
selection
.
length
!=
1
;
this
.
multiple
=
!
selection
.
length
this
.
multiple
=
!
selection
.
length
;
},
},
/** 新增按钮操作 */
/** 新增按钮操作 */
handleAdd
()
{
handleAdd
()
{
...
@@ -493,7 +549,7 @@ export default {
...
@@ -493,7 +549,7 @@ export default {
handleUpdate
(
row
)
{
handleUpdate
(
row
)
{
this
.
reset
();
this
.
reset
();
this
.
getTreeselect
();
this
.
getTreeselect
();
const
userId
=
row
.
userId
||
this
.
ids
const
userId
=
row
.
userId
||
this
.
ids
;
getUser
(
userId
).
then
(
response
=>
{
getUser
(
userId
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
form
=
response
.
data
;
this
.
postOptions
=
response
.
posts
;
this
.
postOptions
=
response
.
posts
;
...
@@ -574,6 +630,33 @@ export default {
...
@@ -574,6 +630,33 @@ export default {
}).
then
(
response
=>
{
}).
then
(
response
=>
{
this
.
download
(
response
.
msg
);
this
.
download
(
response
.
msg
);
}).
catch
(
function
()
{});
}).
catch
(
function
()
{});
},
/** 导入按钮操作 */
handleImport
()
{
this
.
upload
.
title
=
"
用户导入
"
;
this
.
upload
.
open
=
true
;
},
/** 下载模板操作 */
importTemplate
()
{
importTemplate
().
then
(
response
=>
{
this
.
download
(
response
.
msg
);
});
},
// 文件上传中处理
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
this
.
upload
.
isUploading
=
true
;
},
// 文件上传成功处理
handleFileSuccess
(
response
,
file
,
fileList
)
{
this
.
upload
.
open
=
false
;
this
.
upload
.
isUploading
=
false
;
this
.
$refs
.
upload
.
clearFiles
();
this
.
$alert
(
response
.
msg
,
"
导入结果
"
,
{
dangerouslyUseHTMLString
:
true
});
this
.
getList
();
},
// 提交上传文件
submitFileForm
()
{
this
.
$refs
.
upload
.
submit
();
}
}
}
}
};
};
...
...
ruoyi/src/main/java/com/ruoyi/project/system/controller/SysUserController.java
View file @
b508e6f2
...
@@ -12,12 +12,16 @@ import org.springframework.web.bind.annotation.PutMapping;
...
@@ -12,12 +12,16 @@ import org.springframework.web.bind.annotation.PutMapping;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
import
com.ruoyi.common.constant.UserConstants
;
import
com.ruoyi.common.constant.UserConstants
;
import
com.ruoyi.common.utils.SecurityUtils
;
import
com.ruoyi.common.utils.SecurityUtils
;
import
com.ruoyi.common.utils.ServletUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.common.utils.poi.ExcelUtil
;
import
com.ruoyi.common.utils.poi.ExcelUtil
;
import
com.ruoyi.framework.aspectj.lang.annotation.Log
;
import
com.ruoyi.framework.aspectj.lang.annotation.Log
;
import
com.ruoyi.framework.aspectj.lang.enums.BusinessType
;
import
com.ruoyi.framework.aspectj.lang.enums.BusinessType
;
import
com.ruoyi.framework.security.LoginUser
;
import
com.ruoyi.framework.security.service.TokenService
;
import
com.ruoyi.framework.web.controller.BaseController
;
import
com.ruoyi.framework.web.controller.BaseController
;
import
com.ruoyi.framework.web.domain.AjaxResult
;
import
com.ruoyi.framework.web.domain.AjaxResult
;
import
com.ruoyi.framework.web.page.TableDataInfo
;
import
com.ruoyi.framework.web.page.TableDataInfo
;
...
@@ -44,6 +48,9 @@ public class SysUserController extends BaseController
...
@@ -44,6 +48,9 @@ public class SysUserController extends BaseController
@Autowired
@Autowired
private
ISysPostService
postService
;
private
ISysPostService
postService
;
@Autowired
private
TokenService
tokenService
;
/**
/**
* 获取用户列表
* 获取用户列表
*/
*/
...
@@ -66,6 +73,26 @@ public class SysUserController extends BaseController
...
@@ -66,6 +73,26 @@ public class SysUserController extends BaseController
return
util
.
exportExcel
(
list
,
"用户数据"
);
return
util
.
exportExcel
(
list
,
"用户数据"
);
}
}
@Log
(
title
=
"用户管理"
,
businessType
=
BusinessType
.
IMPORT
)
@PreAuthorize
(
"@ss.hasPermi('system:user:import')"
)
@PostMapping
(
"/importData"
)
public
AjaxResult
importData
(
MultipartFile
file
,
boolean
updateSupport
)
throws
Exception
{
ExcelUtil
<
SysUser
>
util
=
new
ExcelUtil
<
SysUser
>(
SysUser
.
class
);
List
<
SysUser
>
userList
=
util
.
importExcel
(
file
.
getInputStream
());
LoginUser
loginUser
=
tokenService
.
getLoginUser
(
ServletUtils
.
getRequest
());
String
operName
=
loginUser
.
getUsername
();
String
message
=
userService
.
importUser
(
userList
,
updateSupport
,
operName
);
return
AjaxResult
.
success
(
message
);
}
@GetMapping
(
"/importTemplate"
)
public
AjaxResult
importTemplate
()
{
ExcelUtil
<
SysUser
>
util
=
new
ExcelUtil
<
SysUser
>(
SysUser
.
class
);
return
util
.
importTemplateExcel
(
"用户数据"
);
}
/**
/**
* 根据用户编号获取详细信息
* 根据用户编号获取详细信息
*/
*/
...
...
ruoyi/src/main/java/com/ruoyi/project/system/domain/SysUser.java
View file @
b508e6f2
...
@@ -9,6 +9,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
...
@@ -9,6 +9,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
import
org.apache.commons.lang3.builder.ToStringStyle
;
import
org.apache.commons.lang3.builder.ToStringStyle
;
import
com.ruoyi.framework.aspectj.lang.annotation.Excel
;
import
com.ruoyi.framework.aspectj.lang.annotation.Excel
;
import
com.ruoyi.framework.aspectj.lang.annotation.Excel.ColumnType
;
import
com.ruoyi.framework.aspectj.lang.annotation.Excel.ColumnType
;
import
com.ruoyi.framework.aspectj.lang.annotation.Excel.Type
;
import
com.ruoyi.framework.aspectj.lang.annotation.Excels
;
import
com.ruoyi.framework.aspectj.lang.annotation.Excels
;
import
com.ruoyi.framework.web.domain.BaseEntity
;
import
com.ruoyi.framework.web.domain.BaseEntity
;
...
@@ -26,6 +27,7 @@ public class SysUser extends BaseEntity
...
@@ -26,6 +27,7 @@ public class SysUser extends BaseEntity
private
Long
userId
;
private
Long
userId
;
/** 部门ID */
/** 部门ID */
@Excel
(
name
=
"部门编号"
,
type
=
Type
.
IMPORT
)
private
Long
deptId
;
private
Long
deptId
;
/** 用户账号 */
/** 用户账号 */
...
@@ -65,15 +67,18 @@ public class SysUser extends BaseEntity
...
@@ -65,15 +67,18 @@ public class SysUser extends BaseEntity
private
String
delFlag
;
private
String
delFlag
;
/** 最后登陆IP */
/** 最后登陆IP */
@Excel
(
name
=
"最后登陆IP"
)
@Excel
(
name
=
"最后登陆IP"
,
type
=
Type
.
EXPORT
)
private
String
loginIp
;
private
String
loginIp
;
/** 最后登陆时间 */
/** 最后登陆时间 */
@Excel
(
name
=
"最后登陆时间"
,
width
=
30
,
dateFormat
=
"yyyy-MM-dd HH:mm:ss"
)
@Excel
(
name
=
"最后登陆时间"
,
width
=
30
,
dateFormat
=
"yyyy-MM-dd HH:mm:ss"
,
type
=
Type
.
EXPORT
)
private
Date
loginDate
;
private
Date
loginDate
;
/** 部门对象 */
/** 部门对象 */
@Excels
({
@Excel
(
name
=
"部门名称"
,
targetAttr
=
"deptName"
),
@Excel
(
name
=
"部门负责人"
,
targetAttr
=
"leader"
)
})
@Excels
({
@Excel
(
name
=
"部门名称"
,
targetAttr
=
"deptName"
,
type
=
Type
.
EXPORT
),
@Excel
(
name
=
"部门负责人"
,
targetAttr
=
"leader"
,
type
=
Type
.
EXPORT
)
})
private
SysDept
dept
;
private
SysDept
dept
;
/** 角色对象 */
/** 角色对象 */
...
...
ruoyi/src/main/java/com/ruoyi/project/system/service/ISysConfigService.java
View file @
b508e6f2
...
@@ -24,7 +24,7 @@ public interface ISysConfigService
...
@@ -24,7 +24,7 @@ public interface ISysConfigService
* @param configKey 参数键名
* @param configKey 参数键名
* @return 参数键值
* @return 参数键值
*/
*/
public
Object
selectConfigByKey
(
String
configKey
);
public
String
selectConfigByKey
(
String
configKey
);
/**
/**
* 查询参数配置列表
* 查询参数配置列表
...
...
ruoyi/src/main/java/com/ruoyi/project/system/service/ISysUserService.java
View file @
b508e6f2
...
@@ -154,4 +154,14 @@ public interface ISysUserService
...
@@ -154,4 +154,14 @@ public interface ISysUserService
* @return 结果
* @return 结果
*/
*/
public
int
deleteUserByIds
(
Long
[]
userIds
);
public
int
deleteUserByIds
(
Long
[]
userIds
);
/**
* 导入用户数据
*
* @param userList 用户数据列表
* @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
* @param operName 操作用户
* @return 结果
*/
public
String
importUser
(
List
<
SysUser
>
userList
,
Boolean
isUpdateSupport
,
String
operName
);
}
}
ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysConfigServiceImpl.java
View file @
b508e6f2
...
@@ -41,7 +41,7 @@ public class SysConfigServiceImpl implements ISysConfigService
...
@@ -41,7 +41,7 @@ public class SysConfigServiceImpl implements ISysConfigService
* @return 参数键值
* @return 参数键值
*/
*/
@Override
@Override
public
Object
selectConfigByKey
(
String
configKey
)
public
String
selectConfigByKey
(
String
configKey
)
{
{
SysConfig
config
=
new
SysConfig
();
SysConfig
config
=
new
SysConfig
();
config
.
setConfigKey
(
configKey
);
config
.
setConfigKey
(
configKey
);
...
...
ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java
View file @
b508e6f2
...
@@ -2,11 +2,14 @@ package com.ruoyi.project.system.service.impl;
...
@@ -2,11 +2,14 @@ package com.ruoyi.project.system.service.impl;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.ruoyi.common.constant.UserConstants
;
import
com.ruoyi.common.constant.UserConstants
;
import
com.ruoyi.common.exception.CustomException
;
import
com.ruoyi.common.exception.CustomException
;
import
com.ruoyi.common.utils.SecurityUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.framework.aspectj.lang.annotation.DataScope
;
import
com.ruoyi.framework.aspectj.lang.annotation.DataScope
;
import
com.ruoyi.project.system.domain.SysPost
;
import
com.ruoyi.project.system.domain.SysPost
;
...
@@ -19,6 +22,7 @@ import com.ruoyi.project.system.mapper.SysRoleMapper;
...
@@ -19,6 +22,7 @@ import com.ruoyi.project.system.mapper.SysRoleMapper;
import
com.ruoyi.project.system.mapper.SysUserMapper
;
import
com.ruoyi.project.system.mapper.SysUserMapper
;
import
com.ruoyi.project.system.mapper.SysUserPostMapper
;
import
com.ruoyi.project.system.mapper.SysUserPostMapper
;
import
com.ruoyi.project.system.mapper.SysUserRoleMapper
;
import
com.ruoyi.project.system.mapper.SysUserRoleMapper
;
import
com.ruoyi.project.system.service.ISysConfigService
;
import
com.ruoyi.project.system.service.ISysUserService
;
import
com.ruoyi.project.system.service.ISysUserService
;
/**
/**
...
@@ -29,6 +33,8 @@ import com.ruoyi.project.system.service.ISysUserService;
...
@@ -29,6 +33,8 @@ import com.ruoyi.project.system.service.ISysUserService;
@Service
@Service
public
class
SysUserServiceImpl
implements
ISysUserService
public
class
SysUserServiceImpl
implements
ISysUserService
{
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
SysUserServiceImpl
.
class
);
@Autowired
@Autowired
private
SysUserMapper
userMapper
;
private
SysUserMapper
userMapper
;
...
@@ -44,6 +50,9 @@ public class SysUserServiceImpl implements ISysUserService
...
@@ -44,6 +50,9 @@ public class SysUserServiceImpl implements ISysUserService
@Autowired
@Autowired
private
SysUserPostMapper
userPostMapper
;
private
SysUserPostMapper
userPostMapper
;
@Autowired
private
ISysConfigService
configService
;
/**
/**
* 根据条件分页查询用户列表
* 根据条件分页查询用户列表
*
*
...
@@ -375,4 +384,72 @@ public class SysUserServiceImpl implements ISysUserService
...
@@ -375,4 +384,72 @@ public class SysUserServiceImpl implements ISysUserService
}
}
return
userMapper
.
deleteUserByIds
(
userIds
);
return
userMapper
.
deleteUserByIds
(
userIds
);
}
}
/**
* 导入用户数据
*
* @param userList 用户数据列表
* @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
* @param operName 操作用户
* @return 结果
*/
@Override
public
String
importUser
(
List
<
SysUser
>
userList
,
Boolean
isUpdateSupport
,
String
operName
)
{
if
(
StringUtils
.
isNull
(
userList
)
||
userList
.
size
()
==
0
)
{
throw
new
CustomException
(
"导入用户数据不能为空!"
);
}
int
successNum
=
0
;
int
failureNum
=
0
;
StringBuilder
successMsg
=
new
StringBuilder
();
StringBuilder
failureMsg
=
new
StringBuilder
();
String
password
=
configService
.
selectConfigByKey
(
"sys.user.initPassword"
);
for
(
SysUser
user
:
userList
)
{
try
{
// 验证是否存在这个用户
SysUser
u
=
userMapper
.
selectUserByUserName
(
user
.
getUserName
());
if
(
StringUtils
.
isNull
(
u
))
{
user
.
setPassword
(
SecurityUtils
.
encryptPassword
(
password
));
user
.
setCreateBy
(
operName
);
this
.
insertUser
(
user
);
successNum
++;
successMsg
.
append
(
"<br/>"
+
successNum
+
"、账号 "
+
user
.
getUserName
()
+
" 导入成功"
);
}
else
if
(
isUpdateSupport
)
{
user
.
setUpdateBy
(
operName
);
this
.
updateUser
(
user
);
successNum
++;
successMsg
.
append
(
"<br/>"
+
successNum
+
"、账号 "
+
user
.
getUserName
()
+
" 更新成功"
);
}
else
{
failureNum
++;
failureMsg
.
append
(
"<br/>"
+
failureNum
+
"、账号 "
+
user
.
getUserName
()
+
" 已存在"
);
}
}
catch
(
Exception
e
)
{
failureNum
++;
String
msg
=
"<br/>"
+
failureNum
+
"、账号 "
+
user
.
getUserName
()
+
" 导入失败:"
;
failureMsg
.
append
(
msg
+
e
.
getMessage
());
log
.
error
(
msg
,
e
);
}
}
if
(
failureNum
>
0
)
{
failureMsg
.
insert
(
0
,
"很抱歉,导入失败!共 "
+
failureNum
+
" 条数据格式不正确,错误如下:"
);
throw
new
CustomException
(
failureMsg
.
toString
());
}
else
{
successMsg
.
insert
(
0
,
"恭喜您,数据已全部导入成功!共 "
+
successNum
+
" 条,数据如下:"
);
}
return
successMsg
.
toString
();
}
}
}
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