Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
c36ea033
提交
c36ea033
authored
7月 19, 2024
作者:
刘海泉
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加司机运费柱形图接口
上级
63b7da8b
显示空白字符变更
内嵌
并排
正在显示
21 个修改的文件
包含
538 行增加
和
45 行删除
+538
-45
OrderEnum.java
...pi/src/main/java/com/clx/performance/enums/OrderEnum.java
+8
-0
PerformanceProgressVO.java
...java/com/clx/performance/vo/pc/PerformanceProgressVO.java
+9
-5
RabbitBeanConfig.java
...ain/java/com/clx/performance/config/RabbitBeanConfig.java
+79
-0
RabbitKeyConstants.java
...java/com/clx/performance/constant/RabbitKeyConstants.java
+34
-1
CarrierOrderChildController.java
...erformance/controller/pc/CarrierOrderChildController.java
+9
-2
GoodsOrderController.java
...m/clx/performance/controller/pc/GoodsOrderController.java
+38
-11
OrderChildDao.java
.../src/main/java/com/clx/performance/dao/OrderChildDao.java
+4
-0
OrderGoodsDao.java
.../src/main/java/com/clx/performance/dao/OrderGoodsDao.java
+2
-0
OrderChildDaoImpl.java
.../java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
+16
-0
OrderGoodsDaoImpl.java
.../java/com/clx/performance/dao/impl/OrderGoodsDaoImpl.java
+9
-0
OrderService.java
.../java/com/clx/performance/extranal/user/OrderService.java
+6
-0
OrderServiceImpl.java
.../clx/performance/extranal/user/impl/OrderServiceImpl.java
+9
-0
OrderChildDtsListener.java
...a/com/clx/performance/listener/OrderChildDtsListener.java
+40
-5
OrderGoodsDtsListener.java
...a/com/clx/performance/listener/OrderGoodsDtsListener.java
+60
-12
OrderChildService.java
...n/java/com/clx/performance/service/OrderChildService.java
+2
-0
OrderGoodsService.java
...n/java/com/clx/performance/service/OrderGoodsService.java
+6
-0
PerformanceProgressService.java
...m/clx/performance/service/PerformanceProgressService.java
+8
-0
OrderChildServiceImpl.java
...m/clx/performance/service/impl/OrderChildServiceImpl.java
+46
-4
OrderGoodsServiceImpl.java
...m/clx/performance/service/impl/OrderGoodsServiceImpl.java
+17
-1
PerformanceProgressServiceImpl.java
...formance/service/impl/PerformanceProgressServiceImpl.java
+129
-4
OrderGoodsStruct.java
...ain/java/com/clx/performance/struct/OrderGoodsStruct.java
+7
-0
没有找到文件。
performance-api/src/main/java/com/clx/performance/enums/OrderEnum.java
浏览文件 @
c36ea033
...
@@ -96,6 +96,14 @@ public enum OrderEnum {
...
@@ -96,6 +96,14 @@ public enum OrderEnum {
}
}
return
null
;
return
null
;
}
}
public
static
String
getNameByCode
(
Integer
code
)
{
for
(
OverWeight
type:
OverWeight
.
values
()){
if
(
Objects
.
equals
(
type
.
code
,
code
)){
return
type
.
getName
();
}
}
return
null
;
}
}
}
...
...
performance-api/src/main/java/com/clx/performance/vo/pc/PerformanceProgressVO.java
浏览文件 @
c36ea033
package
com
.
clx
.
performance
.
vo
.
pc
;
package
com
.
clx
.
performance
.
vo
.
pc
;
import
com.clx.performance.enums.OrderEnum
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.Setter
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
/**
/**
* @author kavin
* @author kavin
...
@@ -73,6 +73,12 @@ public class PerformanceProgressVO{
...
@@ -73,6 +73,12 @@ public class PerformanceProgressVO{
@ApiModelProperty
(
"是否C类煤源 0 否 1 是"
)
@ApiModelProperty
(
"是否C类煤源 0 否 1 是"
)
private
Integer
sendOverStandard
;
private
Integer
sendOverStandard
;
@ApiModelProperty
(
"是否C类煤源 0 否 1 是"
)
private
String
sendOverStandardMsg
;
public
String
getSendOverStandardMsg
(){
return
OrderEnum
.
OverWeight
.
getNameByCode
(
sendOverStandard
);
}
@ApiModelProperty
(
"司机运费"
)
@ApiModelProperty
(
"司机运费"
)
private
BigDecimal
driverFreightPrice
;
private
BigDecimal
driverFreightPrice
;
...
@@ -82,8 +88,6 @@ public class PerformanceProgressVO{
...
@@ -82,8 +88,6 @@ public class PerformanceProgressVO{
private
BigDecimal
taskWeight
;
private
BigDecimal
taskWeight
;
@ApiModelProperty
(
"任务吨数"
)
private
BigDecimal
transportWeight
;
@ApiModelProperty
(
"挂单吨数"
)
@ApiModelProperty
(
"挂单吨数"
)
...
@@ -155,14 +159,14 @@ public class PerformanceProgressVO{
...
@@ -155,14 +159,14 @@ public class PerformanceProgressVO{
@ApiModelProperty
(
"挂单时间"
)
@ApiModelProperty
(
"挂单时间"
)
private
LocalDateTime
pendingTime
;
private
String
pendingTime
;
@ApiModelProperty
(
"交易要求到站时间"
)
@ApiModelProperty
(
"交易要求到站时间"
)
private
String
tradeRequireArriveStationTime
;
private
String
tradeRequireArriveStationTime
;
@ApiModelProperty
(
"
交易
要求到站时间"
)
@ApiModelProperty
(
"
物流
要求到站时间"
)
private
String
transportExpectArriveStationTime
;
private
String
transportExpectArriveStationTime
;
...
...
performance-web/src/main/java/com/clx/performance/config/RabbitBeanConfig.java
浏览文件 @
c36ea033
...
@@ -222,4 +222,83 @@ public class RabbitBeanConfig {
...
@@ -222,4 +222,83 @@ public class RabbitBeanConfig {
return
BindingBuilder
.
bind
(
ownerLoanThawQueue
()).
to
(
ownerLoanExchange
()).
with
(
RabbitKeyConstants
.
OWNER_LOAN_THAW_ROUTE_KEY
);
return
BindingBuilder
.
bind
(
ownerLoanThawQueue
()).
to
(
ownerLoanExchange
()).
with
(
RabbitKeyConstants
.
OWNER_LOAN_THAW_ROUTE_KEY
);
}
}
/**
* 监听货单同步履约进度表
*/
@Bean
public
Queue
syncPerformanceProgress4OrderGoodsQueue
()
{
return
new
Queue
(
RabbitKeyConstants
.
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_INFO_QUEUE
,
true
,
false
,
false
);
}
/**
* 监听货单同步履约进度表
**/
@Bean
public
DirectExchange
syncPerformanceProgress4OrderGoodsExchange
()
{
return
new
DirectExchange
(
RabbitKeyConstants
.
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_GOODS_EXCHANGE
);
}
/**
* 监听货单同步履约进度表
*/
@Bean
public
Binding
syncPerformanceProgress4OrderGoodsBind
()
{
return
BindingBuilder
.
bind
(
syncPerformanceProgress4OrderGoodsQueue
()).
to
(
syncPerformanceProgress4OrderGoodsExchange
())
.
with
(
RabbitKeyConstants
.
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_GOODS_ROUTING_KEY
);
}
/**
* 监听运单同步履约进度表
*/
@Bean
public
Queue
syncPerformanceProgress4OrderChildQueue
()
{
return
new
Queue
(
RabbitKeyConstants
.
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_CHILD_QUEUE
,
true
,
false
,
false
);
}
/**
* 监听运单同步履约进度表
**/
@Bean
public
DirectExchange
syncPerformanceProgress4OrderChildExchange
()
{
return
new
DirectExchange
(
RabbitKeyConstants
.
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_CHILD_EXCHANGE
);
}
/**
* 监听运单同步履约进度表
*/
@Bean
public
Binding
syncPerformanceProgress4OrderChildBind
()
{
return
BindingBuilder
.
bind
(
syncPerformanceProgress4OrderChildQueue
()).
to
(
syncPerformanceProgress4OrderChildExchange
())
.
with
(
RabbitKeyConstants
.
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_CHILD_ROUTING_KEY
);
}
/**
* 保存货单调价表
*/
@Bean
public
Queue
saveOrderGoodsAdjustmentPriceQueue
()
{
return
new
Queue
(
RabbitKeyConstants
.
SAVE_ORDER_GOODS_ADJUSTMENT_PRICE_QUEUE
,
true
,
false
,
false
);
}
/**
* 保存货单调价表
**/
@Bean
public
DirectExchange
saveOrderGoodsAdjustmentPriceExchange
()
{
return
new
DirectExchange
(
RabbitKeyConstants
.
SAVE_ORDER_GOODS_ADJUSTMENT_PRICE_EXCHANGE
);
}
/**
*保存货单调价表
*/
@Bean
public
Binding
saveOrderGoodsAdjustmentPriceBind
()
{
return
BindingBuilder
.
bind
(
saveOrderGoodsAdjustmentPriceQueue
()).
to
(
saveOrderGoodsAdjustmentPriceExchange
())
.
with
(
RabbitKeyConstants
.
SAVE_ORDER_GOODS_ADJUSTMENT_PRICE_ROUTING_KEY
);
}
}
}
performance-web/src/main/java/com/clx/performance/constant/RabbitKeyConstants.java
浏览文件 @
c36ea033
...
@@ -113,7 +113,40 @@ public class RabbitKeyConstants {
...
@@ -113,7 +113,40 @@ public class RabbitKeyConstants {
//同步履约进度表消息----订单部分
//同步履约进度表消息----订单部分
public
static
final
String
SYNC_PERFORMANCE_PROGRESS_
QUEUE
=
"clx_order.sync.performance.progress
.queue"
;
public
static
final
String
SYNC_PERFORMANCE_PROGRESS_
FOR_ORDER_INFO_QUEUE
=
"clx_order.sync.performance.progress.for.order.info
.queue"
;
//货单同步履约进度表queue
public
static
final
String
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_GOODS_QUEUE
=
"clx_order.sync.performance.progress.for.order.goods.queue"
;
//货单同步履约进度表exchange
public
static
final
String
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_GOODS_EXCHANGE
=
"clx_order.sync.performance.progress.for.order.goods.exchange"
;
//货单同步履约进度表routing_key
public
static
final
String
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_GOODS_ROUTING_KEY
=
"clx_order.sync.performance.progress.for.order.goods.routing.key"
;
//运单同步履约进度表queue
public
static
final
String
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_CHILD_QUEUE
=
"clx_order.sync.performance.progress.for.order.child.queue"
;
//运单同步履约进度表exchange
public
static
final
String
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_CHILD_EXCHANGE
=
"clx_order.sync.performance.progress.for.order.child.exchange"
;
//运单同步履约进度表routing_key
public
static
final
String
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_CHILD_ROUTING_KEY
=
"clx_order.sync.performance.progress.for.order.child.routing.key"
;
//保存货单调价记录queue
public
static
final
String
SAVE_ORDER_GOODS_ADJUSTMENT_PRICE_QUEUE
=
"clx_order.sync.performance.progress.for.order.child.queue"
;
//保存货单调价记录exchange
public
static
final
String
SAVE_ORDER_GOODS_ADJUSTMENT_PRICE_EXCHANGE
=
"clx_order.sync.performance.progress.for.order.child.exchange"
;
//保存货单调价记录routing_key
public
static
final
String
SAVE_ORDER_GOODS_ADJUSTMENT_PRICE_ROUTING_KEY
=
"clx_order.sync.performance.progress.for.order.child.routing.key"
;
}
}
performance-web/src/main/java/com/clx/performance/controller/pc/CarrierOrderChildController.java
浏览文件 @
c36ea033
...
@@ -2,10 +2,9 @@ package com.clx.performance.controller.pc;
...
@@ -2,10 +2,9 @@ package com.clx.performance.controller.pc;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.enums.OrderChildEnum
;
import
com.clx.performance.enums.OrderChildEnum
;
import
com.clx.performance.param.pc.PageMonitorOrderChildQCParam
;
import
com.clx.performance.param.pc.OrderChildCarrierCancelParam
;
import
com.clx.performance.param.pc.OrderChildCarrierCancelParam
;
import
com.clx.performance.param.pc.PageCarrierOrderChildParam
;
import
com.clx.performance.param.pc.PageCarrierOrderChildParam
;
import
com.clx.performance.
service.OrderChildPoundAuditService
;
import
com.clx.performance.
param.pc.PageMonitorOrderChildQCParam
;
import
com.clx.performance.service.OrderChildService
;
import
com.clx.performance.service.OrderChildService
;
import
com.clx.performance.vo.pc.*
;
import
com.clx.performance.vo.pc.*
;
import
com.msl.common.base.PageData
;
import
com.msl.common.base.PageData
;
...
@@ -104,4 +103,12 @@ public class CarrierOrderChildController {
...
@@ -104,4 +103,12 @@ public class CarrierOrderChildController {
}
}
@ApiOperation
(
value
=
"履约进度表-历史线路拉运量"
,
notes
=
"<br>By:l刘海泉"
)
@GetMapping
(
"/getHistoryLineTransportVolume"
)
public
Result
<
List
<
HistoryLineTranVolumeChartVO
>>
getHistoryLineTransportVolume
(
@NotBlank
(
message
=
"订单编号不能为空"
)
String
orderNo
)
{
return
Result
.
ok
(
orderChildService
.
getHistoryLineTransportVolume
(
orderNo
));
}
}
}
performance-web/src/main/java/com/clx/performance/controller/pc/GoodsOrderController.java
浏览文件 @
c36ea033
...
@@ -2,31 +2,23 @@ package com.clx.performance.controller.pc;
...
@@ -2,31 +2,23 @@ package com.clx.performance.controller.pc;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.param.pc.OrderGoodsCancelParam
;
import
com.clx.performance.param.pc.UpdateEditOrderGoodsParam
;
import
com.clx.performance.param.pc.OrderGoodsParams
;
import
com.clx.performance.param.pc.PageOrderGoodsListParam
;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.performance.component.GoodsOrderStrategyContext
;
import
com.clx.performance.component.GoodsOrderStrategyContext
;
import
com.clx.performance.constant.RedisConstants
;
import
com.clx.performance.constant.RedisConstants
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.param.pc.
UpdateOrderGoodsPriceParam
;
import
com.clx.performance.param.pc.
*
;
import
com.clx.performance.service.OrderChildService
;
import
com.clx.performance.service.OrderChildService
;
import
com.clx.performance.service.OrderGoodsAdjustmentPriceService
;
import
com.clx.performance.service.OrderGoodsService
;
import
com.clx.performance.service.OrderGoodsService
;
import
com.clx.performance.service.OrderGoodsTruckBindService
;
import
com.clx.performance.service.OrderGoodsTruckBindService
;
import
com.clx.performance.vo.pc.OrderChildPCVO
;
import
com.clx.performance.vo.pc.*
;
import
com.clx.performance.vo.pc.OrderGoodsEditVO
;
import
com.clx.performance.vo.pc.OrderGoodsVO
;
import
com.msl.common.base.PageData
;
import
com.msl.common.base.PageData
;
import
com.msl.common.convertor.aspect.UnitCovert
;
import
com.msl.common.convertor.aspect.UnitCovert
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.result.Result
;
import
com.msl.common.result.Result
;
import
com.msl.common.utils.DateUtils
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.exception.ExceptionUtils
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
...
@@ -34,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -34,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.constraints.NotBlank
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.List
;
...
@@ -75,6 +68,9 @@ public class GoodsOrderController {
...
@@ -75,6 +68,9 @@ public class GoodsOrderController {
@Autowired
@Autowired
private
OrderGoodsTruckBindService
orderGoodsTruckBindService
;
private
OrderGoodsTruckBindService
orderGoodsTruckBindService
;
@Autowired
private
OrderGoodsAdjustmentPriceService
orderGoodsAdjustmentPriceService
;
@ApiOperation
(
value
=
"提交货单"
,
notes
=
"<br>By:胡宇帆"
)
@ApiOperation
(
value
=
"提交货单"
,
notes
=
"<br>By:胡宇帆"
)
@PostMapping
(
"/saveGoodsOrder"
)
@PostMapping
(
"/saveGoodsOrder"
)
@UnitCovert
(
result
=
false
)
@UnitCovert
(
result
=
false
)
...
@@ -197,4 +193,35 @@ public class GoodsOrderController {
...
@@ -197,4 +193,35 @@ public class GoodsOrderController {
}
}
@ApiOperation
(
value
=
"司机运费列表"
,
notes
=
"<br>By:刘海泉"
)
@GetMapping
(
"/getDriverFreightPriceList"
)
@UnitCovert
(
param
=
false
)
public
Result
<
List
<
DriverFreightPriceVO
>>
getDriverFreightPriceList
(
@RequestParam
(
value
=
"orderNo"
)
@NotBlank
(
message
=
"订单编号不能为空"
)
String
orderNo
)
{
List
<
DriverFreightPriceVO
>
list
=
orderGoodsService
.
getDriverFreightPriceList
(
orderNo
);
return
Result
.
ok
(
list
);
}
@ApiOperation
(
value
=
"订单下挂单时间列表"
,
notes
=
"<br>By:刘海泉"
)
@GetMapping
(
"/getOrderGoodsPendingList"
)
public
Result
<
List
<
OrderGoodsPendingVO
>>
getOrderGoodsPendingList
(
@RequestParam
(
value
=
"orderNo"
)
@NotBlank
(
message
=
"订单编号不能为空"
)
String
orderNo
)
{
List
<
OrderGoodsPendingVO
>
list
=
orderGoodsService
.
getOrderGoodsPendingList
(
orderNo
);
return
Result
.
ok
(
list
);
}
@ApiOperation
(
value
=
"司机运费记录柱形图"
,
notes
=
"<br>By:刘海泉"
)
@GetMapping
(
"/getDriverFreightPriceChart"
)
@UnitCovert
(
param
=
false
)
public
Result
<
List
<
DriverFreightPriceChartVO
>>
getDriverFreightPriceChart
(
@RequestParam
(
value
=
"orderNo"
)
@NotBlank
(
message
=
"订单编号不能为空"
)
String
orderNo
)
{
List
<
DriverFreightPriceChartVO
>
list
=
orderGoodsAdjustmentPriceService
.
getDriverFreightPriceChart
(
orderNo
);
return
Result
.
ok
(
list
);
}
}
}
performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java
浏览文件 @
c36ea033
...
@@ -198,4 +198,8 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
...
@@ -198,4 +198,8 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
void
updateBatchOwnerCancel
(
List
<
String
>
childNos
);
void
updateBatchOwnerCancel
(
List
<
String
>
childNos
);
List
<
CancelOrderGoodsWeightDTO
>
statisticsCancelOrderGoodsWeight
(
List
<
String
>
childNos
);
List
<
CancelOrderGoodsWeightDTO
>
statisticsCancelOrderGoodsWeight
(
List
<
String
>
childNos
);
List
<
OrderChild
>
listBeforeCompleteByOrderNo
(
String
orderNo
);
List
<
OrderChild
>
listCompleteByOrderNos
(
List
<
String
>
strings
);
}
}
performance-web/src/main/java/com/clx/performance/dao/OrderGoodsDao.java
浏览文件 @
c36ea033
...
@@ -108,4 +108,6 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
...
@@ -108,4 +108,6 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
void
batchCancel
(
List
<
Integer
>
idList
);
void
batchCancel
(
List
<
Integer
>
idList
);
void
batchCancelOrderGoods
(
List
<
CancelOrderGoodsWeightDTO
>
cancelOrderGoodsWeight
);
void
batchCancelOrderGoods
(
List
<
CancelOrderGoodsWeightDTO
>
cancelOrderGoodsWeight
);
List
<
OrderGoods
>
listAfterCreatedByOrderNo
(
String
orderNo
);
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
浏览文件 @
c36ea033
...
@@ -655,4 +655,20 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
...
@@ -655,4 +655,20 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
public
List
<
CancelOrderGoodsWeightDTO
>
statisticsCancelOrderGoodsWeight
(
List
<
String
>
childNos
)
{
public
List
<
CancelOrderGoodsWeightDTO
>
statisticsCancelOrderGoodsWeight
(
List
<
String
>
childNos
)
{
return
baseMapper
.
statisticsCancelOrderGoodsWeight
(
childNos
);
return
baseMapper
.
statisticsCancelOrderGoodsWeight
(
childNos
);
}
}
@Override
public
List
<
OrderChild
>
listBeforeCompleteByOrderNo
(
String
orderNo
)
{
return
list
(
lQrWrapper
()
.
eq
(
OrderChild
::
getOrderNo
,
orderNo
)
.
le
(
OrderChild
::
getStatus
,
OrderChildEnum
.
Status
.
COMPLETE
.
getCode
())
);
}
@Override
public
List
<
OrderChild
>
listCompleteByOrderNos
(
List
<
String
>
orderNoList
)
{
return
list
(
lQrWrapper
()
.
in
(
OrderChild
::
getOrderNo
,
orderNoList
)
.
le
(
OrderChild
::
getStatus
,
OrderChildEnum
.
Status
.
COMPLETE
.
getCode
())
);
}
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/OrderGoodsDaoImpl.java
浏览文件 @
c36ea033
...
@@ -305,4 +305,13 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
...
@@ -305,4 +305,13 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
public
void
batchCancelOrderGoods
(
List
<
CancelOrderGoodsWeightDTO
>
cancelOrderGoodsWeight
)
{
public
void
batchCancelOrderGoods
(
List
<
CancelOrderGoodsWeightDTO
>
cancelOrderGoodsWeight
)
{
baseMapper
.
batchCancelOrderGoods
(
cancelOrderGoodsWeight
);
baseMapper
.
batchCancelOrderGoods
(
cancelOrderGoodsWeight
);
}
}
@Override
public
List
<
OrderGoods
>
listAfterCreatedByOrderNo
(
String
orderNo
)
{
return
baseMapper
.
selectList
(
lQrWrapper
().
eq
(
OrderGoods:
:
getOrderNo
,
orderNo
)
.
ne
(
OrderGoods:
:
getOrderGoodsStatus
,
OrderGoodsStatusEnum
.
Status
.
CREATED
.
getCode
())
.
orderByDesc
(
OrderGoods
::
getPendingOrderTime
)
);
}
}
}
performance-web/src/main/java/com/clx/performance/extranal/user/OrderService.java
浏览文件 @
c36ea033
...
@@ -4,8 +4,14 @@ import com.clx.order.vo.feign.FeignOrderInfoVO;
...
@@ -4,8 +4,14 @@ import com.clx.order.vo.feign.FeignOrderInfoVO;
import
com.msl.common.base.Optional
;
import
com.msl.common.base.Optional
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
java.util.List
;
public
interface
OrderService
{
public
interface
OrderService
{
Optional
<
FeignOrderInfoVO
>
getOrderInfo
(
@RequestParam
String
orderNo
);
Optional
<
FeignOrderInfoVO
>
getOrderInfo
(
@RequestParam
String
orderNo
);
Optional
<
List
<
String
>>
getMonthSameLineOrderList
(
String
orderNo
);
}
}
performance-web/src/main/java/com/clx/performance/extranal/user/impl/OrderServiceImpl.java
浏览文件 @
c36ea033
...
@@ -9,6 +9,8 @@ import lombok.AllArgsConstructor;
...
@@ -9,6 +9,8 @@ import lombok.AllArgsConstructor;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
@Service
@Service
@Slf4j
@Slf4j
@AllArgsConstructor
@AllArgsConstructor
...
@@ -22,4 +24,11 @@ public class OrderServiceImpl implements OrderService {
...
@@ -22,4 +24,11 @@ public class OrderServiceImpl implements OrderService {
.
filter
(
Result:
:
succeed
)
.
filter
(
Result:
:
succeed
)
.
map
(
Result:
:
getData
);
.
map
(
Result:
:
getData
);
}
}
@Override
public
Optional
<
List
<
String
>>
getMonthSameLineOrderList
(
String
orderNo
)
{
return
Optional
.
ofNullable
(
orderFeign
.
getMonthSameLineOrderList
(
orderNo
))
.
filter
(
Result:
:
succeed
)
.
map
(
Result:
:
getData
);
}
}
}
performance-web/src/main/java/com/clx/performance/listener/OrderChildDtsListener.java
浏览文件 @
c36ea033
...
@@ -11,6 +11,7 @@ import com.clx.order.enums.OrderEnum;
...
@@ -11,6 +11,7 @@ import com.clx.order.enums.OrderEnum;
import
com.clx.order.enums.SyncPlatformEnum
;
import
com.clx.order.enums.SyncPlatformEnum
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.config.ThirdAppConfig
;
import
com.clx.performance.config.ThirdAppConfig
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.dto.dts.DataTransportDTO
;
import
com.clx.performance.dto.dts.DataTransportDTO
;
...
@@ -20,6 +21,7 @@ import com.clx.performance.event.OrderChildCancelEvent;
...
@@ -20,6 +21,7 @@ import com.clx.performance.event.OrderChildCancelEvent;
import
com.clx.performance.extranal.user.DriverService
;
import
com.clx.performance.extranal.user.DriverService
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.service.LastTruckService
;
import
com.clx.performance.service.LastTruckService
;
import
com.clx.performance.struct.OrderChildStruct
;
import
com.clx.user.vo.feign.FeignDriverTruckModelVo
;
import
com.clx.user.vo.feign.FeignDriverTruckModelVo
;
import
com.msl.common.enums.ResultCodeEnum
;
import
com.msl.common.enums.ResultCodeEnum
;
import
com.msl.common.result.Result
;
import
com.msl.common.result.Result
;
...
@@ -28,13 +30,17 @@ import lombok.AllArgsConstructor;
...
@@ -28,13 +30,17 @@ import lombok.AllArgsConstructor;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.MessageBuilder
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.context.ApplicationEventPublisher
;
import
org.springframework.context.ApplicationEventPublisher
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.Objects
;
import
java.util.Objects
;
import
java.util.Optional
;
import
java.util.Optional
;
import
static
com
.
clx
.
performance
.
constant
.
RabbitKeyConstants
.*;
@Slf4j
@Slf4j
@Component
@Component
@AllArgsConstructor
@AllArgsConstructor
...
@@ -44,7 +50,8 @@ public class OrderChildDtsListener {
...
@@ -44,7 +50,8 @@ public class OrderChildDtsListener {
private
final
DriverService
driverService
;
private
final
DriverService
driverService
;
private
final
ApplicationEventPublisher
applicationEventPublisher
;
private
final
ApplicationEventPublisher
applicationEventPublisher
;
private
final
ThirdAppConfig
thirdAppConfig
;
private
final
ThirdAppConfig
thirdAppConfig
;
private
final
OrderChildStruct
orderChildStruct
;
private
final
RabbitTemplate
rabbitTemplate
;
@RabbitListener
(
queues
=
RabbitKeyConstants
.
CLX_PERFORMANCE_ORDER_CHILD_QUEUE
)
@RabbitListener
(
queues
=
RabbitKeyConstants
.
CLX_PERFORMANCE_ORDER_CHILD_QUEUE
)
...
@@ -55,8 +62,8 @@ public class OrderChildDtsListener {
...
@@ -55,8 +62,8 @@ public class OrderChildDtsListener {
DataTransportDTO
dataTransportDTO
=
JSON
.
parseObject
(
msg
,
DataTransportDTO
.
class
);
DataTransportDTO
dataTransportDTO
=
JSON
.
parseObject
(
msg
,
DataTransportDTO
.
class
);
log
.
info
(
"DTS消息同步开始, database:clx_performance.order_child, 实体:{}"
,
dataTransportDTO
);
log
.
info
(
"DTS消息同步开始, database:clx_performance.order_child, 实体:{}"
,
dataTransportDTO
);
log
.
info
(
"操作类型:{}"
,
dataTransportDTO
.
getOperationType
().
getCode
());
log
.
info
(
"操作类型:{}"
,
dataTransportDTO
.
getOperationType
().
getCode
());
OrderChild
Message
before
=
DtsMapConvertUtil
.
convert
(
dataTransportDTO
.
getBeforeMap
(),
new
OrderChildMessage
());
OrderChild
before
=
DtsMapConvertUtil
.
convert
(
dataTransportDTO
.
getBeforeMap
(),
new
OrderChild
());
OrderChild
Message
after
=
DtsMapConvertUtil
.
convert
(
dataTransportDTO
.
getAfterMap
(),
new
OrderChildMessage
());
OrderChild
after
=
DtsMapConvertUtil
.
convert
(
dataTransportDTO
.
getAfterMap
(),
new
OrderChild
());
thirdpartySync
(
DtsMapConvertUtil
.
convert
(
dataTransportDTO
.
getAfterMap
(),
new
OrderChildSyncMessage
()));
thirdpartySync
(
DtsMapConvertUtil
.
convert
(
dataTransportDTO
.
getAfterMap
(),
new
OrderChildSyncMessage
()));
...
@@ -66,6 +73,7 @@ public class OrderChildDtsListener {
...
@@ -66,6 +73,7 @@ public class OrderChildDtsListener {
if
(
OrderChildEnum
.
SYNC_STATUS_lIST
.
contains
(
after
.
getStatus
())
&&
!
Objects
.
equals
(
before
.
getStatus
(),
after
.
getStatus
())){
if
(
OrderChildEnum
.
SYNC_STATUS_lIST
.
contains
(
after
.
getStatus
())
&&
!
Objects
.
equals
(
before
.
getStatus
(),
after
.
getStatus
())){
orderChildChangeAfter
(
after
);
orderChildChangeAfter
(
after
);
}
}
syncPerformanceProgress
(
before
,
after
,
DtsOperationTypeEnum
.
INSERT
.
getCode
());
}
else
if
(
Objects
.
equals
(
DtsOperationTypeEnum
.
UPDATE
.
getCode
(),
dataTransportDTO
.
getOperationType
().
getCode
())){
}
else
if
(
Objects
.
equals
(
DtsOperationTypeEnum
.
UPDATE
.
getCode
(),
dataTransportDTO
.
getOperationType
().
getCode
())){
log
.
info
(
"修改:{}"
,
after
);
log
.
info
(
"修改:{}"
,
after
);
if
(
OrderChildEnum
.
SYNC_STATUS_lIST
.
contains
(
after
.
getStatus
())
&&
if
(
OrderChildEnum
.
SYNC_STATUS_lIST
.
contains
(
after
.
getStatus
())
&&
...
@@ -80,6 +88,7 @@ public class OrderChildDtsListener {
...
@@ -80,6 +88,7 @@ public class OrderChildDtsListener {
log
.
info
(
"DTS运单取消释放借款冻结金额"
);
log
.
info
(
"DTS运单取消释放借款冻结金额"
);
applicationEventPublisher
.
publishEvent
(
new
OrderChildCancelEvent
(
this
,
after
.
getChildNo
()));
applicationEventPublisher
.
publishEvent
(
new
OrderChildCancelEvent
(
this
,
after
.
getChildNo
()));
}
}
syncPerformanceProgress
(
before
,
after
,
DtsOperationTypeEnum
.
INSERT
.
getCode
());
}
else
if
(
Objects
.
equals
(
DtsOperationTypeEnum
.
DELETE
.
getCode
(),
dataTransportDTO
.
getOperationType
().
getCode
())){
}
else
if
(
Objects
.
equals
(
DtsOperationTypeEnum
.
DELETE
.
getCode
(),
dataTransportDTO
.
getOperationType
().
getCode
())){
//数据删除
//数据删除
...
@@ -91,11 +100,15 @@ public class OrderChildDtsListener {
...
@@ -91,11 +100,15 @@ public class OrderChildDtsListener {
}
}
}
}
public
void
orderChildChangeAfter
(
OrderChild
Message
after
){
public
void
orderChildChangeAfter
(
OrderChild
orderChild
){
FeignOrderVO
orderInfoFeign
=
orderFeign
.
getOrderInfoFeign
(
after
.
getOrderNo
());
FeignOrderVO
orderInfoFeign
=
orderFeign
.
getOrderInfoFeign
(
orderChild
.
getOrderNo
());
if
(
orderInfoFeign
==
null
)
{
if
(
orderInfoFeign
==
null
)
{
return
;
return
;
}
}
OrderChildMessage
after
=
orderChildStruct
.
convertMessage
(
orderChild
);
//同步交易平台的运单
//同步交易平台的运单
if
(
Objects
.
equals
(
orderInfoFeign
.
getOrderSource
(),
SyncPlatformEnum
.
Source
.
TRADE_PLATFORM
.
getCode
())){
if
(
Objects
.
equals
(
orderInfoFeign
.
getOrderSource
(),
SyncPlatformEnum
.
Source
.
TRADE_PLATFORM
.
getCode
())){
...
@@ -199,4 +212,26 @@ public class OrderChildDtsListener {
...
@@ -199,4 +212,26 @@ public class OrderChildDtsListener {
}
}
//同步履约进度表-----运单部分
public
void
syncPerformanceProgress
(
OrderChild
before
,
OrderChild
after
,
Integer
updateType
){
boolean
isSend
=
false
;
if
(
Objects
.
equals
(
updateType
,
DtsOperationTypeEnum
.
INSERT
.
getCode
())){
isSend
=
true
;
}
if
(
Objects
.
equals
(
updateType
,
DtsOperationTypeEnum
.
UPDATE
.
getCode
())
&&
(!
Objects
.
equals
(
before
.
getStatus
(),
after
.
getStatus
())
||
!
Objects
.
equals
(
before
.
getLoadNet
(),
after
.
getLoadNet
()))
||
!
Objects
.
equals
(
before
.
getUnloadNet
(),
after
.
getUnloadNet
())
){
isSend
=
true
;
}
if
(
isSend
){
log
.
info
(
"开始发送同步履约进度表消息,订单号:{},运单号:{}"
,
after
.
getOrderNo
(),
after
.
getChildNo
());
Message
body
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
new
MqWrapper
<>(
after
)).
getBytes
()).
build
();
rabbitTemplate
.
send
(
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_CHILD_EXCHANGE
,
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_CHILD_ROUTING_KEY
,
body
);
log
.
info
(
"结束发送同步履约进度表消息,订单号:{},运单号:{}"
,
after
.
getOrderNo
(),
after
.
getChildNo
());
}
}
}
}
performance-web/src/main/java/com/clx/performance/listener/OrderGoodsDtsListener.java
浏览文件 @
c36ea033
...
@@ -3,6 +3,7 @@ package com.clx.performance.listener;
...
@@ -3,6 +3,7 @@ package com.clx.performance.listener;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.clx.order.enums.UpdateEnum
;
import
com.clx.order.enums.UpdateEnum
;
import
com.clx.order.enums.VehicleUsageEnum
;
import
com.clx.order.enums.VehicleUsageEnum
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.component.GoodsOrderTruckRecordComponent
;
import
com.clx.performance.component.GoodsOrderTruckRecordComponent
;
import
com.clx.performance.component.OrderCancelComponent
;
import
com.clx.performance.component.OrderCancelComponent
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.constant.RabbitKeyConstants
;
...
@@ -13,17 +14,22 @@ import com.clx.performance.enums.OrderGoodsLogsEnum;
...
@@ -13,17 +14,22 @@ import com.clx.performance.enums.OrderGoodsLogsEnum;
import
com.clx.performance.enums.OrderGoodsPendingOrderWayStatusEnum
;
import
com.clx.performance.enums.OrderGoodsPendingOrderWayStatusEnum
;
import
com.clx.performance.enums.OrderGoodsStatusEnum
;
import
com.clx.performance.enums.OrderGoodsStatusEnum
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.OrderGoodsAdjustmentPrice
;
import
com.clx.performance.service.OrderGoodsLogService
;
import
com.clx.performance.service.OrderGoodsLogService
;
import
com.msl.common.utils.DtsMapConvertUtil
;
import
com.msl.common.utils.DtsMapConvertUtil
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.MessageBuilder
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.Objects
;
import
java.util.Objects
;
import
static
com
.
clx
.
performance
.
constant
.
RabbitKeyConstants
.*;
@Slf4j
@Slf4j
@Component
@Component
@AllArgsConstructor
@AllArgsConstructor
...
@@ -33,7 +39,7 @@ public class OrderGoodsDtsListener {
...
@@ -33,7 +39,7 @@ public class OrderGoodsDtsListener {
private
final
GoodsOrderTruckRecordComponent
goodsOrderTruckRecordComponent
;
private
final
GoodsOrderTruckRecordComponent
goodsOrderTruckRecordComponent
;
private
final
OrderGoodsDao
orderGoodsDao
;
private
final
OrderGoodsDao
orderGoodsDao
;
private
final
OrderGoodsLogService
orderGoodsLogService
;
private
final
OrderGoodsLogService
orderGoodsLogService
;
private
final
RabbitTemplate
rabbitTemplate
;
@RabbitListener
(
queues
=
RabbitKeyConstants
.
CLX_PERFORMANCE_ORDER_GOODS_QUEUE
)
@RabbitListener
(
queues
=
RabbitKeyConstants
.
CLX_PERFORMANCE_ORDER_GOODS_QUEUE
)
...
@@ -47,11 +53,11 @@ public class OrderGoodsDtsListener {
...
@@ -47,11 +53,11 @@ public class OrderGoodsDtsListener {
if
(
Objects
.
equals
(
DtsOperationTypeEnum
.
INSERT
.
getCode
(),
dataTransportDTO
.
getOperationType
().
getCode
())){
if
(
Objects
.
equals
(
DtsOperationTypeEnum
.
INSERT
.
getCode
(),
dataTransportDTO
.
getOperationType
().
getCode
())){
//同步after数据
//同步after数据
log
.
info
(
"新增:{}"
,
JSON
.
toJSONString
(
after
));
log
.
info
(
"新增:{}"
,
JSON
.
toJSONString
(
after
));
orderGoodsChangeAfter
(
before
,
after
,
DtsOperationTypeEnum
.
INSERT
.
getCode
());
syncPerformanceProgress
(
before
,
after
,
DtsOperationTypeEnum
.
INSERT
.
getCode
());
}
else
if
(
Objects
.
equals
(
DtsOperationTypeEnum
.
UPDATE
.
getCode
(),
dataTransportDTO
.
getOperationType
().
getCode
())){
}
else
if
(
Objects
.
equals
(
DtsOperationTypeEnum
.
UPDATE
.
getCode
(),
dataTransportDTO
.
getOperationType
().
getCode
())){
log
.
info
(
"修改:{}"
,
JSON
.
toJSONString
(
after
));
log
.
info
(
"修改:{}"
,
JSON
.
toJSONString
(
after
));
backFillOrderWeight
(
after
);
backFillOrderWeight
(
after
);
orderGoodsChangeAfter
(
before
,
after
,
DtsOperationTypeEnum
.
UPDATE
.
getCode
());
syncPerformanceProgress
(
before
,
after
,
DtsOperationTypeEnum
.
UPDATE
.
getCode
());
}
else
if
(
Objects
.
equals
(
DtsOperationTypeEnum
.
DELETE
.
getCode
(),
dataTransportDTO
.
getOperationType
().
getCode
())){
}
else
if
(
Objects
.
equals
(
DtsOperationTypeEnum
.
DELETE
.
getCode
(),
dataTransportDTO
.
getOperationType
().
getCode
())){
//数据删除
//数据删除
log
.
info
(
"删除:{}"
,
JSON
.
toJSONString
(
before
));
log
.
info
(
"删除:{}"
,
JSON
.
toJSONString
(
before
));
...
@@ -87,21 +93,63 @@ public class OrderGoodsDtsListener {
...
@@ -87,21 +93,63 @@ public class OrderGoodsDtsListener {
}
}
public
void
orderGoodsChangeAfter
(
OrderGoods
before
,
OrderGoods
after
,
Integer
updateType
)
{
public
void
syncPerformanceProgress
(
OrderGoods
before
,
OrderGoods
after
,
Integer
updateType
)
{
boolean
isSend
=
false
;
if
(
after
.
getOrderGoodsStatus
()
>
OrderGoodsStatusEnum
.
Status
.
PAYING
.
getCode
()){
if
(
after
.
getOrderGoodsStatus
()
>
OrderGoodsStatusEnum
.
Status
.
PAYING
.
getCode
()){
if
(
Objects
.
equals
(
updateType
,
DtsOperationTypeEnum
.
INSERT
.
getCode
())
||
if
(
Objects
.
equals
(
updateType
,
DtsOperationTypeEnum
.
INSERT
.
getCode
())){
(
isSend
=
true
;
Objects
.
equals
(
updateType
,
DtsOperationTypeEnum
.
UPDATE
.
getCode
())
}
||!
Objects
.
equals
(
before
.
getSeniorLogisticsManagerId
(),
after
.
getSeniorLogisticsManagerId
())
if
(
Objects
.
equals
(
updateType
,
DtsOperationTypeEnum
.
UPDATE
.
getCode
())
||!
Objects
.
equals
(
before
.
getPendingOrderFreight
(),
after
.
getPendingOrderFreight
())
&&
(!
Objects
.
equals
(
before
.
getSeniorLogisticsManagerId
(),
after
.
getSeniorLogisticsManagerId
())
||
!
Objects
.
equals
(
before
.
getPendingOrderFreight
(),
after
.
getPendingOrderFreight
())
)){
isSend
=
true
;
}
if
(
isSend
){
log
.
info
(
"开始发送同步履约进度表消息,订单号:{},货单号:{}"
,
after
.
getOrderNo
(),
after
.
getOrderGoodsNo
());
Message
body
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
new
MqWrapper
<>(
after
)).
getBytes
()).
build
();
rabbitTemplate
.
send
(
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_GOODS_EXCHANGE
,
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_GOODS_ROUTING_KEY
,
body
);
log
.
info
(
"结束发送同步履约进度表消息,订单号:{},货单号:{}"
,
after
.
getOrderNo
(),
after
.
getOrderGoodsNo
());
}
}
}
//保存货单调价记录
public
void
sendSaveOrderGoodsAdjustmentPriceMessage
(
OrderGoods
before
,
OrderGoods
after
,
Integer
updateType
){
boolean
isSend
=
false
;
//插入的货单是挂单中状态的
if
(
Objects
.
equals
(
updateType
,
DtsOperationTypeEnum
.
INSERT
.
getCode
())
&&
Objects
.
equals
(
after
.
getOrderGoodsStatus
(),
OrderGoodsStatusEnum
.
Status
.
PAYING
.
getCode
())){
isSend
=
true
;
}
//货单状态发生变化(从已挂单变成挂单中) || 挂单中状态的挂单运费发生变化
if
(
Objects
.
equals
(
updateType
,
DtsOperationTypeEnum
.
UPDATE
.
getCode
())
&&
//货单状态发生变化(从已挂单变成挂单中)
(
(
Objects
.
equals
(
before
.
getOrderGoodsStatus
(),
OrderGoodsStatusEnum
.
Status
.
CREATED
.
getCode
())
&&
Objects
.
equals
(
before
.
getOrderGoodsStatus
(),
OrderGoodsStatusEnum
.
Status
.
PAYING
.
getCode
()))
||
//挂单中之后的状态的挂单运费发生变化
(
after
.
getOrderGoodsStatus
()
>=
OrderGoodsStatusEnum
.
Status
.
PAYING
.
getCode
()
&&
!
Objects
.
equals
(
before
.
getPendingOrderFreight
(),
after
.
getPendingOrderFreight
()))
)
)
){
){
isSend
=
true
;
}
}
}
if
(
isSend
){
log
.
info
(
"开始发送货单调整挂单运费消息,订单号:{},货单号:{}"
,
after
.
getOrderNo
(),
after
.
getOrderGoodsNo
());
OrderGoodsAdjustmentPrice
message
=
new
OrderGoodsAdjustmentPrice
();
message
.
setOrderNo
(
after
.
getOrderNo
());
message
.
setOrderGoodsNo
(
after
.
getOrderGoodsNo
());
message
.
setAmount
(
after
.
getPendingOrderFreight
());
message
.
setPreAmount
(
Objects
.
nonNull
(
before
)
?
before
.
getPendingOrderFreight
()
:
BigDecimal
.
ZERO
);
Message
body
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
new
MqWrapper
<>(
message
)).
getBytes
()).
build
();
rabbitTemplate
.
send
(
SAVE_ORDER_GOODS_ADJUSTMENT_PRICE_EXCHANGE
,
SAVE_ORDER_GOODS_ADJUSTMENT_PRICE_ROUTING_KEY
,
body
);
log
.
info
(
"结束发送货单调整挂单运费消息,订单号:{},货单号:{}"
,
after
.
getOrderNo
(),
after
.
getOrderGoodsNo
());
}
}
}
}
}
performance-web/src/main/java/com/clx/performance/service/OrderChildService.java
浏览文件 @
c36ea033
...
@@ -99,4 +99,6 @@ public interface OrderChildService {
...
@@ -99,4 +99,6 @@ public interface OrderChildService {
Integer
getOrderChildCheck
(
OrderChildCheckParam
param
);
Integer
getOrderChildCheck
(
OrderChildCheckParam
param
);
void
cancelOrderChilds
(
CancelOrderGoodsParam
param
);
void
cancelOrderChilds
(
CancelOrderGoodsParam
param
);
List
<
HistoryLineTranVolumeChartVO
>
getHistoryLineTransportVolume
(
String
orderNo
);
}
}
performance-web/src/main/java/com/clx/performance/service/OrderGoodsService.java
浏览文件 @
c36ea033
...
@@ -11,7 +11,9 @@ import com.clx.performance.param.pc.*;
...
@@ -11,7 +11,9 @@ import com.clx.performance.param.pc.*;
import
com.clx.performance.vo.app.OrderGoodsAPPVO
;
import
com.clx.performance.vo.app.OrderGoodsAPPVO
;
import
com.clx.performance.vo.feign.FreightEstimateVO
;
import
com.clx.performance.vo.feign.FreightEstimateVO
;
import
com.clx.performance.vo.feign.OrderGoodsFeignVO
;
import
com.clx.performance.vo.feign.OrderGoodsFeignVO
;
import
com.clx.performance.vo.pc.DriverFreightPriceVO
;
import
com.clx.performance.vo.pc.OrderGoodsEditVO
;
import
com.clx.performance.vo.pc.OrderGoodsEditVO
;
import
com.clx.performance.vo.pc.OrderGoodsPendingVO
;
import
com.clx.performance.vo.pc.OrderGoodsVO
;
import
com.clx.performance.vo.pc.OrderGoodsVO
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
...
@@ -107,4 +109,8 @@ public interface OrderGoodsService {
...
@@ -107,4 +109,8 @@ public interface OrderGoodsService {
void
updateFrightPrice
(
String
orderGoodsNo
,
BigDecimal
pendingOrderFreight
);
void
updateFrightPrice
(
String
orderGoodsNo
,
BigDecimal
pendingOrderFreight
);
BigDecimal
cancelOrderGoods
(
CancelOrderGoodsParam
param
);
BigDecimal
cancelOrderGoods
(
CancelOrderGoodsParam
param
);
List
<
DriverFreightPriceVO
>
getDriverFreightPriceList
(
String
orderNo
);
List
<
OrderGoodsPendingVO
>
getOrderGoodsPendingList
(
String
orderNo
);
}
}
performance-web/src/main/java/com/clx/performance/service/PerformanceProgressService.java
浏览文件 @
c36ea033
...
@@ -2,6 +2,8 @@ package com.clx.performance.service;
...
@@ -2,6 +2,8 @@ package com.clx.performance.service;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.open.sdk.callback.message.OrderInfoMessage
;
import
com.clx.open.sdk.callback.message.OrderInfoMessage
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.PerformanceProgress
;
import
com.clx.performance.model.PerformanceProgress
;
import
com.clx.performance.param.pc.carrier.PagePerformanceProgress
;
import
com.clx.performance.param.pc.carrier.PagePerformanceProgress
;
import
com.clx.performance.param.pc.carrier.UpdatePerformanceProgressParam
;
import
com.clx.performance.param.pc.carrier.UpdatePerformanceProgressParam
;
...
@@ -31,4 +33,10 @@ public interface PerformanceProgressService {
...
@@ -31,4 +33,10 @@ public interface PerformanceProgressService {
List
<
PerformanceProgressOperationLogVO
>
getOperationLog
(
String
orderNo
);
List
<
PerformanceProgressOperationLogVO
>
getOperationLog
(
String
orderNo
);
void
dealPerformanceProgress4OrderInfo
(
OrderInfoMessage
data
);
void
dealPerformanceProgress4OrderInfo
(
OrderInfoMessage
data
);
void
dealPerformanceProgress4OrderGoods
(
OrderGoods
data
);
void
dealPerformanceProgress4OrderChild
(
OrderChild
data
);
}
}
performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
浏览文件 @
c36ea033
...
@@ -3,10 +3,9 @@ package com.clx.performance.service.impl;
...
@@ -3,10 +3,9 @@ package com.clx.performance.service.impl;
import
cn.hutool.json.JSONUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.order.enums.InvoicingCompanyEnum
;
import
com.clx.order.enums.OrderEnum
;
import
com.clx.order.enums.OrderEnum
;
import
com.clx.order.enums.
Quotation
Enum
;
import
com.clx.order.enums.
Result
Enum
;
import
com.clx.order.enums.
VehicleUsageEnum
;
import
com.clx.order.enums.
*
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.vo.feign.FeignAddressVO
;
import
com.clx.order.vo.feign.FeignAddressVO
;
import
com.clx.order.vo.feign.FeignOrderInfoVO
;
import
com.clx.order.vo.feign.FeignOrderInfoVO
;
...
@@ -58,7 +57,6 @@ import com.clx.performance.utils.zjxl.ZjxlGpsService;
...
@@ -58,7 +57,6 @@ import com.clx.performance.utils.zjxl.ZjxlGpsService;
import
com.clx.performance.vo.app.*
;
import
com.clx.performance.vo.app.*
;
import
com.clx.performance.vo.app.owner.OwnerOrderChildVO
;
import
com.clx.performance.vo.app.owner.OwnerOrderChildVO
;
import
com.clx.performance.vo.pc.*
;
import
com.clx.performance.vo.pc.*
;
import
com.clx.performance.vo.pc.carrier.settle.CarrierPagePlatformServiceFeeConfigVO
;
import
com.clx.user.enums.driver.DriverInfoEnum
;
import
com.clx.user.enums.driver.DriverInfoEnum
;
import
com.clx.user.vo.feign.DriverTruckInfoFeignVo
;
import
com.clx.user.vo.feign.DriverTruckInfoFeignVo
;
import
com.clx.user.vo.feign.OwnerInfoFeignVO
;
import
com.clx.user.vo.feign.OwnerInfoFeignVO
;
...
@@ -207,6 +205,9 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -207,6 +205,9 @@ public class OrderChildServiceImpl implements OrderChildService {
@Autowired
@Autowired
private
QuotationService
quotationService
;
private
QuotationService
quotationService
;
@Autowired
OrderGoodsAdjustmentPriceService
orderGoodsAdjustmentPriceService
;
@Override
@Override
public
SaveOrderChildVO
saveOrderChild
(
OrderChildSaveParam
param
)
{
public
SaveOrderChildVO
saveOrderChild
(
OrderChildSaveParam
param
)
{
...
@@ -2768,4 +2769,45 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -2768,4 +2769,45 @@ public class OrderChildServiceImpl implements OrderChildService {
});
});
}
}
}
}
@Override
public
List
<
HistoryLineTranVolumeChartVO
>
getHistoryLineTransportVolume
(
String
orderNo
)
{
//查询近一个月与该订单收发货地线路一致的订单
Optional
<
List
<
String
>>
result
=
orderService
.
getMonthSameLineOrderList
(
orderNo
);
if
(!
result
.
isPresent
()){
log
.
warn
(
"通过订单号:{} 查找相同线路的订单列列表,返回结果:{}"
,
orderNo
,
result
);
throw
new
ServiceSystemException
(
ResultEnum
.
DATA_ERROR
,
"获取相同线路的订单列表失败"
);
}
List
<
BigDecimal
>
priceList
=
orderGoodsAdjustmentPriceService
.
getNoRepeatAdjustmentPriceRecord
(
result
.
get
());
List
<
HistoryLineTranVolumeChartVO
>
charts
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isEmpty
(
priceList
)){
return
charts
;
}
//查询相同路线的订单下的所有运单
List
<
OrderChild
>
childs
=
orderChildDao
.
listCompleteByOrderNos
(
result
.
get
());
if
(
CollectionUtils
.
isEmpty
(
childs
)){
priceList
.
forEach
(
item
->
charts
.
add
(
HistoryLineTranVolumeChartVO
.
builder
()
.
pendingOrderFreight
(
item
).
number
(
0
).
build
()));
return
charts
;
}
LinkedHashMap
<
BigDecimal
,
Integer
>
priceMap
=
priceList
.
stream
().
collect
(
Collectors
.
toMap
(
item
->
item
,
item
->
0
,
(
existing
,
replacement
)
->
existing
,
// 如果有冲突的键,则保留现有的键
LinkedHashMap:
:
new
));
//进行相同路线运费拉运单数统计
childs
.
forEach
(
item
->{
if
(
priceMap
.
containsKey
(
item
.
getFreightPrice
())){
priceMap
.
put
(
item
.
getFreightPrice
(),
priceMap
.
get
(
item
.
getFreightPrice
())
+
1
);
}
});
for
(
Map
.
Entry
<
BigDecimal
,
Integer
>
entry
:
priceMap
.
entrySet
())
{
charts
.
add
(
HistoryLineTranVolumeChartVO
.
builder
().
pendingOrderFreight
(
entry
.
getKey
()).
number
(
entry
.
getValue
()).
build
());
}
return
charts
;
}
}
}
performance-web/src/main/java/com/clx/performance/service/impl/OrderGoodsServiceImpl.java
浏览文件 @
c36ea033
...
@@ -40,11 +40,12 @@ import com.clx.performance.vo.app.OrderGoodsAPPVO;
...
@@ -40,11 +40,12 @@ import com.clx.performance.vo.app.OrderGoodsAPPVO;
import
com.clx.performance.vo.feign.FreightEstimateVO
;
import
com.clx.performance.vo.feign.FreightEstimateVO
;
import
com.clx.performance.vo.feign.OrderGoodsFeignVO
;
import
com.clx.performance.vo.feign.OrderGoodsFeignVO
;
import
com.clx.performance.vo.mq.OrderTruckBindCancelParam
;
import
com.clx.performance.vo.mq.OrderTruckBindCancelParam
;
import
com.clx.performance.vo.pc.DriverFreightPriceVO
;
import
com.clx.performance.vo.pc.OrderGoodsEditVO
;
import
com.clx.performance.vo.pc.OrderGoodsEditVO
;
import
com.clx.performance.vo.pc.OrderGoodsPendingVO
;
import
com.clx.performance.vo.pc.OrderGoodsVO
;
import
com.clx.performance.vo.pc.OrderGoodsVO
;
import
com.clx.user.enums.driver.DriverInfoEnum
;
import
com.clx.user.enums.driver.DriverInfoEnum
;
import
com.clx.user.feign.UserClxFeign
;
import
com.clx.user.feign.UserClxFeign
;
import
com.github.mustachejava.ObjectHandler
;
import
com.msl.common.base.Optional
;
import
com.msl.common.base.Optional
;
import
com.msl.common.enums.ResultCodeEnum
;
import
com.msl.common.enums.ResultCodeEnum
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.exception.ServiceSystemException
;
...
@@ -1066,4 +1067,19 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
...
@@ -1066,4 +1067,19 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
return
totalCancelWeight
;
return
totalCancelWeight
;
}
}
@Override
public
List
<
DriverFreightPriceVO
>
getDriverFreightPriceList
(
String
orderNo
)
{
List
<
OrderGoods
>
orderGoods
=
orderGoodsDao
.
listAfterCreatedByOrderNo
(
orderNo
);
return
orderGoodsStruct
.
convertDriverFreightList
(
orderGoods
);
}
@Override
public
List
<
OrderGoodsPendingVO
>
getOrderGoodsPendingList
(
String
orderNo
)
{
List
<
OrderGoods
>
orderGoods
=
orderGoodsDao
.
listAfterCreatedByOrderNo
(
orderNo
);
//升序排序
List
<
OrderGoods
>
sort
=
orderGoods
.
stream
().
sorted
(
Comparator
.
comparing
(
OrderGoods:
:
getPendingOrderTime
))
.
collect
(
Collectors
.
toList
());
return
orderGoodsStruct
.
convertOrderGoodsPendingList
(
sort
);
}
}
}
performance-web/src/main/java/com/clx/performance/service/impl/PerformanceProgressServiceImpl.java
浏览文件 @
c36ea033
package
com
.
clx
.
performance
.
service
.
impl
;
package
com
.
clx
.
performance
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.open.sdk.callback.message.OrderInfoMessage
;
import
com.clx.open.sdk.callback.message.OrderInfoMessage
;
import
com.clx.order.vo.feign.FeignAddressVO
;
import
com.clx.order.vo.feign.FeignAddressVO
;
import
com.clx.order.vo.feign.FeignOrderInfoVO
;
import
com.clx.order.vo.feign.SystemAddressVO
;
import
com.clx.order.vo.feign.SystemAddressVO
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.OrderGoodsDao
;
import
com.clx.performance.dao.PerformanceProgressDao
;
import
com.clx.performance.dao.PerformanceProgressDao
;
import
com.clx.performance.dao.PerformanceProgressLogDao
;
import
com.clx.performance.dao.PerformanceProgressLogDao
;
import
com.clx.performance.dto.gd.GdRouteDTO
;
import
com.clx.performance.dto.gd.GdRouteDTO
;
import
com.clx.performance.enums.OrderChildEnum
;
import
com.clx.performance.enums.OrderEnum
;
import
com.clx.performance.enums.OrderEnum
;
import
com.clx.performance.enums.PerformanceProgressEnum
;
import
com.clx.performance.enums.PerformanceProgressEnum
;
import
com.clx.performance.enums.ResultEnum
;
import
com.clx.performance.enums.ResultEnum
;
import
com.clx.performance.extranal.user.AddressService
;
import
com.clx.performance.extranal.user.AddressService
;
import
com.clx.performance.extranal.user.OrderService
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.PerformanceProgress
;
import
com.clx.performance.model.PerformanceProgress
;
import
com.clx.performance.model.PerformanceProgressLog
;
import
com.clx.performance.model.PerformanceProgressLog
;
import
com.clx.performance.param.pc.carrier.PagePerformanceProgress
;
import
com.clx.performance.param.pc.carrier.PagePerformanceProgress
;
...
@@ -35,10 +43,9 @@ import org.springframework.stereotype.Service;
...
@@ -35,10 +43,9 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.math.RoundingMode
;
import
java.util.Arrays
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.*
;
import
java.util.Objects
;
/**
/**
* @author kavin
* @author kavin
...
@@ -57,6 +64,9 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
...
@@ -57,6 +64,9 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
private
final
PerformanceProgressLogService
performanceProgressLogService
;
private
final
PerformanceProgressLogService
performanceProgressLogService
;
private
final
AddressService
addressService
;
private
final
AddressService
addressService
;
private
final
GdService
gdService
;
private
final
GdService
gdService
;
private
final
OrderGoodsDao
orderGoodsDao
;
private
final
OrderChildDao
orderChildDao
;
private
final
OrderService
orderService
;
public
static
List
<
Integer
>
inProcessStatusList
;
public
static
List
<
Integer
>
inProcessStatusList
;
...
@@ -260,6 +270,10 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
...
@@ -260,6 +270,10 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
@Override
public
void
dealPerformanceProgress4OrderInfo
(
OrderInfoMessage
data
)
{
public
void
dealPerformanceProgress4OrderInfo
(
OrderInfoMessage
data
)
{
//如果取消,删除履约进度表这条记录
if
(
Objects
.
equals
(
data
.
getOrderStatus
(),
OrderEnum
.
Status
.
CANCELED
.
getCode
())){
performanceProgressDao
.
deleteByField
(
PerformanceProgress:
:
getOrderNo
,
data
.
getOrderNo
());
}
Optional
<
PerformanceProgress
>
optional
=
performanceProgressDao
.
getOneByField
(
PerformanceProgress:
:
getOrderNo
,
Optional
<
PerformanceProgress
>
optional
=
performanceProgressDao
.
getOneByField
(
PerformanceProgress:
:
getOrderNo
,
data
.
getOrderNo
());
data
.
getOrderNo
());
...
@@ -272,11 +286,17 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
...
@@ -272,11 +286,17 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
item
.
setGoodsName
(
data
.
getGoodsName
());
item
.
setGoodsName
(
data
.
getGoodsName
());
item
.
setSendOverStandard
(
data
.
getOverWeight
());
item
.
setSendOverStandard
(
data
.
getOverWeight
());
item
.
setTaskWeight
(
data
.
getTransportWeight
().
subtract
(
new
BigDecimal
(
35
)));
item
.
setTaskWeight
(
data
.
getTransportWeight
().
subtract
(
new
BigDecimal
(
35
)));
item
.
setPendingWeight
(
data
.
getTransportWeight
().
subtract
(
data
.
getResidueWeight
()));
item
.
setTransportTimeSlot
(
DateUtils
.
formatDateTime
(
data
.
getTransportBeginTime
()).
get
()
+
"至"
+
item
.
setTransportTimeSlot
(
DateUtils
.
formatDateTime
(
data
.
getTransportBeginTime
()).
get
()
+
"至"
+
DateUtils
.
formatDateTime
(
data
.
getTransportEndTime
()).
get
());
DateUtils
.
formatDateTime
(
data
.
getTransportEndTime
()).
get
());
if
(
Objects
.
equals
(
data
.
getOrderStatus
(),
OrderEnum
.
Status
.
COMPLETED
.
getCode
())
||
Objects
.
equals
(
data
.
getOrderStatus
(),
OrderEnum
.
Status
.
SUCCESS
.
getCode
())
){
//TODO 计算测算运费
}
if
(
optional
.
isPresent
()){
if
(
optional
.
isPresent
()){
item
.
setId
(
optional
.
get
().
getId
());
item
.
setId
(
optional
.
get
().
getId
());
if
(
Objects
.
nonNull
(
data
.
getSendSystemAddressId
())
&&
if
(
Objects
.
nonNull
(
data
.
getSendSystemAddressId
())
&&
...
@@ -338,4 +358,109 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
...
@@ -338,4 +358,109 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
}
}
return
systemAddress
.
get
().
getAddressShorter
();
return
systemAddress
.
get
().
getAddressShorter
();
}
}
//履约进度表----货单部分
@Override
public
void
dealPerformanceProgress4OrderGoods
(
OrderGoods
data
)
{
Optional
<
PerformanceProgress
>
optional
=
performanceProgressDao
.
getOneByField
(
PerformanceProgress:
:
getOrderNo
,
data
.
getOrderNo
());
if
(!
optional
.
isPresent
()){
log
.
error
(
"货单对应的订单信息不存在,订单号:{},货单号:{}"
,
data
.
getOrderNo
(),
data
.
getOrderGoodsNo
());
throw
new
ServiceSystemException
(
ResultEnum
.
DATA_NOT_FIND
);
}
//根据挂单时间倒序排序
List
<
OrderGoods
>
orderGoods
=
orderGoodsDao
.
listAfterCreatedByOrderNo
(
data
.
getOrderNo
());
if
(
CollectionUtils
.
isEmpty
(
orderGoods
)){
return
;
}
Set
<
String
>
seniorLogisticsManagerNameSet
=
new
HashSet
<>();
BigDecimal
pendingOrderFreight
=
null
;
//最新的货单的司机运费,取消的也算
LocalDateTime
firstPendingTime
=
null
;
//挂单时间,取消的也算
for
(
OrderGoods
item
:
orderGoods
){
seniorLogisticsManagerNameSet
.
add
(
item
.
getSeniorLogisticsManagerName
());
if
(
Objects
.
isNull
(
pendingOrderFreight
)){
pendingOrderFreight
=
item
.
getPendingOrderFreight
();
}
//最后一个挂单中的货单的挂单时间为最早的挂单时间
firstPendingTime
=
item
.
getPendingOrderTime
();
}
PerformanceProgress
update
=
new
PerformanceProgress
();
update
.
setId
(
optional
.
get
().
getId
());
update
.
setSeniorLogisticsManagerName
(
JSON
.
toJSONString
(
new
ArrayList
<>(
seniorLogisticsManagerNameSet
)));
update
.
setDriverFreightPrice
(
pendingOrderFreight
);
update
.
setPendingTime
(
firstPendingTime
);
performanceProgressDao
.
updateEntityByKey
(
update
);
}
//履约进度表----运单部分
@Override
public
void
dealPerformanceProgress4OrderChild
(
OrderChild
data
)
{
Optional
<
PerformanceProgress
>
optional
=
performanceProgressDao
.
getOneByField
(
PerformanceProgress:
:
getOrderNo
,
data
.
getOrderNo
());
if
(!
optional
.
isPresent
()){
log
.
error
(
"运单对应的订单信息不存在,订单号:{},运单号:{}"
,
data
.
getOrderNo
(),
data
.
getChildNo
());
throw
new
ServiceSystemException
(
ResultEnum
.
DATA_NOT_FIND
);
}
FeignOrderInfoVO
orderInfo
=
orderService
.
getOrderInfo
(
data
.
getOrderNo
()).
get
();
//取完成之前的运单数据
List
<
OrderChild
>
childs
=
orderChildDao
.
listBeforeCompleteByOrderNo
(
data
.
getOrderNo
());
int
orderedTruckNum
=
childs
.
size
();
//接单车数
int
arriveSendTruckNum
=
0
;
//到达货源地车数
int
loadTruckNum
=
0
;
//装车车数
int
unloadTruckNum
=
0
;
//卸车车数
int
onTheWayTruckNum
;
// 在途车数
BigDecimal
orderedRate
;
//接单率
BigDecimal
taskCompleteRatio
;
//任务完成率
BigDecimal
sumLoadWeight
=
BigDecimal
.
ZERO
;
//矿发吨数
BigDecimal
sumUnloadWeight
=
BigDecimal
.
ZERO
;
//到站吨数
BigDecimal
sumOnTheWayWeight
;
//在途吨数
BigDecimal
orderedWeight
=
BigDecimal
.
ZERO
;
//接单吨数
for
(
OrderChild
child
:
childs
)
{
if
(
child
.
getStatus
()
>=
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
()){
arriveSendTruckNum
=
arriveSendTruckNum
+
1
;
}
if
(
child
.
getStatus
()
>=
OrderChildEnum
.
Status
.
LOAD
.
getCode
()){
loadTruckNum
=
loadTruckNum
+
1
;
sumLoadWeight
=
sumLoadWeight
.
add
(
child
.
getLoadNet
());
orderedWeight
=
orderedWeight
.
add
(
child
.
getLoadNet
());
}
else
{
orderedWeight
=
orderedWeight
.
add
(
child
.
getWeight
());
}
if
(
child
.
getStatus
()
>=
OrderChildEnum
.
Status
.
UNLOAD
.
getCode
()){
unloadTruckNum
=
unloadTruckNum
+
1
;
sumUnloadWeight
=
sumUnloadWeight
.
add
(
child
.
getWeight
());
}
}
//在途吨数 = 矿发量 - 到站量
sumOnTheWayWeight
=
sumLoadWeight
.
subtract
(
sumUnloadWeight
);
//在途车辆数 = 装车车数 - 卸车车数
onTheWayTruckNum
=
loadTruckNum
-
unloadTruckNum
;
//接单率 = 接单吨数 / 挂单吨数
orderedRate
=
orderedWeight
.
divide
(
optional
.
get
().
getPendingWeight
(),
3
,
RoundingMode
.
HALF_UP
)
.
multiply
(
new
BigDecimal
(
100
));
//任务完成率 = 到站量 / 任务量
taskCompleteRatio
=
sumUnloadWeight
.
divide
(
orderInfo
.
getTransportWeight
(),
3
,
RoundingMode
.
HALF_UP
)
.
multiply
(
new
BigDecimal
(
100
));
PerformanceProgress
update
=
new
PerformanceProgress
();
update
.
setId
(
optional
.
get
().
getId
());
update
.
setOrderedTruckNum
(
orderedTruckNum
);
update
.
setArriveSendTruckNum
(
arriveSendTruckNum
);
update
.
setLoadTruckNum
(
loadTruckNum
);
update
.
setUnloadTruckNum
(
unloadTruckNum
);
update
.
setOnTheWayTruckNum
(
onTheWayTruckNum
);
update
.
setOrderedRate
(
orderedRate
);
update
.
setTaskCompleteRatio
(
taskCompleteRatio
);
update
.
setSumLoadWeight
(
sumLoadWeight
);
update
.
setSumUnloadWeight
(
sumUnloadWeight
);
update
.
setSumOnTheWayWeight
(
sumOnTheWayWeight
);
performanceProgressDao
.
updateEntityByKey
(
update
);
}
}
}
performance-web/src/main/java/com/clx/performance/struct/OrderGoodsStruct.java
浏览文件 @
c36ea033
...
@@ -2,6 +2,8 @@ package com.clx.performance.struct;
...
@@ -2,6 +2,8 @@ package com.clx.performance.struct;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.vo.feign.OrderGoodsFeignVO
;
import
com.clx.performance.vo.feign.OrderGoodsFeignVO
;
import
com.clx.performance.vo.pc.DriverFreightPriceVO
;
import
com.clx.performance.vo.pc.OrderGoodsPendingVO
;
import
com.clx.performance.vo.pc.OrderGoodsVO
;
import
com.clx.performance.vo.pc.OrderGoodsVO
;
import
com.clx.performance.vo.pc.linewarn.LineWarnTraceVO
;
import
com.clx.performance.vo.pc.linewarn.LineWarnTraceVO
;
import
com.msl.common.utils.DateStructUtil
;
import
com.msl.common.utils.DateStructUtil
;
...
@@ -23,4 +25,9 @@ public interface OrderGoodsStruct {
...
@@ -23,4 +25,9 @@ public interface OrderGoodsStruct {
@Mapping
(
target
=
"receiveAddress"
,
source
=
"receiveAddressShorter"
)
@Mapping
(
target
=
"receiveAddress"
,
source
=
"receiveAddressShorter"
)
LineWarnTraceVO
convertLineWarnTraceVO
(
OrderGoods
item
);
LineWarnTraceVO
convertLineWarnTraceVO
(
OrderGoods
item
);
List
<
DriverFreightPriceVO
>
convertDriverFreightList
(
List
<
OrderGoods
>
orderGoods
);
List
<
OrderGoodsPendingVO
>
convertOrderGoodsPendingList
(
List
<
OrderGoods
>
orderGoods
);
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论