Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
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
项目统一框架
amos-boot-biz
Commits
ea5d1c8d
Commit
ea5d1c8d
authored
Oct 08, 2024
by
韩桐桐
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix(96333): 救援站导入功能完善
parent
b5a03edc
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
77 additions
and
21 deletions
+77
-21
RescueStationImportVo.java
...os/boot/module/elevator/api/vo/RescueStationImportVo.java
+11
-10
RescueStationServiceImpl.java
...e/elevator/biz/service/impl/RescueStationServiceImpl.java
+66
-11
No files found.
amos-boot-system-tzs/amos-boot-module-96333/amos-boot-module-96333-api/src/main/java/com/yeejoin/amos/boot/module/elevator/api/vo/RescueStationImportVo.java
View file @
ea5d1c8d
package
com
.
yeejoin
.
amos
.
boot
.
module
.
elevator
.
api
.
vo
;
package
com
.
yeejoin
.
amos
.
boot
.
module
.
elevator
.
api
.
vo
;
import
com.alibaba.excel.annotation.ExcelIgnore
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
/**
/**
* @author chang xiangyu 2024/9/30
* @author chang xiangyu 2024/9/30
* 导入救援站信息Model
* 导入救援站信息Model
...
@@ -15,20 +13,18 @@ public class RescueStationImportVo {
...
@@ -15,20 +13,18 @@ public class RescueStationImportVo {
@ExcelProperty
(
value
=
"应急救援机构名称"
)
@ExcelProperty
(
value
=
"应急救援机构名称"
)
private
String
name
;
private
String
name
;
@ExcelProperty
(
value
=
"所属省"
)
private
String
province
;
@ExcelProperty
(
value
=
"所属地市"
)
@ExcelProperty
(
value
=
"地市"
)
private
String
city
;
private
String
city
;
@ExcelProperty
(
value
=
"区县"
)
@ExcelProperty
(
value
=
"
所属
区县"
)
private
String
district
;
private
String
district
;
@ExcelProperty
(
value
=
"地址(详细地址,包括道路、门牌号码)"
)
@ExcelProperty
(
value
=
"地址(详细地址,包括道路、门牌号码)"
)
private
String
address
;
private
String
address
;
@ExcelProperty
(
value
=
"主要负责人"
)
@ExcelProperty
(
value
=
"主要负责人"
)
private
String
principal
;
private
String
principal
;
...
@@ -41,9 +37,14 @@ public class RescueStationImportVo {
...
@@ -41,9 +37,14 @@ public class RescueStationImportVo {
@ExcelProperty
(
value
=
"应急救援负责人手机号"
)
@ExcelProperty
(
value
=
"应急救援负责人手机号"
)
private
String
rescueLeaderPhone
;
private
String
rescueLeaderPhone
;
@ExcelProperty
(
value
=
"所属单位统一行用代码"
)
private
String
affiliatedUnitCreditCode
;
@ExcelProperty
(
value
=
"所属单位
(维保单位)
"
)
@ExcelProperty
(
value
=
"所属单位
名称
"
)
private
String
affiliatedUnit
;
private
String
affiliatedUnit
;
@ExcelProperty
(
value
=
"所属单位id"
)
@ExcelIgnore
private
Long
affiliatedUnitId
;
}
}
amos-boot-system-tzs/amos-boot-module-96333/amos-boot-module-96333-biz/src/main/java/com/yeejoin/amos/boot/module/elevator/biz/service/impl/RescueStationServiceImpl.java
View file @
ea5d1c8d
...
@@ -5,16 +5,20 @@ import com.alibaba.excel.ExcelReader;
...
@@ -5,16 +5,20 @@ import com.alibaba.excel.ExcelReader;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.event.AnalysisEventListener
;
import
com.alibaba.excel.event.AnalysisEventListener
;
import
com.alibaba.excel.read.metadata.ReadSheet
;
import
com.alibaba.excel.read.metadata.ReadSheet
;
import
com.alibaba.excel.read.metadata.holder.ReadRowHolder
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.yeejoin.amos.boot.module.elevator.api.dto.RescueStationDto
;
import
com.yeejoin.amos.boot.module.elevator.api.dto.RescueStationDto
;
import
com.yeejoin.amos.boot.module.elevator.api.dto.TzBaseEnterpriseInfoDto
;
import
com.yeejoin.amos.boot.module.elevator.api.entity.RescueStation
;
import
com.yeejoin.amos.boot.module.elevator.api.entity.RescueStation
;
import
com.yeejoin.amos.boot.module.elevator.api.mapper.RescueStationMapper
;
import
com.yeejoin.amos.boot.module.elevator.api.mapper.RescueStationMapper
;
import
com.yeejoin.amos.boot.module.elevator.api.service.IRescueStationService
;
import
com.yeejoin.amos.boot.module.elevator.api.service.IRescueStationService
;
import
com.yeejoin.amos.boot.module.elevator.api.vo.RescueStationImportVo
;
import
com.yeejoin.amos.boot.module.elevator.api.vo.RescueStationImportVo
;
import
com.yeejoin.amos.boot.module.elevator.biz.utils.BeanDtoVoUtils
;
import
com.yeejoin.amos.boot.module.elevator.biz.utils.BeanDtoVoUtils
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
com.yeejoin.amos.feign.systemctl.Systemctl
;
import
com.yeejoin.amos.feign.systemctl.model.RegionModel
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -28,10 +32,8 @@ import org.typroject.tyboot.core.restful.utils.ResponseHelper;
...
@@ -28,10 +32,8 @@ import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
java.io.InputStream
;
import
java.io.InputStream
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.Arrays
;
import
java.util.stream.Collectors
;
import
java.util.Date
;
import
java.util.List
;
/**
/**
* 服务实现类
* 服务实现类
...
@@ -46,6 +48,10 @@ public class RescueStationServiceImpl extends BaseService<RescueStationDto, Resc
...
@@ -46,6 +48,10 @@ public class RescueStationServiceImpl extends BaseService<RescueStationDto, Resc
RescueStationMapper
rescueStationMapper
;
RescueStationMapper
rescueStationMapper
;
@Autowired
@Autowired
IRescueStationService
iRescueStationService
;
IRescueStationService
iRescueStationService
;
@Autowired
TzBaseEnterpriseInfoServiceImpl
baseEnterpriseInfoService
;
private
final
String
excelErrorStr
=
"Excel 第[%s]行:%s"
;
@Override
@Override
public
List
<
RescueStationDto
>
getListByLatLonDistance
(
String
lat
,
String
lon
,
Integer
distance
)
{
public
List
<
RescueStationDto
>
getListByLatLonDistance
(
String
lat
,
String
lon
,
Integer
distance
)
{
...
@@ -72,6 +78,17 @@ public class RescueStationServiceImpl extends BaseService<RescueStationDto, Resc
...
@@ -72,6 +78,17 @@ public class RescueStationServiceImpl extends BaseService<RescueStationDto, Resc
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
@Override
public
ResponseModel
<
Object
>
expertDataImport
(
MultipartFile
file
,
AgencyUserModel
userModel
)
{
public
ResponseModel
<
Object
>
expertDataImport
(
MultipartFile
file
,
AgencyUserModel
userModel
)
{
List
<
RegionModel
>
regionModels1
=
Systemctl
.
regionClient
.
queryByLevel
(
"1"
).
getResult
();
Map
<
String
,
String
>
provinceResult
=
regionModels1
.
stream
().
collect
(
Collectors
.
toMap
(
RegionModel:
:
getRegionName
,
region
->
String
.
valueOf
(
region
.
getRegionCode
())));
List
<
RegionModel
>
regionModels2
=
Systemctl
.
regionClient
.
queryByLevel
(
"2"
).
getResult
();
Map
<
String
,
String
>
cityResult
=
regionModels2
.
stream
().
collect
(
Collectors
.
toMap
(
RegionModel:
:
getRegionName
,
region
->
String
.
valueOf
(
region
.
getRegionCode
())));
List
<
RegionModel
>
regionModels3
=
Systemctl
.
regionClient
.
queryByLevel
(
"3"
).
getResult
();
Map
<
String
,
String
>
districtResult
=
regionModels3
.
stream
().
collect
(
Collectors
.
toMap
(
RegionModel:
:
getRegionName
,
region
->
String
.
valueOf
(
region
.
getRegionCode
())));
try
{
try
{
InputStream
inputStream
=
file
.
getInputStream
();
InputStream
inputStream
=
file
.
getInputStream
();
ExcelReader
excelReader
=
EasyExcel
.
read
(
inputStream
).
build
();
ExcelReader
excelReader
=
EasyExcel
.
read
(
inputStream
).
build
();
...
@@ -87,27 +104,65 @@ public class RescueStationServiceImpl extends BaseService<RescueStationDto, Resc
...
@@ -87,27 +104,65 @@ public class RescueStationServiceImpl extends BaseService<RescueStationDto, Resc
EasyExcel
.
read
(
file
.
getInputStream
(),
RescueStationImportVo
.
class
,
new
AnalysisEventListener
<
RescueStationImportVo
>()
{
EasyExcel
.
read
(
file
.
getInputStream
(),
RescueStationImportVo
.
class
,
new
AnalysisEventListener
<
RescueStationImportVo
>()
{
@Override
@Override
public
void
invoke
(
RescueStationImportVo
data
,
AnalysisContext
context
)
{
public
void
invoke
(
RescueStationImportVo
data
,
AnalysisContext
context
)
{
// 数据检查
checkExcelData
(
data
,
context
);
// 数据处理
RescueStation
rescueStation
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
data
),
RescueStation
.
class
);
RescueStation
rescueStation
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
data
),
RescueStation
.
class
);
rescueStation
.
setIsDelete
(
Boolean
.
FALSE
);
rescueStation
.
setRecDate
(
new
Date
());
rescueStation
.
setRecUserName
(
userModel
.
getUserName
());
rescueStation
.
setRecUserId
(
userModel
.
getUserId
());
dataList
.
add
(
rescueStation
);
dataList
.
add
(
rescueStation
);
}
}
@Override
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
context
)
{
public
void
doAfterAllAnalysed
(
AnalysisContext
context
)
{
}
}
}).
headRowNumber
(
1
).
sheet
().
doRead
();
}).
headRowNumber
(
2
).
sheet
().
doRead
();
excelReader
.
finish
();
excelReader
.
finish
();
// 保存数据
// 完善数据 + 保存数据
for
(
RescueStation
rescueStation
:
dataList
)
{
rescueStation
.
setRegionCode
(
provinceResult
.
get
(
rescueStation
.
getProvince
())
+
"#"
+
cityResult
.
get
(
rescueStation
.
getCity
())
+
"#"
+
districtResult
.
get
(
rescueStation
.
getDistrict
()));
rescueStation
.
setIsDelete
(
Boolean
.
FALSE
);
rescueStation
.
setRecDate
(
new
Date
());
rescueStation
.
setRecUserName
(
userModel
.
getUserName
());
rescueStation
.
setRecUserId
(
userModel
.
getUserId
());
}
this
.
saveOrUpdateBatch
(
dataList
);
this
.
saveOrUpdateBatch
(
dataList
);
return
ResponseHelper
.
buildResponse
(
"success"
);
return
ResponseHelper
.
buildResponse
(
"success"
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
throw
new
BadRequest
(
e
.
getMessage
());
throw
new
BadRequest
(
e
.
getCause
().
getMessage
());
}
}
public
void
checkExcelData
(
RescueStationImportVo
data
,
AnalysisContext
context
)
{
ReadRowHolder
readRowHolder
=
context
.
readRowHolder
();
int
rowIndex
=
readRowHolder
.
getRowIndex
()
+
1
;
checkNotBlank
(
data
.
getName
(),
"应急救援机构名称不能为空!"
,
rowIndex
);
checkNotBlank
(
data
.
getProvince
(),
"所属省不能为空!"
,
rowIndex
);
checkNotBlank
(
data
.
getCity
(),
"所属地市不能为空!"
,
rowIndex
);
checkNotBlank
(
data
.
getDistrict
(),
"所属区县不能为空!"
,
rowIndex
);
checkNotBlank
(
data
.
getAddress
(),
"地址不能为空!"
,
rowIndex
);
checkNotBlank
(
data
.
getAffiliatedUnitCreditCode
(),
"所属单位统一行用代码不能为空!"
,
rowIndex
);
checkNotBlank
(
data
.
getAffiliatedUnit
(),
"所属单位名称不能为空!"
,
rowIndex
);
// 所属单位检查
TzBaseEnterpriseInfoDto
infoByUseCode
=
baseEnterpriseInfoService
.
getInfoByUseCode
(
data
.
getAffiliatedUnitCreditCode
());
if
(
ValidationUtil
.
isEmpty
(
infoByUseCode
))
{
throw
new
BadRequest
(
String
.
format
(
excelErrorStr
,
rowIndex
,
"所属单位系统中不存在!"
));
}
data
.
setAffiliatedUnit
(
infoByUseCode
.
getUseUnit
());
data
.
setAffiliatedUnitId
(
infoByUseCode
.
getSequenceNbr
());
}
/**
* 检查字段是否为空,如果为空则追加错误信息到result
*
* @param value 待检查字段
* @param errorMessage 错误信息
* @param rowIndex 行
*/
private
void
checkNotBlank
(
String
value
,
String
errorMessage
,
int
rowIndex
)
{
if
(
StringUtils
.
isBlank
(
value
))
{
throw
new
BadRequest
(
String
.
format
(
excelErrorStr
,
rowIndex
,
errorMessage
));
}
}
}
}
...
...
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