Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
fe237fda
提交
fe237fda
authored
10月 17, 2023
作者:
liuhaiquan
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/v5.5_settlement_20231011' into v5.5_settlement_20231011
上级
b18f50a3
5991eb7b
全部展开
显示空白字符变更
内嵌
并排
正在显示
31 个修改的文件
包含
920 行增加
和
94 行删除
+920
-94
OwnerAccountEnum.java
...main/java/com/clx/performance/enums/OwnerAccountEnum.java
+24
-0
PlatformAccountTopUpParam.java
...m/clx/performance/param/pc/PlatformAccountTopUpParam.java
+3
-0
OwnerAccountRunningWaterRecordVO.java
...x/performance/vo/pc/OwnerAccountRunningWaterRecordVO.java
+9
-0
OwnerCaseOutVO.java
...c/main/java/com/clx/performance/vo/pc/OwnerCaseOutVO.java
+1
-1
OwnerTopUpVO.java
...src/main/java/com/clx/performance/vo/pc/OwnerTopUpVO.java
+3
-3
OrderChildMessage.java
...x/performance/sdk/callback/message/OrderChildMessage.java
+13
-6
QuotationUpdateMessage.java
...formance/sdk/callback/message/QuotationUpdateMessage.java
+0
-38
MessageConstants.java
...va/com/clx/performance/sdk/constant/MessageConstants.java
+7
-1
pom.xml
performance-web/pom.xml
+6
-0
OrderGoodsStatusLazyComponent.java
.../performance/component/OrderGoodsStatusLazyComponent.java
+11
-11
CarrierAccountController.java
...mance/controller/pc/carrier/CarrierAccountController.java
+22
-0
OwnerAccountController.java
...rformance/controller/pc/owner/OwnerAccountController.java
+45
-0
OwnerTransferInfoDao.java
...in/java/com/clx/performance/dao/OwnerTransferInfoDao.java
+13
-0
OwnerTransferInfoDaoImpl.java
...om/clx/performance/dao/impl/OwnerTransferInfoDaoImpl.java
+16
-0
DataTransportDTO.java
...in/java/com/clx/performance/dto/dts/DataTransportDTO.java
+1
-1
EncryptService.java
.../com/clx/performance/extranal/encrypt/EncryptService.java
+14
-0
EncryptServiceImpl.java
...performance/extranal/encrypt/impl/EncryptServiceImpl.java
+49
-0
OrderChildDtsListener.java
...a/com/clx/performance/listener/OrderChildDtsListener.java
+42
-32
OwnerTransferInfoMapper.java
...a/com/clx/performance/mapper/OwnerTransferInfoMapper.java
+12
-0
OwnerRunningWaterRecord.java
...va/com/clx/performance/model/OwnerRunningWaterRecord.java
+6
-0
OwnerTransferInfo.java
...ain/java/com/clx/performance/model/OwnerTransferInfo.java
+63
-0
OwnerAccountService.java
...java/com/clx/performance/service/OwnerAccountService.java
+26
-0
OwnerRunningWaterRecordService.java
...x/performance/service/OwnerRunningWaterRecordService.java
+8
-0
OwnerAccountServiceImpl.java
...clx/performance/service/impl/OwnerAccountServiceImpl.java
+0
-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
浏览文件 @
fe237fda
...
...
@@ -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/param/pc/PlatformAccountTopUpParam.java
浏览文件 @
fe237fda
...
...
@@ -28,5 +28,8 @@ public class PlatformAccountTopUpParam{
@ApiModelProperty
(
value
=
"审批拒绝原因"
)
private
String
turnDownContent
;
@ApiModelProperty
(
value
=
"是否通过 1:通过 0:拒绝"
,
example
=
"true"
)
private
Boolean
passType
;
}
performance-api/src/main/java/com/clx/performance/vo/pc/OwnerAccountRunningWaterRecordVO.java
浏览文件 @
fe237fda
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-api/src/main/java/com/clx/performance/vo/pc/OwnerCaseOutVO.java
浏览文件 @
fe237fda
...
...
@@ -39,7 +39,7 @@ public class OwnerCaseOutVO {
* 提现账户类型
*/
@ApiModelProperty
(
value
=
"id"
)
private
Integer
caseOu
tType
;
private
Integer
accoun
tType
;
/**
* 提现金额
*/
...
...
performance-api/src/main/java/com/clx/performance/vo/pc/OwnerTopUpVO.java
浏览文件 @
fe237fda
...
...
@@ -36,8 +36,8 @@ public class OwnerTopUpVO {
/**
* 充值类型
*/
@ApiModelProperty
(
value
=
"充值类型"
)
private
Integer
topUp
Type
;
@ApiModelProperty
(
value
=
"充值类型
1:保证金 2:预付运费
"
)
private
Integer
account
Type
;
/**
* 充值金额
*/
...
...
@@ -46,7 +46,7 @@ public class OwnerTopUpVO {
/**
* 状态
*/
@ApiModelProperty
(
value
=
"状态"
)
@ApiModelProperty
(
value
=
"状态
10:待审批 20:审批拒绝 30:审批通过
"
)
private
Integer
status
;
/**
* 打款银行
...
...
performance-
api/src/main/java/com/clx/performance/data/OrderChildData
.java
→
performance-
sdk/src/main/java/com/clx/performance/sdk/callback/message/OrderChildMessage
.java
浏览文件 @
fe237fda
package
com
.
clx
.
performance
.
data
;
package
com
.
clx
.
performance
.
sdk
.
callback
.
message
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.ToString
;
import
lombok.*
;
import
java.math.BigDecimal
;
import
static
com
.
clx
.
performance
.
sdk
.
constant
.
MessageConstants
.
ORDER_CHILD_INFO_SYNC
;
@Getter
@Setter
@ToString
@NoArgsConstructor
public
class
OrderChildData
{
@AllArgsConstructor
@Builder
@EqualsAndHashCode
public
class
OrderChildMessage
implements
Message
{
@ApiModelProperty
(
value
=
"运单编号"
,
example
=
"100000000"
)
private
String
childNo
;
...
...
@@ -47,4 +49,9 @@ public class OrderChildData {
@ApiModelProperty
(
value
=
"卸货净重"
,
example
=
"41"
)
private
BigDecimal
unloadNet
;
@Override
public
String
topic
()
{
return
ORDER_CHILD_INFO_SYNC
;
}
}
performance-sdk/src/main/java/com/clx/performance/sdk/callback/message/QuotationUpdateMessage.java
deleted
100644 → 0
浏览文件 @
b18f50a3
package
com
.
clx
.
performance
.
sdk
.
callback
.
message
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.*
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
static
com
.
clx
.
performance
.
sdk
.
constant
.
MessageConstants
.
QUOTATION_INFO_SYNC
;
/**
* @ClassName Quotation
* @Description 同步调价
* @Author kavin
* @Date 2023/10/14 17:56
* @Version 1.0
*/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Builder
public
class
QuotationUpdateMessage
implements
Message
{
@ApiModelProperty
(
value
=
"订单编号"
)
private
String
orderNo
;
@ApiModelProperty
(
value
=
"平台报价价格"
)
private
BigDecimal
platformFreightQuotation
;
@ApiModelProperty
(
value
=
"报价超时时间"
)
private
LocalDateTime
quotationTimeoutTime
;
@Override
public
String
topic
()
{
return
QUOTATION_INFO_SYNC
;
}
}
performance-sdk/src/main/java/com/clx/performance/sdk/constant/MessageConstants.java
浏览文件 @
fe237fda
...
...
@@ -3,7 +3,13 @@ package com.clx.performance.sdk.constant;
public
class
MessageConstants
{
public
static
final
String
QUOTATION_INFO_SYNC
=
"quotation.info.sync"
;
public
static
final
String
APP_ID
=
"app_id"
;
public
static
final
String
APP_SECRET
=
"app_secret"
;
public
static
final
String
ORDER_CHILD_INFO_SYNC_URL
=
"order_child_info_sync_url"
;
public
static
final
String
ORDER_CHILD_INFO_SYNC
=
"order.child.info.sync"
;
}
performance-web/pom.xml
浏览文件 @
fe237fda
...
...
@@ -45,6 +45,12 @@
<artifactId>
user-api
</artifactId>
</dependency>
<dependency>
<groupId>
com.clx.cy
</groupId>
<artifactId>
performance-sdk
</artifactId>
<version>
0.0.1-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.msl
</groupId>
<artifactId>
user-sdk
</artifactId>
...
...
performance-web/src/main/java/com/clx/performance/component/OrderGoodsStatusLazyComponent.java
浏览文件 @
fe237fda
...
...
@@ -104,17 +104,17 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
BigDecimal
childSum
=
list
.
stream
().
map
(
OrderGoods:
:
getExtractWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
log
.
info
(
"算出所有货单总量:{}, 订单总吨数:{}"
,
childSum
,
orderInfoFeign
.
getTransportWeight
());
if
(
childSum
.
compareTo
(
new
BigDecimal
(
orderInfoFeign
.
getTransportWeight
()))
==
0
)
{
log
.
info
(
"已完成的货单已经等于订单的拉运吨数,提前更新订单状态 已完成"
);
//已完成的货单已经等于订单的拉运吨数,提前更新订单状态 已完成
UpdateOrderInfoParam
updateOrderInfoParam
=
new
UpdateOrderInfoParam
();
updateOrderInfoParam
.
setOrderId
(
orderInfoFeign
.
getId
());
updateOrderInfoParam
.
setOrderStatus
(
OrderEnum
.
Status
.
SUCCESS
.
getCode
());
orderFeign
.
updateOrderInfo
(
updateOrderInfoParam
);
}
else
{
log
.
info
(
"判断吨数不一致:childSum{}, transportWeight {}"
,
childSum
,
new
BigDecimal
(
orderInfoFeign
.
getTransportWeight
()));
}
//
if (childSum.compareTo(new BigDecimal(orderInfoFeign.getTransportWeight())) == 0) {
//
log.info("已完成的货单已经等于订单的拉运吨数,提前更新订单状态 已完成");
//
//已完成的货单已经等于订单的拉运吨数,提前更新订单状态 已完成
//
UpdateOrderInfoParam updateOrderInfoParam = new UpdateOrderInfoParam();
//
updateOrderInfoParam.setOrderId(orderInfoFeign.getId());
//
updateOrderInfoParam.setOrderStatus(OrderEnum.Status.SUCCESS.getCode());
//
orderFeign.updateOrderInfo(updateOrderInfoParam);
//
} else {
//
log.info("判断吨数不一致:childSum{}, transportWeight {}", childSum, new BigDecimal(orderInfoFeign.getTransportWeight()));
//
//
}
}
else
{
log
.
info
(
"当前货单状态为已完结"
);
//更新货单已完结
...
...
performance-web/src/main/java/com/clx/performance/controller/pc/carrier/CarrierAccountController.java
浏览文件 @
fe237fda
...
...
@@ -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
浏览文件 @
fe237fda
package
com
.
clx
.
performance
.
controller
.
pc
.
owner
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.model.OwnerTransferInfo
;
import
com.clx.performance.param.pc.*
;
import
com.clx.performance.service.OwnerAccountService
;
import
com.clx.performance.service.OwnerCaseOutService
;
...
...
@@ -10,6 +11,9 @@ 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.feign.OwnerInfoFeign
;
import
com.clx.user.param.pc.owner.UpdateOwnerBindCardFeignParam
;
import
com.clx.user.vo.pc.owner.OwnerBindCardVO
;
import
com.msl.common.base.PageData
;
import
com.msl.common.convertor.aspect.UnitCovert
;
import
com.msl.common.result.Result
;
...
...
@@ -17,9 +21,14 @@ import io.swagger.annotations.Api;
import
io.swagger.annotations.ApiOperation
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.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.NotNull
;
import
java.util.List
;
...
...
@@ -39,6 +48,8 @@ public class OwnerAccountController {
private
final
OwnerRunningWaterRecordService
ownerRunningWaterRecordService
;
private
final
OwnerInfoFeign
ownerInfoFeign
;
@ApiOperation
(
value
=
"账户信息"
,
notes
=
"<br>By:胡宇帆"
)
@GetMapping
(
"/accountInfo"
)
@UnitCovert
(
param
=
false
)
...
...
@@ -95,4 +106,38 @@ 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
());
}
@ApiOperation
(
value
=
"对公转账信息"
,
notes
=
"<br>By:胡宇帆"
)
@GetMapping
(
"/transferPublic"
)
public
Result
<
OwnerTransferInfo
>
transferPublic
()
{
return
Result
.
ok
(
ownerAccountService
.
transferPublic
());
}
@ApiOperation
(
value
=
"获取货主信息绑卡信息"
,
notes
=
"<br>By:胡宇帆"
)
@GetMapping
(
"/getOwnerBindCard"
)
public
Result
<
OwnerBindCardVO
>
getOwnerBindCard
(
@RequestParam
(
"userNo"
)
@NotNull
(
message
=
"userNo不能为空"
)
Long
userNo
)
{
return
Result
.
ok
(
ownerAccountService
.
getOwnerBindCard
(
userNo
));
}
@ApiOperation
(
value
=
"绑定货主银行卡"
)
@PostMapping
({
"/bindOwnerBindCard"
})
Result
<
Object
>
bindOwnerBindCard
(
@RequestBody
UpdateOwnerBindCardFeignParam
param
)
{
ownerAccountService
.
bindOwnerBindCard
(
param
);
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"解绑货主银行卡"
)
@PostMapping
({
"/unBindOwnerBindCard"
})
Result
<
Object
>
unBindOwnerBindCard
(
@RequestBody
UpdateOwnerBindCardFeignParam
param
)
{
ownerAccountService
.
unBindOwnerBindCard
(
param
);
return
Result
.
ok
();
}
}
performance-web/src/main/java/com/clx/performance/dao/OwnerTransferInfoDao.java
0 → 100644
浏览文件 @
fe237fda
package
com
.
clx
.
performance
.
dao
;
import
com.clx.performance.mapper.OwnerTransferInfoMapper
;
import
com.clx.performance.model.OwnerTransferInfo
;
import
com.msl.common.dao.BaseDao
;
/**
* @author kavin
* Date 2023-10-16
* Time 20:01
*/
public
interface
OwnerTransferInfoDao
extends
BaseDao
<
OwnerTransferInfoMapper
,
OwnerTransferInfo
,
Integer
>
{
}
performance-web/src/main/java/com/clx/performance/dao/impl/OwnerTransferInfoDaoImpl.java
0 → 100644
浏览文件 @
fe237fda
package
com
.
clx
.
performance
.
dao
.
impl
;
import
com.clx.performance.dao.OwnerTransferInfoDao
;
import
com.clx.performance.mapper.OwnerTransferInfoMapper
;
import
com.clx.performance.model.OwnerTransferInfo
;
import
com.msl.common.dao.impl.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
/**
* @author kavin
* Date 2023-10-16
* Time 20:01
*/
@Repository
public
class
OwnerTransferInfoDaoImpl
extends
BaseDaoImpl
<
OwnerTransferInfoMapper
,
OwnerTransferInfo
,
Integer
>
implements
OwnerTransferInfoDao
{
}
performance-web/src/main/java/com/clx/performance/dto/
zjxl/
dts/DataTransportDTO.java
→
performance-web/src/main/java/com/clx/performance/dto/dts/DataTransportDTO.java
浏览文件 @
fe237fda
package
com
.
clx
.
performance
.
dto
.
zjxl
.
dts
;
package
com
.
clx
.
performance
.
dto
.
dts
;
import
com.clx.performance.enums.DtsOperationTypeEnum
;
import
lombok.Data
;
...
...
performance-web/src/main/java/com/clx/performance/extranal/encrypt/EncryptService.java
0 → 100644
浏览文件 @
fe237fda
package
com
.
clx
.
performance
.
extranal
.
encrypt
;
import
com.msl.common.result.Result
;
public
interface
EncryptService
{
/**
* @Author kavin
* @Description 加密请求
* @Param [appId, secret, url, param, action]
* @return
**/
Result
<?>
encryptPost
(
String
appId
,
String
secret
,
String
url
,
String
param
,
String
action
);
}
performance-web/src/main/java/com/clx/performance/extranal/encrypt/impl/EncryptServiceImpl.java
0 → 100644
浏览文件 @
fe237fda
package
com
.
clx
.
performance
.
extranal
.
encrypt
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.clx.performance.extranal.encrypt.EncryptService
;
import
com.google.gson.Gson
;
import
com.msl.common.dto.HttpDTO
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.result.Result
;
import
com.msl.common.utils.EncryptUtil
;
import
com.msl.common.utils.HttpUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
java.security.GeneralSecurityException
;
import
static
com
.
clx
.
user
.
enums
.
result
.
UserResultEnum
.
HTTP_ERROR
;
@Service
@Slf4j
public
class
EncryptServiceImpl
implements
EncryptService
{
@Override
public
Result
<?>
encryptPost
(
String
appId
,
String
secret
,
String
url
,
String
param
,
String
action
)
{
log
.
info
(
"开始请求交易平台接口,请求action:{},请求参数:{}"
,
action
,
param
);
try
{
HttpDTO
httpDTO
=
EncryptUtil
.
buildDTO
(
appId
,
param
,
secret
,
System
.
currentTimeMillis
());
httpDTO
.
setAction
(
action
);
return
HttpUtil
.
post
(
url
,
null
,
httpDTO
)
.
map
(
r
->
JSON
.
parseObject
(
r
,
new
TypeReference
<
HttpDTO
>()
{
}))
.
peek
(
dto
->
log
.
info
(
"http请求返回------dto->{}"
,
dto
))
.
map
(
HttpDTO:
:
getData
)
.
mapTry
(
d
->
EncryptUtil
.
decrypt
(
d
,
secret
))
.
mapWithObj
(
new
TypeReference
<
Result
<
Object
>>()
{
},
this
::
covertResult
)
.
orElseThrow
(
HTTP_ERROR
);
}
catch
(
GeneralSecurityException
e
)
{
log
.
error
(
"解密失败"
,
e
);
throw
new
ServiceSystemException
(
HTTP_ERROR
);
}
}
private
<
T
>
Result
<
T
>
covertResult
(
String
result
,
TypeReference
<
Result
<
T
>>
reference
)
{
return
new
Gson
().
fromJson
(
result
,
reference
.
getType
());
}
}
performance-web/src/main/java/com/clx/performance/listener/OrderChildDtsListener.java
浏览文件 @
fe237fda
...
...
@@ -2,11 +2,13 @@ package com.clx.performance.listener;
import
com.alibaba.fastjson.JSON
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.data.OrderChildData
;
import
com.clx.performance.dto.zjxl.dts.DataTransportDTO
;
import
com.clx.performance.dto.dts.DataTransportDTO
;
import
com.clx.performance.enums.DtsOperationTypeEnum
;
import
com.clx.performance.enums.OrderChildEnum
;
//import com.msl.common.utils.DtsMapConvertUtil;
import
com.clx.performance.extranal.encrypt.EncryptService
;
import
com.clx.performance.sdk.callback.message.OrderChildMessage
;
import
com.msl.common.utils.DtsMapConvertUtil
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
...
...
@@ -14,39 +16,47 @@ import org.springframework.stereotype.Component;
import
java.util.Objects
;
import
static
com
.
clx
.
performance
.
sdk
.
constant
.
MessageConstants
.*;
@Slf4j
@Component
@AllArgsConstructor
public
class
OrderChildDtsListener
{
private
final
EncryptService
encryptService
;
@RabbitListener
(
queues
=
RabbitKeyConstants
.
CLX_PERFORMANCE_ORDER_CHILD_QUEUE
)
public
void
onMessage
(
Message
message
)
{
try
{
String
msg
=
new
String
(
message
.
getBody
());
log
.
info
(
"DTS消息同步开始, database:clx_performance.order_child, msg:{}"
,
msg
);
DataTransportDTO
dataTransportDTO
=
JSON
.
parseObject
(
msg
,
DataTransportDTO
.
class
);
OrderChildMessage
before
=
DtsMapConvertUtil
.
convert
(
dataTransportDTO
.
getBeforeMap
(),
new
OrderChildMessage
());
OrderChildMessage
after
=
DtsMapConvertUtil
.
convert
(
dataTransportDTO
.
getAfterMap
(),
new
OrderChildMessage
());
if
(
Objects
.
equals
(
DtsOperationTypeEnum
.
INSERT
.
getCode
(),
dataTransportDTO
.
getOperationType
().
getCode
())){
//同步after数据
log
.
info
(
"新增:{}"
+
after
);
encryptService
.
encryptPost
(
APP_ID
,
APP_SECRET
,
ORDER_CHILD_INFO_SYNC_URL
,
JSON
.
toJSONString
(
after
),
after
.
topic
());
}
else
if
(
Objects
.
equals
(
DtsOperationTypeEnum
.
UPDATE
.
getCode
(),
dataTransportDTO
.
getOperationType
().
getCode
())){
if
(
OrderChildEnum
.
SYNC_STATUS_lIST
.
contains
(
after
.
getStatus
())
&&
!
Objects
.
equals
(
before
.
getStatus
(),
after
.
getStatus
())){
//同步after数据
log
.
info
(
"修改:{}"
+
after
);
encryptService
.
encryptPost
(
APP_ID
,
APP_SECRET
,
ORDER_CHILD_INFO_SYNC_URL
,
JSON
.
toJSONString
(
after
),
after
.
topic
());
}
}
else
if
(
Objects
.
equals
(
DtsOperationTypeEnum
.
DELETE
.
getCode
(),
dataTransportDTO
.
getOperationType
().
getCode
())){
//数据删除
log
.
info
(
"删除:{}"
+
before
);
encryptService
.
encryptPost
(
APP_ID
,
APP_SECRET
,
ORDER_CHILD_INFO_SYNC_URL
,
JSON
.
toJSONString
(
before
),
before
.
topic
());
}
//@RabbitListener(queues = RabbitKeyConstants.CLX_PERFORMANCE_ORDER_CHILD_QUEUE)
// public void onMessage(Message message) {
// try {
// String msg = new String(message.getBody());
// log.info("DTS消息同步开始, database:clx_performance.order_child, msg:{}", msg);
//
// DataTransportDTO dataTransportDTO = JSON.parseObject(msg, DataTransportDTO.class);
//
// OrderChildData before = DtsMapConvertUtil.convert(dataTransportDTO.getBeforeMap(), new OrderChildData());
// OrderChildData after = DtsMapConvertUtil.convert(dataTransportDTO.getAfterMap(), new OrderChildData());
//
// if(Objects.equals(DtsOperationTypeEnum.INSERT.getCode(),dataTransportDTO.getOperationType().getCode())){
// //同步after数据
// System.out.println("新增:"+after);
// }else if(Objects.equals(DtsOperationTypeEnum.UPDATE.getCode(),dataTransportDTO.getOperationType().getCode())){
// if(OrderChildEnum.SYNC_STATUS_lIST.contains(after.getStatus()) && !Objects.equals(before.getStatus(),after.getStatus())){
// //同步after数据
// System.out.println("修改:"+after);
// }
// }else if(Objects.equals(DtsOperationTypeEnum.UPDATE.getCode(),dataTransportDTO.getOperationType().getCode())){
// //数据删除
// System.out.println("删除:"+before);
// }
//
//
// } catch (Exception e) {
// log.info("DTS消息同步失败, database:clx_performance.order_child, error:{}", e.getMessage());
// }
// }
}
catch
(
Exception
e
)
{
log
.
info
(
"DTS消息同步失败, database:clx_performance.order_child, error:{}"
,
e
.
getMessage
());
}
}
}
performance-web/src/main/java/com/clx/performance/mapper/OwnerTransferInfoMapper.java
0 → 100644
浏览文件 @
fe237fda
package
com
.
clx
.
performance
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.clx.performance.model.OwnerTransferInfo
;
/**
* @author kavin
* Date 2023-10-16
* Time 20:01
*/
public
interface
OwnerTransferInfoMapper
extends
BaseMapper
<
OwnerTransferInfo
>
{
}
performance-web/src/main/java/com/clx/performance/model/OwnerRunningWaterRecord.java
浏览文件 @
fe237fda
...
...
@@ -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/model/OwnerTransferInfo.java
0 → 100644
浏览文件 @
fe237fda
package
com
.
clx
.
performance
.
model
;
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
com.msl.common.config.KeyColumn
;
import
com.msl.common.model.HasKey
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.experimental.Accessors
;
import
java.time.LocalDateTime
;
/**
* @author kavin
* Date 2023-10-16
* Time 20:01
*/
@Getter
@Setter
@Accessors
(
chain
=
true
)
@TableName
(
"owner_transfer_info"
)
public
class
OwnerTransferInfo
implements
HasKey
<
Integer
>
{
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
@TableField
(
"transfer_tip"
)
@ApiModelProperty
(
"转账提示信息"
)
private
String
transferTip
;
@TableField
(
"enterprise_name"
)
@ApiModelProperty
(
"企业信息"
)
private
String
enterpriseName
;
@TableField
(
"open_account_bank"
)
@ApiModelProperty
(
"开户行"
)
private
String
openAccountBank
;
@TableField
(
"open_account_bank_number"
)
@ApiModelProperty
(
"开户行银行代码"
)
private
String
openAccountBankNumber
;
@TableField
(
"account_number"
)
@ApiModelProperty
(
"账户账号"
)
private
String
accountNumber
;
@TableField
(
"create_time"
)
@ApiModelProperty
(
"创建时间"
)
private
LocalDateTime
createTime
;
@TableField
(
"modified_time"
)
@ApiModelProperty
(
"修改时间"
)
private
LocalDateTime
modifiedTime
;
@Override
@KeyColumn
(
"id"
)
public
Integer
gainKey
()
{
return
this
.
id
;
}
}
performance-web/src/main/java/com/clx/performance/service/OwnerAccountService.java
浏览文件 @
fe237fda
package
com
.
clx
.
performance
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.model.OwnerTransferInfo
;
import
com.clx.performance.param.pc.*
;
import
com.clx.performance.vo.pc.OwnerAccountRunningWaterRecordVO
;
import
com.clx.performance.vo.pc.OwnerAccountVO
;
import
com.clx.user.param.pc.owner.UpdateOwnerBindCardFeignParam
;
import
com.clx.user.vo.pc.owner.OwnerBindCardVO
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
java.util.List
;
...
...
@@ -36,4 +40,26 @@ public interface OwnerAccountService {
* @param id
*/
void
accountBalanceConfirm
(
Integer
id
);
/**
*保证金导出
* @param param
* @return
*/
SXSSFWorkbook
exportMarginAccountPageList
(
PagePlatformMarginAccountParam
param
);
/**
* 预付金导出
* @param param
* @return
*/
SXSSFWorkbook
exportPrepaidFreightAccountPageList
(
PagePlatformPrepaidFreightAccountParam
param
);
OwnerTransferInfo
transferPublic
();
OwnerBindCardVO
getOwnerBindCard
(
Long
userNo
);
void
bindOwnerBindCard
(
UpdateOwnerBindCardFeignParam
param
);
void
unBindOwnerBindCard
(
UpdateOwnerBindCardFeignParam
param
);
}
performance-web/src/main/java/com/clx/performance/service/OwnerRunningWaterRecordService.java
浏览文件 @
fe237fda
...
...
@@ -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
浏览文件 @
fe237fda
差异被折叠。
点击展开。
performance-web/src/main/java/com/clx/performance/service/impl/OwnerRunningWaterRecordServiceImpl.java
浏览文件 @
fe237fda
...
...
@@ -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
浏览文件 @
fe237fda
...
...
@@ -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
浏览文件 @
fe237fda
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
浏览文件 @
fe237fda
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
浏览文件 @
fe237fda
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
浏览文件 @
fe237fda
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
浏览文件 @
fe237fda
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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论