Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
f933b01b
提交
f933b01b
authored
10月 16, 2023
作者:
huyufan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
列表导出excel
上级
a4cbd70b
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
743 行增加
和
1 行删除
+743
-1
OwnerAccountEnum.java
...main/java/com/clx/performance/enums/OwnerAccountEnum.java
+24
-0
OwnerAccountRunningWaterRecordVO.java
...x/performance/vo/pc/OwnerAccountRunningWaterRecordVO.java
+9
-0
CarrierAccountController.java
...mance/controller/pc/carrier/CarrierAccountController.java
+22
-0
OwnerAccountController.java
...rformance/controller/pc/owner/OwnerAccountController.java
+12
-0
OwnerRunningWaterRecord.java
...va/com/clx/performance/model/OwnerRunningWaterRecord.java
+6
-0
OwnerAccountService.java
...java/com/clx/performance/service/OwnerAccountService.java
+15
-0
OwnerRunningWaterRecordService.java
...x/performance/service/OwnerRunningWaterRecordService.java
+8
-0
OwnerAccountServiceImpl.java
...clx/performance/service/impl/OwnerAccountServiceImpl.java
+121
-0
OwnerRunningWaterRecordServiceImpl.java
...ance/service/impl/OwnerRunningWaterRecordServiceImpl.java
+67
-0
OwnerRunningWaterRecordSqlProvider.java
...mance/sqlProvider/OwnerRunningWaterRecordSqlProvider.java
+1
-1
DataExcelTypeEnum.java
...va/com/clx/performance/utils/excel/DataExcelTypeEnum.java
+32
-0
ExcelData.java
.../main/java/com/clx/performance/utils/excel/ExcelData.java
+87
-0
ExcelField.java
...main/java/com/clx/performance/utils/excel/ExcelField.java
+36
-0
ExcelSheet.java
...main/java/com/clx/performance/utils/excel/ExcelSheet.java
+42
-0
ExcelUtil.java
.../main/java/com/clx/performance/utils/excel/ExcelUtil.java
+261
-0
没有找到文件。
performance-api/src/main/java/com/clx/performance/enums/OwnerAccountEnum.java
浏览文件 @
f933b01b
...
...
@@ -3,6 +3,9 @@ package com.clx.performance.enums;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.util.Arrays
;
import
java.util.Optional
;
@Getter
@AllArgsConstructor
@SuppressWarnings
(
"all"
)
...
...
@@ -18,6 +21,17 @@ public enum OwnerAccountEnum {
private
final
Integer
code
;
private
final
String
msg
;
public
static
Optional
<
OwnerAccountEnum
.
AccountTypeStatus
>
getByCode
(
int
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
e
.
code
.
equals
(
code
)).
findFirst
();
}
public
Integer
getCode
()
{
return
this
.
code
;
}
public
String
getMsg
()
{
return
this
.
msg
;
}
}
@Getter
...
...
@@ -58,6 +72,16 @@ public enum OwnerAccountEnum {
;
private
final
Integer
code
;
private
final
String
msg
;
public
static
Optional
<
OwnerAccountEnum
.
RunningWaterStatus
>
getByCode
(
int
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
e
.
code
.
equals
(
code
)).
findFirst
();
}
public
Integer
getCode
()
{
return
this
.
code
;
}
public
String
getMsg
()
{
return
this
.
msg
;
}
}
}
performance-api/src/main/java/com/clx/performance/vo/pc/OwnerAccountRunningWaterRecordVO.java
浏览文件 @
f933b01b
package
com
.
clx
.
performance
.
vo
.
pc
;
import
com.msl.common.convertor.type.MoneyOutConvert
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
...
...
@@ -77,22 +78,30 @@ public class OwnerAccountRunningWaterRecordVO {
* 变动金额
*/
@ApiModelProperty
(
"变动金额"
)
@MoneyOutConvert
private
BigDecimal
alterationBalance
;
/**
* 冻结金额
*/
@ApiModelProperty
(
"冻结金额"
)
@MoneyOutConvert
private
BigDecimal
frozenBalance
;
/**
* 可用余额
*/
@ApiModelProperty
(
"可用余额"
)
@MoneyOutConvert
private
BigDecimal
usableBalance
;
/**
* 账户余额
*/
@ApiModelProperty
(
"账户余额"
)
@MoneyOutConvert
private
BigDecimal
accountBalance
;
@ApiModelProperty
(
"扣除金额"
)
@MoneyOutConvert
private
BigDecimal
takeOutBalance
;
/**
* 操作人
*/
...
...
performance-web/src/main/java/com/clx/performance/controller/pc/carrier/CarrierAccountController.java
浏览文件 @
f933b01b
...
...
@@ -9,6 +9,7 @@ import com.clx.performance.vo.pc.OwnerAccountRunningWaterRecordVO;
import
com.clx.performance.vo.pc.OwnerAccountVO
;
import
com.clx.performance.vo.pc.OwnerCaseOutVO
;
import
com.clx.performance.vo.pc.OwnerTopUpVO
;
import
com.clx.user.param.pc.driver.truck.PageDriverTruckParam
;
import
com.msl.common.base.PageData
;
import
com.msl.common.convertor.aspect.UnitCovert
;
import
com.msl.common.result.Result
;
...
...
@@ -16,9 +17,14 @@ import io.swagger.annotations.Api;
import
io.swagger.annotations.ApiOperation
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.MediaType
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.constraints.NotBlank
;
...
...
@@ -53,6 +59,14 @@ public class CarrierAccountController {
return
Result
.
page
(
page
.
getRecords
(),
page
.
getTotal
(),
page
.
getPages
());
}
@ApiOperation
(
value
=
"保证金账户详情流水下载"
)
@PostMapping
(
"/exportMarginAccountPageList"
)
public
void
exportMarginAccountPageList
(
@RequestBody
@Validated
PagePlatformMarginAccountParam
param
,
HttpServletResponse
response
)
throws
Exception
{
SXSSFWorkbook
workbook
=
ownerAccountService
.
exportMarginAccountPageList
(
param
);
response
.
setHeader
(
HttpHeaders
.
CONTENT_TYPE
,
MediaType
.
APPLICATION_OCTET_STREAM_VALUE
);
workbook
.
write
(
response
.
getOutputStream
());
}
@ApiOperation
(
value
=
"预付金账户详情流水列表"
,
notes
=
"<br>By:胡宇帆"
)
@PostMapping
(
"/prepaidFreightAccountPageList"
)
@UnitCovert
(
param
=
false
)
...
...
@@ -61,6 +75,14 @@ public class CarrierAccountController {
return
Result
.
page
(
page
.
getRecords
(),
page
.
getTotal
(),
page
.
getPages
());
}
@ApiOperation
(
value
=
"预付金账户详情流水下载"
)
@PostMapping
(
"/exportPrepaidFreightAccountPageList"
)
public
void
exportPrepaidFreightAccountPageList
(
@RequestBody
@Validated
PagePlatformPrepaidFreightAccountParam
param
,
HttpServletResponse
response
)
throws
Exception
{
SXSSFWorkbook
workbook
=
ownerAccountService
.
exportPrepaidFreightAccountPageList
(
param
);
response
.
setHeader
(
HttpHeaders
.
CONTENT_TYPE
,
MediaType
.
APPLICATION_OCTET_STREAM_VALUE
);
workbook
.
write
(
response
.
getOutputStream
());
}
@ApiOperation
(
value
=
"充值审批"
,
notes
=
"<br>By:胡宇帆"
)
@PostMapping
(
"/accountTopUpApprove"
)
...
...
performance-web/src/main/java/com/clx/performance/controller/pc/owner/OwnerAccountController.java
浏览文件 @
f933b01b
...
...
@@ -17,9 +17,13 @@ import io.swagger.annotations.Api;
import
io.swagger.annotations.ApiOperation
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.MediaType
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.constraints.NotNull
;
import
java.util.List
;
...
...
@@ -95,4 +99,12 @@ public class OwnerAccountController {
IPage
<
OwnerAccountRunningWaterRecordVO
>
page
=
ownerRunningWaterRecordService
.
ownerAccountRunningWaterPageList
(
param
);
return
Result
.
page
(
page
.
getRecords
(),
page
.
getTotal
(),
page
.
getPages
());
}
@ApiOperation
(
value
=
"货主账户流水列表下载"
)
@PostMapping
(
"/exportOwnerAccountRunningWaterPageList"
)
public
void
exportOwnerAccountRunningWaterPageList
(
@RequestBody
@Validated
PageOwnerAccountRunningWaterParam
param
,
HttpServletResponse
response
)
throws
Exception
{
SXSSFWorkbook
workbook
=
ownerRunningWaterRecordService
.
exportOwnerAccountRunningWaterPageList
(
param
);
response
.
setHeader
(
HttpHeaders
.
CONTENT_TYPE
,
MediaType
.
APPLICATION_OCTET_STREAM_VALUE
);
workbook
.
write
(
response
.
getOutputStream
());
}
}
performance-web/src/main/java/com/clx/performance/model/OwnerRunningWaterRecord.java
浏览文件 @
f933b01b
...
...
@@ -107,6 +107,12 @@ public class OwnerRunningWaterRecord implements HasKey<Integer> {
*/
@TableField
(
"account_balance"
)
private
BigDecimal
accountBalance
;
/**
* 扣除金额
*/
@TableField
(
"take_out_balance"
)
private
BigDecimal
takeOutBalance
;
/**
* 操作人
*/
...
...
performance-web/src/main/java/com/clx/performance/service/OwnerAccountService.java
浏览文件 @
f933b01b
...
...
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.clx.performance.param.pc.*
;
import
com.clx.performance.vo.pc.OwnerAccountRunningWaterRecordVO
;
import
com.clx.performance.vo.pc.OwnerAccountVO
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
java.util.List
;
...
...
@@ -36,4 +37,18 @@ public interface OwnerAccountService {
* @param id
*/
void
accountBalanceConfirm
(
Integer
id
);
/**
*保证金导出
* @param param
* @return
*/
SXSSFWorkbook
exportMarginAccountPageList
(
PagePlatformMarginAccountParam
param
);
/**
* 预付金导出
* @param param
* @return
*/
SXSSFWorkbook
exportPrepaidFreightAccountPageList
(
PagePlatformPrepaidFreightAccountParam
param
);
}
performance-web/src/main/java/com/clx/performance/service/OwnerRunningWaterRecordService.java
浏览文件 @
f933b01b
...
...
@@ -3,6 +3,7 @@ package com.clx.performance.service;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.param.pc.PageOwnerAccountRunningWaterParam
;
import
com.clx.performance.vo.pc.OwnerAccountRunningWaterRecordVO
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
public
interface
OwnerRunningWaterRecordService
{
...
...
@@ -12,4 +13,11 @@ public interface OwnerRunningWaterRecordService {
* @return
*/
IPage
<
OwnerAccountRunningWaterRecordVO
>
ownerAccountRunningWaterPageList
(
PageOwnerAccountRunningWaterParam
param
);
/**
* 货主资金账户管理流水下载
* @param param
* @return
*/
SXSSFWorkbook
exportOwnerAccountRunningWaterPageList
(
PageOwnerAccountRunningWaterParam
param
);
}
performance-web/src/main/java/com/clx/performance/service/impl/OwnerAccountServiceImpl.java
浏览文件 @
f933b01b
...
...
@@ -15,17 +15,25 @@ import com.clx.performance.model.OwnerRunningWaterRecord;
import
com.clx.performance.model.OwnerTopUp
;
import
com.clx.performance.param.pc.*
;
import
com.clx.performance.service.OwnerAccountService
;
import
com.clx.performance.utils.excel.ExcelData
;
import
com.clx.performance.utils.excel.ExcelField
;
import
com.clx.performance.utils.excel.ExcelSheet
;
import
com.clx.performance.utils.excel.ExcelUtil
;
import
com.clx.performance.vo.pc.OwnerAccountRunningWaterRecordVO
;
import
com.clx.performance.vo.pc.OwnerAccountVO
;
import
com.clx.user.enums.driver.DriverTruckEnum
;
import
com.clx.user.vo.pc.driver.truck.DriverTruckVo
;
import
com.msl.common.base.Optional
;
import
com.msl.common.exception.ServiceSystemException
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.List
;
@Slf4j
...
...
@@ -217,4 +225,117 @@ public class OwnerAccountServiceImpl implements OwnerAccountService {
update
.
setId
(
account
.
getId
());
ownerAccountDao
.
updateEntityByKey
(
update
);
}
@Override
public
SXSSFWorkbook
exportMarginAccountPageList
(
PagePlatformMarginAccountParam
param
)
{
IPage
<
OwnerAccountRunningWaterRecordVO
>
page
=
ownerRunningWaterRecordDao
.
marginAccountPageList
(
param
);
List
<
OwnerAccountRunningWaterRecordVO
>
list
=
page
.
getRecords
();
// 组装表头
List
<
ExcelField
>
fieldList
=
new
ArrayList
<>();
fieldList
.
add
(
new
ExcelField
(
0
,
"序号"
,
"index"
,
2000
));
fieldList
.
add
(
new
ExcelField
(
1
,
"货主编码"
,
"ownerUserNo"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
2
,
"货主名称"
,
"ownerName"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
3
,
"联系电话"
,
"mobile"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
4
,
"账户类型"
,
"accountType"
,
15000
));
fieldList
.
add
(
new
ExcelField
(
5
,
"流水类型"
,
"runningWaterType"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
6
,
"订单编号"
,
"orderNo"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
7
,
"变动金额"
,
"alterationBalance"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
8
,
"冻结金额"
,
"frozenBalance"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
9
,
"可用余额"
,
"usableBalance"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
10
,
"账户余额"
,
"accountBalance"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
11
,
"扣除金额"
,
"takeOutBalance"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
12
,
"流水编号"
,
"runningWaterNo"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
13
,
"操作人"
,
"createBy"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
14
,
"操作时间"
,
"createTime"
,
5000
));
// 组装数据
List
<
List
<
ExcelData
>>
dataList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++){
OwnerAccountRunningWaterRecordVO
dto
=
list
.
get
(
i
);
List
<
ExcelData
>
rowData
=
new
ArrayList
<>();
rowData
.
add
(
new
ExcelData
(
i
+
1
));
rowData
.
add
(
new
ExcelData
(
dto
.
getOwnerUserNo
().
toString
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getOwnerName
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getMobile
()));
rowData
.
add
(
new
ExcelData
(
OwnerAccountEnum
.
AccountTypeStatus
.
getByCode
(
dto
.
getAccountType
()).
get
().
getMsg
()));
rowData
.
add
(
new
ExcelData
(
OwnerAccountEnum
.
RunningWaterStatus
.
getByCode
(
dto
.
getRunningWaterType
()).
get
().
getMsg
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getOrderNo
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getAlterationBalance
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getFrozenBalance
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getUsableBalance
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getAccountBalance
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getTakeOutBalance
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getRunningWaterNo
().
toString
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getCreateBy
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getCreateTime
().
toString
()));
dataList
.
add
(
rowData
);
}
ExcelSheet
excelSheet
=
new
ExcelSheet
(
"保证金账户详情"
,
"保证金账户详情"
,
fieldList
,
dataList
);
//创建excel
return
ExcelUtil
.
create
(
excelSheet
);
}
@Override
public
SXSSFWorkbook
exportPrepaidFreightAccountPageList
(
PagePlatformPrepaidFreightAccountParam
param
)
{
IPage
<
OwnerAccountRunningWaterRecordVO
>
page
=
ownerRunningWaterRecordDao
.
prepaidFreightAccountPageList
(
param
);
List
<
OwnerAccountRunningWaterRecordVO
>
list
=
page
.
getRecords
();
// 组装表头
List
<
ExcelField
>
fieldList
=
new
ArrayList
<>();
fieldList
.
add
(
new
ExcelField
(
0
,
"序号"
,
"index"
,
2000
));
fieldList
.
add
(
new
ExcelField
(
1
,
"货主编码"
,
"ownerUserNo"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
2
,
"货主名称"
,
"ownerName"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
3
,
"联系电话"
,
"mobile"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
4
,
"账户类型"
,
"accountType"
,
15000
));
fieldList
.
add
(
new
ExcelField
(
5
,
"流水类型"
,
"runningWaterType"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
6
,
"订单编号"
,
"orderNo"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
7
,
"运单编号"
,
"orderChildNo"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
8
,
"变动金额"
,
"alterationBalance"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
9
,
"冻结金额"
,
"frozenBalance"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
10
,
"可用余额"
,
"usableBalance"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
11
,
"账户余额"
,
"accountBalance"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
12
,
"扣除金额"
,
"takeOutBalance"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
13
,
"流水编号"
,
"runningWaterNo"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
14
,
"操作人"
,
"createBy"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
15
,
"操作时间"
,
"createTime"
,
5000
));
// 组装数据
List
<
List
<
ExcelData
>>
dataList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++){
OwnerAccountRunningWaterRecordVO
dto
=
list
.
get
(
i
);
List
<
ExcelData
>
rowData
=
new
ArrayList
<>();
rowData
.
add
(
new
ExcelData
(
i
+
1
));
rowData
.
add
(
new
ExcelData
(
dto
.
getOwnerUserNo
().
toString
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getOwnerName
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getMobile
()));
rowData
.
add
(
new
ExcelData
(
OwnerAccountEnum
.
AccountTypeStatus
.
getByCode
(
dto
.
getAccountType
()).
get
().
getMsg
()));
rowData
.
add
(
new
ExcelData
(
OwnerAccountEnum
.
RunningWaterStatus
.
getByCode
(
dto
.
getRunningWaterType
()).
get
().
getMsg
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getOrderNo
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getOrderChildNo
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getAlterationBalance
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getFrozenBalance
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getUsableBalance
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getAccountBalance
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getTakeOutBalance
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getRunningWaterNo
().
toString
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getCreateBy
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getCreateTime
().
toString
()));
dataList
.
add
(
rowData
);
}
ExcelSheet
excelSheet
=
new
ExcelSheet
(
"预付账户详情"
,
"预付账户详情"
,
fieldList
,
dataList
);
//创建excel
return
ExcelUtil
.
create
(
excelSheet
);
}
}
performance-web/src/main/java/com/clx/performance/service/impl/OwnerRunningWaterRecordServiceImpl.java
浏览文件 @
f933b01b
...
...
@@ -2,13 +2,22 @@ package com.clx.performance.service.impl;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.dao.OwnerRunningWaterRecordDao
;
import
com.clx.performance.enums.OwnerAccountEnum
;
import
com.clx.performance.param.pc.PageOwnerAccountRunningWaterParam
;
import
com.clx.performance.service.OwnerRunningWaterRecordService
;
import
com.clx.performance.utils.excel.ExcelData
;
import
com.clx.performance.utils.excel.ExcelField
;
import
com.clx.performance.utils.excel.ExcelSheet
;
import
com.clx.performance.utils.excel.ExcelUtil
;
import
com.clx.performance.vo.pc.OwnerAccountRunningWaterRecordVO
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
@Slf4j
@Service
@AllArgsConstructor
...
...
@@ -20,4 +29,62 @@ public class OwnerRunningWaterRecordServiceImpl implements OwnerRunningWaterReco
public
IPage
<
OwnerAccountRunningWaterRecordVO
>
ownerAccountRunningWaterPageList
(
PageOwnerAccountRunningWaterParam
param
)
{
return
ownerRunningWaterRecordDao
.
ownerAccountRunningWaterPageList
(
param
);
}
@Override
public
SXSSFWorkbook
exportOwnerAccountRunningWaterPageList
(
PageOwnerAccountRunningWaterParam
param
)
{
IPage
<
OwnerAccountRunningWaterRecordVO
>
page
=
ownerRunningWaterRecordDao
.
ownerAccountRunningWaterPageList
(
param
);
List
<
OwnerAccountRunningWaterRecordVO
>
list
=
page
.
getRecords
();
// 组装表头
List
<
ExcelField
>
fieldList
=
new
ArrayList
<>();
fieldList
.
add
(
new
ExcelField
(
0
,
"序号"
,
"index"
,
2000
));
fieldList
.
add
(
new
ExcelField
(
1
,
"货主编码"
,
"ownerUserNo"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
2
,
"货主名称"
,
"ownerName"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
3
,
"联系电话"
,
"mobile"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
4
,
"账户类型"
,
"accountType"
,
15000
));
fieldList
.
add
(
new
ExcelField
(
5
,
"流水类型"
,
"runningWaterType"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
6
,
"订单编号"
,
"orderNo"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
7
,
"运单编号"
,
"orderChildNo"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
8
,
"变动金额"
,
"alterationBalance"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
9
,
"冻结金额"
,
"frozenBalance"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
10
,
"可用余额"
,
"usableBalance"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
11
,
"账户余额"
,
"accountBalance"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
12
,
"扣除金额"
,
"takeOutBalance"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
13
,
"流水编号"
,
"runningWaterNo"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
14
,
"操作人"
,
"createBy"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
15
,
"操作时间"
,
"createTime"
,
5000
));
// 组装数据
List
<
List
<
ExcelData
>>
dataList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++){
OwnerAccountRunningWaterRecordVO
dto
=
list
.
get
(
i
);
List
<
ExcelData
>
rowData
=
new
ArrayList
<>();
rowData
.
add
(
new
ExcelData
(
i
+
1
));
rowData
.
add
(
new
ExcelData
(
dto
.
getOwnerUserNo
().
toString
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getOwnerName
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getMobile
()));
rowData
.
add
(
new
ExcelData
(
OwnerAccountEnum
.
AccountTypeStatus
.
getByCode
(
dto
.
getAccountType
()).
get
().
getMsg
()));
rowData
.
add
(
new
ExcelData
(
OwnerAccountEnum
.
RunningWaterStatus
.
getByCode
(
dto
.
getRunningWaterType
()).
get
().
getMsg
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getOrderNo
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getOrderChildNo
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getAlterationBalance
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getFrozenBalance
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getUsableBalance
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getAccountBalance
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getTakeOutBalance
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getRunningWaterNo
().
toString
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getCreateBy
()));
rowData
.
add
(
new
ExcelData
(
dto
.
getCreateTime
().
toString
()));
dataList
.
add
(
rowData
);
}
ExcelSheet
excelSheet
=
new
ExcelSheet
(
"货主资金账户管理"
,
"货主资金账户管理"
,
fieldList
,
dataList
);
//创建excel
return
ExcelUtil
.
create
(
excelSheet
);
}
}
performance-web/src/main/java/com/clx/performance/sqlProvider/OwnerRunningWaterRecordSqlProvider.java
浏览文件 @
f933b01b
...
...
@@ -15,7 +15,7 @@ public class OwnerRunningWaterRecordSqlProvider {
String
sql
=
new
SQL
()
{{
SELECT
(
"a.id, a.owner_user_no,"
+
" a.owner_name, a.mobile, a.account_type, a.running_water_type,a.order_id,a.order_no,a.order_child_id,a.order_child_no,a.alteration_balance,"
+
" a.account_balance,a.usable_balance, a.frozen_balance,a.create_by,a.create_time"
);
" a.account_balance,a.usable_balance, a.frozen_balance,a.
take_out_balance,a.
create_by,a.create_time"
);
FROM
(
"owner_running_water_record a"
);
WHERE
(
"a.account_type ="
+
OwnerAccountEnum
.
AccountTypeStatus
.
MARGIN_ACCOUNT
.
getCode
());
WHERE
(
"a.owner_user_no = #{param.ownerUserNo}"
);
...
...
performance-web/src/main/java/com/clx/performance/utils/excel/DataExcelTypeEnum.java
0 → 100644
浏览文件 @
f933b01b
package
com
.
clx
.
performance
.
utils
.
excel
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* 数据导出类型 0数据 1小计 2合计 3总计
*/
@Getter
@AllArgsConstructor
public
enum
DataExcelTypeEnum
{
DATA_TYPE
(
0
,
"数据"
),
SUBTOTAL
(
1
,
"小计"
),
EXCELLENT
(
2
,
"合计"
),
ALL_TOTAL
(
3
,
"总计"
),
;
private
int
value
;
private
String
desc
;
public
static
String
getDesc
(
int
value
)
{
for
(
DataExcelTypeEnum
c
:
DataExcelTypeEnum
.
values
())
{
if
(
c
.
getValue
()
==
value
)
{
return
c
.
desc
;
}
}
return
null
;
}
}
performance-web/src/main/java/com/clx/performance/utils/excel/ExcelData.java
0 → 100644
浏览文件 @
f933b01b
package
com
.
clx
.
performance
.
utils
.
excel
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
java.math.BigDecimal
;
@Data
@NoArgsConstructor
public
class
ExcelData
{
private
String
value
;
private
double
doubleValue
;
private
Integer
styleType
;
private
Integer
dataType
;
//数据类型:1字符串 2数字
@Getter
@AllArgsConstructor
public
enum
DataType
{
STRING
(
1
,
"字符串"
),
NUMERIC
(
2
,
"数字"
),
;
private
Integer
value
;
private
String
msg
;
}
public
ExcelData
(
String
value
)
{
this
(
value
,
null
);
}
public
ExcelData
(
String
value
,
String
defaultValue
)
{
this
.
value
=
value
;
this
.
dataType
=
DataType
.
STRING
.
value
;
}
public
ExcelData
(
Double
value
)
{
this
(
value
,
null
);
}
public
ExcelData
(
Double
value
,
String
defaultValue
)
{
if
(
null
!=
value
)
{
this
.
doubleValue
=
value
;
this
.
dataType
=
DataType
.
NUMERIC
.
value
;
}
else
{
this
.
value
=
defaultValue
;
this
.
dataType
=
DataType
.
STRING
.
value
;
}
}
public
ExcelData
(
Integer
value
)
{
this
(
value
,
null
);
}
public
ExcelData
(
Integer
value
,
String
defaultValue
)
{
if
(
null
!=
value
)
{
this
.
doubleValue
=
value
;
this
.
dataType
=
DataType
.
NUMERIC
.
value
;
}
else
{
this
.
value
=
defaultValue
;
this
.
dataType
=
DataType
.
STRING
.
value
;
}
}
public
ExcelData
(
BigDecimal
value
)
{
this
(
value
,
null
);
}
public
ExcelData
(
BigDecimal
value
,
String
defaultValue
)
{
if
(
null
!=
value
)
{
this
.
doubleValue
=
value
.
doubleValue
();
this
.
dataType
=
DataType
.
NUMERIC
.
value
;
}
else
{
this
.
value
=
defaultValue
;
this
.
dataType
=
DataType
.
STRING
.
value
;
}
}
public
double
getDoubleValue
()
{
return
doubleValue
;
}
public
String
getStringValue
()
{
return
value
;
}
}
performance-web/src/main/java/com/clx/performance/utils/excel/ExcelField.java
0 → 100644
浏览文件 @
f933b01b
package
com
.
clx
.
performance
.
utils
.
excel
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @Author: aiqingguo
* @Description:
* @Date: 2022/8/18 14:25
* @Version: 1.0
*/
@Data
@NoArgsConstructor
public
class
ExcelField
{
private
Integer
column
;
private
String
fieldName
;
private
String
field
;
private
Integer
width
;
private
Integer
styleType
;
private
Integer
contentAlignment
;
public
ExcelField
(
String
fieldName
,
String
field
,
Integer
width
)
{
this
.
fieldName
=
fieldName
;
this
.
field
=
field
;
this
.
width
=
width
;
}
public
ExcelField
(
Integer
column
,
String
fieldName
,
String
field
,
Integer
width
)
{
this
.
column
=
column
;
this
.
fieldName
=
fieldName
;
this
.
field
=
field
;
this
.
width
=
width
;
}
}
performance-web/src/main/java/com/clx/performance/utils/excel/ExcelSheet.java
0 → 100644
浏览文件 @
f933b01b
package
com
.
clx
.
performance
.
utils
.
excel
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* @Author: aiqingguo
* @Description:
* @Date: 2022/8/19 9:53
* @Version: 1.0
*/
@Data
@NoArgsConstructor
public
class
ExcelSheet
{
private
String
name
;
private
String
title
;
private
String
time
;
private
Integer
timeStyleType
;
private
List
<
ExcelField
>
fieldList
;
private
List
<
List
<
ExcelData
>>
dataList
;
public
ExcelSheet
(
String
name
,
String
title
)
{
this
.
name
=
name
;
this
.
title
=
title
;
}
public
ExcelSheet
(
String
name
,
String
title
,
List
<
ExcelField
>
fieldList
)
{
this
.
name
=
name
;
this
.
title
=
title
;
this
.
fieldList
=
fieldList
;
}
public
ExcelSheet
(
String
name
,
String
title
,
List
<
ExcelField
>
fieldList
,
List
<
List
<
ExcelData
>>
dataList
)
{
this
.
name
=
name
;
this
.
title
=
title
;
this
.
fieldList
=
fieldList
;
this
.
dataList
=
dataList
;
}
}
performance-web/src/main/java/com/clx/performance/utils/excel/ExcelUtil.java
0 → 100644
浏览文件 @
f933b01b
package
com
.
clx
.
performance
.
utils
.
excel
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.ss.usermodel.CellStyle
;
import
org.apache.poi.ss.usermodel.Font
;
import
org.apache.poi.ss.usermodel.HorizontalAlignment
;
import
org.apache.poi.ss.usermodel.VerticalAlignment
;
import
org.apache.poi.ss.util.CellRangeAddress
;
import
org.apache.poi.xssf.streaming.SXSSFCell
;
import
org.apache.poi.xssf.streaming.SXSSFRow
;
import
org.apache.poi.xssf.streaming.SXSSFSheet
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
java.util.List
;
/**
* @Author: aiqingguo
* @Description:
* @Date: 2022/8/18 14:33
* @Version: 1.0
*/
public
class
ExcelUtil
{
@Getter
@AllArgsConstructor
public
enum
CellStyleType
{
CONTENT_CENTER
(
1
),
//内容居中
CONTENT_LEFT
(
2
),
//内容居左
CONTENT_RIGHT
(
3
),
//内容居右
TIME_LEFT
(
11
),
//时间左边
TIME_RIGHT
(
12
),
//时间右边
;
private
final
Integer
code
;
}
/**
* 创建excel
*/
public
static
SXSSFWorkbook
create
(
ExcelSheet
excelSheet
)
{
List
<
ExcelField
>
fieldList
=
excelSheet
.
getFieldList
();
List
<
List
<
ExcelData
>>
dataList
=
excelSheet
.
getDataList
();
SXSSFWorkbook
workbook
=
new
SXSSFWorkbook
();
//创建sheet
SXSSFSheet
sheet
=
workbook
.
createSheet
(
excelSheet
.
getName
());
int
fieldSize
=
fieldList
.
size
();
for
(
int
i
=
0
;
i
<
fieldSize
;
i
++)
{
sheet
.
setColumnWidth
(
i
,
fieldList
.
get
(
i
).
getWidth
());
}
//添加标题
int
row
=
0
;
CellRangeAddress
cellRangeAddress
=
new
CellRangeAddress
(
row
,
row
,
0
,
fieldSize
-
1
);
SXSSFRow
rowTitle
=
sheet
.
createRow
(
row
++);
sheet
.
addMergedRegion
(
cellRangeAddress
);
rowTitle
.
setHeightInPoints
(
30
);
SXSSFCell
titleCell
=
rowTitle
.
createCell
(
0
);
titleCell
.
setCellValue
(
excelSheet
.
getTitle
());
titleCell
.
setCellStyle
(
getTitleStyle
(
workbook
));
//时间
if
(
StringUtils
.
isNotBlank
(
excelSheet
.
getTime
()))
{
CellRangeAddress
timeCellRangeAddress
=
new
CellRangeAddress
(
row
,
row
,
0
,
fieldSize
-
1
);
SXSSFRow
rowTime
=
sheet
.
createRow
(
row
++);
sheet
.
addMergedRegion
(
timeCellRangeAddress
);
SXSSFCell
timeCell
=
rowTime
.
createCell
(
0
);
timeCell
.
setCellValue
(
excelSheet
.
getTime
());
Integer
styleType
=
excelSheet
.
getTimeStyleType
();
if
(
null
!=
styleType
)
{
timeCell
.
setCellStyle
(
getCellStyle
(
workbook
,
styleType
));
}
}
//添加表头
CellStyle
headCellStyle
=
getHeadStyle
(
workbook
);
SXSSFRow
rowHead
=
sheet
.
createRow
(
row
++);
for
(
int
i
=
0
;
i
<
fieldSize
;
i
++)
{
SXSSFCell
headCell
=
rowHead
.
createCell
(
i
);
headCell
.
setCellValue
(
fieldList
.
get
(
i
).
getFieldName
());
Integer
styleType
=
fieldList
.
get
(
i
).
getStyleType
();
if
(
null
!=
styleType
)
{
headCell
.
setCellStyle
(
getCellStyle
(
workbook
,
styleType
));
}
else
{
headCell
.
setCellStyle
(
headCellStyle
);
}
}
//内容
SXSSFRow
rowData
;
int
dataSize
=
dataList
.
size
();
for
(
int
i
=
0
;
i
<
dataSize
;
i
++)
{
rowData
=
sheet
.
createRow
(
row
++);
for
(
int
j
=
0
;
j
<
fieldSize
;
j
++)
{
SXSSFCell
dataCell
=
rowData
.
createCell
(
j
);
ExcelData
excelData
=
dataList
.
get
(
i
).
get
(
j
);
setCellValue
(
dataCell
,
excelData
);
Integer
styleType
=
dataList
.
get
(
i
).
get
(
j
).
getStyleType
();
if
(
null
!=
styleType
)
{
dataCell
.
setCellStyle
(
getCellStyle
(
workbook
,
styleType
));
}
}
}
return
workbook
;
}
/**
* 设置值
*/
private
static
void
setCellValue
(
SXSSFCell
dataCell
,
ExcelData
excelData
)
{
if
(
ExcelData
.
DataType
.
STRING
.
getValue
().
equals
(
excelData
.
getDataType
()))
{
String
stringValue
=
excelData
.
getStringValue
();
dataCell
.
setCellValue
(
stringValue
);
}
else
if
(
ExcelData
.
DataType
.
NUMERIC
.
getValue
().
equals
(
excelData
.
getDataType
()))
{
if
(
null
==
excelData
.
getStyleType
())
{
excelData
.
setStyleType
(
CellStyleType
.
CONTENT_RIGHT
.
getCode
());
}
dataCell
.
setCellValue
(
excelData
.
getDoubleValue
());
}
}
/**
* 设置标题字体
*/
private
static
Font
getTitleFont
(
SXSSFWorkbook
workbook
)
{
Font
ztFont
=
workbook
.
createFont
();
ztFont
.
setColor
(
Font
.
COLOR_NORMAL
);
ztFont
.
setFontHeightInPoints
((
short
)
22
);
return
ztFont
;
}
/**
* 设置标题样式
*/
private
static
CellStyle
getTitleStyle
(
SXSSFWorkbook
workbook
)
{
Font
font
=
getTitleFont
(
workbook
);
CellStyle
style
=
workbook
.
createCellStyle
();
style
.
setFont
(
font
);
style
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
style
.
setVerticalAlignment
(
VerticalAlignment
.
CENTER
);
return
style
;
}
/**
* 设置格式
*/
private
static
Font
getHeadFont
(
SXSSFWorkbook
workbook
)
{
Font
ztFont
=
workbook
.
createFont
();
ztFont
.
setBold
(
true
);
return
ztFont
;
}
/**
* 设置表头样式
*/
private
static
CellStyle
getHeadStyle
(
SXSSFWorkbook
workbook
)
{
Font
headFont
=
getHeadFont
(
workbook
);
CellStyle
style
=
workbook
.
createCellStyle
();
style
.
setFont
(
headFont
);
style
.
setVerticalAlignment
(
VerticalAlignment
.
CENTER
);
style
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
return
style
;
}
//获取单元格样式
private
static
CellStyle
getCellStyle
(
SXSSFWorkbook
workbook
,
Integer
cellStyleType
)
{
if
(
CellStyleType
.
CONTENT_CENTER
.
getCode
().
equals
(
cellStyleType
))
{
return
contentCenterStyle
(
workbook
);
}
if
(
CellStyleType
.
CONTENT_LEFT
.
getCode
().
equals
(
cellStyleType
))
{
return
contentLeftStyle
(
workbook
);
}
if
(
CellStyleType
.
CONTENT_RIGHT
.
getCode
().
equals
(
cellStyleType
))
{
return
contentRightStyle
(
workbook
);
}
if
(
CellStyleType
.
TIME_LEFT
.
getCode
().
equals
(
cellStyleType
))
{
return
timeLeftStyle
(
workbook
);
}
if
(
CellStyleType
.
TIME_RIGHT
.
getCode
().
equals
(
cellStyleType
))
{
return
timeRightStyle
(
workbook
);
}
return
workbook
.
createCellStyle
();
}
/**
* 内容居中
*/
private
static
CellStyle
contentCenterStyle
(
SXSSFWorkbook
workbook
)
{
CellStyle
cellStyle
=
workbook
.
createCellStyle
();
cellStyle
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
return
cellStyle
;
}
/**
* 内容居右
*/
private
static
CellStyle
contentLeftStyle
(
SXSSFWorkbook
workbook
)
{
CellStyle
cellStyle
=
workbook
.
createCellStyle
();
cellStyle
.
setAlignment
(
HorizontalAlignment
.
LEFT
);
return
cellStyle
;
}
/**
* 内容居右
*/
private
static
CellStyle
contentRightStyle
(
SXSSFWorkbook
workbook
)
{
CellStyle
cellStyle
=
workbook
.
createCellStyle
();
cellStyle
.
setAlignment
(
HorizontalAlignment
.
RIGHT
);
return
cellStyle
;
}
/**
* 时间样式
*/
private
static
CellStyle
timeLeftStyle
(
SXSSFWorkbook
workbook
)
{
CellStyle
cellStyle
=
workbook
.
createCellStyle
();
cellStyle
.
setAlignment
(
HorizontalAlignment
.
LEFT
);
Font
font
=
workbook
.
createFont
();
font
.
setBold
(
true
);
font
.
setFontName
(
"宋体"
);
cellStyle
.
setFont
(
font
);
return
cellStyle
;
}
private
static
CellStyle
timeRightStyle
(
SXSSFWorkbook
workbook
)
{
CellStyle
cellStyle
=
workbook
.
createCellStyle
();
cellStyle
.
setAlignment
(
HorizontalAlignment
.
RIGHT
);
Font
font
=
workbook
.
createFont
();
font
.
setBold
(
true
);
font
.
setFontName
(
"宋体"
);
cellStyle
.
setFont
(
font
);
return
cellStyle
;
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论