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/dto/UserAccountPageQueryDTO.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.dto
;
import
com.cusc.nirvana.user.eiam.dto.UserDTO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @author stayAnd
* @date 2022/4/15
*/
@ApiModel
(
"账号分页查询参数"
)
@Data
public
class
UserAccountPageQueryDTO
{
@ApiModelProperty
(
value
=
"当前页码"
)
private
Integer
currPage
=
1
;
@ApiModelProperty
(
value
=
"页面显示行数"
)
private
Integer
pageSize
=
10
;
@ApiModelProperty
(
"指定查询的组织id"
)
private
String
organId
;
@ApiModelProperty
(
"姓名"
)
private
String
userName
;
@ApiModelProperty
(
"账号"
)
private
String
account
;
@ApiModelProperty
(
"手机号"
)
private
String
phone
;
public
UserDTO
toQueryDto
()
{
UserDTO
userDTO
=
new
UserDTO
();
userDTO
.
setCurrPage
(
this
.
getCurrPage
());
userDTO
.
setPageSize
(
this
.
getPageSize
());
userDTO
.
setFullName
(
this
.
getUserName
());
userDTO
.
setUserName
(
this
.
getAccount
());
userDTO
.
setPhone
(
this
.
getPhone
());
return
userDTO
;
}
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/dto/UserAccountUpdateDTO.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.dto
;
import
com.cusc.nirvana.user.rnr.enterprise.common.DesensitizationFieId
;
import
com.cusc.nirvana.user.rnr.enterprise.util.DesensitizationUtil
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @author stayAnd
* @date 2022/4/15
*/
@Data
@ApiModel
(
"用户账户更新信息"
)
public
class
UserAccountUpdateDTO
{
@ApiModelProperty
(
"id"
)
private
String
id
;
@ApiModelProperty
(
"姓名"
)
@DesensitizationFieId
(
desensitizationRule
=
DesensitizationUtil
.
DESENSITIZATION_NAME
,
sort
=
1
)
private
String
userName
;
@ApiModelProperty
(
"昵称"
)
private
String
nickName
;
@ApiModelProperty
(
"手机号"
)
@DesensitizationFieId
(
desensitizationRule
=
DesensitizationUtil
.
DESENSITIZATION_PHONE
,
sort
=
2
)
private
String
phone
;
@ApiModelProperty
(
"账号"
)
@DesensitizationFieId
(
desensitizationRule
=
DesensitizationUtil
.
DESENSITIZATION_NONE
,
sort
=
0
)
private
String
account
;
@ApiModelProperty
(
"角色code"
)
private
String
roleCode
;
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/dto/UserAddRequestDTO.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.dto
;
import
com.cusc.nirvana.user.eiam.dto.UserDTO
;
import
com.cusc.nirvana.user.rnr.enterprise.common.DesensitizationFieId
;
import
com.cusc.nirvana.user.rnr.enterprise.util.DesensitizationUtil
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
/**
* @author stayAnd
* @date 2022/4/15
*/
@ApiModel
(
"新增员工信息"
)
@Data
public
class
UserAddRequestDTO
{
@ApiModelProperty
(
"指定组织id"
)
private
String
organId
;
@ApiModelProperty
(
"姓名"
)
@DesensitizationFieId
(
desensitizationRule
=
DesensitizationUtil
.
DESENSITIZATION_NAME
,
sort
=
1
)
private
String
userName
;
@ApiModelProperty
(
"昵称"
)
private
String
nickName
;
@ApiModelProperty
(
"手机号"
)
@DesensitizationFieId
(
desensitizationRule
=
DesensitizationUtil
.
DESENSITIZATION_PHONE
,
sort
=
2
)
private
String
phone
;
@ApiModelProperty
(
"账号"
)
@DesensitizationFieId
(
desensitizationRule
=
DesensitizationUtil
.
DESENSITIZATION_NONE
,
sort
=
0
)
private
String
account
;
@ApiModelProperty
(
"密码"
)
private
String
password
;
@ApiModelProperty
(
"确认密码"
)
private
String
confirmPassword
;
@ApiModelProperty
(
"角色code"
)
@NotNull
private
String
roleCode
;
public
UserDTO
toUserDto
()
{
UserDTO
userDTO
=
new
UserDTO
();
userDTO
.
setFullName
(
this
.
getUserName
());
userDTO
.
setNickName
(
this
.
getNickName
());
userDTO
.
setPhone
(
this
.
getPhone
());
userDTO
.
setUserName
(
this
.
getAccount
());
userDTO
.
setPassword
(
this
.
getPassword
());
return
userDTO
;
}
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/dto/UserInfoAndCardListDTO.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.dto
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgRnrInfoDTO
;
import
lombok.Data
;
/**
* 解绑/换卡 vin-iccids phone DTO
*/
@Data
public
class
UserInfoAndCardListDTO
{
private
VehicleCardRnrDTO
vehicleCardRnrDTO
;
private
MgRnrInfoDTO
mgRnrInfoDTO
;
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/dto/UserPasswReqDTO.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.dto
;
import
com.cusc.nirvana.user.eiam.dto.UserPasswordDTO
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* Description: 密码加密请求
* <br />
* CreateDate 2022-06-12 22:41:18
*
* @author yuyi
**/
@Data
public
class
UserPasswReqDTO
extends
UserPasswordDTO
{
@ApiModelProperty
(
value
=
"平台来源 Web H5"
)
private
String
platformSource
;
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/dto/VehicleCardRnrDTO.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.dto
;
import
com.cusc.nirvana.user.rnr.enterprise.common.DesensitizationFieId
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.validator.groups.VehicleCardRnrGroup
;
import
com.cusc.nirvana.user.rnr.enterprise.util.DesensitizationUtil
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotEmpty
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* Description: 剩余卡绑定DTO
* <br />
* CreateDate 2022-04-20 20:22:56
*
* @author yuyi
**/
@Data
public
class
VehicleCardRnrDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
5712879585098743410L
;
@ApiModelProperty
(
value
=
"车辆VIN号"
)
@NotBlank
(
message
=
"vin不能为空"
,
groups
=
{
VehicleCardRnrGroup
.
Query
.
class
})
@DesensitizationFieId
(
desensitizationRule
=
DesensitizationUtil
.
DESENSITIZATION_VIN
,
sort
=
0
)
private
String
vin
;
@ApiModelProperty
(
value
=
"实名id"
)
@NotBlank
(
message
=
"实名id不能为空"
,
groups
=
{
VehicleCardRnrGroup
.
Submit
.
class
})
private
String
rnrId
;
@ApiModelProperty
(
value
=
"ICCID编码集合"
)
@NotEmpty
(
message
=
"ICCID不能为空"
,
groups
=
{
VehicleCardRnrGroup
.
Submit
.
class
})
private
List
<
String
>
iccidList
;
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/dto/VehicleEnterpriseRnrEchoDTO.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.*
;
import
java.util.List
;
/**
* Description: 车企实名时车企信息回显DTO
* <br />
* CreateDate 2022-05-03 11:15:51
*
* @author yuyi
**/
@Data
public
class
VehicleEnterpriseRnrEchoDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
8325801116331488860L
;
@ApiModelProperty
(
"请求ID"
)
private
String
requestId
;
@ApiModelProperty
(
"车企信息id"
)
private
String
vehicleEnterpriseId
;
@ApiModelProperty
(
"企业名称"
)
private
String
companyName
;
@ApiModelProperty
(
"企业证件类型"
)
private
String
companyCertType
;
@ApiModelProperty
(
"企业证件类型名称"
)
private
String
companyCertTypeName
;
@ApiModelProperty
(
"企业证件号码"
)
private
String
companyCertNumber
;
@ApiModelProperty
(
"责任人姓名"
)
private
String
corporationName
;
@ApiModelProperty
(
"责任人手机号"
)
private
String
corporationPhone
;
@ApiModelProperty
(
"企业实名认证授权书"
)
private
List
<
String
>
authorizationLetterPic
;
@ApiModelProperty
(
"责任告知书"
)
private
List
<
String
>
dutyPic
;
@ApiModelProperty
(
"入网合同"
)
private
List
<
String
>
contractPic
;
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/dto/VehicleRnrVinCardInfoDTO.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.dto
;
import
com.cusc.nirvana.user.rnr.fp.dto.VinCardDTO
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
java.io.*
;
import
java.util.List
;
/**
* Description: 车卡实名信息DTO
* <br />
* CreateDate 2022-04-20 20:40:56
*
* @author yuyi
**/
@Data
public
class
VehicleRnrVinCardInfoDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
5712879585098743410L
;
@ApiModelProperty
(
value
=
"请求ID"
)
private
String
requestId
;
@ApiModelProperty
(
value
=
"文件系统ID"
)
@NotBlank
(
message
=
"文件不能为空"
)
private
String
fileId
;
@ApiModelProperty
(
value
=
"车辆VIN号和ICCID编码对集合"
)
private
List
<
VinCardDTO
>
vinCardList
;
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/dto/VinCheckDTO.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.dto
;
import
lombok.Data
;
/**
* @className: VinCheckDTO
* @description:
* @date: 2022/6/20 10:43
* @version: 1.0
**/
@Data
public
class
VinCheckDTO
{
/**
* 检查结果
*/
private
Boolean
checkResult
;
/**
* vin
*/
private
String
vin
;
/**
* 错误信息
*/
private
String
errorMsg
;
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/dto/VinCheckResponseDTO.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
/**
* @className: VinCheckDto
* @description: 检查vin
* @author: jk
* @date: 2022/6/16 18:49
* @version: 1.0
**/
@Data
public
class
VinCheckResponseDTO
{
private
List
<
VinCheckDTO
>
list
;
/**
* 工单id
*/
private
String
orderId
;
@ApiModelProperty
(
"解绑手机号"
)
private
String
phone
;
@ApiModelProperty
(
"姓名"
)
private
String
userName
;
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/dto/VinDTO.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotBlank
;
/**
* 车辆VIN号DTO
*
* @author huchenhui
* @date 2022-04-15
*/
@Data
@Accessors
(
chain
=
true
)
public
class
VinDTO
{
@ApiModelProperty
(
value
=
"车辆VIN号"
)
@NotBlank
(
message
=
"车辆VIN号不能为空"
)
private
String
vin
;
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/dto/validator/groups/EnterpriseCorporationChangeGroup.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.dto.validator.groups
;
/**
* Description: 企业责任人变更DTO
* <br />
* CreateDate 2022-04-20 16:41:45
*
* @author yuyi
**/
public
interface
EnterpriseCorporationChangeGroup
{
/**
* Description: 查询参数验证
* <br />
* CreateDate 2022-04-20 17:05:51
*
* @author yuyi
**/
interface
Query
{}
/**
* Description: 提交参数验证
* <br />
* CreateDate 2022-04-20 17:05:51
*
* @author yuyi
**/
interface
Submit
{}
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/dto/validator/groups/PersonalSubmit.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.dto.validator.groups
;
import
javax.validation.groups.Default
;
/**
* @author yubo
* @since 2022-04-18 16:30
*/
public
interface
PersonalSubmit
extends
Default
{
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/dto/validator/groups/PersonalVehicleCardVerify.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.dto.validator.groups
;
import
javax.validation.groups.Default
;
/**
* @author yubo
* @since 2022-04-18 16:32
*/
public
interface
PersonalVehicleCardVerify
extends
Default
{
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/dto/validator/groups/VehicleCardRnrGroup.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.dto.validator.groups
;
/**
* Description: 剩余卡绑定验证分组
* <br />
* CreateDate 2022-04-20 16:41:45
*
* @author yuyi
**/
public
interface
VehicleCardRnrGroup
{
/**
* Description: 查询参数验证
* <br />
* CreateDate 2022-04-20 17:05:51
*
* @author yuyi
**/
interface
Query
{}
/**
* Description: 提交参数验证
* <br />
* CreateDate 2022-04-20 17:05:51
*
* @author yuyi
**/
interface
Submit
{}
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/dto/validator/groups/VehicleCardVerify.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.dto.validator.groups
;
import
javax.validation.groups.Default
;
/**
* @author yubo
* @since 2022-04-18 11:24
*/
public
interface
VehicleCardVerify
extends
Default
{
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/excel/CarInfoEscalationRow.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
CarInfoEscalationRow
extends
CarInfoRow
{
/**导入失败原因*/
@ExcelProperty
(
value
=
"ERROR_INFO"
,
index
=
20
)
private
String
errorInfo
;
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/excel/CarInfoListener.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.common.result.Response
;
import
com.cusc.nirvana.user.rnr.enterprise.constants.FuelTypeEnum
;
import
com.cusc.nirvana.user.rnr.enterprise.constants.PlaceOfOriginOfVehicleEnum
;
import
com.cusc.nirvana.user.rnr.enterprise.constants.VehicleChannelTypeEnum
;
import
com.cusc.nirvana.user.rnr.enterprise.constants.VehicleTypeEnum
;
import
com.cusc.nirvana.user.rnr.enterprise.dto.ImportSimDTO
;
import
com.cusc.nirvana.user.rnr.enterprise.excel.utils.EasyExcelUtil
;
import
com.cusc.nirvana.user.rnr.fp.client.FpCarInfoClient
;
import
com.cusc.nirvana.user.rnr.fp.dto.CarInfoBindingDTO
;
import
com.cusc.nirvana.user.rnr.fp.dto.FpCarInfoDTO
;
import
com.cusc.nirvana.user.rnr.fp.dto.SimVehicleBindingResult
;
import
com.cusc.nirvana.user.rnr.mg.dto.SimFileHistoryDTO
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.BeanUtils
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @className: CarInfoListener
* @description: 业务处理
* @author: jk
* @date: 2022/6/29 10:42
* @version: 1.0
**/
public
class
CarInfoListener
extends
AnalysisEventListener
<
CarInfoRow
>
{
private
final
static
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
VehicleSimListener
.
class
);
/**每隔500条提交数据处理*/
private
static
final
int
BATCH_COUNT
=
500
;
private
FpCarInfoClient
fpCarInfoClient
;
private
SimFileHistoryDTO
simFileHistoryDTO
;
private
String
errorExcelFile
;
private
EasyExcelUtil
easyExcelUtil
;
private
ImportSimDTO
importSimDTO
;
private
String
creator
;
private
String
tenantNo
;
/**存放批数据*/
private
Map
<
String
,
CarInfoEscalationRow
>
batchCache
=
new
HashMap
<>();
public
CarInfoListener
(
FpCarInfoClient
fpCarInfoClient
,
SimFileHistoryDTO
simFileHistoryDTO
,
String
errorExcelFile
,
ImportSimDTO
importSimDTO
,
String
creator
,
String
tenantNo
)
{
this
.
fpCarInfoClient
=
fpCarInfoClient
;
this
.
simFileHistoryDTO
=
simFileHistoryDTO
;
this
.
errorExcelFile
=
errorExcelFile
;
this
.
importSimDTO
=
importSimDTO
;
this
.
creator
=
creator
;
this
.
tenantNo
=
tenantNo
;
}
@Override
public
void
invokeHeadMap
(
Map
<
Integer
,
String
>
headMap
,
AnalysisContext
context
)
{
super
.
invokeHeadMap
(
headMap
,
context
);
if
(
headMap
.
size
()
<
20
)
{
simFileHistoryDTO
.
setErrorInfo
(
"文件标题不符合模板要求,文件标题:["
+
headMap
.
values
()
+
"]"
);
throw
new
ExcelAnalysisStopException
(
"文件不符合模板要求。文件标题:["
+
headMap
.
values
()
+
"]"
);
}
}
@Override
public
void
invoke
(
CarInfoRow
carInfoRow
,
AnalysisContext
analysisContext
)
{
String
failReason
=
validata
(
carInfoRow
);
CarInfoEscalationRow
infoRow
=
rowToInfoRow
(
carInfoRow
);
if
(
CuscStringUtils
.
isNotEmpty
(
failReason
))
{
infoRow
.
setErrorInfo
(
failReason
);
writeErrorExcel
(
infoRow
);
return
;
}
batchCache
.
put
(
infoRow
.
getVin
(),
infoRow
);
if
(
batchCache
.
size
()
>=
BATCH_COUNT
)
{
processData
();
batchCache
.
clear
();
}
}
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
analysisContext
)
{
processData
();
excelFinish
();
}
@Override
public
void
onException
(
Exception
exception
,
AnalysisContext
context
)
throws
Exception
{
exception
.
printStackTrace
();
simFileHistoryDTO
.
setErrorInfo
(
"车辆信息有问题,请下载文件查看详情"
);
excelFinish
();
throw
new
ExcelAnalysisStopException
(
"车辆信息有问题,请下载文件查看详情"
);
}
private
void
processData
()
{
CarInfoBindingDTO
bindingDTO
=
new
CarInfoBindingDTO
();
bindingDTO
.
setOrganizationId
(
simFileHistoryDTO
.
getOrgUuid
());
bindingDTO
.
setTagUuid
(
importSimDTO
.
getTagUuid
());
bindingDTO
.
setCreator
(
simFileHistoryDTO
.
getCreator
());
List
<
FpCarInfoDTO
>
fpCarInfoDTOS
=
new
ArrayList
<>();
String
tagId
=
CuscStringUtils
.
generateUuid
();
batchCache
.
values
().
forEach
(
infoRow
->
{
FpCarInfoDTO
dto
=
infoRowToDto
(
infoRow
);
dto
.
setUuid
(
CuscStringUtils
.
generateUuid
());
dto
.
setOrgid
(
importSimDTO
.
getOrgUuid
());
dto
.
setCreator
(
creator
);
dto
.
setTenantno
(
tenantNo
);
dto
.
setOperator
(
creator
);
dto
.
setTagId
(
tagId
);
fpCarInfoDTOS
.
add
(
dto
);
});
bindingDTO
.
setBindingList
(
fpCarInfoDTOS
);
//入库处理
Response
<
SimVehicleBindingResult
>
response
=
fpCarInfoClient
.
addBatch
(
bindingDTO
);
if
(!
response
.
isSuccess
())
{
fpCarInfoDTOS
.
forEach
(
simVehicleDTO
->
{
CarInfoEscalationRow
infoRow
=
dtoToInfoRow
(
simVehicleDTO
);
infoRow
.
setErrorInfo
(
"导入失败"
);
writeErrorExcel
(
infoRow
);
});
return
;
}
}
private
CarInfoEscalationRow
dtoToInfoRow
(
FpCarInfoDTO
dto
)
{
CarInfoEscalationRow
infoRow
=
new
CarInfoEscalationRow
();
CarInfoEscalationRow
tmp
=
batchCache
.
get
(
dto
.
getVin
());
BeanUtils
.
copyProperties
(
tmp
,
infoRow
);
infoRow
.
setErrorInfo
(
dto
.
getFailReason
());
return
infoRow
;
}
private
FpCarInfoDTO
infoRowToDto
(
CarInfoEscalationRow
infoRow
)
{
FpCarInfoDTO
dto
=
new
FpCarInfoDTO
();
BeanUtils
.
copyProperties
(
infoRow
,
dto
);
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
if
(
infoRow
.
getVehicleDepartureTime
()!=
null
){
dto
.
setVehicleDepartureTime
(
simpleDateFormat
.
format
(
infoRow
.
getVehicleDepartureTime
()));
}
if
(
infoRow
.
getVehicleSalesTime
()!=
null
)
{
dto
.
setVehicleSalesTime
(
simpleDateFormat
.
format
(
infoRow
.
getVehicleSalesTime
()));
}
if
(
infoRow
.
getVehicleSalesUpdateTime
()!=
null
)
{
dto
.
setVehicleSalesUpdateTime
(
simpleDateFormat
.
format
(
infoRow
.
getVehicleSalesUpdateTime
()));
}
return
dto
;
}
/**
* 生成错误文件信息
* @param infoRow
*/
private
void
writeErrorExcel
(
CarInfoEscalationRow
infoRow
)
{
simFileHistoryDTO
.
setErrorCount
(
simFileHistoryDTO
.
getErrorCount
()
+
1
);
if
(
easyExcelUtil
==
null
)
{
easyExcelUtil
=
new
EasyExcelUtil
();
easyExcelUtil
.
init
(
errorExcelFile
,
"Sheet1"
,
CarInfoEscalationRow
.
class
);
}
List
<
CarInfoEscalationRow
>
infoRows
=
new
ArrayList
<>();
infoRows
.
add
(
infoRow
);
easyExcelUtil
.
addExcel
(
infoRows
);
}
private
void
excelFinish
()
{
if
(
easyExcelUtil
!=
null
)
{
easyExcelUtil
.
finish
();
}
}
private
CarInfoEscalationRow
rowToInfoRow
(
CarInfoRow
carInfoRow
)
{
CarInfoEscalationRow
infoRow
=
new
CarInfoEscalationRow
();
infoRow
.
setNameVehicleEnterprise
(
StringUtils
.
isEmpty
(
carInfoRow
.
getNameVehicleEnterprise
())?
""
:
carInfoRow
.
getNameVehicleEnterprise
().
trim
());
infoRow
.
setVin
(
StringUtils
.
isEmpty
(
carInfoRow
.
getVin
())?
""
:
carInfoRow
.
getVin
().
trim
());
infoRow
.
setVehicleType
(
StringUtils
.
isEmpty
(
carInfoRow
.
getVehicleType
())?
"null"
:
carInfoRow
.
getVehicleType
().
trim
());
infoRow
.
setPlaceOfOriginOfVehicle
(
StringUtils
.
isEmpty
(
carInfoRow
.
getPlaceOfOriginOfVehicle
())?
"null"
:
carInfoRow
.
getPlaceOfOriginOfVehicle
().
trim
());
infoRow
.
setVehicleDepartment
(
StringUtils
.
isEmpty
(
carInfoRow
.
getVehicleDepartment
())?
""
:
carInfoRow
.
getVehicleDepartment
().
trim
());
infoRow
.
setVehicleName
(
StringUtils
.
isEmpty
(
carInfoRow
.
getVehicleName
())?
""
:
carInfoRow
.
getVehicleName
().
trim
());
infoRow
.
setVehicleNum
(
StringUtils
.
isEmpty
(
carInfoRow
.
getVehicleNum
())?
""
:
carInfoRow
.
getVehicleNum
().
trim
());
infoRow
.
setVehicleModel
(
StringUtils
.
isEmpty
(
carInfoRow
.
getVehicleModel
())?
""
:
carInfoRow
.
getVehicleModel
().
trim
());
infoRow
.
setBodyColor
(
StringUtils
.
isEmpty
(
carInfoRow
.
getBodyColor
())?
""
:
carInfoRow
.
getBodyColor
().
trim
());
infoRow
.
setFuelType
(
StringUtils
.
isEmpty
(
carInfoRow
.
getFuelType
())?
null
:
carInfoRow
.
getFuelType
().
trim
());
infoRow
.
setEngineNum
(
StringUtils
.
isEmpty
(
carInfoRow
.
getEngineNum
())?
""
:
carInfoRow
.
getEngineNum
().
trim
());
infoRow
.
setMotorNum
(
StringUtils
.
isEmpty
(
carInfoRow
.
getMotorNum
())?
""
:
carInfoRow
.
getMotorNum
().
trim
());
infoRow
.
setLicensePlateNumber
(
StringUtils
.
isEmpty
(
carInfoRow
.
getLicensePlateNumber
())?
""
:
carInfoRow
.
getLicensePlateNumber
().
trim
());
infoRow
.
setVehicleChannelName
(
StringUtils
.
isEmpty
(
carInfoRow
.
getVehicleChannelName
())?
""
:
carInfoRow
.
getVehicleChannelName
().
trim
());
infoRow
.
setVehicleChannelType
(
StringUtils
.
isEmpty
(
carInfoRow
.
getVehicleChannelType
())?
null
:
carInfoRow
.
getVehicleChannelType
().
trim
());
infoRow
.
setVehicleStaffName
(
StringUtils
.
isEmpty
(
carInfoRow
.
getVehicleStaffName
())?
""
:
carInfoRow
.
getVehicleStaffName
().
trim
());
infoRow
.
setVehicleLogginAddress
(
StringUtils
.
isEmpty
(
carInfoRow
.
getVehicleLogginAddress
())?
""
:
carInfoRow
.
getVehicleLogginAddress
().
trim
());
infoRow
.
setVehicleDepartureTime
(
carInfoRow
.
getVehicleDepartureTime
());
infoRow
.
setVehicleSalesTime
(
carInfoRow
.
getVehicleSalesTime
());
infoRow
.
setVehicleSalesUpdateTime
(
carInfoRow
.
getVehicleSalesUpdateTime
());
// BeanUtils.copyProperties(carInfoRow,infoRow);
return
infoRow
;
}
private
String
validata
(
CarInfoRow
row
)
{
String
failReason
=
""
;
if
(
StringUtils
.
isBlank
(
row
.
getNameVehicleEnterprise
()))
{
failReason
=
"道路机动车辆生产企业名称为空"
;
}
else
{
if
(
row
.
getNameVehicleEnterprise
().
length
()>
32
){
failReason
=
"道路机动车辆生产企业名称超长"
;
}
}
if
(
StringUtils
.
isBlank
(
row
.
getVin
()))
{
failReason
=
"VIN为空"
;
}
else
{
if
(
row
.
getVin
().
length
()>
64
){
failReason
=
"VIN超长"
;
}
}
if
(
StringUtils
.
isBlank
(
row
.
getVehicleType
()))
{
failReason
=
"车辆类型为空"
;
}
else
{
if
(
null
==
VehicleTypeEnum
.
getEnumByCode
(
row
.
getVehicleType
())){
failReason
=
"车辆类型与法规不一致"
;
}
if
(
row
.
getVehicleType
().
length
()>
2
){
failReason
=
"车辆类型超长"
;
}
}
if
(
StringUtils
.
isBlank
(
row
.
getPlaceOfOriginOfVehicle
()))
{
failReason
=
"车辆产地为空"
;
}
else
{
if
(
null
==
PlaceOfOriginOfVehicleEnum
.
getEnumByCode
(
row
.
getPlaceOfOriginOfVehicle
())){
failReason
=
"车辆产地与法规不一致"
;
}
if
(
row
.
getPlaceOfOriginOfVehicle
().
length
()>
2
){
failReason
=
"车辆产地超长"
;
}
}
if
(
StringUtils
.
isBlank
(
row
.
getVehicleDepartment
()))
{
failReason
=
"车辆品牌为空"
;
}
else
{
if
(
row
.
getVehicleDepartment
().
length
()>
32
){
failReason
=
"车辆品牌超长"
;
}
}
if
(
StringUtils
.
isBlank
(
row
.
getVehicleName
()))
{
failReason
=
"车辆名称为空"
;
}
else
{
if
(
row
.
getVehicleName
().
length
()>
32
){
failReason
=
"车辆名称超长"
;
}
}
if
(
StringUtils
.
isBlank
(
row
.
getVehicleNum
()))
{
failReason
=
"车辆型号为空"
;
}
else
{
if
(
row
.
getVehicleNum
().
length
()>
32
){
failReason
=
"车辆型号超长"
;
}
}
if
(
StringUtils
.
isBlank
(
row
.
getVehicleModel
()))
{
failReason
=
"车型通用名称为空"
;
}
else
{
if
(
row
.
getVehicleModel
().
length
()>
32
){
failReason
=
"车型通用名称超长"
;
}
}
if
(
StringUtils
.
isBlank
(
row
.
getBodyColor
()))
{
failReason
=
"车身颜色为空"
;
}
else
{
if
(
row
.
getBodyColor
().
length
()>
32
){
failReason
=
"车身颜色超长"
;
}
}
if
(
StringUtils
.
isBlank
(
row
.
getFuelType
()))
{
failReason
=
"燃料种类为空"
;
}
else
{
String
[]
fuelType
=
row
.
getFuelType
().
split
(
","
);
for
(
int
i
=
0
;
i
<
fuelType
.
length
;
i
++){
if
(
null
==
FuelTypeEnum
.
getEnumByCode
(
fuelType
[
i
])){
failReason
=
"燃料种类与法规不一致"
;
}
}
if
(
row
.
getFuelType
().
length
()>
32
){
failReason
=
"燃料种类超长"
;
}
}
// if (StringUtils.isBlank(row.getEngineNum())) {
// failReason = "发动机号码为空";
// }
//
// if (StringUtils.isBlank(row.getMotorNum())) {
// failReason = "电动机序列号为空";
// }
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
String
vehicleDepartureTime
=
simpleDateFormat
.
format
(
row
.
getVehicleDepartureTime
());
if
(
StringUtils
.
isBlank
(
vehicleDepartureTime
))
{
failReason
=
"车辆出厂时间为空"
;
}
String
vehicleSalesTime
=
simpleDateFormat
.
format
(
row
.
getVehicleSalesTime
());;
if
(
StringUtils
.
isBlank
(
vehicleSalesTime
))
{
failReason
=
"车辆销售时间为空"
;
}
// if (StringUtils.isBlank(row.getVehicleSalesUpdateTime())) {
// failReason = "车辆销售信息变更时间为空";
// }
//
// if (StringUtils.isBlank(row.getLicensePlateNumber())) {
// failReason = "车牌号码为空";
// }else {
// if(row.getLicensePlateNumber().length()>64){
// failReason = "车牌号码超长";
// }
// }
if
(
StringUtils
.
isBlank
(
row
.
getVehicleChannelName
()))
{
failReason
=
"车辆销售渠道名称为空"
;
}
else
{
if
(
row
.
getVehicleChannelName
().
length
()>
32
){
failReason
=
"车辆销售渠道名称超长"
;
}
}
if
(
StringUtils
.
isBlank
(
row
.
getVehicleChannelType
()))
{
failReason
=
"车辆销售渠道类型为空"
;
}
else
{
if
(
null
==
VehicleChannelTypeEnum
.
getEnumByCode
(
row
.
getVehicleChannelType
())){
failReason
=
"车辆销售渠道类型不符合法规要求"
;
}
if
(
row
.
getVehicleChannelType
().
length
()>
2
){
failReason
=
"车辆销售渠道类型超长"
;
}
}
if
(
StringUtils
.
isBlank
(
row
.
getVehicleStaffName
()))
{
failReason
=
"车辆销售渠道员工姓名为空"
;
}
else
{
if
(
row
.
getVehicleStaffName
().
length
()>
32
){
failReason
=
"车辆销售渠道员工姓名超长"
;
}
}
if
(
StringUtils
.
isBlank
(
row
.
getVehicleLogginAddress
()))
{
failReason
=
"车辆销售渠道地址为空"
;
}
else
{
if
(
row
.
getVehicleLogginAddress
().
length
()>
32
){
failReason
=
"车辆销售渠道地址超长"
;
}
}
return
failReason
;
}
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/excel/CarInfoRow.java
0 → 100644
View file @
c997214d
package
com.cusc.nirvana.user.rnr.enterprise.excel
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author yuzp
* @file SimVehicleRow
* @date 2022/4/1
* @E-mail yuzp19@chinaunicom.cn
*/
@Data
public
class
CarInfoRow
{
@ExcelProperty
(
value
=
"道路机动车辆生产企业名称"
,
index
=
0
)
private
String
nameVehicleEnterprise
;
@ExcelProperty
(
value
=
"VIN"
,
index
=
1
)
private
String
vin
;
@ExcelProperty
(
value
=
"车辆类型"
,
index
=
2
)
private
String
vehicleType
;
@ExcelProperty
(
value
=
"车辆产地"
,
index
=
3
)
private
String
placeOfOriginOfVehicle
;
@ExcelProperty
(
value
=
"车辆品牌"
,
index
=
4
)
private
String
vehicleDepartment
;
@ExcelProperty
(
value
=
"车辆名称"
,
index
=
5
)
private
String
vehicleName
;
@ExcelProperty
(
value
=
"车辆型号"
,
index
=
6
)
private
String
vehicleNum
;
@ExcelProperty
(
value
=
"车型通用名称"
,
index
=
7
)
private
String
vehicleModel
;
@ExcelProperty
(
value
=
"车身颜色"
,
index
=
8
)
private
String
bodyColor
;
@ExcelProperty
(
value
=
"燃料种类"
,
index
=
9
)
private
String
fuelType
;
@ExcelProperty
(
value
=
"发动机号码"
,
index
=
10
)
private
String
engineNum
;
@ExcelProperty
(
value
=
"电动机序列号"
,
index
=
11
)
private
String
motorNum
;
@ExcelProperty
(
value
=
"车辆出厂时间"
,
index
=
12
)
private
Date
vehicleDepartureTime
;
@ExcelProperty
(
value
=
"车辆销售时间"
,
index
=
13
)
private
Date
vehicleSalesTime
;
@ExcelProperty
(
value
=
"车辆销售信息变更时间"
,
index
=
14
)
private
Date
vehicleSalesUpdateTime
;
@ExcelProperty
(
value
=
"车牌号码"
,
index
=
15
)
private
String
licensePlateNumber
;
@ExcelProperty
(
value
=
"车辆销售渠道名称"
,
index
=
16
)
private
String
vehicleChannelName
;
@ExcelProperty
(
value
=
"车辆销售渠道类型"
,
index
=
17
)
private
String
vehicleChannelType
;
@ExcelProperty
(
value
=
"车辆销售渠道员工姓名"
,
index
=
18
)
private
String
vehicleStaffName
;
@ExcelProperty
(
value
=
"车辆销售渠道地址"
,
index
=
19
)
private
String
vehicleLogginAddress
;
}
src/main/java/com/cusc/nirvana/user/rnr/enterprise/excel/CarInfoRowCountListener.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.enterprise.constants.FuelTypeEnum
;
import
com.cusc.nirvana.user.rnr.enterprise.constants.PlaceOfOriginOfVehicleEnum
;
import
com.cusc.nirvana.user.rnr.enterprise.constants.VehicleChannelTypeEnum
;
import
com.cusc.nirvana.user.rnr.enterprise.constants.VehicleTypeEnum
;
import
com.cusc.nirvana.user.rnr.mg.dto.SimFileHistoryDTO
;
import
org.apache.commons.lang3.StringUtils
;
import
java.text.SimpleDateFormat
;
import
java.util.Map
;
public
class
CarInfoRowCountListener
extends
AnalysisEventListener
<
CarInfoRow
>
{
private
SimFileHistoryDTO
simFileHistoryDTO
;
private
int
rowIndex
=
2
;
public
CarInfoRowCountListener
(
SimFileHistoryDTO
simFileHistoryDTO
)
{
this
.
simFileHistoryDTO
=
simFileHistoryDTO
;
}
@Override
public
void
invokeHeadMap
(
Map
<
Integer
,
String
>
headMap
,
AnalysisContext
context
)
{
super
.
invokeHeadMap
(
headMap
,
context
);
if
(
headMap
.
size
()
<
20
)
{
simFileHistoryDTO
.
setErrorInfo
(
"文件标题不符合模板要求,文件标题:["
+
headMap
.
values
()
+
"]"
);
throw
new
ExcelAnalysisStopException
(
"文件不符合模板要求。文件标题:["
+
headMap
.
values
()
+
"]"
);
}
}
@Override
public
void
invoke
(
CarInfoRow
data
,
AnalysisContext
context
)
{
// String failReason = validata(data);
simFileHistoryDTO
.
setTotalCount
(
simFileHistoryDTO
.
getTotalCount
()
+
1
);
// if (CuscStringUtils.isNotEmpty(failReason)) {
// throw new ExcelAnalysisStopException("导入文件在["+rowIndex+"]行校验失败,错误原因["+failReason+"],请核实!");
// }
// rowIndex++;
}
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
context
)
{
}
/**
* 验证iccid和vin是否正确
* @param row
* @return
*/
private
String
validata
(
CarInfoRow
row
)
{
String
failReason
=
""
;
if
(
StringUtils
.
isBlank
(
row
.
getNameVehicleEnterprise
()))
{
failReason
=
"道路机动车辆生产企业名称为空"
;
}
if
(
StringUtils
.
isBlank
(
row
.
getVin
()))
{
failReason
=
"VIN为空"
;
}
if
(
StringUtils
.
isBlank
(
row
.
getVehicleType
()))
{
failReason
=
"车辆类型为空"
;
}
else
{
if
(
null
==
VehicleTypeEnum
.
getEnumByCode
(
row
.
getVehicleType
())){
failReason
=
"车辆类型与法规不一致"
;
}
}
if
(
StringUtils
.
isBlank
(
row
.
getPlaceOfOriginOfVehicle
()))
{
failReason
=
"车辆产地为空"
;
}
else
{
if
(
null
==
PlaceOfOriginOfVehicleEnum
.
getEnumByCode
(
row
.
getPlaceOfOriginOfVehicle
())){
failReason
=
"车辆产地与法规不一致"
;
}
}
if
(
StringUtils
.
isBlank
(
row
.
getVehicleDepartment
()))
{
failReason
=
"车辆品牌为空"
;
}
if
(
StringUtils
.
isBlank
(
row
.
getVehicleName
()))
{
failReason
=
"车辆名称为空"
;
}
if
(
StringUtils
.
isBlank
(
row
.
getVehicleNum
()))
{
failReason
=
"车辆型号为空"
;
}
if
(
StringUtils
.
isBlank
(
row
.
getVehicleModel
()))
{
failReason
=
"车型通用名称为空"
;
}
if
(
StringUtils
.
isBlank
(
row
.
getBodyColor
()))
{
failReason
=
"车身颜色为空"
;
}
if
(
StringUtils
.
isBlank
(
row
.
getFuelType
()))
{
failReason
=
"燃料种类为空"
;
}
else
{
if
(
null
==
FuelTypeEnum
.
getEnumByCode
(
row
.
getFuelType
())){
failReason
=
"燃料种类与法规不一致"
;
}
}
// if (StringUtils.isBlank(row.getEngineNum())) {
// failReason = "发动机号码为空";
// }
//
// if (StringUtils.isBlank(row.getMotorNum())) {
// failReason = "电动机序列号为空";
// }
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
String
vehicleDepartureTime
=
simpleDateFormat
.
format
(
row
.
getVehicleDepartureTime
());
if
(
StringUtils
.
isBlank
(
vehicleDepartureTime
))
{
failReason
=
"车辆出厂时间为空"
;
}
String
vehicleSalesTime
=
simpleDateFormat
.
format
(
row
.
getVehicleSalesTime
());;
if
(
StringUtils
.
isBlank
(
vehicleSalesTime
))
{
failReason
=
"车辆销售时间为空"
;
}
// if (StringUtils.isBlank(row.getVehicleSalesUpdateTime())) {
// failReason = "车辆销售信息变更时间为空";
// }
//
// if (StringUtils.isBlank(row.getLicensePlateNumber())) {
// failReason = "车牌号码为空";
// }
if
(
StringUtils
.
isBlank
(
row
.
getVehicleChannelName
()))
{
failReason
=
"车辆销售渠道名称为空"
;
}
if
(
StringUtils
.
isBlank
(
row
.
getVehicleChannelType
()))
{
failReason
=
"车辆销售渠道类型为空"
;
}
else
{
if
(
null
==
VehicleChannelTypeEnum
.
getEnumByCode
(
row
.
getVehicleChannelType
())){
failReason
=
"车辆销售渠道类型不符合法规要求"
;
}
}
if
(
StringUtils
.
isBlank
(
row
.
getVehicleStaffName
()))
{
failReason
=
"车辆销售渠道员工姓名为空"
;
}
if
(
StringUtils
.
isBlank
(
row
.
getVehicleLogginAddress
()))
{
failReason
=
"车辆销售渠道地址为空"
;
}
return
failReason
;
}
}
Prev
1
…
5
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