Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
19bf13f0
提交
19bf13f0
authored
10月 19, 2023
作者:
aiqingguo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
打印日志
上级
9969f9f1
隐藏空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
485 行增加
和
1 行删除
+485
-1
PerformanceResultEnum.java
...java/com/clx/performance/enums/PerformanceResultEnum.java
+1
-1
SettlementInvoiceExpressParam.java
...x/performance/param/pc/SettlementInvoiceExpressParam.java
+29
-0
SettlementInvoiceImageUpdateParam.java
...rformance/param/pc/SettlementInvoiceImageUpdateParam.java
+25
-0
RabbitSettlementConfig.java
...va/com/clx/performance/config/RabbitSettlementConfig.java
+65
-0
RabbitKeyOrderChildConstants.java
...lx/performance/constant/RabbitKeyOrderChildConstants.java
+42
-0
RabbitKeySettlementConstants.java
...lx/performance/constant/RabbitKeySettlementConstants.java
+42
-0
OwnerInfoService.java
...a/com/clx/performance/extranal/user/OwnerInfoService.java
+12
-0
OwnerInfoServiceImpl.java
.../performance/extranal/user/impl/OwnerInfoServiceImpl.java
+26
-0
SettlementOwner.java
...ava/com/clx/performance/model/settle/SettlementOwner.java
+1
-0
SettlementOwnerDetail.java
...m/clx/performance/model/settle/SettlementOwnerDetail.java
+4
-0
OrderChildServiceImpl.java
...m/clx/performance/service/impl/OrderChildServiceImpl.java
+19
-0
SettlementDriverDetailServiceImpl.java
...ervice/impl/settle/SettlementDriverDetailServiceImpl.java
+79
-0
SettlementDriverServiceImpl.java
...ance/service/impl/settle/SettlementDriverServiceImpl.java
+39
-0
SettlementOwnerDetailServiceImpl.java
...service/impl/settle/SettlementOwnerDetailServiceImpl.java
+90
-0
SettlementDriverDetailService.java
...ormance/service/settle/SettlementDriverDetailService.java
+4
-0
SettlementDriverService.java
...x/performance/service/settle/SettlementDriverService.java
+4
-0
SettlementOwnerDetailService.java
...formance/service/settle/SettlementOwnerDetailService.java
+3
-0
没有找到文件。
performance-api/src/main/java/com/clx/performance/enums/PerformanceResultEnum.java
浏览文件 @
19bf13f0
...
...
@@ -68,7 +68,7 @@ public enum PerformanceResultEnum implements ResultEnum {
ORDER_GOODS_ID_GENERATE_LOCK
(
1384
,
"货单编号ID获取锁出问题"
),
SETTLEMENT_ORDER_STATUS_CHANGED
(
1401
,
"结算单状态已变更,请重新刷新页面"
),
SETTLEMENT_NO_FOUND
(
1401
,
"结算单不存在"
),
;
...
...
performance-api/src/main/java/com/clx/performance/param/pc/SettlementInvoiceExpressParam.java
0 → 100644
浏览文件 @
19bf13f0
package
com
.
clx
.
performance
.
param
.
pc
;
import
com.clx.performance.param.app.PositionParam
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
@Getter
@Setter
@NoArgsConstructor
public
class
SettlementInvoiceExpressParam
extends
PositionParam
{
@ApiModelProperty
(
value
=
"结算id"
,
example
=
"1"
)
@NotNull
(
message
=
"结算id不能为空"
)
private
Integer
settlementId
;
@ApiModelProperty
(
value
=
"快递公司"
,
example
=
"顺丰"
)
@NotBlank
(
message
=
"快递公司不能为空"
)
private
String
expressCompany
;
@ApiModelProperty
(
value
=
"快递编号"
,
example
=
"1000000"
)
@NotBlank
(
message
=
"快递编号不能为空"
)
private
String
expressNo
;
}
performance-api/src/main/java/com/clx/performance/param/pc/SettlementInvoiceImageUpdateParam.java
0 → 100644
浏览文件 @
19bf13f0
package
com
.
clx
.
performance
.
param
.
pc
;
import
com.clx.performance.param.app.PositionParam
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
@Getter
@Setter
@NoArgsConstructor
public
class
SettlementInvoiceImageUpdateParam
extends
PositionParam
{
@ApiModelProperty
(
value
=
"结算id"
,
example
=
"1"
)
@NotNull
(
message
=
"结算id不能为空"
)
private
Integer
settlementId
;
@ApiModelProperty
(
value
=
"结算凭证"
,
example
=
"url"
)
@NotBlank
(
message
=
"结算凭证不能为空"
)
private
String
invoiceImg
;
}
performance-web/src/main/java/com/clx/performance/config/RabbitSettlementConfig.java
0 → 100644
浏览文件 @
19bf13f0
package
com
.
clx
.
performance
.
config
;
import
com.clx.performance.constant.RabbitKeySettlementConstants
;
import
org.springframework.amqp.core.Binding
;
import
org.springframework.amqp.core.BindingBuilder
;
import
org.springframework.amqp.core.DirectExchange
;
import
org.springframework.amqp.core.Queue
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @Author: aiqingguo
* @Description: 司机积分 MQ
* @Date: 2023-10-12 16:27:30
* @Version: 1.0
*/
@Configuration
public
class
RabbitSettlementConfig
{
@Bean
public
DirectExchange
settlementDefaultExchange
()
{
return
new
DirectExchange
(
RabbitKeySettlementConstants
.
DEFAULT_EXCHANGE
);
}
@Bean
public
Queue
settlementDefaultDelayQueue
()
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>(
8
);
params
.
put
(
"x-message-ttl"
,
15
*
60
*
1000
);
params
.
put
(
"x-max-length"
,
5000000
);
params
.
put
(
"x-dead-letter-exchange"
,
RabbitKeySettlementConstants
.
DEFAULT_EXCHANGE
);
params
.
put
(
"x-dead-letter-routing-key"
,
RabbitKeySettlementConstants
.
DEFAULT_DEAD_ROUTING_KEY
);
return
new
Queue
(
RabbitKeySettlementConstants
.
DEFAULT_DELAY_QUEUE
,
true
,
false
,
false
,
params
);
}
@Bean
public
Binding
settlementDefaultDelayQueueBinding
()
{
return
BindingBuilder
.
bind
(
settlementDefaultDelayQueue
()).
to
(
settlementDefaultExchange
()).
with
(
RabbitKeySettlementConstants
.
DEFAULT_DELAY_ROUTING_KEY
);
}
@Bean
public
Queue
settlementDefaultDeadQueue
()
{
return
new
Queue
(
RabbitKeySettlementConstants
.
DEFAULT_DEAD_QUEUE
);
}
@Bean
public
Binding
settlementDefaultDeadQueueBinding
()
{
return
BindingBuilder
.
bind
(
settlementDefaultDeadQueue
()).
to
(
settlementDefaultExchange
()).
with
(
RabbitKeySettlementConstants
.
DEFAULT_DEAD_ROUTING_KEY
);
}
/**
* 计费明细新增
*/
@Bean
public
Queue
settlementDetailAddQueue
()
{
return
new
Queue
(
RabbitKeySettlementConstants
.
SETTLEMENT_DETAIL_ADD_QUEUE
);
}
@Bean
public
Binding
settlementDetailAddQueueBinding
()
{
return
BindingBuilder
.
bind
(
settlementDetailAddQueue
()).
to
(
settlementDefaultExchange
()).
with
(
RabbitKeySettlementConstants
.
SETTLEMENT_DETAIL_ROUTING_KEY
);
}
}
performance-web/src/main/java/com/clx/performance/constant/RabbitKeyOrderChildConstants.java
0 → 100644
浏览文件 @
19bf13f0
package
com
.
clx
.
performance
.
constant
;
/**
* @Author: aiqingguo
* @Description: 结算-mq
* @Date: 2023-10-19 15:10:10
* @Version: 1.0
*/
public
class
RabbitKeyOrderChildConstants
{
private
static
final
String
PREFIX
=
"clx-performance.orderChild."
;
private
static
final
String
EXCHANGE
=
".exchange"
;
private
static
final
String
QUEUE
=
".queue"
;
private
static
final
String
QUEUE_ROUTING_KEY
=
".routing.key"
;
private
static
final
String
DELAY_QUEUE
=
".delay.queue"
;
private
static
final
String
DELAY_ROUTING_KEY
=
".delay.routing.key"
;
private
static
final
String
DEAD_QUEUE
=
".dead.queue"
;
private
static
final
String
DEAD_ROUTING_KEY
=
".dead.routing.key"
;
private
RabbitKeyOrderChildConstants
()
{
}
/**
* 缺省交换机
*/
public
static
final
String
DEFAULT_EXCHANGE
=
PREFIX
+
"default"
+
EXCHANGE
;
/**
* 缺省延迟队列
*/
public
static
final
String
DEFAULT_DELAY_QUEUE
=
PREFIX
+
"default"
+
DELAY_QUEUE
;
public
static
final
String
DEFAULT_DELAY_ROUTING_KEY
=
PREFIX
+
"default"
+
DELAY_ROUTING_KEY
;
public
static
final
String
DEFAULT_DEAD_QUEUE
=
PREFIX
+
"default"
+
DEAD_QUEUE
;
public
static
final
String
DEFAULT_DEAD_ROUTING_KEY
=
PREFIX
+
"default"
+
DEAD_ROUTING_KEY
;
/**
* 运单完成
*/
public
static
final
String
CHILD_FINISH_QUEUE
=
PREFIX
+
"child.finish"
+
QUEUE
;
public
static
final
String
CHILD_FINISH_ROUTING_KEY
=
PREFIX
+
"child.finish"
+
QUEUE_ROUTING_KEY
;
}
performance-web/src/main/java/com/clx/performance/constant/RabbitKeySettlementConstants.java
0 → 100644
浏览文件 @
19bf13f0
package
com
.
clx
.
performance
.
constant
;
/**
* @Author: aiqingguo
* @Description: 结算-mq
* @Date: 2023-10-19 15:13:06
* @Version: 1.0
*/
public
class
RabbitKeySettlementConstants
{
private
static
final
String
PREFIX
=
"clx-performance.settlement."
;
private
static
final
String
EXCHANGE
=
".exchange"
;
private
static
final
String
QUEUE
=
".queue"
;
private
static
final
String
QUEUE_ROUTING_KEY
=
".routing.key"
;
private
static
final
String
DELAY_QUEUE
=
".delay.queue"
;
private
static
final
String
DELAY_ROUTING_KEY
=
".delay.routing.key"
;
private
static
final
String
DEAD_QUEUE
=
".dead.queue"
;
private
static
final
String
DEAD_ROUTING_KEY
=
".dead.routing.key"
;
private
RabbitKeySettlementConstants
()
{
}
/**
* 缺省交换机
*/
public
static
final
String
DEFAULT_EXCHANGE
=
PREFIX
+
"default"
+
EXCHANGE
;
/**
* 缺省延迟队列
*/
public
static
final
String
DEFAULT_DELAY_QUEUE
=
PREFIX
+
"default"
+
DELAY_QUEUE
;
public
static
final
String
DEFAULT_DELAY_ROUTING_KEY
=
PREFIX
+
"default"
+
DELAY_ROUTING_KEY
;
public
static
final
String
DEFAULT_DEAD_QUEUE
=
PREFIX
+
"default"
+
DEAD_QUEUE
;
public
static
final
String
DEFAULT_DEAD_ROUTING_KEY
=
PREFIX
+
"default"
+
DEAD_ROUTING_KEY
;
/**
* 新增计费单
*/
public
static
final
String
SETTLEMENT_DETAIL_ADD_QUEUE
=
PREFIX
+
"settlementDetail.add"
+
QUEUE
;
public
static
final
String
SETTLEMENT_DETAIL_ROUTING_KEY
=
PREFIX
+
"settlementDetail.add"
+
QUEUE_ROUTING_KEY
;
}
performance-web/src/main/java/com/clx/performance/extranal/user/OwnerInfoService.java
0 → 100644
浏览文件 @
19bf13f0
package
com
.
clx
.
performance
.
extranal
.
user
;
import
com.clx.user.vo.feign.OwnerInfoFeignVO
;
import
org.springframework.web.bind.annotation.RequestParam
;
public
interface
OwnerInfoService
{
OwnerInfoFeignVO
getOwnerInfo
(
@RequestParam
(
"userNo"
)
Long
userNo
);
}
performance-web/src/main/java/com/clx/performance/extranal/user/impl/OwnerInfoServiceImpl.java
0 → 100644
浏览文件 @
19bf13f0
package
com
.
clx
.
performance
.
extranal
.
user
.
impl
;
import
com.clx.performance.extranal.user.OwnerInfoService
;
import
com.clx.user.feign.OwnerInfoFeign
;
import
com.clx.user.vo.feign.OwnerInfoFeignVO
;
import
com.msl.common.base.Optional
;
import
com.msl.common.enums.ResultCodeEnum
;
import
com.msl.common.result.Result
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
@Slf4j
@Service
@AllArgsConstructor
public
class
OwnerInfoServiceImpl
implements
OwnerInfoService
{
private
final
OwnerInfoFeign
ownerInfoFeign
;
@Override
public
OwnerInfoFeignVO
getOwnerInfo
(
Long
userNo
)
{
return
Optional
.
ofNullable
(
ownerInfoFeign
.
getOwnerInfo
(
userNo
))
.
filter
(
Result:
:
succeed
).
map
(
item
->
item
.
getData
()).
orElseThrow
(
ResultCodeEnum
.
FAIL
);
}
}
performance-web/src/main/java/com/clx/performance/model/settle/SettlementOwner.java
浏览文件 @
19bf13f0
...
...
@@ -47,6 +47,7 @@ public class SettlementOwner implements HasKey<Integer> {
private
String
paymentImg
;
//付款凭证
private
String
paymentBankName
;
//付款银行
private
String
paymentBankCardNo
;
//付款银行卡卡号
private
BigDecimal
paymentAmount
;
//付款金额
private
String
companyName
;
//公司名称
private
String
companyTaxCode
;
//企业税号
private
String
companyAddress
;
//公司地址
...
...
performance-web/src/main/java/com/clx/performance/model/settle/SettlementOwnerDetail.java
浏览文件 @
19bf13f0
...
...
@@ -34,6 +34,10 @@ public class SettlementOwnerDetail implements HasKey<Integer> {
private
String
childNo
;
//运单编号
private
String
orderGoodsNo
;
//货单编号
private
String
orderNo
;
//订单编号
private
Integer
sendAddressId
;
//发货地址id
private
String
sendAddress
;
//发货地址
private
Integer
receiveAddressId
;
//收货地址id
private
String
receiveAddress
;
//收货地址
private
Integer
goodsId
;
//货物id
private
String
goodsName
;
//货物名称
private
BigDecimal
freightPrice
;
//平台运费单价(分)
...
...
performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
浏览文件 @
19bf13f0
...
...
@@ -20,6 +20,8 @@ import com.clx.performance.service.OrderChildLogService;
import
com.clx.performance.service.OrderChildPoundLogService
;
import
com.clx.performance.service.OrderChildService
;
import
com.clx.performance.service.OrderGoodsService
;
import
com.clx.performance.service.settle.SettlementDriverDetailService
;
import
com.clx.performance.service.settle.SettlementOwnerDetailService
;
import
com.clx.performance.struct.*
;
import
com.clx.performance.utils.spring.ApplicationContextUtils
;
import
com.clx.performance.vo.app.*
;
...
...
@@ -91,6 +93,9 @@ public class OrderChildServiceImpl implements OrderChildService {
private
final
OrderFeign
orderFeign
;
private
final
RedissonClient
redissonClient
;
private
final
SettlementDriverDetailService
settlementDriverDetailService
;
private
final
SettlementOwnerDetailService
settlementOwnerDetailService
;
@Override
public
SaveOrderChildVO
saveOrderChild
(
OrderChildSaveParam
param
)
{
...
...
@@ -810,6 +815,9 @@ public class OrderChildServiceImpl implements OrderChildService {
// 更新车辆状态
updateDriverOrderStatusDriverConfirm
(
orderChild
.
getTruckId
());
// 生成计费单
saveSettlementDetail
(
orderChild
);
// 日志
orderChildLogService
.
saveDriverOrderChildLog
(
childNo
,
OrderChildLogEnum
.
Type
.
DRIVER_CONFIRM
.
getCode
(),
OrderChildLogEnum
.
Type
.
DRIVER_CONFIRM
.
getMsg
(),
loginUserInfo
.
getUserNo
(),
loginUserInfo
.
getUserName
());
...
...
@@ -926,6 +934,17 @@ public class OrderChildServiceImpl implements OrderChildService {
loginUserInfo
.
getUserNo
(),
loginUserInfo
.
getUserName
());
}
/**
* 生成计费单
*/
private
void
saveSettlementDetail
(
OrderChild
orderChild
){
settlementDriverDetailService
.
saveSettlementDetail
(
orderChild
);
settlementOwnerDetailService
.
saveSettlementDetail
(
orderChild
);
}
@Override
public
OrderChildVO
getOrderChildInfo
(
String
childNo
)
{
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementDriverDetailServiceImpl.java
浏览文件 @
19bf13f0
...
...
@@ -3,6 +3,7 @@ package com.clx.performance.service.impl.settle;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.dao.settle.SettlementDriverDetailDao
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.settle.SettlementDriverDetail
;
import
com.clx.performance.param.pc.driver.PageCarrierSettlementDriverDetailParam
;
import
com.clx.performance.service.settle.SettlementDriverDetailService
;
...
...
@@ -12,6 +13,8 @@ import lombok.AllArgsConstructor;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.List
;
/**
...
...
@@ -27,6 +30,82 @@ public class SettlementDriverDetailServiceImpl implements SettlementDriverDetai
private
final
SettlementDriverDetailDao
settlementDriverDetailDao
;
private
final
SettlementDriverDetailStruct
settlementOwnerDetailStruct
;
@Override
public
void
saveSettlementDetail
(
OrderChild
orderChild
)
{
SettlementDriverDetail
settlementDriverDetail
=
new
SettlementDriverDetail
();
settlementDriverDetail
.
setChildNo
(
orderChild
.
getChildNo
());
settlementDriverDetail
.
setOrderGoodsNo
(
orderChild
.
getOrderGoodsNo
());
settlementDriverDetail
.
setOrderNo
(
orderChild
.
getOrderNo
());
settlementDriverDetail
.
setDriverUserNo
(
orderChild
.
getTruckOwnUserNo
());
settlementDriverDetail
.
setDriverName
(
orderChild
.
getOwnerName
());
settlementDriverDetail
.
setTruckNo
(
orderChild
.
getTruckNo
());
settlementDriverDetail
.
setGoodsId
(
orderChild
.
getGoodsId
());
settlementDriverDetail
.
setGoodsName
(
orderChild
.
getGoodsName
());
// 运费
settlementDriverDetail
.
setFreightPrice
(
orderChild
.
getFreightPrice
());
//平台运费
settlementDriverDetail
.
setWeight
(
weightCalc
(
orderChild
.
getLoadNet
(),
orderChild
.
getUnloadNet
()));
settlementDriverDetail
.
setFreight
(
freightCalc
(
settlementDriverDetail
.
getFreightPrice
(),
settlementDriverDetail
.
getWeight
()));
// 亏吨
settlementDriverDetail
.
setLossPrice
(
orderChild
.
getLossPrice
());
settlementDriverDetail
.
setLossWeight
(
lossWeightCalc
(
orderChild
.
getLoadNet
(),
orderChild
.
getUnloadNet
()));
settlementDriverDetail
.
setLossFreight
(
lossFreightCalc
(
settlementDriverDetail
.
getLossPrice
(),
settlementDriverDetail
.
getLossWeight
()));
// 预付运费
settlementDriverDetail
.
setPrepayFreight
(
BigDecimal
.
ZERO
);
// 结算金额
settlementDriverDetail
.
setSettlementFreight
(
settlementFreightCalc
(
settlementDriverDetail
.
getFreight
(),
settlementDriverDetail
.
getLossFreight
()));
settlementDriverDetailDao
.
saveEntity
(
settlementDriverDetail
);
}
private
BigDecimal
weightCalc
(
BigDecimal
loadNet
,
BigDecimal
unLoadNet
){
return
unLoadNet
.
compareTo
(
loadNet
)
<
0
?
unLoadNet
:
loadNet
;
}
/**
* 运费计算
*/
public
BigDecimal
freightCalc
(
BigDecimal
freightPrice
,
BigDecimal
weight
){
return
freightPrice
.
multiply
(
weight
).
setScale
(
0
,
RoundingMode
.
HALF_UP
);
}
/**
* 亏吨计算
*/
private
BigDecimal
lossWeightCalc
(
BigDecimal
loadNet
,
BigDecimal
unLoadNet
){
return
unLoadNet
.
compareTo
(
loadNet
)
<
0
?
unLoadNet
.
subtract
(
loadNet
)
:
BigDecimal
.
ZERO
;
}
/**
* 亏吨运费
*/
private
BigDecimal
lossFreightCalc
(
BigDecimal
freightPrice
,
BigDecimal
weight
){
return
freightPrice
.
multiply
(
weight
).
setScale
(
0
,
RoundingMode
.
HALF_UP
);
}
/**
* 开票金额
*/
private
BigDecimal
invoiceFreightCalc
(
BigDecimal
freight
,
BigDecimal
lossFreight
){
return
freight
.
subtract
(
lossFreight
);
}
/**
* 结算金额
*/
private
BigDecimal
settlementFreightCalc
(
BigDecimal
freight
,
BigDecimal
lossFreight
){
return
freight
.
subtract
(
lossFreight
);
}
@Override
public
IPage
<
CarrierPageSettlementDriverDetailVO
>
pageSettlementDriverDetail
(
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementDriverServiceImpl.java
浏览文件 @
19bf13f0
...
...
@@ -3,7 +3,9 @@ package com.clx.performance.service.impl.settle;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.dao.settle.SettlementDriverDao
;
import
com.clx.performance.dao.settle.SettlementDriverDetailDao
;
import
com.clx.performance.model.settle.SettlementDriver
;
import
com.clx.performance.model.settle.SettlementDriverDetail
;
import
com.clx.performance.param.pc.driver.PageCarrierSettlementDriverParam
;
import
com.clx.performance.service.settle.SettlementDriverService
;
import
com.clx.performance.struct.settle.SettlementDriverStruct
;
...
...
@@ -11,6 +13,7 @@ import com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementDriverVO;
import
lombok.AllArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
...
...
@@ -27,6 +30,42 @@ public class SettlementDriverServiceImpl implements SettlementDriverService {
SettlementDriverStruct
settlementDriverStruct
;
private
final
SettlementDriverDetailDao
settlementDriverDetailDao
;
@Override
public
void
saveSettlement
(
SettlementDriverDetail
settlementDetail
)
{
SettlementDriver
settlementDriver
=
new
SettlementDriver
();
settlementDriver
.
setSettlementNo
(
""
);
settlementDriver
.
setDriverUserNo
(
settlementDetail
.
getDriverUserNo
());
settlementDriver
.
setDriverName
(
settlementDetail
.
getDriverName
());
settlementDriver
.
setTruckNo
(
settlementDetail
.
getTruckNo
());
settlementDriver
.
setChildNo
(
settlementDetail
.
getChildNo
());
settlementDriver
.
setOrderGoodsNo
(
settlementDetail
.
getOrderGoodsNo
());
settlementDriver
.
setOrderNo
(
settlementDetail
.
getOrderNo
());
settlementDriver
.
setGoodsId
(
settlementDetail
.
getGoodsId
());
settlementDriver
.
setGoodsName
(
settlementDetail
.
getGoodsName
());
settlementDriver
.
setFreightPrice
(
settlementDetail
.
getFreightPrice
());
settlementDriver
.
setWeight
(
settlementDetail
.
getWeight
());
settlementDriver
.
setFreight
(
settlementDetail
.
getFreight
());
settlementDriver
.
setLossPrice
(
settlementDetail
.
getLossPrice
());
settlementDriver
.
setLossWeight
(
settlementDetail
.
getLossWeight
());
settlementDriver
.
setLossFreight
(
settlementDetail
.
getLossFreight
());
settlementDriver
.
setSettlementFreight
(
BigDecimal
.
ZERO
);
settlementDriver
.
setSettlementPlatform
(
""
);
settlementDriver
.
setInvoiceType
(
settlementDetail
.
getInvoiceType
());
settlementDriverDao
.
saveEntity
(
settlementDriver
);
}
@Override
public
IPage
<
CarrierPageSettlementDriverVO
>
pageCarrierSettlementDriver
(
PageCarrierSettlementDriverParam
param
)
{
IPage
<
SettlementDriver
>
page
=
settlementDriverDao
.
pageCarrierSettlementDriver
(
param
);
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementOwnerDetailServiceImpl.java
浏览文件 @
19bf13f0
...
...
@@ -3,6 +3,7 @@ package com.clx.performance.service.impl.settle;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.dao.settle.SettlementOwnerDetailDao
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.settle.SettlementOwnerDetail
;
import
com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerDetailParam
;
import
com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam
;
...
...
@@ -19,6 +20,8 @@ import lombok.extern.slf4j.Slf4j;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -35,6 +38,93 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
private
final
SettlementOwnerDetailDao
settlementOwnerDetailDao
;
private
final
SettlementOwnerDetailStruct
settlementOwnerDetailStruct
;
@Override
public
void
saveSettlementDetail
(
OrderChild
orderChild
)
{
SettlementOwnerDetail
settlementOwnerDetail
=
new
SettlementOwnerDetail
();
settlementOwnerDetail
.
setChildNo
(
orderChild
.
getChildNo
());
settlementOwnerDetail
.
setOrderGoodsNo
(
orderChild
.
getOrderGoodsNo
());
settlementOwnerDetail
.
setOrderNo
(
orderChild
.
getOrderNo
());
settlementOwnerDetail
.
setOwnerUserNo
(
orderChild
.
getOwnerUserNo
());
settlementOwnerDetail
.
setOwnerName
(
orderChild
.
getOwnerName
());
settlementOwnerDetail
.
setSendAddressId
(
orderChild
.
getSendAddressId
());
settlementOwnerDetail
.
setSendAddress
(
orderChild
.
getSendAddress
());
settlementOwnerDetail
.
setReceiveAddressId
(
orderChild
.
getReceiveAddressId
());
settlementOwnerDetail
.
setReceiveAddress
(
orderChild
.
getReceiveAddress
());
settlementOwnerDetail
.
setGoodsId
(
orderChild
.
getGoodsId
());
settlementOwnerDetail
.
setGoodsName
(
orderChild
.
getGoodsName
());
// 运费
settlementOwnerDetail
.
setFreightPrice
(
BigDecimal
.
ZERO
);
//平台运费
settlementOwnerDetail
.
setWeight
(
weightCalc
(
orderChild
.
getLoadNet
(),
orderChild
.
getUnloadNet
()));
settlementOwnerDetail
.
setFreight
(
freightCalc
(
settlementOwnerDetail
.
getFreightPrice
(),
settlementOwnerDetail
.
getWeight
()));
// 亏吨
settlementOwnerDetail
.
setLossPrice
(
orderChild
.
getLossPrice
());
settlementOwnerDetail
.
setLossWeight
(
lossWeightCalc
(
orderChild
.
getLoadNet
(),
orderChild
.
getUnloadNet
()));
settlementOwnerDetail
.
setLossFreight
(
lossFreightCalc
(
settlementOwnerDetail
.
getLossPrice
(),
settlementOwnerDetail
.
getLossWeight
()));
// 预付运费
settlementOwnerDetail
.
setPrepayFreight
(
BigDecimal
.
ZERO
);
// 开票金额
settlementOwnerDetail
.
setInvoiceFreight
(
invoiceFreightCalc
(
settlementOwnerDetail
.
getFreight
(),
settlementOwnerDetail
.
getLossFreight
()));
// 结算金额
settlementOwnerDetail
.
setSettlementFreight
(
settlementFreightCalc
(
settlementOwnerDetail
.
getFreight
(),
settlementOwnerDetail
.
getLossFreight
()));
settlementOwnerDetailDao
.
saveEntity
(
settlementOwnerDetail
);
}
/**
* 吨数计算
*/
private
BigDecimal
weightCalc
(
BigDecimal
loadNet
,
BigDecimal
unLoadNet
){
return
unLoadNet
.
compareTo
(
loadNet
)
<
0
?
unLoadNet
:
loadNet
;
}
/**
* 运费计算
*/
public
BigDecimal
freightCalc
(
BigDecimal
freightPrice
,
BigDecimal
weight
){
return
freightPrice
.
multiply
(
weight
).
setScale
(
0
,
RoundingMode
.
HALF_UP
);
}
/**
* 亏吨计算
*/
private
BigDecimal
lossWeightCalc
(
BigDecimal
loadNet
,
BigDecimal
unLoadNet
){
return
unLoadNet
.
compareTo
(
loadNet
)
<
0
?
unLoadNet
.
subtract
(
loadNet
)
:
BigDecimal
.
ZERO
;
}
/**
* 亏吨运费
*/
private
BigDecimal
lossFreightCalc
(
BigDecimal
freightPrice
,
BigDecimal
weight
){
return
freightPrice
.
multiply
(
weight
).
setScale
(
0
,
RoundingMode
.
HALF_UP
);
}
/**
* 开票金额
*/
private
BigDecimal
invoiceFreightCalc
(
BigDecimal
freight
,
BigDecimal
lossFreight
){
return
freight
.
subtract
(
lossFreight
);
}
/**
* 结算金额
*/
private
BigDecimal
settlementFreightCalc
(
BigDecimal
freight
,
BigDecimal
lossFreight
){
return
freight
.
subtract
(
lossFreight
);
}
@Override
public
IPage
<
CarrierPageSettlementOwnerDetailVO
>
pageSettlementOwnerDetail
(
PageCarrierSettlementOwnerDetailParam
param
)
{
...
...
performance-web/src/main/java/com/clx/performance/service/settle/SettlementDriverDetailService.java
浏览文件 @
19bf13f0
package
com
.
clx
.
performance
.
service
.
settle
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.param.pc.driver.PageCarrierSettlementDriverDetailParam
;
import
com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementDriverDetailVO
;
...
...
@@ -10,5 +11,8 @@ import com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementDriverDetai
* Time 09:43
*/
public
interface
SettlementDriverDetailService
{
void
saveSettlementDetail
(
OrderChild
orderChild
);
IPage
<
CarrierPageSettlementDriverDetailVO
>
pageSettlementDriverDetail
(
PageCarrierSettlementDriverDetailParam
param
);
}
performance-web/src/main/java/com/clx/performance/service/settle/SettlementDriverService.java
浏览文件 @
19bf13f0
package
com
.
clx
.
performance
.
service
.
settle
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.model.settle.SettlementDriverDetail
;
import
com.clx.performance.param.pc.driver.PageCarrierSettlementDriverParam
;
import
com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementDriverVO
;
...
...
@@ -10,5 +11,8 @@ import com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementDriverVO;
* Time 09:43
*/
public
interface
SettlementDriverService
{
void
saveSettlement
(
SettlementDriverDetail
settlementDetail
);
IPage
<
CarrierPageSettlementDriverVO
>
pageCarrierSettlementDriver
(
PageCarrierSettlementDriverParam
param
);
}
performance-web/src/main/java/com/clx/performance/service/settle/SettlementOwnerDetailService.java
浏览文件 @
19bf13f0
...
...
@@ -2,6 +2,7 @@ package com.clx.performance.service.settle;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerDetailParam
;
import
com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam
;
import
com.clx.performance.param.pc.owner.PageOwnerSettlementParam
;
...
...
@@ -17,6 +18,8 @@ import org.apache.poi.xssf.streaming.SXSSFWorkbook;
*/
public
interface
SettlementOwnerDetailService
{
void
saveSettlementDetail
(
OrderChild
orderChild
);
IPage
<
PageOwnerSettlementOwnerDetailVO
>
pageOwnerSettlementOrderDetailList
(
PageOwnerSettlementOwnerDetailParam
param
);
IPage
<
CarrierPageSettlementOwnerDetailVO
>
pageSettlementOwnerDetail
(
PageCarrierSettlementOwnerDetailParam
param
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论