Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
Z
zh-baseversion-project
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
王浩
zh-baseversion-project
Commits
a8671429
Commit
a8671429
authored
May 31, 2024
by
军师中郎将
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1 燃气企业 企业类型通过 字典配置实现
2 燃气企业 信息简单导入功能 实现。
parent
6c2f88d0
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
201 additions
and
29 deletions
+201
-29
TEnterpriseInfoController.java
...g/web/controller/supervise/TEnterpriseInfoController.java
+20
-0
TEnterpriseInfo.java
...c/main/java/com/zehong/system/domain/TEnterpriseInfo.java
+0
-2
ITEnterpriseInfoService.java
...va/com/zehong/system/service/ITEnterpriseInfoService.java
+10
-0
TEnterpriseInfoServiceImpl.java
...ehong/system/service/impl/TEnterpriseInfoServiceImpl.java
+66
-0
info.js
zh-baseversion-web/src/api/regulation/info.js
+9
-0
index.vue
zh-baseversion-web/src/views/regulation/info/index.vue
+96
-27
No files found.
zh-baseversion-admin/src/main/java/com/zehong/web/controller/supervise/TEnterpriseInfoController.java
View file @
a8671429
...
...
@@ -15,7 +15,9 @@ import com.zehong.system.domain.vo.TEnterpriseInfoVO;
import
com.zehong.system.service.ITEnterpriseInfoService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.File
;
import
java.util.List
;
...
...
@@ -154,4 +156,22 @@ public class TEnterpriseInfoController extends BaseController
{
return
toAjax
(
tEnterpriseInfoService
.
deleteTEnterpriseInfoByIds
(
enterpriseIds
));
}
@Log
(
title
=
"项目编号"
,
businessType
=
BusinessType
.
IMPORT
)
@PostMapping
(
"/importData"
)
public
AjaxResult
importData
(
MultipartFile
file
,
boolean
updateSupport
)
throws
Exception
{
ExcelUtil
<
TEnterpriseInfo
>
util
=
new
ExcelUtil
<>(
TEnterpriseInfo
.
class
);
List
<
TEnterpriseInfo
>
XmbhList
=
util
.
importExcel
(
file
.
getInputStream
());
String
operName
=
SecurityUtils
.
getLoginUser
().
getUsername
();
String
message
=
tEnterpriseInfoService
.
importEnterpriseInfo
(
XmbhList
,
updateSupport
,
operName
);
return
AjaxResult
.
success
(
message
);
}
@GetMapping
(
"/importTemplate"
)
public
AjaxResult
importTemplate
()
{
ExcelUtil
<
TEnterpriseInfo
>
util
=
new
ExcelUtil
<>(
TEnterpriseInfo
.
class
);
return
util
.
importTemplateExcel
(
"燃气企业数据"
);
}
}
zh-baseversion-system/src/main/java/com/zehong/system/domain/TEnterpriseInfo.java
View file @
a8671429
package
com
.
zehong
.
system
.
domain
;
import
org.apache.commons.lang3.builder.ToStringBuilder
;
import
org.apache.commons.lang3.builder.ToStringStyle
;
import
com.zehong.common.annotation.Excel
;
import
com.zehong.common.core.domain.BaseEntity
;
...
...
zh-baseversion-system/src/main/java/com/zehong/system/service/ITEnterpriseInfoService.java
View file @
a8671429
...
...
@@ -62,5 +62,15 @@ public interface ITEnterpriseInfoService
*/
public
int
deleteTEnterpriseInfoById
(
String
enterpriseId
);
/**
* 导入企业信息
*
* @param XmbhList 用户数据列表
* @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
* @param operName 操作用户
* @return 结果
*/
public
String
importEnterpriseInfo
(
List
<
TEnterpriseInfo
>
XmbhList
,
Boolean
isUpdateSupport
,
String
operName
);
}
zh-baseversion-system/src/main/java/com/zehong/system/service/impl/TEnterpriseInfoServiceImpl.java
View file @
a8671429
...
...
@@ -2,9 +2,15 @@ package com.zehong.system.service.impl;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
import
com.zehong.common.exception.BaseException
;
import
com.zehong.common.utils.DateUtils
;
import
com.zehong.common.utils.StringUtils
;
import
com.zehong.common.utils.bean.BeanUtils
;
import
com.zehong.common.utils.uuid.UUID
;
import
com.zehong.system.domain.vo.TEnterpriseInfoVO
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.zehong.system.mapper.TEnterpriseInfoMapper
;
...
...
@@ -117,4 +123,64 @@ public class TEnterpriseInfoServiceImpl implements ITEnterpriseInfoService
{
return
tEnterpriseInfoMapper
.
deleteTEnterpriseInfoById
(
enterpriseId
);
}
/**
* 导入企业信息
* @param tEnterpriseInfos 用户数据列表
* @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
* @param operName 操作用户
* @return
*/
@Override
public
String
importEnterpriseInfo
(
List
<
TEnterpriseInfo
>
tEnterpriseInfos
,
Boolean
isUpdateSupport
,
String
operName
)
{
if
(
CollectionUtils
.
isEmpty
(
tEnterpriseInfos
))
{
throw
new
BaseException
(
"导入项目编号数据不能为空! "
);
}
int
successNum
=
0
;
int
failureNum
=
0
;
StringBuilder
successMsg
=
new
StringBuilder
();
StringBuilder
failureMsg
=
new
StringBuilder
();
for
(
TEnterpriseInfo
enterpriseInfo
:
tEnterpriseInfos
)
{
try
{
checkUploadRequired
(
enterpriseInfo
);
enterpriseInfo
.
setEnterpriseId
(
UUID
.
randomUUID
().
toString
());
this
.
insertTEnterpriseInfo
(
enterpriseInfo
);
successNum
++;
successMsg
.
append
(
"<br/>"
+
successNum
+
"、项目编号 "
+
enterpriseInfo
.
getEnterpriseName
()
+
" 导入成功"
);
}
catch
(
Exception
e
)
{
failureNum
++;
String
msg
=
"<br/>"
+
failureNum
+
"、项目编号 "
+
enterpriseInfo
.
getEnterpriseName
()
+
" 导入失败:"
;
failureMsg
.
append
(
msg
+
e
.
getMessage
());
}
}
if
(
failureNum
>
0
)
{
failureMsg
.
insert
(
0
,
"很抱歉,导入失败!共 "
+
failureNum
+
" 条数据格式不正确,错误如下:"
);
throw
new
BaseException
(
failureMsg
.
toString
());
}
else
{
successMsg
.
insert
(
0
,
"恭喜您,数据已全部导入成功!共 "
+
successNum
+
" 条,数据如下:"
);
}
return
successMsg
.
toString
();
}
/**
* 校验导入必填
* @param tEnterpriseInfo t
*/
public
void
checkUploadRequired
(
TEnterpriseInfo
tEnterpriseInfo
)
{
if
(
tEnterpriseInfo
.
getEnterpriseName
()
==
null
||
""
.
equals
(
tEnterpriseInfo
.
getEnterpriseName
()))
{
throw
new
BaseException
(
"企业名称必填!!!"
);
}
if
(
tEnterpriseInfo
.
getEnterpriseType
()
==
null
)
{
throw
new
BaseException
(
"企业类型必传!!!"
);
}
if
(
tEnterpriseInfo
.
getRegisterAddress
()
==
null
||
""
.
equals
(
tEnterpriseInfo
.
getRegisterAddress
()))
{
throw
new
BaseException
(
"注册地址必传!!!"
);
}
if
(
tEnterpriseInfo
.
getLegalRepresentative
()
==
null
||
""
.
equals
(
tEnterpriseInfo
.
getLegalRepresentative
()))
{
throw
new
BaseException
(
"法定代表人必传!!!"
);
}
}
}
zh-baseversion-web/src/api/regulation/info.js
View file @
a8671429
...
...
@@ -62,3 +62,12 @@ export function exportInfo(query) {
params
:
query
})
}
// 下载用户导入模板
export
function
importTemplate
()
{
return
request
({
url
:
'/regulation/info/importTemplate'
,
method
:
'get'
})
}
\ No newline at end of file
zh-baseversion-web/src/views/regulation/info/index.vue
View file @
a8671429
...
...
@@ -65,6 +65,13 @@
@
click=
"handleExport"
>
导出
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"info"
icon=
"el-icon-upload2"
size=
"mini"
@
click=
"handleImport"
>
导入
</el-button>
</el-col>
<right-toolbar
:showSearch
.
sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
...
...
@@ -75,8 +82,7 @@
<span
slot-scope=
"scope"
v-if=
"scope.row.enterpriseName"
>
{{
scope
.
row
.
enterpriseName
}}
</span>
<span
v-else
>
-
</span>
</el-table-column>
<el-table-column
label=
"企业类型"
align=
"center"
prop=
"enterpriseType"
>
<span
slot-scope=
"scope"
v-if=
"scope.row.enterpriseType"
>
{{
gettype
(
scope
.
row
.
enterpriseType
)
}}
</span>
<el-table-column
label=
"企业类型"
align=
"center"
prop=
"enterpriseType"
:formatter=
"enterpriseTypeFormat"
>
</el-table-column>
<el-table-column
label=
"注册地址"
align=
"center"
prop=
"registerAddress"
>
<span
slot-scope=
"scope"
v-if=
"scope.row.registerAddress"
>
{{
scope
.
row
.
registerAddress
}}
</span>
...
...
@@ -163,9 +169,9 @@
<el-select
v-model=
"form.enterpriseType"
placeholder=
"请选类型"
style=
"width: 100%;"
>
<el-option
v-for=
"item in options"
:key=
"item.
v
alue"
:label=
"item.
l
abel"
:value=
"
item.value
"
>
:key=
"item.
dictV
alue"
:label=
"item.
dictL
abel"
:value=
"
parseInt(item.dictValue)
"
>
</el-option>
</el-select>
</el-form-item>
...
...
@@ -248,19 +254,64 @@
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
<!-- 用户导入对话框 -->
<el-dialog
:title=
"upload.title"
:visible
.
sync=
"upload.open"
width=
"400px"
append-to-body
>
<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 text-center"
slot=
"tip"
>
<div
class=
"el-upload__tip"
slot=
"tip"
>
<el-checkbox
v-model=
"upload.updateSupport"
/>
是否更新已经存在的用户数据
</div>
<span>
仅允许导入xls、xlsx格式文件。
</span>
<el-link
type=
"primary"
:underline=
"false"
style=
"font-size:12px;vertical-align: baseline;"
@
click=
"importTemplate"
>
下载模板
</el-link>
</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>
</template>
<
script
>
import
{
listInfo
,
getInfo
,
delInfo
,
addInfo
,
updateInfo
,
exportInfo
}
from
"@/api/regulation/info"
;
import
{
listInfo
,
getInfo
,
delInfo
,
addInfo
,
updateInfo
,
exportInfo
,
importTemplate
}
from
"@/api/regulation/info"
;
import
FileUpload
from
'@/components/FileInfoUpload'
;
import
{
getToken
}
from
"@/utils/auth"
;
export
default
{
name
:
"Info"
,
components
:
{
FileUpload
,
},
dicts
:
[
'enterprise_type'
],
data
()
{
return
{
upload
:
{
// 是否显示弹出层(用户导入)
open
:
false
,
// 弹出层标题(用户导入)
title
:
"燃气企业信息导入"
,
// 是否禁用上传
isUploading
:
false
,
// 是否更新已经存在的用户数据
updateSupport
:
0
,
// 设置上传的请求头部
headers
:
{
Authorization
:
"Bearer "
+
getToken
()
},
// 上传的地址
url
:
process
.
env
.
VUE_APP_BASE_API
+
"/regulation/info/importData"
// todo
},
//图片
fileList
:
[],
//头像数据
...
...
@@ -287,16 +338,7 @@ export default {
title
:
""
,
// 是否显示弹出层
open
:
false
,
options
:
[{
value
:
1
,
label
:
'天然气公司'
},
{
value
:
2
,
label
:
'液化气公司'
},
{
value
:
3
,
label
:
'加气站'
}],
options
:
[],
value
:
''
,
// 查询参数
queryParams
:
{
...
...
@@ -338,8 +380,46 @@ export default {
},
created
()
{
this
.
getList
();
this
.
getDicts
(
"enterprise_type"
).
then
(
response
=>
{
this
.
options
=
response
.
data
;
console
.
log
(
"this.options = "
+
JSON
.
stringify
(
this
.
options
))
});
},
methods
:
{
// 任务组名字典翻译
enterpriseTypeFormat
(
row
)
{
return
this
.
selectDictLabel
(
this
.
options
,
row
.
enterpriseType
);
},
handleImport
(){
this
.
upload
.
title
=
"燃气企业导入"
;
// todo
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
(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>"
+
response
.
msg
+
"</div>"
,
"导入结果"
,
{
dangerouslyUseHTMLString
:
true
});
this
.
getList
();
},
// 提交上传文件
submitFileForm
()
{
this
.
$refs
.
upload
.
submit
();
},
/**上传营业执照照片*/
getFileInfo
(
res
){
this
.
form
.
dealPlan
=
res
.
fileName
;
...
...
@@ -408,17 +488,6 @@ export default {
this
.
single
=
selection
.
length
!==
1
this
.
multiple
=
!
selection
.
length
},
gettype
(
type
){
if
(
type
==
1
){
return
"天然气公司"
;
}
if
(
type
==
2
){
return
"液化气公司"
;
}
if
(
type
==
3
){
return
"加气站"
;
}
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
listRemove
();
...
...
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