Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
聂康
local-rnr-enterprise
Commits
c997214d
Commit
c997214d
authored
Jun 17, 2025
by
kang.nie@inzymeits.com
Browse files
初始化代码
parent
741c2feb
Pipeline
#3107
failed with stages
in 0 seconds
Changes
265
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
src/main/java/com/cusc/nirvana/user/rnr/enterprise/excel/VehicleSimListener.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.excel
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.event.AnalysisEventListener
;
import
com.alibaba.excel.exception.ExcelAnalysisStopException
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.enterprise.excel.utils.EasyExcelUtil
;
import
com.cusc.nirvana.user.rnr.enterprise.util.IccidUtil
;
import
com.cusc.nirvana.user.rnr.fp.client.SimVehicleRelClient
;
import
com.cusc.nirvana.user.rnr.fp.dto.SimVehicleBindingDTO
;
import
com.cusc.nirvana.user.rnr.fp.dto.SimVehicleBindingResult
;
import
com.cusc.nirvana.user.rnr.fp.dto.SimVehicleDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.SimFileHistoryDTO
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
/**
* 车卡关系导入excel处理监听器
*/
@Slf4j
public
class
VehicleSimListener
extends
AnalysisEventListener
<
VehicleSimRelRow
>
{
private
final
static
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
VehicleSimListener
.
class
);
/**每隔500条提交数据处理*/
private
static
final
int
BATCH_COUNT
=
500
;
private
SimVehicleRelClient
simVehicleClient
;
private
SimFileHistoryDTO
simFileHistoryDTO
;
private
String
errorExcelFile
;
private
EasyExcelUtil
easyExcelUtil
;
private
String
tagUuid
;
/**存放批数据*/
private
List
<
VehicleSimRelInfoRow
>
successlist
=
new
ArrayList
<>();
private
List
<
VehicleSimRelInfoRow
>
errorList
=
new
ArrayList
<>();
public
VehicleSimListener
(
SimVehicleRelClient
simVehicleClient
,
SimFileHistoryDTO
simFileHistoryDTO
,
String
errorExcelFile
,
String
tagUuid
)
{
this
.
simVehicleClient
=
simVehicleClient
;
this
.
simFileHistoryDTO
=
simFileHistoryDTO
;
this
.
errorExcelFile
=
errorExcelFile
;
this
.
tagUuid
=
tagUuid
;
}
@Override
public
void
invokeHeadMap
(
Map
<
Integer
,
String
>
headMap
,
AnalysisContext
context
)
{
super
.
invokeHeadMap
(
headMap
,
context
);
if
(
headMap
.
size
()
<
12
)
{
simFileHistoryDTO
.
setErrorInfo
(
"文件标题不符合模板要求,文件标题:["
+
headMap
.
values
()
+
"]"
);
throw
new
ExcelAnalysisStopException
(
"文件不符合模板要求。文件标题:["
+
headMap
.
values
()
+
"]"
);
}
}
@Override
public
void
invoke
(
VehicleSimRelRow
vehicleSimRelRow
,
AnalysisContext
analysisContext
)
{
String
failReason
=
validata
(
vehicleSimRelRow
);
VehicleSimRelInfoRow
infoRow
=
rowToInfoRow
(
vehicleSimRelRow
);
if
(
CuscStringUtils
.
isNotEmpty
(
failReason
))
{
infoRow
.
setErrorInfo
(
failReason
);
errorList
.
add
(
infoRow
);
}
else
{
successlist
.
add
(
infoRow
);
}
}
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
analysisContext
)
{
if
(!
CollectionUtils
.
isEmpty
(
successlist
))
{
processData
();
}
if
(!
CollectionUtils
.
isEmpty
(
errorList
))
{
simFileHistoryDTO
.
setErrorCount
(
errorList
.
size
());
simFileHistoryDTO
.
setErrorInfo
(
"导入车卡关系有问题,请下载文件查看详情"
);
processErrorData
();
}
//excelFinish();
}
private
void
processErrorData
()
{
EasyExcel
.
write
(
errorExcelFile
,
VehicleSimRelInfoRow
.
class
)
.
sheet
(
"sheet0"
)
.
doWrite
(
errorList
);
}
@Override
public
void
onException
(
Exception
exception
,
AnalysisContext
context
)
throws
Exception
{
log
.
error
(
"e : {}"
,
exception
);
simFileHistoryDTO
.
setErrorInfo
(
"导入车卡关系有问题,请下载文件查看详情"
);
excelFinish
();
throw
new
ExcelAnalysisStopException
(
"导入车卡关系有问题,请下载文件查看详情"
);
}
private
void
processData
()
{
SimVehicleBindingDTO
bindingDTO
=
new
SimVehicleBindingDTO
();
bindingDTO
.
setOrganizationId
(
simFileHistoryDTO
.
getOrgUuid
());
bindingDTO
.
setTagUuid
(
tagUuid
);
bindingDTO
.
setCreator
(
simFileHistoryDTO
.
getCreator
());
List
<
SimVehicleDTO
>
simVehicleDTOS
=
new
ArrayList
<>();
successlist
.
forEach
(
infoRow
->
{
SimVehicleDTO
dto
=
infoRowToDto
(
infoRow
);
simVehicleDTOS
.
add
(
dto
);
});
bindingDTO
.
setBindingList
(
simVehicleDTOS
);
Response
<
SimVehicleBindingResult
>
response
;
try
{
response
=
simVehicleClient
.
importSimVehicle
(
bindingDTO
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"调用FP导入车卡关系失败,原因:"
,
e
);
response
=
Response
.
createError
();
}
if
(!
response
.
isSuccess
())
{
simVehicleDTOS
.
forEach
(
simVehicleDTO
->
{
VehicleSimRelInfoRow
infoRow
=
dtoToInfoRow
(
simVehicleDTO
);
infoRow
.
setErrorInfo
(
"导入失败"
);
//writeErrorExcel(infoRow);
errorList
.
add
(
infoRow
);
});
return
;
}
SimVehicleBindingResult
result
=
response
.
getData
();
if
(
result
!=
null
&&
result
.
getFailCount
()
!=
null
)
{
result
.
getFailData
().
forEach
(
failSim
->
{
VehicleSimRelInfoRow
infoRow
=
dtoToInfoRow
(
failSim
);
infoRow
.
setErrorInfo
(
CuscStringUtils
.
isEmpty
(
infoRow
.
getErrorInfo
())
?
"导入失败"
:
infoRow
.
getErrorInfo
());
//writeErrorExcel(infoRow);
errorList
.
add
(
infoRow
);
});
}
}
private
VehicleSimRelInfoRow
rowToInfoRow
(
VehicleSimRelRow
row
)
{
VehicleSimRelInfoRow
vehicleSimRelInfoRow
=
new
VehicleSimRelInfoRow
();
BeanUtils
.
copyProperties
(
row
,
vehicleSimRelInfoRow
);
return
vehicleSimRelInfoRow
;
}
private
SimVehicleDTO
infoRowToDto
(
VehicleSimRelInfoRow
infoRow
)
{
SimVehicleDTO
simVehicleDTO
=
new
SimVehicleDTO
();
BeanUtils
.
copyProperties
(
infoRow
,
simVehicleDTO
);
simVehicleDTO
.
setRealBySelf
((
infoRow
.
getRealBySelf
()
!=
null
&&
infoRow
.
getRealBySelf
()
==
1
)
?
true
:
false
);
return
simVehicleDTO
;
}
private
VehicleSimRelInfoRow
dtoToInfoRow
(
SimVehicleDTO
dto
)
{
VehicleSimRelInfoRow
infoRow
=
new
VehicleSimRelInfoRow
();
BeanUtils
.
copyProperties
(
dto
,
infoRow
);
infoRow
.
setRealBySelf
((
dto
.
getRealBySelf
()
!=
null
&&
dto
.
getRealBySelf
())
?
1
:
0
);
infoRow
.
setErrorInfo
(
dto
.
getFailReason
());
return
infoRow
;
}
/**
* 生成错误文件信息
* @param infoRow
*/
private
void
writeErrorExcel
(
VehicleSimRelInfoRow
infoRow
)
{
simFileHistoryDTO
.
setErrorCount
(
simFileHistoryDTO
.
getErrorCount
()
+
1
);
if
(
easyExcelUtil
==
null
)
{
easyExcelUtil
=
new
EasyExcelUtil
();
easyExcelUtil
.
init
(
errorExcelFile
,
"Sheet1"
,
VehicleSimRelInfoRow
.
class
);
}
List
<
VehicleSimRelInfoRow
>
infoRows
=
new
ArrayList
<>();
infoRows
.
add
(
infoRow
);
easyExcelUtil
.
addExcel
(
infoRows
);
}
/**
* 验证iccid和vin是否正确
* @param row
* @return
*/
private
String
validata
(
VehicleSimRelRow
row
)
{
if
(
StringUtils
.
isBlank
(
row
.
getIccid
())
||
!
IccidUtil
.
check
(
row
.
getIccid
()))
{
return
"ICCID为空或格式不正确"
;
}
return
""
;
}
private
void
excelFinish
()
{
if
(
easyExcelUtil
!=
null
)
{
easyExcelUtil
.
finish
();
}
}
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/excel/VehicleSimRelInfoRow.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.excel
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
@Data
public
class
VehicleSimRelInfoRow
extends
VehicleSimRelRow
{
/**导入失败原因*/
@ExcelProperty
(
value
=
"ERROR_INFO"
,
index
=
11
)
private
String
errorInfo
;
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/excel/VehicleSimRelRow.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.excel
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
import
org.apache.commons.lang3.StringUtils
;
/**
* @author yuzp
* @file SimVehicleRow
* @date 2022/4/1
* @E-mail yuzp19@chinaunicom.cn
*/
@Data
public
class
VehicleSimRelRow
{
@ExcelProperty
(
value
=
"VIN码"
,
index
=
0
)
private
String
vin
;
@ExcelProperty
(
value
=
"ICCID编码(*)"
,
index
=
1
)
private
String
iccid
;
@ExcelProperty
(
value
=
"是否允许补录\r\n(0:不允许,1:允许)"
,
index
=
2
)
private
Integer
realBySelf
;
@ExcelProperty
(
value
=
"车辆品牌编码"
,
index
=
3
)
private
String
brand
;
@ExcelProperty
(
value
=
"车辆品牌名称"
,
index
=
4
)
private
String
brandName
;
@ExcelProperty
(
value
=
"车型编码"
,
index
=
5
)
private
String
vehicleModel
;
@ExcelProperty
(
value
=
"车型名称"
,
index
=
6
)
private
String
vehicleModelName
;
@ExcelProperty
(
value
=
"车系编码"
,
index
=
7
)
private
String
vehicleSeries
;
@ExcelProperty
(
value
=
"车系名称"
,
index
=
8
)
private
String
vehicleSeriesName
;
@ExcelProperty
(
value
=
"年份"
,
index
=
9
)
private
Integer
years
;
@ExcelProperty
(
value
=
"卡位置\n\r(0:tbox,1:车机)"
,
index
=
10
)
private
String
installLocation
;
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/excel/VehicleSimRowCountListener.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.excel
;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.event.AnalysisEventListener
;
import
com.alibaba.excel.exception.ExcelAnalysisStopException
;
import
com.cusc.nirvana.user.rnr.mg.dto.SimFileHistoryDTO
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
java.util.Map
;
public
class
VehicleSimRowCountListener
extends
AnalysisEventListener
<
VehicleSimRelRow
>
{
private
SimFileHistoryDTO
simFileHistoryDTO
;
private
int
rowIndex
=
2
;
public
VehicleSimRowCountListener
(
SimFileHistoryDTO
simFileHistoryDTO
)
{
this
.
simFileHistoryDTO
=
simFileHistoryDTO
;
}
@Override
public
void
invokeHeadMap
(
Map
<
Integer
,
String
>
headMap
,
AnalysisContext
context
)
{
super
.
invokeHeadMap
(
headMap
,
context
);
if
(
headMap
.
size
()
<
11
)
{
simFileHistoryDTO
.
setErrorInfo
(
"文件标题不符合模板要求,文件标题:["
+
headMap
.
values
()
+
"]"
);
throw
new
ExcelAnalysisStopException
(
"文件不符合模板要求。文件标题:["
+
headMap
.
values
()
+
"]"
);
}
}
@Override
public
void
invoke
(
VehicleSimRelRow
data
,
AnalysisContext
context
)
{
// String failReason = validata(data);
simFileHistoryDTO
.
setTotalCount
(
simFileHistoryDTO
.
getTotalCount
()
+
1
);
// if (CuscStringUtils.isNotEmpty(failReason)) {
// throw new ExcelAnalysisStopException("导入文件在["+rowIndex+"]行校验失败,请核实!");
// }
rowIndex
++;
}
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
context
)
{
}
/**
* 验证iccid和vin是否正确
* @param row
* @return
*/
private
String
validata
(
VehicleSimRelRow
row
)
{
String
failReason
=
""
;
// if (StringUtils.isBlank(row.getVin())) {
// failReason = "VIN为空";
// }
if
(
StringUtils
.
isBlank
(
row
.
getIccid
()))
{
failReason
=
"ICCID为空"
;
}
return
failReason
;
}
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/excel/VehicleStatusListener.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.excel
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.event.AnalysisEventListener
;
import
com.alibaba.excel.exception.ExcelAnalysisStopException
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.enterprise.common.FileTypeEnum
;
import
com.cusc.nirvana.user.rnr.enterprise.excel.utils.EasyExcelUtil
;
import
com.cusc.nirvana.user.rnr.enterprise.util.IccidUtil
;
import
com.cusc.nirvana.user.rnr.fp.client.SimVehicleRelClient
;
import
com.cusc.nirvana.user.rnr.fp.dto.SimVehicleBindingResult
;
import
com.cusc.nirvana.user.rnr.fp.dto.SimVehicleDTO
;
import
com.cusc.nirvana.user.rnr.mg.client.OrgSimRelClient
;
import
com.cusc.nirvana.user.rnr.mg.dto.IccIdListRequestDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.OrgSimRelDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.SimFileHistoryDTO
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* 车卡关系导入excel处理监听器
*/
@Slf4j
public
class
VehicleStatusListener
extends
AnalysisEventListener
<
VehicleStatusRelRow
>
{
private
final
static
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
VehicleStatusListener
.
class
);
/**每隔500条提交数据处理*/
private
static
final
int
BATCH_COUNT
=
500
;
private
SimVehicleRelClient
simVehicleClient
;
private
SimFileHistoryDTO
simFileHistoryDTO
;
private
String
errorExcelFile
;
private
EasyExcelUtil
easyExcelUtil
;
private
String
tagUuid
;
private
OrgSimRelClient
orgSimRelClient
;
/**存放批数据*/
private
List
<
VehicleStatusRelInfoRow
>
successlist
=
new
ArrayList
<>();
private
List
<
VehicleStatusRelInfoRow
>
errorList
=
new
ArrayList
<>();
public
VehicleStatusListener
(
SimVehicleRelClient
simVehicleClient
,
SimFileHistoryDTO
simFileHistoryDTO
,
String
errorExcelFile
,
String
tagUuid
,
OrgSimRelClient
orgSimRelClient
)
{
this
.
simVehicleClient
=
simVehicleClient
;
this
.
simFileHistoryDTO
=
simFileHistoryDTO
;
this
.
errorExcelFile
=
errorExcelFile
;
this
.
tagUuid
=
tagUuid
;
this
.
orgSimRelClient
=
orgSimRelClient
;
}
@Override
public
void
invokeHeadMap
(
Map
<
Integer
,
String
>
headMap
,
AnalysisContext
context
)
{
super
.
invokeHeadMap
(
headMap
,
context
);
if
(
headMap
.
size
()
>
1
)
{
simFileHistoryDTO
.
setErrorInfo
(
"文件标题不符合模板要求,文件标题:["
+
headMap
.
values
()
+
"]"
);
throw
new
ExcelAnalysisStopException
(
"文件不符合模板要求。文件标题:["
+
headMap
.
values
()
+
"]"
);
}
}
@Override
public
void
invoke
(
VehicleStatusRelRow
vehicleSimRelRow
,
AnalysisContext
analysisContext
)
{
String
failReason
=
validata
(
vehicleSimRelRow
);
VehicleStatusRelInfoRow
infoRow
=
rowToInfoRow
(
vehicleSimRelRow
);
if
(
CuscStringUtils
.
isNotEmpty
(
failReason
))
{
infoRow
.
setErrorInfo
(
failReason
);
errorList
.
add
(
infoRow
);
}
else
{
successlist
.
add
(
infoRow
);
}
if
(
successlist
.
size
()
>=
BATCH_COUNT
)
{
processData
();
successlist
.
clear
();
}
}
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
analysisContext
)
{
if
(!
CollectionUtils
.
isEmpty
(
successlist
))
{
processData
();
}
if
(!
CollectionUtils
.
isEmpty
(
errorList
))
{
simFileHistoryDTO
.
setErrorCount
(
errorList
.
size
());
simFileHistoryDTO
.
setErrorInfo
(
"导入车卡关系有问题,请下载文件查看详情"
);
processErrorData
();
}
//excelFinish();
}
private
void
processErrorData
()
{
EasyExcel
.
write
(
errorExcelFile
,
VehicleStatusRelInfoRow
.
class
)
.
sheet
(
"sheet0"
)
.
doWrite
(
errorList
);
}
@Override
public
void
onException
(
Exception
exception
,
AnalysisContext
context
)
throws
Exception
{
log
.
error
(
"e : {}"
,
exception
);
simFileHistoryDTO
.
setErrorInfo
(
"导入车卡关系有问题,请下载文件查看详情"
);
excelFinish
();
throw
new
ExcelAnalysisStopException
(
"导入车卡关系有问题,请下载文件查看详情"
);
}
private
void
processData
()
{
//启动
IccIdListRequestDTO
iccIdListStartOrDisable
=
new
IccIdListRequestDTO
();
List
<
String
>
iccidList
=
new
ArrayList
<>();
successlist
.
forEach
(
infoRow
->
{
iccidList
.
add
(
infoRow
.
getIccid
());
});
iccIdListStartOrDisable
.
setIccids
(
iccidList
);
iccIdListStartOrDisable
.
setRnrStatus
(
simFileHistoryDTO
.
getFileType
()==
FileTypeEnum
.
CARCLOSE
.
getCode
()?
0
:
1
);
//查询是否包含实名数据
Response
<
List
<
OrgSimRelDTO
>>
listResponse
=
orgSimRelClient
.
queryInfoByIccidAndStatus
(
iccIdListStartOrDisable
);
if
(!
listResponse
.
isSuccess
()||
CollectionUtils
.
isEmpty
(
listResponse
.
getData
())){
iccIdListStartOrDisable
.
getIccids
().
forEach
(
iccid
->
{
VehicleStatusRelInfoRow
infoRow
=
dtoToInfoRowExistIccid
(
iccid
);
infoRow
.
setErrorInfo
(
"iccid不正确,或没有实名数据"
);
errorList
.
add
(
infoRow
);
});
return
;
}
//查出存在的iccid
List
<
String
>
existenceList
=
listResponse
.
getData
().
stream
().
map
(
a
->
a
.
getIccid
()).
collect
(
Collectors
.
toList
());
//过滤出iccid
List
<
String
>
nothingness
=
iccidList
.
stream
().
filter
(
a
->
existenceList
.
indexOf
(
a
)==-
1
).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
nothingness
)){
nothingness
.
forEach
(
iccid
->
{
VehicleStatusRelInfoRow
infoRow
=
dtoToInfoRowExistIccid
(
iccid
);
infoRow
.
setErrorInfo
(
"iccid不正确,或没有实名数据"
);
errorList
.
add
(
infoRow
);
});
}
iccIdListStartOrDisable
.
setIccids
(
existenceList
);
//如果是解绑的,需要查询卡是否有存在实名的
if
(
simFileHistoryDTO
.
getFileType
()==
FileTypeEnum
.
CARCLOSE
.
getCode
())
{
//解绑状态为1
iccIdListStartOrDisable
.
setRnrStatus
(
1
);
}
else
{
iccIdListStartOrDisable
.
setRnrStatus
(
0
);
}
Response
<
SimVehicleBindingResult
>
response
=
orgSimRelClient
.
updateStatusByIccid
(
iccIdListStartOrDisable
);
if
(!
response
.
isSuccess
())
{
existenceList
.
forEach
(
iccid
->
{
VehicleStatusRelInfoRow
infoRow
=
dtoToInfoRowExistIccid
(
iccid
);
infoRow
.
setErrorInfo
(
"更新失败"
);
errorList
.
add
(
infoRow
);
});
return
;
}
}
private
VehicleStatusRelInfoRow
rowToInfoRow
(
VehicleStatusRelRow
row
)
{
VehicleStatusRelInfoRow
vehicleSimRelInfoRow
=
new
VehicleStatusRelInfoRow
();
BeanUtils
.
copyProperties
(
row
,
vehicleSimRelInfoRow
);
return
vehicleSimRelInfoRow
;
}
private
VehicleStatusRelInfoRow
dtoToInfoRowExistIccid
(
String
iccid
)
{
VehicleStatusRelInfoRow
infoRow
=
new
VehicleStatusRelInfoRow
();
infoRow
.
setIccid
(
iccid
);
return
infoRow
;
}
private
VehicleStatusRelInfoRow
dtoToInfoRow
(
VehicleStatusRelInfoRow
message
)
{
VehicleStatusRelInfoRow
infoRow
=
new
VehicleStatusRelInfoRow
();
infoRow
.
setIccid
(
message
.
getIccid
());
return
infoRow
;
}
/**
* 验证iccid和vin是否正确
* @param row
* @return
*/
private
String
validata
(
VehicleStatusRelRow
row
)
{
if
(
StringUtils
.
isBlank
(
row
.
getIccid
())
||
!
IccidUtil
.
check
(
row
.
getIccid
()))
{
return
"ICCID为空或格式不正确"
;
}
return
""
;
}
private
void
excelFinish
()
{
if
(
easyExcelUtil
!=
null
)
{
easyExcelUtil
.
finish
();
}
}
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/excel/VehicleStatusRelInfoRow.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.excel
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
@Data
public
class
VehicleStatusRelInfoRow
extends
VehicleStatusRelRow
{
/**导入失败原因*/
@ExcelProperty
(
value
=
"ERROR_INFO"
,
index
=
1
)
private
String
errorInfo
;
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/excel/VehicleStatusRelRow.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.excel
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
/**
* @author yuzp
* @file SimVehicleRow
* @date 2022/4/1
* @E-mail yuzp19@chinaunicom.cn
*/
@Data
public
class
VehicleStatusRelRow
{
@ExcelProperty
(
value
=
"ICCID编码(*)"
,
index
=
0
)
private
String
iccid
;
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/excel/VehicleStatusRowCountListener.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.excel
;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.event.AnalysisEventListener
;
import
com.alibaba.excel.exception.ExcelAnalysisStopException
;
import
com.cusc.nirvana.user.rnr.mg.dto.SimFileHistoryDTO
;
import
org.apache.commons.lang3.StringUtils
;
import
java.util.Map
;
public
class
VehicleStatusRowCountListener
extends
AnalysisEventListener
<
VehicleStatusRelRow
>
{
private
SimFileHistoryDTO
simFileHistoryDTO
;
private
int
rowIndex
=
2
;
public
VehicleStatusRowCountListener
(
SimFileHistoryDTO
simFileHistoryDTO
)
{
this
.
simFileHistoryDTO
=
simFileHistoryDTO
;
}
@Override
public
void
invokeHeadMap
(
Map
<
Integer
,
String
>
headMap
,
AnalysisContext
context
)
{
super
.
invokeHeadMap
(
headMap
,
context
);
if
(
headMap
.
size
()
>
1
)
{
simFileHistoryDTO
.
setErrorInfo
(
"文件标题不符合模板要求,文件标题:["
+
headMap
.
values
()
+
"]"
);
throw
new
ExcelAnalysisStopException
(
"文件不符合模板要求。文件标题:["
+
headMap
.
values
()
+
"]"
);
}
}
@Override
public
void
invoke
(
VehicleStatusRelRow
data
,
AnalysisContext
context
)
{
// String failReason = validata(data);
simFileHistoryDTO
.
setTotalCount
(
simFileHistoryDTO
.
getTotalCount
()
+
1
);
// if (CuscStringUtils.isNotEmpty(failReason)) {
// throw new ExcelAnalysisStopException("导入文件在["+rowIndex+"]行校验失败,请核实!");
// }
rowIndex
++;
}
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
context
)
{
}
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/excel/utils/EasyExcelUtil.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.excel.utils
;
import
com.alibaba.excel.EasyExcelFactory
;
import
com.alibaba.excel.ExcelWriter
;
import
com.alibaba.excel.write.metadata.WriteSheet
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.io.File
;
import
java.io.OutputStream
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* EasyExcel操作工具类(写,追加)
*/
public
class
EasyExcelUtil
{
private
final
static
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
EasyExcelUtil
.
class
);
private
ExcelWriter
excelWriter
=
null
;
private
WriteSheet
writeSheet
=
null
;
/**
* EasyExcel工具类,初始化
* @param absFilePath 绝对路径
* @param sheetName 标签名字
* @param clazz 标题头(第一行)
*/
public
void
init
(
String
absFilePath
,
String
sheetName
,
Class
clazz
)
{
if
(
excelWriter
==
null
&&
writeSheet
==
null
)
{
File
file
=
new
File
(
absFilePath
);
if
(!
file
.
exists
())
{
file
.
getParentFile
().
mkdir
();
}
// 指定写哪个标题头
excelWriter
=
EasyExcelFactory
.
write
(
absFilePath
).
head
(
clazz
).
build
();
// 吐过同一个sheet只要创建一次
writeSheet
=
EasyExcelFactory
.
writerSheet
(
sheetName
).
build
();
}
}
/**
* EasyExcel工具类,初始化
* @param outputStream 输出流
* @param sheetName 标签名字
* @param clazz 标题头(第一行)
*/
public
void
init
(
OutputStream
outputStream
,
String
sheetName
,
Class
clazz
)
{
if
(
excelWriter
==
null
&&
writeSheet
==
null
)
{
// 指定写哪个标题头
excelWriter
=
EasyExcelFactory
.
write
(
outputStream
).
head
(
clazz
).
build
();
// 吐过同一个sheet只要创建一次
writeSheet
=
EasyExcelFactory
.
writerSheet
(
sheetName
).
build
();
}
}
/**
* 写入Excel文件内容
* @param dataList
*/
public
void
addExcel
(
List
<?>
dataList
)
{
try
{
excelWriter
.
write
(
dataList
,
writeSheet
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"追加Excel文件失败,原因:"
,
e
);
}
}
/**
* 最后调用,关闭流
*/
public
void
finish
()
{
if
(
excelWriter
!=
null
)
{
excelWriter
.
finish
();
}
}
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/service/EnterpriseUnBindService.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.service
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.EnterpriseUnBindDTO
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.VinCheckResponseDTO
;
/**
* @className: EnterpriseUnBindService
* @description: 企业解绑
* @author: jk
* @date: 2022/6/16 18:22
* @version: 1.0
**/
public
interface
EnterpriseUnBindService
{
VinCheckResponseDTO
enterpriseUnBindCheck
(
EnterpriseUnBindDTO
dto
);
Response
submitUnBind
(
EnterpriseUnBindDTO
dto
);
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/service/IAccountService.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.service
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.UserAccountDTO
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.UserAccountPageQueryDTO
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.UserAccountUpdateDTO
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.UserAddRequestDTO
;
/**
* @author stayAnd
* @date 2022/4/15
*/
public
interface
IAccountService
{
/**
* 创建账号
* @param dto
*/
void
addAccount
(
UserAddRequestDTO
dto
);
/**
* 分页查询
* @param dto dto
* @return
*/
PageResult
<
UserAccountDTO
>
pageList
(
UserAccountPageQueryDTO
dto
);
/**
* 更新
* @param dto
*/
void
update
(
UserAccountUpdateDTO
dto
);
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/service/IAdminRnrOrderService.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.service
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.user.rnr.fp.dto.RnrOrderDetailDTO
;
import
com.cusc.nirvana.user.rnr.fp.dto.RnrOrderListQueryDTO
;
import
com.cusc.nirvana.user.rnr.fp.dto.RnrOrderListResponseDTO
;
import
com.cusc.nirvana.user.rnr.fp.dto.VinCardDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgRnrCardInfoDTO
;
/**
* @author stayAnd
* @date 2022/8/3
*/
public
interface
IAdminRnrOrderService
{
/**
* 分页查询
* @param dto dto
* @return 返回结果
*/
PageResult
<
RnrOrderListResponseDTO
>
pageListQuery
(
RnrOrderListQueryDTO
dto
);
/**
* 根据orderId分页查询
* @param dto dto
* @return 返回结果
*/
PageResult
<
VinCardDTO
>
queryCardPageByOrderId
(
MgRnrCardInfoDTO
dto
);
/**
* 查询详情
* @param orderId orderId
* @return 返回结果
*/
RnrOrderDetailDTO
queryOrderDetail
(
String
orderId
);
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/service/IAuthService.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.service
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.auth.identification.dto.RandomIdResp
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.CaptchaResponseDTO
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.LoginRequestDTO
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.LoginResponseDTO
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.LoginSmsRequestDTO
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.LoginUserNameReqDTO
;
/**
* @author stayAnd
* @date 2022/4/12
*/
public
interface
IAuthService
{
/**
* 获取图片验证码
* @return
*/
CaptchaResponseDTO
getGraphic
(
String
platformSource
);
/**
* 获取验证码
* @param dto
*/
void
getSms
(
LoginSmsRequestDTO
dto
);
/**
* 登录
* @param loginRequestDTO
* @return
*/
LoginResponseDTO
login
(
LoginRequestDTO
loginRequestDTO
);
/**
* 获取随机请求id-登录密码加密
* @return
*/
Response
<
RandomIdResp
>
getLoginSecretKey
(
String
platformSource
);
/**
* 登录-用户名+密码登录
* @param bean
* @return
*/
LoginResponseDTO
userNameLogin
(
LoginUserNameReqDTO
bean
);
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/service/IBaseConfigService.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.service
;
import
com.cusc.nirvana.common.result.Response
;
public
interface
IBaseConfigService
{
Response
getDicData
(
String
tenantNo
);
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/service/ICarInfoImportService.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.service
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.ImportSimDTO
;
/**
* @className: CarInfoImportService
* @description: 车辆信息导入接口
* @author: jk
* @date: 2022/6/28 19:06
* @version: 1.0
**/
public
interface
ICarInfoImportService
{
Response
<?>
importSim
(
ImportSimDTO
importSimDTO
);
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/service/ICarInfoUploadService.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.service
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.ImportSimDTO
;
import
com.cusc.nirvana.user.rnr.fp.dto.FpCarInfoDTO
;
/**
* @className: ICarInfoUploadService
* @description:
* @author: jk
* @date: 2022/6/28 19:17
* @version: 1.0
**/
public
interface
ICarInfoUploadService
{
/**
* excel文件导入处理
* @param importSimDTO
* @return
*/
Response
excelProcess
(
ImportSimDTO
importSimDTO
);
PageResult
<
FpCarInfoDTO
>
queryCarInfo
(
FpCarInfoDTO
fpCarInfoDTO
);
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/service/ICardUnBindService.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.service
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.auth.authentication.plug.user.UserSubjectUtil
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.SecondHandUnbindRequestDTO
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.VehicleCardRnrDTO
;
import
com.cusc.nirvana.user.rnr.fp.dto.FpRnrSmsInfoDTO
;
import
com.cusc.nirvana.user.rnr.fp.dto.UnbindReceiceSMSDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgRnrCardInfoDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.RnrOrderDTO
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* 解绑接口
* @author yubo
* @since 2022-04-25 09:31
*/
public
interface
ICardUnBindService
{
/**
* 二手车现车主解绑-自然人
*/
Response
secondHandPersonalUnbind
(
SecondHandUnbindRequestDTO
bean
);
Response
originalOwner
(
VehicleCardRnrDTO
bean
);
// Response receiveMessage(UnbindReceiceSMSDTO bean);
Response
sendMessage
(
VehicleCardRnrDTO
bean
);
// Response checkMessageStatus(FpRnrSmsInfoDTO bean);
Response
getIccidsByVin
(
VehicleCardRnrDTO
bean
);
Response
checkOrderStatus
(
RnrOrderDTO
bean
);
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/service/IChangeTboxService.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.service
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.ChangeTboxDTO
;
import
com.cusc.nirvana.user.rnr.fp.dto.FpRnrSmsInfoDTO
;
import
com.cusc.nirvana.user.rnr.fp.dto.UnbindReceiceSMSDTO
;
public
interface
IChangeTboxService
{
Response
submit
(
ChangeTboxDTO
bean
);
Response
queryResult
(
ChangeTboxDTO
bean
);
Response
sendSMS
(
ChangeTboxDTO
bean
);
Response
receiveMessage
(
UnbindReceiceSMSDTO
bean
);
Response
checkSMSStatus
(
FpRnrSmsInfoDTO
bean
);
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/service/IDistributorService.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.service
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.DistributorAddDTO
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.DistributorChangeAdminDTO
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.DistributorDTO
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.DistributorPageQueryDTO
;
import
java.util.Map
;
/**
* @author stayAnd
* @date 2022/4/14
* 经销商相关
*/
public
interface
IDistributorService
{
/**
* 新增经销商
* @param dto
*/
void
add
(
DistributorAddDTO
dto
);
/**
* 经销商分页查询
* @param dto dto
* @return
*/
PageResult
<
DistributorDTO
>
page
(
DistributorPageQueryDTO
dto
);
Map
<
String
,
Object
>
pageToMap
(
DistributorPageQueryDTO
dto
);
/**
* 更新经销商
* @param distributorDTO
*/
void
update
(
DistributorDTO
distributorDTO
);
/**
* 更换管理员
* @param dto
*/
void
changeAdmin
(
DistributorChangeAdminDTO
dto
);
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/service/IEnterpriseRnrService.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.service
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.*
;
import
java.util.List
;
import
java.util.Map
;
/**
* 企业实名认证服务接口
*
* @author huchenhui
* @date 2022-04-14
*/
public
interface
IEnterpriseRnrService
{
/**
* 校验车卡关系
*
* @param dto dto bean
* @return 实例对象
*/
Response
<
EMVinCardResponseDTO
>
verifyVinCards
(
EnterpriseRnrVinCardInfoDTO
dto
);
/**
* 提交企业实名认证
*
* @param dto dto bean
* @return 实例对象
*/
Response
<
CompanyRnrResponseDTO
>
submitRnr
(
EnterpriseRnrCertificationInfoDTO
dto
);
/**
* 查询企业责任信息
* @param dto
*/
// List<EnterpriseRnrPersonDTO> queryEnterpriseRnrPerson(EnterpriseCorporationChangeDTO dto);
Map
<
String
,
Object
>
queryEnterpriseRnrPerson
(
EnterpriseCorporationChangeDTO
dto
);
/**
* 提交企业责任人变更
* @param bean
*/
void
submitChange
(
EnterpriseCorporationChangeDTO
bean
);
/**
* 企业实名H5 提交
* @param dto
* @return
*/
EnterpriseRnrH5RespDTO
submitRnrH5
(
EnterpriseRnrH5RequestDTO
dto
);
/**
* h5回调
* @param bean
* @return
*/
EnterpriseRnrH5CallBackRespDTO
afreshLivenessUrl
(
LivenessCallbackReqDTO
bean
);
/**
* 企业实名H5 提交(使用文件)
* @param dto
* @return
*/
EnterpriseRnrH5RespDTO
submitRnrWithFile
(
EnterpriseRnrH5FileRequestDTO
dto
);
}
Prev
1
…
6
7
8
9
10
11
12
13
14
Next
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