Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
car-reptiles
Overview
Overview
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
梁辉
car-reptiles
Commits
6b245beb
Commit
6b245beb
authored
Dec 11, 2020
by
landerliang@163.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增列表筛选未上传文件功能,以及上传文件时保存上传记录
parent
98157e7d
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
430 additions
and
56 deletions
+430
-56
car-reptiles-system/src/main/java/me/zhengjie/modules/system/constants/MyConstants.java
+3
-7
car-reptiles-system/src/main/java/me/zhengjie/modules/system/domain/vo/upload/UploadFileViewVo.java
+24
-0
car-reptiles-system/src/main/java/me/zhengjie/modules/system/domain/vo/upload/UploadRecordPageReqVo.java
+40
-0
car-reptiles-system/src/main/java/me/zhengjie/modules/system/domain/vo/upload/UploadRecordVo.java
+50
-0
car-reptiles-system/src/main/java/me/zhengjie/modules/system/repository/UploadRecordMapper.java
+14
-0
car-reptiles-system/src/main/java/me/zhengjie/modules/system/rest/ReportController.java
+34
-9
car-reptiles-system/src/main/java/me/zhengjie/modules/system/service/ReportService.java
+7
-6
car-reptiles-system/src/main/java/me/zhengjie/modules/system/service/UploadRecordService.java
+124
-0
car-reptiles-system/src/main/java/me/zhengjie/modules/system/util/CarReportUtil.java
+132
-33
car-reptiles-system/src/main/resources/config/application.yml
+2
-1
No files found.
car-reptiles-system/src/main/java/me/zhengjie/modules/system/constants/MyConstants.java
View file @
6b245beb
...
...
@@ -19,25 +19,21 @@ public class MyConstants {
//////// 约定的上传检测报告的其他文件以 车牌号 + 文件名称的后缀 .jpg 来扫描
/**
* 车牌号文件后缀
*/
public
static
final
String
CARNUM_SUFFIX
=
"_1.jpg"
;
/**
* 身份证文件名后缀
*/
public
static
final
String
IDCARD_SUFFIX
=
"_
2
.jpg"
;
public
static
final
String
IDCARD_SUFFIX
=
"_
1
.jpg"
;
/**
* 申请表文件后缀
*/
public
static
final
String
APPLY_SUFFIX
=
"_
3
.jpg"
;
public
static
final
String
APPLY_SUFFIX
=
"_
2
.jpg"
;
/**
* 维修凭证文件后缀
*/
/*public static final String CERTIFICATE_SUFFIX = "_4.jpg";*/
public
static
final
String
CERTIFICATE_SUFFIX
=
"_3.jpg"
;
/**
* 行驶证1文件后缀
...
...
car-reptiles-system/src/main/java/me/zhengjie/modules/system/domain/vo/upload/UploadFileViewVo.java
0 → 100644
View file @
6b245beb
package
me
.
zhengjie
.
modules
.
system
.
domain
.
vo
.
upload
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* 上传文件查看页内容实体vo
* @author Lander
*/
@Data
public
class
UploadFileViewVo
{
@ApiModelProperty
(
"base64文件流"
)
private
String
fileBase64
;
@ApiModelProperty
(
"上传者"
)
private
String
uploader
;
@ApiModelProperty
(
"上传时间"
)
private
String
uploadTime
;
@ApiModelProperty
(
"文件类型"
)
private
String
fileType
;
}
car-reptiles-system/src/main/java/me/zhengjie/modules/system/domain/vo/upload/UploadRecordPageReqVo.java
0 → 100644
View file @
6b245beb
package
me
.
zhengjie
.
modules
.
system
.
domain
.
vo
.
upload
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author Lander
*/
@Data
public
class
UploadRecordPageReqVo
{
@ApiModelProperty
(
"页码"
)
private
Integer
page
;
@ApiModelProperty
(
"每页显示条数 默认10"
)
private
Integer
size
=
10
;
@ApiModelProperty
(
"车牌号"
)
private
String
carNum
;
@ApiModelProperty
(
"检测报告编号"
)
private
String
reportNum
;
@ApiModelProperty
(
"部门编号"
)
private
Long
deptId
;
@ApiModelProperty
(
"上传状态 0-失败 1-成功"
)
private
Integer
state
;
@ApiModelProperty
(
"文件类型 0-检测报告 1-检测申请表 2-身份证 3-行驶证1 4-行驶证2 5-维修凭证"
)
private
Integer
fileType
;
@ApiModelProperty
(
"记录起始时间"
)
private
Date
startTime
;
@ApiModelProperty
(
"记录截止时间"
)
private
Date
endTime
;
}
car-reptiles-system/src/main/java/me/zhengjie/modules/system/domain/vo/upload/UploadRecordVo.java
0 → 100644
View file @
6b245beb
package
me
.
zhengjie
.
modules
.
system
.
domain
.
vo
.
upload
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 上传记录vo
* @author Lander
*/
@TableName
(
"t_upload_record"
)
@Data
public
class
UploadRecordVo
{
@TableId
(
type
=
IdType
.
AUTO
)
private
Integer
id
;
@ApiModelProperty
(
"部门id"
)
private
Long
deptId
;
@ApiModelProperty
(
"车牌号"
)
private
String
carNum
;
@ApiModelProperty
(
"检测报告编号"
)
private
String
reportNum
;
@ApiModelProperty
(
"业务key"
)
private
String
businessKey
;
@ApiModelProperty
(
"上传状态 0-失败 1-成功"
)
private
Integer
state
;
@ApiModelProperty
(
"记录时间"
)
private
Date
createTime
;
@ApiModelProperty
(
"文件路径"
)
private
String
path
;
@ApiModelProperty
(
"上传文件类型 0-检测报告 1-检测申请表 2-身份证 3-行驶证1 4-行驶证2 5-维修凭证"
)
private
Integer
fileType
;
@TableField
(
exist
=
false
)
@ApiModelProperty
(
"文件base64流"
)
private
String
fileBase64Code
;
}
car-reptiles-system/src/main/java/me/zhengjie/modules/system/repository/UploadRecordMapper.java
0 → 100644
View file @
6b245beb
package
me
.
zhengjie
.
modules
.
system
.
repository
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
me.zhengjie.modules.system.domain.vo.upload.UploadRecordVo
;
import
org.springframework.stereotype.Repository
;
/**
* t_upload_record mapper
* @author Lander
*/
@Repository
public
interface
UploadRecordMapper
extends
BaseMapper
<
UploadRecordVo
>
{
}
car-reptiles-system/src/main/java/me/zhengjie/modules/system/rest/ReportController.java
View file @
6b245beb
package
me
.
zhengjie
.
modules
.
system
.
rest
;
import
cn.hutool.http.server.HttpServerRequest
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
me.zhengjie.base.ResultVo
;
import
me.zhengjie.modules.system.domain.vo.IdListVo
;
import
me.zhengjie.modules.system.domain.vo.report.*
;
import
me.zhengjie.modules.system.domain.vo.signature.SignReportVo
;
import
me.zhengjie.modules.system.domain.vo.signature.SignatureVo
;
import
me.zhengjie.modules.system.domain.vo.upload.UploadFileViewVo
;
import
me.zhengjie.modules.system.domain.vo.upload.UploadRecordPageReqVo
;
import
me.zhengjie.modules.system.domain.vo.upload.UploadRecordVo
;
import
me.zhengjie.modules.system.service.ReportService
;
import
me.zhengjie.modules.system.service.UploadRecordService
;
import
me.zhengjie.utils.AssertUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Map
;
/**
...
...
@@ -32,10 +33,12 @@ import java.util.Map;
public
class
ReportController
{
private
final
ReportService
reportService
;
private
final
UploadRecordService
uploadRecordService
;
@Autowired
public
ReportController
(
ReportService
reportService
)
{
public
ReportController
(
ReportService
reportService
,
UploadRecordService
uploadRecordService
)
{
this
.
reportService
=
reportService
;
this
.
uploadRecordService
=
uploadRecordService
;
}
...
...
@@ -142,9 +145,9 @@ public class ReportController {
@ApiOperation
(
"检测报告详情"
)
public
ResultVo
<
ReportPdfVo
>
signatureReport
(
@RequestBody
ReportDetailsReqVo
detailsReqVo
){
AssertUtil
.
isNotBlank
(
detailsReqVo
.
getCarNum
(),
"缺少参数车牌号"
);
AssertUtil
.
isNotBlank
(
detailsReqVo
.
getBusinessKey
(),
"缺少参数businessKey"
);
AssertUtil
.
isNotBlank
(
detailsReqVo
.
getUniqueString
(),
"缺少参数uniqueString"
);
AssertUtil
.
isNotBlank
(
detailsReqVo
.
getVehicleId
(),
"缺少参数vehicleId"
);
//
AssertUtil.isNotBlank(detailsReqVo.getBusinessKey(),"缺少参数businessKey");
//
AssertUtil.isNotBlank(detailsReqVo.getUniqueString(),"缺少参数uniqueString");
//
AssertUtil.isNotBlank(detailsReqVo.getVehicleId(),"缺少参数vehicleId");
AssertUtil
.
isNotBlank
(
detailsReqVo
.
getReportNum
(),
"缺少参数检测报告编号"
);
AssertUtil
.
isNotNull
(
detailsReqVo
.
getStartTime
(),
"缺少参数开始检测时间"
);
AssertUtil
.
isNotNull
(
detailsReqVo
.
getEndTime
(),
"缺少参数检测结束时间"
);
...
...
@@ -160,9 +163,31 @@ public class ReportController {
@ApiOperation
(
"查看上传文件个数"
)
@GetMapping
(
"/showFiles/{businessKey}"
)
public
ResultVo
showFiles
(
@PathVariable
String
businessKey
){
public
ResultVo
<
List
<
UploadFileViewVo
>>
showFiles
(
@PathVariable
String
businessKey
){
AssertUtil
.
isNotBlank
(
businessKey
,
"缺少参数businessKey"
);
return
ResultVo
.
success
(
reportService
.
getUploadFileList
(
businessKey
));
}
@ApiOperation
(
"文件上传记录分页列表"
)
@PostMapping
(
"/uploadRecord/page"
)
public
ResultVo
<
IPage
<
UploadRecordVo
>>
uploadRecordPage
(
@RequestBody
UploadRecordPageReqVo
pageReqVo
){
return
ResultVo
.
success
(
uploadRecordService
.
pageList
(
pageReqVo
));
}
@ApiOperation
(
"根据id删除上传记录"
)
@GetMapping
(
"/uploadRecord/delete/{id}"
)
public
ResultVo
deleteById
(
@PathVariable
Integer
id
){
AssertUtil
.
isNotNull
(
id
,
"缺少参数id"
);
uploadRecordService
.
deleteByIdList
(
Arrays
.
asList
(
id
));
return
ResultVo
.
success
();
}
@ApiOperation
(
"根据id批量删除上传记录"
)
@PostMapping
(
"/uploadRecord/deleteByIdList"
)
public
ResultVo
deleteByIdList
(
@RequestBody
IdListVo
idListVo
){
AssertUtil
.
isTrue
(
idListVo
!=
null
&&
idListVo
.
getIds
().
size
()>
0
,
"请选择至少一条记录"
);
uploadRecordService
.
deleteByIdList
(
idListVo
.
getIds
());
return
ResultVo
.
success
();
}
}
car-reptiles-system/src/main/java/me/zhengjie/modules/system/service/ReportService.java
View file @
6b245beb
...
...
@@ -16,6 +16,7 @@ import me.zhengjie.modules.system.domain.vo.report.*;
import
me.zhengjie.modules.system.domain.vo.signature.SignReportVo
;
import
me.zhengjie.modules.system.domain.vo.signature.SignatureVo
;
import
me.zhengjie.modules.system.domain.vo.task.TaskErrorVo
;
import
me.zhengjie.modules.system.domain.vo.upload.UploadFileViewVo
;
import
me.zhengjie.modules.system.repository.DeptMapper
;
import
me.zhengjie.modules.system.repository.ReportPdfMapper
;
import
me.zhengjie.modules.system.repository.TaskErrorMapper
;
...
...
@@ -101,7 +102,7 @@ public class ReportService {
* @param businessKey
* @return
*/
public
String
getUploadFileList
(
String
businessKey
){
public
List
<
UploadFileViewVo
>
getUploadFileList
(
String
businessKey
){
Long
currentUserId
=
SecurityUtils
.
getCurrentUserId
();
AssertUtil
.
isNotNull
(
currentUserId
,
"登录身份已失效请重新登录"
);
...
...
@@ -110,14 +111,14 @@ public class ReportService {
DeptVo
deptVo
=
deptMapper
.
getById
(
sysUserVo
.
getDeptId
());
AssertUtil
.
isNotNull
(
deptVo
,
"查询不到当前用户的部门信息"
);
String
s
=
null
;
List
<
UploadFileViewVo
>
vo
=
null
;
try
{
s
=
carReportUtil
.
downloadUploadFilesView
(
deptVo
.
getEpAccount
(),
deptVo
.
getEpPassword
(),
businessKey
);
vo
=
carReportUtil
.
downloadUploadFilesView
(
deptVo
.
getEpAccount
(),
deptVo
.
getEpPassword
(),
businessKey
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
throw
new
BusinessException
(
e
.
getCause
().
getMessage
());
}
return
s
;
return
vo
;
}
...
...
@@ -181,7 +182,7 @@ public class ReportService {
reportPdfMapper
.
updateById
(
reportPdfVos
);
//上传文件
carReportUtil
.
uploadReportPost
(
account
,
password
,
reportPdfVo
);
carReportUtil
.
uploadReportPost
(
account
,
password
,
reportPdfVo
,
signatureVo1
.
getDeptId
()
);
}
}
}
catch
(
Exception
e
)
{
...
...
@@ -250,7 +251,7 @@ public class ReportService {
}*/
//carReportUtil.uploadReport(currUserDept.getEpAccount(),currUserDept.getEpPassword(),reportPdfVo);
carReportUtil
.
uploadReportPost
(
currUserDept
.
getEpAccount
(),
currUserDept
.
getEpPassword
(),
reportPdfVo
);
carReportUtil
.
uploadReportPost
(
currUserDept
.
getEpAccount
(),
currUserDept
.
getEpPassword
(),
reportPdfVo
,
currUserDept
.
getDeptId
()
);
}
catch
(
Exception
e
)
{
throw
new
BusinessException
(
e
.
getLocalizedMessage
());
}
finally
{
...
...
car-reptiles-system/src/main/java/me/zhengjie/modules/system/service/UploadRecordService.java
0 → 100644
View file @
6b245beb
package
me
.
zhengjie
.
modules
.
system
.
service
;
import
cn.hutool.core.io.FileUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
me.zhengjie.modules.system.domain.vo.SysUserVo
;
import
me.zhengjie.modules.system.domain.vo.upload.UploadRecordPageReqVo
;
import
me.zhengjie.modules.system.domain.vo.upload.UploadRecordVo
;
import
me.zhengjie.modules.system.repository.UploadRecordMapper
;
import
me.zhengjie.modules.system.repository.UserMapper
;
import
me.zhengjie.utils.AssertUtil
;
import
me.zhengjie.utils.SecurityUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.core.GrantedAuthority
;
import
org.springframework.stereotype.Service
;
import
sun.misc.BASE64Encoder
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* 上传记录service
* @author Lander
*/
@Service
public
class
UploadRecordService
{
private
final
UploadRecordMapper
uploadRecordMapper
;
private
final
UserMapper
userMapper
;
@Autowired
public
UploadRecordService
(
UploadRecordMapper
uploadRecordMapper
,
UserMapper
userMapper
)
{
this
.
uploadRecordMapper
=
uploadRecordMapper
;
this
.
userMapper
=
userMapper
;
}
/**
* 根据id删除上传记录
* @param ids
*/
public
void
deleteByIdList
(
List
<
Integer
>
ids
){
uploadRecordMapper
.
deleteBatchIds
(
ids
);
}
/**
* 分页查询上传记录
* @param pageReqVo
* @return
*/
public
IPage
<
UploadRecordVo
>
pageList
(
UploadRecordPageReqVo
pageReqVo
){
QueryWrapper
<
UploadRecordVo
>
queryWrapper
=
new
QueryWrapper
<>();
if
(
pageReqVo
.
getDeptId
()
!=
null
){
queryWrapper
.
lambda
().
and
(
i
->
i
.
eq
(
UploadRecordVo:
:
getDeptId
,
pageReqVo
.
getDeptId
()));
}
else
{
// 获取当前用户的所有权限
List
<
String
>
elPermissions
=
SecurityUtils
.
getCurrentUser
().
getAuthorities
().
stream
().
map
(
GrantedAuthority:
:
getAuthority
).
collect
(
Collectors
.
toList
());
if
(!
elPermissions
.
contains
(
"admin"
)){
//非超级管理员只能查看自己部门
//为空则普通用户只能查询当前部门的上传记录
Long
currentUserId
=
SecurityUtils
.
getCurrentUserId
();
AssertUtil
.
isNotNull
(
currentUserId
,
"登录身份已失效请重新登录"
);
SysUserVo
sysUserVo
=
userMapper
.
selectById
(
currentUserId
);
AssertUtil
.
isNotNull
(
sysUserVo
,
"登录身份已失效请重新登录"
);
queryWrapper
.
lambda
().
and
(
i
->
{
i
.
eq
(
UploadRecordVo:
:
getDeptId
,
sysUserVo
.
getDeptId
());
});
}
}
//检索车牌号
if
(
StrUtil
.
isNotBlank
(
pageReqVo
.
getCarNum
())){
queryWrapper
.
and
(
i
->
i
.
lambda
().
eq
(
UploadRecordVo:
:
getCarNum
,
pageReqVo
.
getCarNum
()));
}
//检索检测报告编号
if
(
StrUtil
.
isNotBlank
(
pageReqVo
.
getReportNum
())){
queryWrapper
.
and
(
i
->
i
.
lambda
().
eq
(
UploadRecordVo:
:
getReportNum
,
pageReqVo
.
getReportNum
()));
}
//检索文件类型
if
(
pageReqVo
.
getFileType
()
!=
null
){
queryWrapper
.
and
(
i
->
i
.
lambda
().
eq
(
UploadRecordVo:
:
getFileType
,
pageReqVo
.
getFileType
()));
}
//上传状态
if
(
pageReqVo
.
getState
()
!=
null
){
queryWrapper
.
and
(
i
->
i
.
lambda
().
eq
(
UploadRecordVo:
:
getState
,
pageReqVo
.
getState
()));
}
//检索时间段
if
(
pageReqVo
.
getStartTime
()
!=
null
&&
pageReqVo
.
getEndTime
()
!=
null
){
queryWrapper
.
and
(
i
->
i
.
lambda
().
between
(
UploadRecordVo:
:
getCreateTime
,
pageReqVo
.
getStartTime
(),
pageReqVo
.
getEndTime
()));
}
queryWrapper
.
lambda
().
orderByDesc
(
UploadRecordVo:
:
getCreateTime
);
Page
<
UploadRecordVo
>
uploadRecordVoPage
=
uploadRecordMapper
.
selectPage
(
new
Page
<>(
pageReqVo
.
getPage
(),
pageReqVo
.
getSize
()),
queryWrapper
);
uploadRecordVoPage
.
getRecords
().
forEach
(
uploadRecordVo
->
{
if
(
FileUtil
.
exist
(
uploadRecordVo
.
getPath
())){
BASE64Encoder
encoder
=
new
BASE64Encoder
();
String
reportBase64
=
encoder
.
encode
(
FileUtil
.
readBytes
(
uploadRecordVo
.
getPath
()));
uploadRecordVo
.
setFileBase64Code
(
reportBase64
);
}
});
return
uploadRecordVoPage
;
}
/**
* 保存上传记录
* @param uploadRecordVo
*/
public
void
saveRecord
(
UploadRecordVo
uploadRecordVo
){
uploadRecordMapper
.
insert
(
uploadRecordVo
);
}
}
car-reptiles-system/src/main/java/me/zhengjie/modules/system/util/CarReportUtil.java
View file @
6b245beb
package
me
.
zhengjie
.
modules
.
system
.
util
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.io.FileUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.URLUtil
;
import
cn.hutool.http.HttpRequest
;
import
cn.hutool.http.HttpResponse
;
import
cn.hutool.http.HttpStatus
;
...
...
@@ -16,22 +18,28 @@ import lombok.extern.slf4j.Slf4j;
import
me.zhengjie.exception.BusinessException
;
import
me.zhengjie.modules.system.constants.MyConstants
;
import
me.zhengjie.modules.system.domain.vo.report.*
;
import
me.zhengjie.modules.system.domain.vo.upload.UploadFileViewVo
;
import
me.zhengjie.modules.system.domain.vo.upload.UploadRecordVo
;
import
me.zhengjie.modules.system.service.UploadRecordService
;
import
me.zhengjie.utils.AssertUtil
;
import
me.zhengjie.utils.StringUtils
;
import
org.jsoup.Jsoup
;
import
org.jsoup.nodes.Document
;
import
org.openqa.selenium.*
;
import
org.jsoup.select.Elements
;
import
org.openqa.selenium.By
;
import
org.openqa.selenium.JavascriptExecutor
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebElement
;
import
org.openqa.selenium.htmlunit.HtmlUnitDriver
;
import
org.openqa.selenium.support.ui.Select
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
sun.misc.BASE64Encoder
;
import
java.io.File
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URLEncoder
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
/**
* 车检报告工具
...
...
@@ -60,6 +68,9 @@ public class CarReportUtil {
@Value
(
"${uploadFilePath}"
)
private
String
uploadFilePath
;
@Autowired
private
UploadRecordService
uploadRecordService
;
/**
* 爬取上传文件显示页
...
...
@@ -67,7 +78,7 @@ public class CarReportUtil {
* @param password
* @return
*/
public
String
downloadUploadFilesView
(
String
account
,
String
password
,
String
businessKey
)
throws
InterruptedException
{
public
List
<
UploadFileViewVo
>
downloadUploadFilesView
(
String
account
,
String
password
,
String
businessKey
)
throws
InterruptedException
{
WebDriver
webDriver
=
loginEp
(
account
,
password
,
null
);
Object
[]
cookies
=
webDriver
.
manage
().
getCookies
().
toArray
();
...
...
@@ -86,7 +97,25 @@ public class CarReportUtil {
body
=
body
.
replace
(
"../../Scripts"
,
host
+
"/Scripts"
)
.
replace
(
"../../Entities/"
,
host
+
"/Entities/"
);
Document
parse
=
Jsoup
.
parse
(
body
);
return
parse
.
toString
();
Elements
elementsByClass
=
parse
.
getElementsByClass
(
"unit"
);
List
<
UploadFileViewVo
>
uploadFileViewVos
=
new
ArrayList
<>();
BASE64Encoder
base64Encoder
=
new
BASE64Encoder
();
elementsByClass
.
forEach
(
element
->
{
UploadFileViewVo
uploadFileViewVo
=
new
UploadFileViewVo
();
Elements
img
=
element
.
getElementsByTag
(
"img"
);
String
imgSrc
=
img
.
attr
(
"src"
);
byte
[]
bytes
=
HttpUtil
.
createGet
(
imgSrc
).
execute
().
bodyBytes
();
String
picBase64
=
base64Encoder
.
encode
(
bytes
);
uploadFileViewVo
.
setFileBase64
(
picBase64
);
Elements
divList
=
element
.
getElementsByTag
(
"div"
);
uploadFileViewVo
.
setUploader
(
divList
.
get
(
1
).
text
());
uploadFileViewVo
.
setUploadTime
(
divList
.
get
(
2
).
text
());
uploadFileViewVo
.
setFileType
(
divList
.
get
(
3
).
text
());
uploadFileViewVos
.
add
(
uploadFileViewVo
);
});
return
uploadFileViewVos
;
}
...
...
@@ -120,10 +149,9 @@ public class CarReportUtil {
* @param password
* @param reportPdfVo
*/
public
void
uploadReportPost
(
String
username
,
String
password
,
ReportPdfVo
reportPdfVo
){
public
void
uploadReportPost
(
String
username
,
String
password
,
ReportPdfVo
reportPdfVo
,
Long
deptid
){
//登录环保系统获取token
WebDriver
driver
=
null
;
try
{
String
errMsgList
=
""
;
...
...
@@ -150,9 +178,27 @@ public class CarReportUtil {
formData
.
put
(
"params"
,
"Submit Query"
);
formData
.
put
(
"FileData"
,
FileUtil
.
file
(
reportPdfVo
.
getPath
()));
HttpResponse
reportResp
=
uploadPost
(
formData
,
uploadFileUrl
,
cookies
);
UploadRecordVo
uploadRecordVo
=
new
UploadRecordVo
();
uploadRecordVo
.
setBusinessKey
(
reportPdfVo
.
getBusinessKey
());
uploadRecordVo
.
setCarNum
(
reportPdfVo
.
getCarNum
());
uploadRecordVo
.
setReportNum
(
reportPdfVo
.
getReportNum
());
uploadRecordVo
.
setFileType
(
0
);
uploadRecordVo
.
setCreateTime
(
DateUtil
.
date
());
uploadRecordVo
.
setDeptId
(
deptid
);
uploadRecordVo
.
setPath
(
reportPdfVo
.
getPath
());
if
(
reportResp
.
getStatus
()
!=
HttpStatus
.
HTTP_OK
){
errMsgList
+=
"上传检测报告失败!\n"
;
//上传状态
uploadRecordVo
.
setState
(
0
);
}
else
{
//上传状态
uploadRecordVo
.
setState
(
1
);
}
uploadRecordService
.
saveRecord
(
uploadRecordVo
);
//申请表上传
if
(
FileUtil
.
exist
(
uploadFilePath
+
reportPdfVo
.
getCarNum
()
+
MyConstants
.
APPLY_SUFFIX
)){
...
...
@@ -162,9 +208,21 @@ public class CarReportUtil {
formData
.
put
(
"FileData"
,
FileUtil
.
file
(
uploadFilePath
+
reportPdfVo
.
getCarNum
()
+
MyConstants
.
APPLY_SUFFIX
));
HttpResponse
applyResp
=
uploadPost
(
formData
,
uploadFileUrl
,
cookies
);
UploadRecordVo
uploadRecord
=
new
UploadRecordVo
();
uploadRecord
.
setReportNum
(
reportPdfVo
.
getReportNum
());
uploadRecord
.
setCarNum
(
reportPdfVo
.
getCarNum
());
uploadRecord
.
setBusinessKey
(
reportPdfVo
.
getBusinessKey
());
uploadRecord
.
setDeptId
(
deptid
);
uploadRecord
.
setCreateTime
(
DateUtil
.
date
());
uploadRecord
.
setPath
(
uploadFilePath
+
reportPdfVo
.
getCarNum
()
+
MyConstants
.
APPLY_SUFFIX
);
uploadRecord
.
setFileType
(
1
);
if
(
applyResp
.
getStatus
()
!=
HttpStatus
.
HTTP_OK
){
errMsgList
+=
"上传检测申请表失败!\n"
;
uploadRecord
.
setState
(
0
);
}
else
{
uploadRecord
.
setState
(
1
);
}
uploadRecordService
.
saveRecord
(
uploadRecord
);
}
...
...
@@ -176,9 +234,21 @@ public class CarReportUtil {
formData
.
put
(
"FileData"
,
FileUtil
.
file
(
uploadFilePath
+
reportPdfVo
.
getCarNum
()
+
MyConstants
.
IDCARD_SUFFIX
));
HttpResponse
applyResp
=
uploadPost
(
formData
,
uploadFileUrl
,
cookies
);
UploadRecordVo
uploadRecord
=
new
UploadRecordVo
();
uploadRecord
.
setReportNum
(
reportPdfVo
.
getReportNum
());
uploadRecord
.
setCarNum
(
reportPdfVo
.
getCarNum
());
uploadRecord
.
setBusinessKey
(
reportPdfVo
.
getBusinessKey
());
uploadRecord
.
setCreateTime
(
DateUtil
.
date
());
uploadRecord
.
setFileType
(
2
);
uploadRecord
.
setPath
(
uploadFilePath
+
reportPdfVo
.
getCarNum
()
+
MyConstants
.
IDCARD_SUFFIX
);
uploadRecord
.
setDeptId
(
deptid
);
if
(
applyResp
.
getStatus
()
!=
HttpStatus
.
HTTP_OK
){
errMsgList
+=
"上传身份证失败!\n"
;
uploadRecord
.
setState
(
0
);
}
else
{
uploadRecord
.
setState
(
1
);
}
uploadRecordService
.
saveRecord
(
uploadRecord
);
}
//行驶证1文件上传
...
...
@@ -189,9 +259,21 @@ public class CarReportUtil {
formData
.
put
(
"FileData"
,
FileUtil
.
file
(
uploadFilePath
+
reportPdfVo
.
getCarNum
()
+
MyConstants
.
DRIVER_SUFFIX1
));
HttpResponse
applyResp
=
uploadPost
(
formData
,
uploadFileUrl
,
cookies
);
UploadRecordVo
uploadRecord
=
new
UploadRecordVo
();
uploadRecord
.
setReportNum
(
reportPdfVo
.
getReportNum
());
uploadRecord
.
setCarNum
(
reportPdfVo
.
getCarNum
());
uploadRecord
.
setCreateTime
(
DateUtil
.
date
());
uploadRecord
.
setBusinessKey
(
reportPdfVo
.
getBusinessKey
());
uploadRecord
.
setFileType
(
3
);
uploadRecord
.
setPath
(
uploadFilePath
+
reportPdfVo
.
getCarNum
()
+
MyConstants
.
DRIVER_SUFFIX1
);
uploadRecord
.
setDeptId
(
deptid
);
if
(
applyResp
.
getStatus
()
!=
HttpStatus
.
HTTP_OK
){
errMsgList
+=
"上传行驶证1文件失败!\n"
;
uploadRecord
.
setState
(
0
);
}
else
{
uploadRecord
.
setState
(
1
);
}
uploadRecordService
.
saveRecord
(
uploadRecord
);
}
//行驶证2文件上传
...
...
@@ -202,24 +284,49 @@ public class CarReportUtil {
formData
.
put
(
"FileData"
,
FileUtil
.
file
(
uploadFilePath
+
reportPdfVo
.
getCarNum
()
+
MyConstants
.
DRIVER_SUFFIX2
));
HttpResponse
applyResp
=
uploadPost
(
formData
,
uploadFileUrl
,
cookies
);
UploadRecordVo
uploadRecord
=
new
UploadRecordVo
();
uploadRecord
.
setReportNum
(
reportPdfVo
.
getReportNum
());
uploadRecord
.
setCarNum
(
reportPdfVo
.
getCarNum
());
uploadRecord
.
setCreateTime
(
DateUtil
.
date
());
uploadRecord
.
setBusinessKey
(
reportPdfVo
.
getBusinessKey
());
uploadRecord
.
setPath
(
uploadFilePath
+
reportPdfVo
.
getCarNum
()
+
MyConstants
.
DRIVER_SUFFIX2
);
uploadRecord
.
setDeptId
(
deptid
);
uploadRecord
.
setFileType
(
4
);
if
(
applyResp
.
getStatus
()
!=
HttpStatus
.
HTTP_OK
){
errMsgList
+=
"上传行驶证2文件失败!\n"
;
uploadRecord
.
setState
(
0
);
}
else
{
uploadRecord
.
setState
(
1
);
}
uploadRecordService
.
saveRecord
(
uploadRecord
);
}
//维修凭证上传
/*
if(FileUtil.exist(uploadFilePath + reportPdfVo.getCarNum() + MyConstants.CERTIFICATE_SUFFIX)){
if
(
FileUtil
.
exist
(
uploadFilePath
+
reportPdfVo
.
getCarNum
()
+
MyConstants
.
CERTIFICATE_SUFFIX
)){
formData
.
put
(
"contentType"
,
"multipart/form-data; boundary=----------GI3gL6cH2GI3gL6GI3GI3KM7KM7ae0"
);
formData
.
put
(
"Filename"
,
FileUtil
.
file
(
uploadFilePath
+
reportPdfVo
.
getCarNum
()
+
MyConstants
.
CERTIFICATE_SUFFIX
).
getName
());
formData
.
put
(
"FileGroup"
,
"02"
);
formData
.
put
(
"FileData"
,
FileUtil
.
file
(
uploadFilePath
+
reportPdfVo
.
getCarNum
()
+
MyConstants
.
CERTIFICATE_SUFFIX
));
HttpResponse
applyResp
=
uploadPost
(
formData
,
uploadFileUrl
,
cookies
);
UploadRecordVo
uploadRecord
=
new
UploadRecordVo
();
uploadRecord
.
setReportNum
(
reportPdfVo
.
getReportNum
());
uploadRecord
.
setCarNum
(
reportPdfVo
.
getCarNum
());
uploadRecord
.
setBusinessKey
(
reportPdfVo
.
getBusinessKey
());
uploadRecord
.
setCreateTime
(
DateUtil
.
date
());
uploadRecord
.
setPath
(
uploadFilePath
+
reportPdfVo
.
getCarNum
()
+
MyConstants
.
CERTIFICATE_SUFFIX
);
uploadRecord
.
setDeptId
(
deptid
);
uploadRecord
.
setFileType
(
5
);
if
(
applyResp
.
getStatus
()
!=
HttpStatus
.
HTTP_OK
){
errMsgList
+=
"上传维修凭证失败!\n"
;
uploadRecord
.
setState
(
0
);
}
else
{
uploadRecord
.
setState
(
1
);
}
uploadRecordService
.
saveRecord
(
uploadRecord
);
}
}*/
//如果有错误信息则抛出给客户端
if
(
StrUtil
.
isNotBlank
(
errMsgList
)){
...
...
@@ -438,24 +545,6 @@ public class CarReportUtil {
stationCodvO
.
setVals
(
Arrays
.
asList
(
stationCode
));
conditionVoList
.
add
(
stationCodvO
);
//是否检测通过
/*if(reportPageQueryVo.getIsZero() == 1){
ConditionVo carNumVo=new ConditionVo();
carNumVo.setFld(MyContext.VDCT_FLD);
carNumVo.setFldtype(MyContext.FLD_TYPE);
carNumVo.setOp(MyContext.VDCT_OP);
carNumVo.setVals(Arrays.asList("0"));
conditionVoList.add(carNumVo);
}*/
/*if(reportPageQueryVo.getIsZero() == 1){
ConditionVo carNumVo=new ConditionVo();
carNumVo.setFld("PDFCount");
carNumVo.setFldtype(MyContext.FLD_TYPE);
carNumVo.setOp(MyContext.VDCT_OP);
carNumVo.setVals(Arrays.asList("0"));
conditionVoList.add(carNumVo);
}*/
//如果车牌号不为空
if
(
StrUtil
.
isNotBlank
(
reportPageQueryVo
.
getCarNum
())){
...
...
@@ -502,10 +591,7 @@ public class CarReportUtil {
MyContext
.
PHOTO_TABLE_NAME
,
MyContext
.
PHOTO_WHERE
,
fldsVo
.
getFld
(),
conditionVoList
,
null
,
reportPageQueryVo
.
getSize
());
JSONObject
body
=
JSONUtil
.
createObj
();
body
.
put
(
"data"
,
queryDataVo
);
body
.
put
(
"rows"
,
reportPageQueryVo
.
getSize
());
if
(
reportPageQueryVo
.
getIsZero
()
==
1
){
body
.
put
(
"UploadDate"
,
""
);
}
body
.
put
(
"rows"
,
reportPageQueryVo
.
getIsZero
()
==
1
?
999999999
:
reportPageQueryVo
.
getSize
());
body
.
put
(
"page"
,
reportPageQueryVo
.
getCurrNo
());
body
.
put
(
"sort"
,
"DetectEndTime"
);
body
.
put
(
"order"
,
"DESC"
);
...
...
@@ -528,8 +614,19 @@ public class CarReportUtil {
InspecPageVo
pageVo
=
JSONUtil
.
toBean
(
queryResult
,
InspecPageVo
.
class
);
IPage
<
TestReportVo
>
testReportVoPage
=
new
Page
<>(
reportPageQueryVo
.
getCurrNo
(),
reportPageQueryVo
.
getSize
());
//如果车牌号不为空
if
(
reportPageQueryVo
.
getIsZero
()
==
1
){
List
<
TestReportVo
>
collect
=
pageVo
.
getRows
().
stream
().
filter
(
i
->
i
.
getPDFCount
().
equals
(
"0"
)).
collect
(
Collectors
.
toList
());
pageVo
.
setRows
(
collect
);
pageVo
.
setTotal
(
collect
.
size
());
testReportVoPage
.
setSize
(
reportPageQueryVo
.
getSize
());
testReportVoPage
.
setCurrent
(
reportPageQueryVo
.
getCurrNo
());
}
testReportVoPage
.
setTotal
(
pageVo
.
getTotal
());
testReportVoPage
.
setRecords
(
pageVo
.
getRows
());
return
testReportVoPage
;
}
...
...
@@ -766,7 +863,6 @@ public class CarReportUtil {
IPage
<
TestReportVo
>
testReportVoIPage
=
postReportList
(
stationCode
,
cookies
,
reportPageQueryVo
);
testReportVoIPage
.
getRecords
().
forEach
(
testReportVo
->
{
testReportVo
.
setSiteName
(
stationSpan
.
getText
()
);
});
//获取
return
testReportVoIPage
;
...
...
@@ -819,6 +915,9 @@ public class CarReportUtil {
//将结果转vo对象
InspecPageVo
pageVo
=
JSONUtil
.
toBean
(
queryResult
,
InspecPageVo
.
class
);
List
<
TestReportVo
>
collect
=
pageVo
.
getRows
().
stream
().
filter
(
i
->
i
.
getPDFCount
().
equals
(
0
)).
collect
(
Collectors
.
toList
());
pageVo
.
setRows
(
collect
);
pageVo
.
setTotal
(
collect
.
size
());
return
pageVo
.
getRows
();
}
...
...
car-reptiles-system/src/main/resources/config/application.yml
View file @
6b245beb
...
...
@@ -84,7 +84,7 @@ like:
kinggrid
:
url
:
http://sign.kinggrid.com/OfficeServer.jsp
#上传检测报告其他文件的存放目录
#上传检测报告其他文件的
扫描
存放目录
uploadFilePath
:
C:\\reptiles\\uploadPicture\\
#签章服务的url
...
...
@@ -92,3 +92,4 @@ signature:
carSignature
:
url
:
http://127.0.0.1:9988/car-signature/start
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