Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
f5383368
提交
f5383368
authored
9月 25, 2023
作者:
liuhaiquan
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/v4.9_create_goods_child_20230918' into…
Merge remote-tracking branch 'origin/v4.9_create_goods_child_20230918' into v4.9_create_goods_child_20230918
上级
234d2a5e
d77f15e4
隐藏空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
325 行增加
和
77 行删除
+325
-77
OrderGoodsChildParams.java
...main/java/com/clx/order/params/OrderGoodsChildParams.java
+3
-0
OrderGoodsParams.java
.../src/main/java/com/clx/order/params/OrderGoodsParams.java
+1
-0
PerformanceResultEnum.java
...java/com/clx/performance/enums/PerformanceResultEnum.java
+10
-9
AppServerController.java
...lx/performance/controller/system/AppServerController.java
+56
-0
OrderGoodsDao.java
.../src/main/java/com/clx/performance/dao/OrderGoodsDao.java
+2
-0
OrderChildDaoImpl.java
.../java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
+1
-1
OrderChildPoundLogDaoImpl.java
...m/clx/performance/dao/impl/OrderChildPoundLogDaoImpl.java
+1
-1
OrderGoodsDaoImpl.java
.../java/com/clx/performance/dao/impl/OrderGoodsDaoImpl.java
+5
-0
OrderGoodsMapper.java
...ain/java/com/clx/performance/mapper/OrderGoodsMapper.java
+5
-0
OrderChildImage.java
.../main/java/com/clx/performance/model/OrderChildImage.java
+3
-2
OrderChildPoundLog.java
...in/java/com/clx/performance/model/OrderChildPoundLog.java
+4
-2
OrderChildPoundAuditServiceImpl.java
...ormance/service/impl/OrderChildPoundAuditServiceImpl.java
+63
-7
OrderChildServiceImpl.java
...m/clx/performance/service/impl/OrderChildServiceImpl.java
+30
-28
OrderChildSqlProvider.java
...om/clx/performance/sqlProvider/OrderChildSqlProvider.java
+1
-1
OrderGoodsSqlProvider.java
...om/clx/performance/sqlProvider/OrderGoodsSqlProvider.java
+32
-0
OneGoodsOrderStrategy.java
.../clx/performance/strategy/impl/OneGoodsOrderStrategy.java
+24
-9
ThreeGoodsOrderStrategy.java
...lx/performance/strategy/impl/ThreeGoodsOrderStrategy.java
+29
-8
TwoGoodsOrderStrategy.java
.../clx/performance/strategy/impl/TwoGoodsOrderStrategy.java
+55
-9
没有找到文件。
performance-api/src/main/java/com/clx/order/params/OrderGoodsChildParams.java
浏览文件 @
f5383368
...
@@ -12,6 +12,9 @@ import java.util.List;
...
@@ -12,6 +12,9 @@ import java.util.List;
@Setter
@Setter
public
class
OrderGoodsChildParams
{
public
class
OrderGoodsChildParams
{
@ApiModelProperty
(
"用车方式 1:平台车辆配货 2:自有车辆配货"
)
private
String
vehicleUsage
;
@MoneyInConvert
@MoneyInConvert
@ApiModelProperty
(
"挂单运费"
)
@ApiModelProperty
(
"挂单运费"
)
...
...
performance-api/src/main/java/com/clx/order/params/OrderGoodsParams.java
浏览文件 @
f5383368
...
@@ -13,6 +13,7 @@ public class OrderGoodsParams {
...
@@ -13,6 +13,7 @@ public class OrderGoodsParams {
@ApiModelProperty
(
"订单编号"
)
@ApiModelProperty
(
"订单编号"
)
@NotBlank
(
message
=
"订单编号不能为空"
)
@NotBlank
(
message
=
"订单编号不能为空"
)
private
String
orderNo
;
private
String
orderNo
;
@Converted
(
isDynamic
=
true
)
@Converted
(
isDynamic
=
true
)
private
List
<
OrderGoodsChildParams
>
orderGoodsChildParams
;
private
List
<
OrderGoodsChildParams
>
orderGoodsChildParams
;
}
}
performance-api/src/main/java/com/clx/performance/enums/PerformanceResultEnum.java
浏览文件 @
f5383368
...
@@ -34,8 +34,9 @@ public enum PerformanceResultEnum implements ResultEnum {
...
@@ -34,8 +34,9 @@ public enum PerformanceResultEnum implements ResultEnum {
ORDER_NO_FOUND
(
1200
,
"货单不存在"
),
ORDER_NO_FOUND
(
1200
,
"货单不存在"
),
ORDER_WEIGHT_LACK
(
1200
,
"剩余数量不足"
),
ORDER_WEIGHT_LACK
(
1201
,
"剩余数量不足"
),
ORDER_INVALID
(
1200
,
"无效的货单"
),
ORDER_INVALID
(
1202
,
"无效的货单"
),
ORDER_INVALID1
(
1203
,
"当前运单的货源已完成或取消,请查看其他货源"
),
ORDER_CHILD_NO_FOUND
(
1301
,
"运单不存在"
),
ORDER_CHILD_NO_FOUND
(
1301
,
"运单不存在"
),
...
@@ -50,14 +51,14 @@ public enum PerformanceResultEnum implements ResultEnum {
...
@@ -50,14 +51,14 @@ public enum PerformanceResultEnum implements ResultEnum {
ORDER_CHILD_DIRECT_ORDER_TRUCK_ERROR
(
1310
,
"请选择定向车辆"
),
ORDER_CHILD_DIRECT_ORDER_TRUCK_ERROR
(
1310
,
"请选择定向车辆"
),
ORDER_CHILD_DIRECT_ORDER_TRUCK_ERROR1
(
1311
,
"请选择非定向车辆"
),
ORDER_CHILD_DIRECT_ORDER_TRUCK_ERROR1
(
1311
,
"请选择非定向车辆"
),
ORDER_CHILD_DIRECT_REJECT_TRUCK_ERROR
(
1312
,
"非定向车辆无法取消"
),
ORDER_CHILD_DIRECT_REJECT_TRUCK_ERROR
(
1312
,
"非定向车辆无法取消"
),
ORDER_CHILD_TRUCK_MODEL_ERROR
(
131
2
,
"请选择合适的车型"
),
ORDER_CHILD_TRUCK_MODEL_ERROR
(
131
3
,
"请选择合适的车型"
),
ORDER_CHILD_LOAD_WEIGHT_ERROR
(
131
2
,
"装货净重超过载重的1.5倍"
),
ORDER_CHILD_LOAD_WEIGHT_ERROR
(
131
4
,
"装货净重超过载重的1.5倍"
),
ORDER_CHILD_UNLOAD_WEIGHT_ERROR
(
131
3
,
"卸货净重超过载重的1.5倍"
),
ORDER_CHILD_UNLOAD_WEIGHT_ERROR
(
131
5
,
"卸货净重超过载重的1.5倍"
),
ORDER_CHILD_LOAD_TIME_ERROR
(
131
4
,
"非装车时间段"
),
ORDER_CHILD_LOAD_TIME_ERROR
(
131
6
,
"非装车时间段"
),
ORDER_CHILD_UNLOAD_TIME_ERROR
(
131
5
,
"非卸车时间段"
),
ORDER_CHILD_UNLOAD_TIME_ERROR
(
131
7
,
"非卸车时间段"
),
ORDER_CHILD_ARRIVE_SEND_ADDRESS_DISTANCE_ERROR
(
131
6
,
"没有到达货源地"
),
ORDER_CHILD_ARRIVE_SEND_ADDRESS_DISTANCE_ERROR
(
131
8
,
"没有到达货源地"
),
ORDER_CHILD_ARRIVE_RECEIVE_ADDRESS_DISTANCE_ERROR
(
131
7
,
"没有到达目的地"
),
ORDER_CHILD_ARRIVE_RECEIVE_ADDRESS_DISTANCE_ERROR
(
131
9
,
"没有到达目的地"
),
;
;
private
final
int
code
;
private
final
int
code
;
...
...
performance-web/src/main/java/com/clx/performance/controller/system/AppServerController.java
0 → 100644
浏览文件 @
f5383368
package
com
.
clx
.
performance
.
controller
.
system
;
import
com.alibaba.cloud.nacos.NacosDiscoveryProperties
;
import
com.alibaba.cloud.nacos.registry.NacosRegistration
;
import
com.alibaba.cloud.nacos.registry.NacosServiceRegistry
;
import
com.msl.common.result.Result
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* 应用服务器控制
*
* @author wanglq
* Date 2022/11/28
* Time 15:43
*/
@RestController
@RequestMapping
(
"/appServer"
)
@Slf4j
public
class
AppServerController
{
@Autowired
private
NacosRegistration
registration
;
@Autowired
private
NacosServiceRegistry
registry
;
/**
* 下线服务
*
* @return
*/
@GetMapping
(
"/deregister"
)
public
Result
<
Void
>
deregister
()
{
NacosDiscoveryProperties
properties
=
registration
.
getNacosDiscoveryProperties
();
String
service
=
properties
.
getService
();
String
group
=
properties
.
getGroup
();
String
clusterName
=
properties
.
getClusterName
();
String
ip
=
properties
.
getIp
();
int
port
=
properties
.
getPort
();
log
.
info
(
"deregister from nacos, serviceName:{}, groupName:{}, clusterName:{}, ip:{}, port:{}"
,
service
,
group
,
clusterName
,
ip
,
port
);
registry
.
deregister
(
registration
);
return
Result
.
ok
();
}
/**
* 应用状态
*
* @return
*/
@GetMapping
(
"/status"
)
public
Result
<
String
>
status
()
{
return
Result
.
ok
(
"up"
);
}
}
performance-web/src/main/java/com/clx/performance/dao/OrderGoodsDao.java
浏览文件 @
f5383368
...
@@ -40,4 +40,6 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
...
@@ -40,4 +40,6 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
IPage
<
OrderGoodsAPPVO
>
exclusiveOrderPageGoodsList
(
OrderGoodsListPageParam
orderGoodsListPageParam
,
List
<
String
>
orderGoodsNoList
);
IPage
<
OrderGoodsAPPVO
>
exclusiveOrderPageGoodsList
(
OrderGoodsListPageParam
orderGoodsListPageParam
,
List
<
String
>
orderGoodsNoList
);
void
updateOrderGoodsStatusByOrderGoodsNo
(
String
orderGoodsNo
,
Integer
code
);
void
updateOrderGoodsStatusByOrderGoodsNo
(
String
orderGoodsNo
,
Integer
code
);
void
saveBatchEntity
(
List
<
OrderGoods
>
orderGoodsList
);
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
浏览文件 @
f5383368
...
@@ -131,7 +131,7 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
...
@@ -131,7 +131,7 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
@Override
@Override
public
long
countOfCancel
(
Long
userNo
,
LocalDateTime
startTime
,
LocalDateTime
endTime
)
{
public
long
countOfCancel
(
Long
userNo
,
LocalDateTime
startTime
,
LocalDateTime
endTime
)
{
return
count
(
lQrWrapper
()
return
count
(
lQrWrapper
()
.
eq
(
OrderChild:
:
get
Child
No
,
userNo
)
.
eq
(
OrderChild:
:
get
User
No
,
userNo
)
.
eq
(
OrderChild:
:
getStatus
,
OrderChildEnum
.
Status
.
DRIVER_CANCEL
.
getCode
())
.
eq
(
OrderChild:
:
getStatus
,
OrderChildEnum
.
Status
.
DRIVER_CANCEL
.
getCode
())
.
ge
(
OrderChild:
:
getCreateTime
,
startTime
)
.
ge
(
OrderChild:
:
getCreateTime
,
startTime
)
.
le
(
OrderChild:
:
getCreateTime
,
endTime
)
.
le
(
OrderChild:
:
getCreateTime
,
endTime
)
...
...
performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildPoundLogDaoImpl.java
浏览文件 @
f5383368
...
@@ -18,6 +18,6 @@ import java.util.List;
...
@@ -18,6 +18,6 @@ import java.util.List;
public
class
OrderChildPoundLogDaoImpl
extends
BaseDaoImpl
<
OrderChildPoundLogMapper
,
OrderChildPoundLog
,
Integer
>
implements
OrderChildPoundLogDao
{
public
class
OrderChildPoundLogDaoImpl
extends
BaseDaoImpl
<
OrderChildPoundLogMapper
,
OrderChildPoundLog
,
Integer
>
implements
OrderChildPoundLogDao
{
@Override
@Override
public
List
<
OrderChildPoundLog
>
getPoundLogList
(
String
childNo
)
{
public
List
<
OrderChildPoundLog
>
getPoundLogList
(
String
childNo
)
{
return
list
(
lQrWrapper
().
eq
(
OrderChildPoundLog:
:
getChildNo
,
childNo
));
return
list
(
lQrWrapper
().
eq
(
OrderChildPoundLog:
:
getChildNo
,
childNo
)
.
orderByDesc
(
OrderChildPoundLog:
:
getId
)
);
}
}
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/OrderGoodsDaoImpl.java
浏览文件 @
f5383368
...
@@ -92,5 +92,10 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
...
@@ -92,5 +92,10 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
baseMapper
.
updateOrderGoodsStatusByOrderGoodsNo
(
orderGoodsNo
,
code
);
baseMapper
.
updateOrderGoodsStatusByOrderGoodsNo
(
orderGoodsNo
,
code
);
}
}
@Override
public
void
saveBatchEntity
(
List
<
OrderGoods
>
orderGoodsList
)
{
baseMapper
.
saveBatchEntity
(
orderGoodsList
);
}
}
}
performance-web/src/main/java/com/clx/performance/mapper/OrderGoodsMapper.java
浏览文件 @
f5383368
...
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
...
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.clx.order.params.PageOrderGoodsListParam
;
import
com.clx.order.params.PageOrderGoodsListParam
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.sqlProvider.OrderGoodsSqlProvider
;
import
com.clx.performance.sqlProvider.OrderGoodsSqlProvider
;
import
com.clx.performance.sqlProvider.OrderGoodsTruckBindSqlProvider
;
import
com.clx.performance.vo.app.OrderGoodsAPPVO
;
import
com.clx.performance.vo.app.OrderGoodsAPPVO
;
import
com.clx.performance.vo.pc.OrderGoodsVO
;
import
com.clx.performance.vo.pc.OrderGoodsVO
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
...
@@ -50,4 +51,8 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
...
@@ -50,4 +51,8 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
" order_goods_status = #{code} "
+
" order_goods_status = #{code} "
+
" where order_goods_no = #{orderGoodsNo}"
)
" where order_goods_no = #{orderGoodsNo}"
)
void
updateOrderGoodsStatusByOrderGoodsNo
(
@Param
(
"orderGoodsNo"
)
String
orderGoodsNo
,
@Param
(
"code"
)
Integer
code
);
void
updateOrderGoodsStatusByOrderGoodsNo
(
@Param
(
"orderGoodsNo"
)
String
orderGoodsNo
,
@Param
(
"code"
)
Integer
code
);
@SelectProvider
(
type
=
OrderGoodsTruckBindSqlProvider
.
class
,
method
=
"saveBatchEntity"
)
void
saveBatchEntity
(
List
<
OrderGoods
>
orderGoodsList
);
}
}
performance-web/src/main/java/com/clx/performance/model/OrderChildImage.java
浏览文件 @
f5383368
...
@@ -10,6 +10,7 @@ import lombok.Getter;
...
@@ -10,6 +10,7 @@ import lombok.Getter;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.Setter
;
import
java.time.LocalDateTime
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.Optional
;
import
java.util.Optional
;
...
@@ -31,8 +32,8 @@ public class OrderChildImage implements HasKey<Integer> {
...
@@ -31,8 +32,8 @@ public class OrderChildImage implements HasKey<Integer> {
private
String
childNo
;
//运单编号
private
String
childNo
;
//运单编号
private
Integer
type
;
//图片类型
private
Integer
type
;
//图片类型
private
String
image
;
//图片地址
private
String
image
;
//图片地址
private
String
createTime
;
//创建时间
private
LocalDateTime
createTime
;
//创建时间
private
String
modifiedTime
;
//修改时间
private
LocalDateTime
modifiedTime
;
//修改时间
@KeyColumn
(
"id"
)
@KeyColumn
(
"id"
)
@Override
@Override
...
...
performance-web/src/main/java/com/clx/performance/model/OrderChildPoundLog.java
浏览文件 @
f5383368
...
@@ -8,6 +8,8 @@ import com.msl.common.model.HasKey;
...
@@ -8,6 +8,8 @@ import com.msl.common.model.HasKey;
import
lombok.*
;
import
lombok.*
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
java.time.LocalDateTime
;
/**
/**
* @Author: aiqinguo
* @Author: aiqinguo
* @Description: 磅单日志表
* @Description: 磅单日志表
...
@@ -32,8 +34,8 @@ public class OrderChildPoundLog implements HasKey<Integer> {
...
@@ -32,8 +34,8 @@ public class OrderChildPoundLog implements HasKey<Integer> {
private
Integer
createType
;
//操作人类型1-货主, 2-承运端,3-司机
private
Integer
createType
;
//操作人类型1-货主, 2-承运端,3-司机
private
Long
createBy
;
//操作人编号
private
Long
createBy
;
//操作人编号
private
String
createName
;
//操作人名称
private
String
createName
;
//操作人名称
private
String
createTime
;
//创建时间
private
LocalDateTime
createTime
;
//创建时间
private
String
modifiedTime
;
//修改时间
private
LocalDateTime
modifiedTime
;
//修改时间
@KeyColumn
(
"id"
)
@KeyColumn
(
"id"
)
@Override
@Override
...
...
performance-web/src/main/java/com/clx/performance/service/impl/OrderChildPoundAuditServiceImpl.java
浏览文件 @
f5383368
...
@@ -2,12 +2,15 @@ package com.clx.performance.service.impl;
...
@@ -2,12 +2,15 @@ package com.clx.performance.service.impl;
import
com.clx.performance.dao.*
;
import
com.clx.performance.dao.*
;
import
com.clx.performance.enums.*
;
import
com.clx.performance.enums.OrderChildLogEnum
;
import
com.clx.performance.enums.OrderChildPoundAuditEnum
;
import
com.clx.performance.enums.OrderGoodsStatusEnum
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.model.*
;
import
com.clx.performance.model.*
;
import
com.clx.performance.param.pc.OrderChildCarrierCancelParam
;
import
com.clx.performance.param.pc.PoundAuditParam
;
import
com.clx.performance.param.pc.PoundAuditParam
;
import
com.clx.performance.service.OrderChildLogService
;
import
com.clx.performance.service.OrderChildLogService
;
import
com.clx.performance.service.OrderChildPoundAuditService
;
import
com.clx.performance.service.OrderChildPoundAuditService
;
import
com.clx.performance.service.OrderGoodsService
;
import
com.clx.performance.vo.pc.OrderChildPoundAuditDetailVO
;
import
com.clx.performance.vo.pc.OrderChildPoundAuditDetailVO
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.user.data.UserSessionData
;
import
com.msl.user.data.UserSessionData
;
...
@@ -17,7 +20,7 @@ import lombok.extern.slf4j.Slf4j;
...
@@ -17,7 +20,7 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.
time.LocalDateTime
;
import
java.
math.BigDecimal
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -43,6 +46,8 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
...
@@ -43,6 +46,8 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
private
final
OrderGoodsDao
orderGoodsDao
;
private
final
OrderGoodsDao
orderGoodsDao
;
private
final
OrderGoodsService
orderGoodsService
;
private
final
OrderChildLogService
orderChildLogService
;
private
final
OrderChildLogService
orderChildLogService
;
...
@@ -77,6 +82,8 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
...
@@ -77,6 +82,8 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
ORDER_CHILD_STATUS_CHANGED
);
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
ORDER_CHILD_STATUS_CHANGED
);
}
}
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderChild
.
getOrderGoodsNo
()).
orElseThrow
(
PerformanceResultEnum
.
ORDER_INVALID
);
//磅单审核对象赋值
//磅单审核对象赋值
poundAuditDetail
.
setStatus
(
param
.
getStatus
());
poundAuditDetail
.
setStatus
(
param
.
getStatus
());
poundAuditDetail
.
setRejectType
(
param
.
getRejectType
());
poundAuditDetail
.
setRejectType
(
param
.
getRejectType
());
...
@@ -98,6 +105,17 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
...
@@ -98,6 +105,17 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
}
}
}
}
BigDecimal
dif
=
orderChild
.
getLoadNet
().
subtract
(
orderChild
.
getWeight
());
orderChild
.
setWeight
(
orderChildWeightCalc
(
orderChild
));
orderChild
.
setFreight
(
orderChildFreightCalc
(
orderChild
));
// 更新装车净重
updateOrderGoodsAmountLoad
(
orderGoods
,
dif
);
//更新运单数据
orderChild
.
setPoundStatus
(
param
.
getStatus
());
orderChildDao
.
updatePoundAuditStatus
(
orderChild
);
//保存磅单审核数据
//保存磅单审核数据
orderChildPoundAuditDao
.
saveEntity
(
poundAuditDetail
);
orderChildPoundAuditDao
.
saveEntity
(
poundAuditDetail
);
...
@@ -108,14 +126,52 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
...
@@ -108,14 +126,52 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
//保存磅单审核日志数据
//保存磅单审核日志数据
orderChildPoundLogDao
.
saveEntity
(
poundLog
);
orderChildPoundLogDao
.
saveEntity
(
poundLog
);
//更新运单数据
orderChild
.
setPoundStatus
(
param
.
getStatus
());
orderChildDao
.
updatePoundAuditStatus
(
orderChild
);
//保存运单日志数据
//保存运单日志数据
orderChildLogService
.
saveOrderChildLog
(
param
.
getChildNo
(),
type
,
OrderChildLogEnum
.
Type
.
getByCode
(
type
).
get
().
getMsg
(),
orderChildLogService
.
saveOrderChildLog
(
param
.
getChildNo
(),
type
,
OrderChildLogEnum
.
Type
.
getByCode
(
type
).
get
().
getMsg
(),
OrderChildLogEnum
.
CreateType
.
PLATFORM
.
getCode
(),
loginUserInfo
.
getUserNo
(),
loginUserInfo
.
getUserName
());
OrderChildLogEnum
.
CreateType
.
PLATFORM
.
getCode
(),
loginUserInfo
.
getUserNo
(),
loginUserInfo
.
getUserName
());
}
}
/**
* 装车补偿
*/
private
void
updateOrderGoodsAmountLoad
(
OrderGoods
orderGoods
,
BigDecimal
dif
){
if
(
dif
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
){
return
;}
int
count
=
orderChildDao
.
countValidByOrderGoodsNo
(
orderGoods
.
getOrderGoodsNo
())-
1
;
Integer
status
=
orderGoods
.
getOrderGoodsStatus
();
if
(
count
==
0
){
status
=
OrderGoodsStatusEnum
.
Status
.
PAYING
.
getCode
();
}
else
{
status
=
OrderGoodsStatusEnum
.
Status
.
GO_TO_SEND
.
getCode
();
}
orderGoodsService
.
updateOrderGoodsReduceWeightAndStatus
(
orderGoods
.
getId
(),
dif
,
status
);
}
/**
* 运单拉运吨数计算
*/
public
BigDecimal
orderChildWeightCalc
(
OrderChild
orderChild
){
if
(
orderChild
.
getLoadNet
()
==
null
)
{
return
orderChild
.
getTruckLoad
();}
else
{
return
orderChild
.
getLoadNet
();}
}
/**
* 运费计算
*/
public
BigDecimal
orderChildFreightCalc
(
OrderChild
orderChild
){
BigDecimal
totalFreight
=
orderChild
.
getFreightPrice
().
multiply
(
orderChild
.
getWeight
());
if
(
orderChild
.
getUnloadNet
()
!=
null
){
BigDecimal
dif
=
orderChild
.
getUnloadNet
().
subtract
(
orderChild
.
getWeight
());
if
(
dif
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
){
totalFreight
.
subtract
(
orderChild
.
getLossPrice
().
multiply
(
dif
));
}
}
return
totalFreight
.
setScale
(
0
,
BigDecimal
.
ROUND_HALF_UP
);
}
}
}
performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
浏览文件 @
f5383368
...
@@ -108,18 +108,18 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -108,18 +108,18 @@ public class OrderChildServiceImpl implements OrderChildService {
// 状态验证
// 状态验证
if
(!
Objects
.
equals
(
orderGoods
.
getOrderGoodsStatus
(),
OrderGoodsStatusEnum
.
Status
.
PAYING
.
getCode
())
if
(!
Objects
.
equals
(
orderGoods
.
getOrderGoodsStatus
(),
OrderGoodsStatusEnum
.
Status
.
PAYING
.
getCode
())
&&
!
Objects
.
equals
(
orderGoods
.
getOrderGoodsStatus
(),
OrderGoodsStatusEnum
.
Status
.
GO_TO_SEND
.
getCode
())){
&&
!
Objects
.
equals
(
orderGoods
.
getOrderGoodsStatus
(),
OrderGoodsStatusEnum
.
Status
.
GO_TO_SEND
.
getCode
())){
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
ORDER_INVALID
);
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
ORDER_INVALID
1
);
}
}
// 车型限制
//
// 车型限制
FeignOrderInfoVO
orderInfo
=
orderService
.
getOrderInfo
(
orderGoods
.
getOrderNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
//
FeignOrderInfoVO orderInfo = orderService.getOrderInfo(orderGoods.getOrderNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
if
(
StringUtils
.
isNotBlank
(
orderInfo
.
getTruckModelList
())){
//
if (StringUtils.isNotBlank(orderInfo.getTruckModelList())){
List
<
JSONObject
>
truckModelList
=
JSON
.
parseArray
(
orderInfo
.
getTruckModelList
(),
JSONObject
.
class
);
//
List<JSONObject> truckModelList = JSON.parseArray(orderInfo.getTruckModelList(), JSONObject.class);
List
<
String
>
truckModelNameList
=
truckModelList
.
stream
().
map
(
item
->
item
.
getString
(
"truckModelName"
)).
collect
(
Collectors
.
toList
());
//
List<String> truckModelNameList = truckModelList.stream().map(item -> item.getString("truckModelName")).collect(Collectors.toList());
if
(!
truckModelNameList
.
contains
(
driverTruckInfo
.
getModel
())){
//
if (!truckModelNameList.contains(driverTruckInfo.getModel())){
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
ORDER_CHILD_TRUCK_MODEL_ERROR
);
//
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_TRUCK_MODEL_ERROR);
}
//
}
}
//
}
// 定向
// 定向
OrderGoodsTruckBind
orderGoodsTruckBind
=
orderGoodsTruckBindDao
.
getValidByOrderGoodsNoAndTruckNo
(
truckNo
).
orNull
();
OrderGoodsTruckBind
orderGoodsTruckBind
=
orderGoodsTruckBindDao
.
getValidByOrderGoodsNoAndTruckNo
(
truckNo
).
orNull
();
...
@@ -383,14 +383,14 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -383,14 +383,14 @@ public class OrderChildServiceImpl implements OrderChildService {
private
void
updateLoadFirst
(
OrderChildLoadParam
param
,
OrderChild
orderChild
,
OrderGoods
orderGoods
)
{
private
void
updateLoadFirst
(
OrderChildLoadParam
param
,
OrderChild
orderChild
,
OrderGoods
orderGoods
)
{
String
childNo
=
param
.
getChildNo
();
String
childNo
=
param
.
getChildNo
();
// 装车时间验证
//
// 装车时间验证
FeignOrderInfoVO
orderInfo
=
orderService
.
getOrderInfo
(
orderChild
.
getOrderNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
//
FeignOrderInfoVO orderInfo = orderService.getOrderInfo(orderChild.getOrderNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
LocalDateTime
now
=
LocalDateTime
.
now
();
//
LocalDateTime now = LocalDateTime.now();
LocalDateTime
beginTime
=
DateUtils
.
parseDateTime
(
DateUtils
.
formatDateTime
(
now
,
"yyyy-MM-dd "
).
get
()
+
orderInfo
.
getLoadBeginTime
()).
get
();
//
LocalDateTime beginTime = DateUtils.parseDateTime(DateUtils.formatDateTime(now, "yyyy-MM-dd ").get() + orderInfo.getLoadBeginTime()).get();
LocalDateTime
endTime
=
DateUtils
.
parseDateTime
(
DateUtils
.
formatDateTime
(
now
,
"yyyy-MM-dd "
).
get
()
+
orderInfo
.
getLoadEndTime
()).
get
();
//
LocalDateTime endTime = DateUtils.parseDateTime(DateUtils.formatDateTime(now, "yyyy-MM-dd ").get() + orderInfo.getLoadEndTime()).get();
if
(
now
.
isBefore
(
beginTime
)
||
now
.
isAfter
(
endTime
)){
//
if (now.isBefore(beginTime) || now.isAfter(endTime)){
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
ORDER_CHILD_LOAD_TIME_ERROR
);
//
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_TIME_ERROR);
}
//
}
List
<
OrderChildImage
>
imageList
=
new
ArrayList
<>();
List
<
OrderChildImage
>
imageList
=
new
ArrayList
<>();
for
(
String
item
:
param
.
getLoadImageList
())
{
for
(
String
item
:
param
.
getLoadImageList
())
{
...
@@ -491,14 +491,14 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -491,14 +491,14 @@ public class OrderChildServiceImpl implements OrderChildService {
private
void
updateUnloadFirst
(
OrderChildUnloadParam
param
,
OrderChild
orderChild
)
{
private
void
updateUnloadFirst
(
OrderChildUnloadParam
param
,
OrderChild
orderChild
)
{
String
childNo
=
param
.
getChildNo
();
String
childNo
=
param
.
getChildNo
();
// 装车时间验证
//
// 装车时间验证
FeignOrderInfoVO
orderInfo
=
orderService
.
getOrderInfo
(
orderChild
.
getOrderNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
//
FeignOrderInfoVO orderInfo = orderService.getOrderInfo(orderChild.getOrderNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
LocalDateTime
now
=
LocalDateTime
.
now
();
//
LocalDateTime now = LocalDateTime.now();
LocalDateTime
beginTime
=
DateUtils
.
parseDateTime
(
DateUtils
.
formatDateTime
(
now
,
"yyyy-MM-dd "
).
get
()
+
orderInfo
.
getUnloadBeginTime
()).
get
();
//
LocalDateTime beginTime = DateUtils.parseDateTime(DateUtils.formatDateTime(now, "yyyy-MM-dd ").get() + orderInfo.getUnloadBeginTime()).get();
LocalDateTime
endTime
=
DateUtils
.
parseDateTime
(
DateUtils
.
formatDateTime
(
now
,
"yyyy-MM-dd "
).
get
()
+
orderInfo
.
getUnloadEndTime
()).
get
();
//
LocalDateTime endTime = DateUtils.parseDateTime(DateUtils.formatDateTime(now, "yyyy-MM-dd ").get() + orderInfo.getUnloadEndTime()).get();
if
(
now
.
isBefore
(
beginTime
)
||
now
.
isAfter
(
endTime
)){
//
if (now.isBefore(beginTime) || now.isAfter(endTime)){
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
ORDER_CHILD_UNLOAD_TIME_ERROR
);
//
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_UNLOAD_TIME_ERROR);
}
//
}
List
<
OrderChildImage
>
imageList
=
new
ArrayList
<>();
List
<
OrderChildImage
>
imageList
=
new
ArrayList
<>();
for
(
String
item
:
param
.
getUnloadImageList
())
{
for
(
String
item
:
param
.
getUnloadImageList
())
{
...
@@ -953,6 +953,8 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -953,6 +953,8 @@ public class OrderChildServiceImpl implements OrderChildService {
* 装车补偿
* 装车补偿
*/
*/
private
void
updateOrderGoodsAmountLoad
(
OrderGoods
orderGoods
,
BigDecimal
dif
){
private
void
updateOrderGoodsAmountLoad
(
OrderGoods
orderGoods
,
BigDecimal
dif
){
if
(
dif
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
){
return
;}
int
count
=
orderChildDao
.
countValidByOrderGoodsNo
(
orderGoods
.
getOrderGoodsNo
())-
1
;
int
count
=
orderChildDao
.
countValidByOrderGoodsNo
(
orderGoods
.
getOrderGoodsNo
())-
1
;
Integer
status
=
orderGoods
.
getOrderGoodsStatus
();
Integer
status
=
orderGoods
.
getOrderGoodsStatus
();
...
@@ -1007,7 +1009,7 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -1007,7 +1009,7 @@ public class OrderChildServiceImpl implements OrderChildService {
*/
*/
private
boolean
cancelCountCheck
(
Long
userNo
){
private
boolean
cancelCountCheck
(
Long
userNo
){
LocalDateTime
startTime
=
DateUtils
.
parseDateTime
(
DateUtils
.
formatDateTime
(
LocalDateTime
.
now
(),
"yyyy-MM-dd"
).
get
()
+
" 00:00:00"
).
get
();
LocalDateTime
startTime
=
DateUtils
.
parseDateTime
(
DateUtils
.
formatDateTime
(
LocalDateTime
.
now
(),
"yyyy-MM-dd"
).
get
()
+
" 00:00:00"
).
get
();
LocalDateTime
endTime
=
DateUtils
.
parseDateTime
(
DateUtils
.
formatDateTime
(
LocalDateTime
.
now
(),
"yyyy-MM-dd"
).
get
()
+
"
00:00:00
"
).
get
();
LocalDateTime
endTime
=
DateUtils
.
parseDateTime
(
DateUtils
.
formatDateTime
(
LocalDateTime
.
now
(),
"yyyy-MM-dd"
).
get
()
+
"
23:59:59
"
).
get
();
long
count
=
orderChildDao
.
countOfCancel
(
userNo
,
startTime
,
endTime
);
long
count
=
orderChildDao
.
countOfCancel
(
userNo
,
startTime
,
endTime
);
...
@@ -1018,7 +1020,7 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -1018,7 +1020,7 @@ public class OrderChildServiceImpl implements OrderChildService {
* 运单拉运吨数计算
* 运单拉运吨数计算
*/
*/
private
BigDecimal
orderChildWeightCalc
(
OrderChild
orderChild
){
private
BigDecimal
orderChildWeightCalc
(
OrderChild
orderChild
){
if
(
orderChild
.
get
Unl
oadNet
()
==
null
)
{
return
orderChild
.
getTruckLoad
();}
if
(
orderChild
.
get
L
oadNet
()
==
null
)
{
return
orderChild
.
getTruckLoad
();}
else
{
return
orderChild
.
getLoadNet
();}
else
{
return
orderChild
.
getLoadNet
();}
}
}
...
...
performance-web/src/main/java/com/clx/performance/sqlProvider/OrderChildSqlProvider.java
浏览文件 @
f5383368
...
@@ -98,7 +98,7 @@ public class OrderChildSqlProvider {
...
@@ -98,7 +98,7 @@ public class OrderChildSqlProvider {
if
(
StringUtils
.
isNotBlank
(
param
.
getReceiveAddress
()))
{
WHERE
(
"receive_address= #{param.receiveAddress}"
);}
if
(
StringUtils
.
isNotBlank
(
param
.
getReceiveAddress
()))
{
WHERE
(
"receive_address= #{param.receiveAddress}"
);}
if
(
Objects
.
nonNull
(
param
.
getStatus
()))
{
WHERE
(
"pound_status = #{param.status}"
);}
if
(
Objects
.
nonNull
(
param
.
getStatus
()))
{
WHERE
(
"pound_status = #{param.status}"
);}
ORDER_BY
(
"
unload_time desc,pound_status
"
);
ORDER_BY
(
"
pound_status,unload_time
"
);
}}.
toString
();
}}.
toString
();
}
}
...
...
performance-web/src/main/java/com/clx/performance/sqlProvider/OrderGoodsSqlProvider.java
浏览文件 @
f5383368
...
@@ -5,6 +5,8 @@ import com.clx.order.params.PageOrderGoodsListParam;
...
@@ -5,6 +5,8 @@ import com.clx.order.params.PageOrderGoodsListParam;
import
com.clx.order.vo.feign.FeignPageOrderVO
;
import
com.clx.order.vo.feign.FeignPageOrderVO
;
import
com.clx.performance.enums.OrderChildEnum
;
import
com.clx.performance.enums.OrderChildEnum
;
import
com.clx.performance.enums.OrderGoodsStatusEnum
;
import
com.clx.performance.enums.OrderGoodsStatusEnum
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.OrderGoodsTruckBind
;
import
com.clx.performance.vo.app.OrderGoodsAPPVO
;
import
com.clx.performance.vo.app.OrderGoodsAPPVO
;
import
com.clx.performance.vo.pc.OrderGoodsVO
;
import
com.clx.performance.vo.pc.OrderGoodsVO
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
@@ -136,4 +138,34 @@ public class OrderGoodsSqlProvider {
...
@@ -136,4 +138,34 @@ public class OrderGoodsSqlProvider {
return
sqlList
.
toString
();
return
sqlList
.
toString
();
}
}
public
String
saveBatchEntity
(
List
<
OrderGoods
>
orderGoodsList
)
{
StringBuffer
sqlList
=
new
StringBuffer
();
sqlList
.
append
(
"INSERT INTO order_goods(extract_weight,residue_transport_weight,already_transport_weight,loss_price,truck_demand,extract_way,\n"
+
"need_truck_num,pending_order_way,pending_order_time,pending_order_freight,last_arrive_send_time,senior_logistics_manager_id,\n"
+
"senior_logistics_manager_name,order_no,order_goods_no,order_goods_status,send_address_id,send_address_shorter,send_longitude,\n"
+
"send_latitude,receive_latitude,receive_longitude,receive_address_id,receive_address_shorter,goods_name,goods_id,create_time,modified_time,\n"
+
"user_name,user_no VALUES "
);
for
(
int
i
=
0
;
i
<
orderGoodsList
.
size
();
i
++)
{
OrderGoods
o
=
orderGoodsList
.
get
(
i
);
sqlList
.
append
(
" ('"
).
append
(
o
.
getExtractWeight
()).
append
(
"','"
).
append
(
o
.
getResidueTransportWeight
()).
append
(
"','"
).
append
(
o
.
getAlreadyTransportWeight
()).
append
(
"','"
)
.
append
(
o
.
getLossPrice
()).
append
(
"','"
).
append
(
o
.
getTruckDemand
()).
append
(
"','"
).
append
(
o
.
getExtractWay
()).
append
(
"','"
)
.
append
(
o
.
getNeedTruckNum
()).
append
(
"','"
).
append
(
o
.
getPendingOrderWay
()).
append
(
"','"
).
append
(
o
.
getPendingOrderTime
()).
append
(
"','"
)
.
append
(
o
.
getPendingOrderFreight
()).
append
(
"','"
).
append
(
o
.
getLastArriveSendTime
()).
append
(
"','"
).
append
(
o
.
getSeniorLogisticsManagerId
()).
append
(
"','"
)
.
append
(
o
.
getSeniorLogisticsManagerName
()).
append
(
"','"
).
append
(
o
.
getOrderNo
()).
append
(
"','"
).
append
(
o
.
getOrderGoodsNo
()).
append
(
"','"
)
.
append
(
o
.
getOrderGoodsStatus
()).
append
(
"','"
).
append
(
o
.
getSendAddressId
()).
append
(
"','"
).
append
(
o
.
getSendAddressShorter
()).
append
(
"','"
)
.
append
(
o
.
getSendLongitude
()).
append
(
"','"
).
append
(
o
.
getReceiveLatitude
()).
append
(
"','"
).
append
(
o
.
getReceiveLongitude
()).
append
(
"','"
)
.
append
(
o
.
getReceiveAddressId
()).
append
(
"','"
).
append
(
o
.
getReceiveAddressShorter
()).
append
(
"','"
).
append
(
o
.
getGoodsName
()).
append
(
"','"
)
.
append
(
o
.
getGoodsId
()).
append
(
"','"
).
append
(
o
.
getCreateTime
()).
append
(
"','"
).
append
(
o
.
getModifiedTime
()).
append
(
"','"
)
.
append
(
"')"
);
if
(
i
<
orderGoodsList
.
size
()
-
1
)
{
sqlList
.
append
(
","
);
}
}
return
sqlList
.
toString
();
}
}
}
performance-web/src/main/java/com/clx/performance/strategy/impl/OneGoodsOrderStrategy.java
浏览文件 @
f5383368
...
@@ -2,12 +2,14 @@ package com.clx.performance.strategy.impl;
...
@@ -2,12 +2,14 @@ package com.clx.performance.strategy.impl;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.param.feign.UpdateOrderInfoResidueWeightParam
;
import
com.clx.order.params.OrderGoodsChildParams
;
import
com.clx.order.params.OrderGoodsChildParams
;
import
com.clx.order.params.OrderGoodsParams
;
import
com.clx.order.params.OrderGoodsParams
;
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.component.OrderGoodsIdGenerate
;
import
com.clx.performance.component.OrderGoodsIdGenerate
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.dao.OrderGoodsDao
;
import
com.clx.performance.dao.OrderGoodsTruckBindDao
;
import
com.clx.performance.dao.OrderGoodsTruckBindDao
;
import
com.clx.performance.enums.*
;
import
com.clx.performance.enums.*
;
import
com.clx.performance.mapper.OrderGoodsMapper
;
import
com.clx.performance.mapper.OrderGoodsMapper
;
...
@@ -25,13 +27,18 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate;
...
@@ -25,13 +27,18 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
/**
* 全部平台
*/
@Component
(
"OneGoodsOrderStrategy"
)
@Component
(
"OneGoodsOrderStrategy"
)
@Slf4j
@Slf4j
public
class
OneGoodsOrderStrategy
implements
GoodsOrderStrategy
,
InitializingBean
{
public
class
OneGoodsOrderStrategy
implements
GoodsOrderStrategy
,
InitializingBean
{
...
@@ -49,7 +56,7 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
...
@@ -49,7 +56,7 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
OrderGoodsService
orderGoodsService
;
OrderGoodsService
orderGoodsService
;
@Autowired
@Autowired
OrderGoods
Mapper
orderGoodsMapper
;
OrderGoods
Dao
orderGoodsDao
;
@Autowired
@Autowired
private
GoodsOrderStrategyContext
goodsOrderStrategyContext
;
private
GoodsOrderStrategyContext
goodsOrderStrategyContext
;
...
@@ -58,6 +65,7 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
...
@@ -58,6 +65,7 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
private
RabbitTemplate
rabbitTemplate
;
private
RabbitTemplate
rabbitTemplate
;
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
LocalDateTime
goodsOrderProcess
(
OrderGoodsParams
orderGoodsParams
,
FeignOrderVO
orderInfo
,
LocalDateTime
now
)
{
public
LocalDateTime
goodsOrderProcess
(
OrderGoodsParams
orderGoodsParams
,
FeignOrderVO
orderInfo
,
LocalDateTime
now
)
{
String
orderNo
=
orderGoodsParams
.
getOrderNo
();
String
orderNo
=
orderGoodsParams
.
getOrderNo
();
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
...
@@ -66,12 +74,14 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
...
@@ -66,12 +74,14 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
List
<
OrderGoodsChildParams
>
childParamsList
=
orderGoodsParams
.
getOrderGoodsChildParams
();
List
<
OrderGoodsChildParams
>
childParamsList
=
orderGoodsParams
.
getOrderGoodsChildParams
();
BigDecimal
childSum
=
childParamsList
.
stream
().
map
(
OrderGoodsChildParams:
:
getExtractWeight
).
reduce
(
BigDecimal
childSum
=
childParamsList
.
stream
().
map
(
OrderGoodsChildParams:
:
getExtractWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
if
(
orderInfo
.
getResidueWeight
().
compareTo
(
childSum
)
<
0
)
{
BigDecimal
residueWeight
=
new
BigDecimal
(
orderInfo
.
getResidueWeight
());
if
(
residueWeight
.
compareTo
(
childSum
)
<
0
)
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前货单总吨数已超订单总吨数"
);
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前货单总吨数已超订单总吨数"
);
}
}
long
beginOrderGoodsId
=
orderGoodsIdGenerate
.
getOrderGoodsId
(
OrderGoodsTypeEnum
.
Status
.
PLATFORM
.
getCode
(),
childParamsList
.
size
());
long
beginOrderGoodsId
=
orderGoodsIdGenerate
.
getOrderGoodsId
(
OrderGoodsTypeEnum
.
Status
.
PLATFORM
.
getCode
(),
childParamsList
.
size
());
Map
<
String
,
LocalDateTime
>
mqMap
=
new
HashMap
<>();
Map
<
String
,
LocalDateTime
>
mqMap
=
new
HashMap
<>();
List
<
OrderGoods
>
orderGoodsList
=
new
LinkedList
<>();
for
(
OrderGoodsChildParams
child
:
childParamsList
)
{
for
(
OrderGoodsChildParams
child
:
childParamsList
)
{
if
(
child
.
getPendingOrderWay
().
equals
(
2
))
{
if
(
child
.
getPendingOrderWay
().
equals
(
2
))
{
if
(
child
.
getNeedTruckNum
()
==
null
)
{
if
(
child
.
getNeedTruckNum
()
==
null
)
{
...
@@ -87,6 +97,7 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
...
@@ -87,6 +97,7 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
//提取吨数
//提取吨数
orderGoods
.
setExtractWeight
(
child
.
getExtractWeight
());
orderGoods
.
setExtractWeight
(
child
.
getExtractWeight
());
orderGoods
.
setResidueTransportWeight
(
child
.
getExtractWeight
());
orderGoods
.
setResidueTransportWeight
(
child
.
getExtractWeight
());
orderGoods
.
setAlreadyTransportWeight
(
BigDecimal
.
ZERO
);
orderGoods
.
setLossPrice
(
orderInfo
.
getLossPrice
());
orderGoods
.
setLossPrice
(
orderInfo
.
getLossPrice
());
orderGoods
.
setTruckDemand
(
TruckDemandEnum
.
TruckType
.
PLATFORM_CAR
.
getCode
());
orderGoods
.
setTruckDemand
(
TruckDemandEnum
.
TruckType
.
PLATFORM_CAR
.
getCode
());
//提取方式 1提取全部 2提取部分
//提取方式 1提取全部 2提取部分
...
@@ -111,8 +122,8 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
...
@@ -111,8 +122,8 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
orderGoods
.
setLastArriveSendTime
(
DateUtils
.
parseDateTime
(
child
.
getLastArriveSendTime
()).
get
());
orderGoods
.
setLastArriveSendTime
(
DateUtils
.
parseDateTime
(
child
.
getLastArriveSendTime
()).
get
());
//定向运单失效时间
//定向运单失效时间
// orderGoods.setDirectionalExpireTime(DateUtils.parseDateTime(child.getDirectionalExpireTime()).get());
// orderGoods.setDirectionalExpireTime(DateUtils.parseDateTime(child.getDirectionalExpireTime()).get());
//
orderGoods.setSeniorLogisticsManagerId(child.getSeniorLogisticsManagerId());
orderGoods
.
setSeniorLogisticsManagerId
(
child
.
getSeniorLogisticsManagerId
());
//
orderGoods.setSeniorLogisticsManagerName(child.getSeniorLogisticsManagerName());
orderGoods
.
setSeniorLogisticsManagerName
(
child
.
getSeniorLogisticsManagerName
());
orderGoods
.
setOrderNo
(
orderNo
);
orderGoods
.
setOrderNo
(
orderNo
);
orderGoods
.
setOrderGoodsNo
(
OrderGoodsTypeEnum
.
Status
.
PLATFORM
.
getCode
()
+
beginOrderGoodsId
);
orderGoods
.
setOrderGoodsNo
(
OrderGoodsTypeEnum
.
Status
.
PLATFORM
.
getCode
()
+
beginOrderGoodsId
);
...
@@ -128,6 +139,7 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
...
@@ -128,6 +139,7 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
orderGoods
.
setReceiveAddressShorter
(
orderInfo
.
getReveiveAddressShorter
());
orderGoods
.
setReceiveAddressShorter
(
orderInfo
.
getReveiveAddressShorter
());
orderGoods
.
setGoodsName
(
orderInfo
.
getGoodsName
());
orderGoods
.
setGoodsName
(
orderInfo
.
getGoodsName
());
orderGoods
.
setGoodsId
(
orderInfo
.
getGoodsNameId
());
orderGoods
.
setCreateTime
(
now
);
orderGoods
.
setCreateTime
(
now
);
orderGoods
.
setModifiedTime
(
now
);
orderGoods
.
setModifiedTime
(
now
);
orderGoods
.
setUserName
(
loginUserInfo
.
getUserName
());
orderGoods
.
setUserName
(
loginUserInfo
.
getUserName
());
...
@@ -137,18 +149,21 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
...
@@ -137,18 +149,21 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
}
}
mqMap
.
put
(
OrderGoodsTypeEnum
.
Status
.
PLATFORM
.
getCode
()
+
beginOrderGoodsId
,
postedTime
);
mqMap
.
put
(
OrderGoodsTypeEnum
.
Status
.
PLATFORM
.
getCode
()
+
beginOrderGoodsId
,
postedTime
);
beginOrderGoodsId
=
beginOrderGoodsId
+
1
;
beginOrderGoodsId
=
beginOrderGoodsId
+
1
;
orderGoods
Mapper
.
insert
(
orderGoods
);
orderGoods
List
.
add
(
orderGoods
);
}
}
BigDecimal
subtract
=
orderInfo
.
getResidueWeight
().
subtract
(
childSum
);
orderGoodsDao
.
saveBatchEntity
(
orderGoodsList
);
log
.
info
(
"更新剩余订单量{}"
,
subtract
);
UpdateOrderInfoResidueWeightParam
param
=
new
UpdateOrderInfoResidueWeightParam
();
orderFeign
.
updateOrderInfoResidueWeight
(
orderInfo
.
getId
(),
subtract
);
param
.
setOrderId
(
orderInfo
.
getId
());
param
.
setUpdateType
(
"1"
);
param
.
setResidueWeight
(
residueWeight
.
subtract
(
childSum
));
orderFeign
.
updateOrderInfoResidueWeight
(
param
);
sendMq
(
mqMap
,
now
);
sendMq
(
mqMap
,
now
);
return
sendLazyTime
;
return
sendLazyTime
;
}
}
@Override
@Override
public
void
afterPropertiesSet
()
throws
Exception
{
public
void
afterPropertiesSet
()
{
goodsOrderStrategyContext
.
strategyContext
.
put
(
TruckDemandEnum
.
TruckType
.
PLATFORM_CAR
.
getCode
(),
this
);
goodsOrderStrategyContext
.
strategyContext
.
put
(
TruckDemandEnum
.
TruckType
.
PLATFORM_CAR
.
getCode
(),
this
);
}
}
...
...
performance-web/src/main/java/com/clx/performance/strategy/impl/ThreeGoodsOrderStrategy.java
浏览文件 @
f5383368
...
@@ -2,12 +2,14 @@ package com.clx.performance.strategy.impl;
...
@@ -2,12 +2,14 @@ package com.clx.performance.strategy.impl;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.param.feign.UpdateOrderInfoResidueWeightParam
;
import
com.clx.order.params.OrderGoodsChildParams
;
import
com.clx.order.params.OrderGoodsChildParams
;
import
com.clx.order.params.OrderGoodsParams
;
import
com.clx.order.params.OrderGoodsParams
;
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.component.OrderGoodsIdGenerate
;
import
com.clx.performance.component.OrderGoodsIdGenerate
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.dao.OrderGoodsDao
;
import
com.clx.performance.dao.OrderGoodsTruckBindDao
;
import
com.clx.performance.dao.OrderGoodsTruckBindDao
;
import
com.clx.performance.enums.OrderGoodsStatusEnum
;
import
com.clx.performance.enums.OrderGoodsStatusEnum
;
import
com.clx.performance.enums.OrderGoodsTypeEnum
;
import
com.clx.performance.enums.OrderGoodsTypeEnum
;
...
@@ -28,13 +30,18 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate;
...
@@ -28,13 +30,18 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
/**
* 自由车辆
*/
@Component
(
"ThreeGoodsOrderStrategy"
)
@Component
(
"ThreeGoodsOrderStrategy"
)
@Slf4j
@Slf4j
public
class
ThreeGoodsOrderStrategy
implements
GoodsOrderStrategy
,
InitializingBean
{
public
class
ThreeGoodsOrderStrategy
implements
GoodsOrderStrategy
,
InitializingBean
{
...
@@ -50,7 +57,7 @@ public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, Initializing
...
@@ -50,7 +57,7 @@ public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, Initializing
OrderGoodsService
orderGoodsService
;
OrderGoodsService
orderGoodsService
;
@Autowired
@Autowired
OrderGoods
Mapper
orderGoodsMapper
;
OrderGoods
Dao
orderGoodsDao
;
@Autowired
@Autowired
private
GoodsOrderStrategyContext
goodsOrderStrategyContext
;
private
GoodsOrderStrategyContext
goodsOrderStrategyContext
;
...
@@ -62,6 +69,7 @@ public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, Initializing
...
@@ -62,6 +69,7 @@ public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, Initializing
private
RabbitTemplate
rabbitTemplate
;
private
RabbitTemplate
rabbitTemplate
;
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
LocalDateTime
goodsOrderProcess
(
OrderGoodsParams
orderGoodsParams
,
FeignOrderVO
orderInfo
,
LocalDateTime
now
)
{
public
LocalDateTime
goodsOrderProcess
(
OrderGoodsParams
orderGoodsParams
,
FeignOrderVO
orderInfo
,
LocalDateTime
now
)
{
String
orderNo
=
orderGoodsParams
.
getOrderNo
();
String
orderNo
=
orderGoodsParams
.
getOrderNo
();
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
...
@@ -70,7 +78,8 @@ public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, Initializing
...
@@ -70,7 +78,8 @@ public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, Initializing
List
<
OrderGoodsChildParams
>
childParamsList
=
orderGoodsParams
.
getOrderGoodsChildParams
();
List
<
OrderGoodsChildParams
>
childParamsList
=
orderGoodsParams
.
getOrderGoodsChildParams
();
BigDecimal
childSum
=
childParamsList
.
stream
().
map
(
OrderGoodsChildParams:
:
getExtractWeight
).
reduce
(
BigDecimal
childSum
=
childParamsList
.
stream
().
map
(
OrderGoodsChildParams:
:
getExtractWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
if
(
orderInfo
.
getResidueWeight
().
compareTo
(
childSum
)
<
0
)
{
BigDecimal
residueWeight
=
new
BigDecimal
(
orderInfo
.
getResidueWeight
());
if
(
residueWeight
.
compareTo
(
childSum
)
<
0
)
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前货单总吨数已超订单总吨数"
);
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前货单总吨数已超订单总吨数"
);
}
}
if
(
childParamsList
.
size
()
>
1
)
{
if
(
childParamsList
.
size
()
>
1
)
{
...
@@ -79,12 +88,16 @@ public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, Initializing
...
@@ -79,12 +88,16 @@ public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, Initializing
Map
<
String
,
LocalDateTime
>
mqMap
=
new
HashMap
<>();
Map
<
String
,
LocalDateTime
>
mqMap
=
new
HashMap
<>();
long
beginOrderGoodsId
=
orderGoodsIdGenerate
.
getOrderGoodsId
(
OrderGoodsTypeEnum
.
Status
.
PLATFORM
.
getCode
(),
childParamsList
.
size
());
long
beginOrderGoodsId
=
orderGoodsIdGenerate
.
getOrderGoodsId
(
OrderGoodsTypeEnum
.
Status
.
PLATFORM
.
getCode
(),
childParamsList
.
size
());
List
<
OrderGoods
>
orderGoodsList
=
new
LinkedList
<>();
for
(
OrderGoodsChildParams
child
:
childParamsList
)
{
for
(
OrderGoodsChildParams
child
:
childParamsList
)
{
OrderGoods
orderGoods
=
new
OrderGoods
();
OrderGoods
orderGoods
=
new
OrderGoods
();
//提取吨数
//提取吨数
orderGoods
.
setExtractWeight
(
child
.
getExtractWeight
());
orderGoods
.
setExtractWeight
(
child
.
getExtractWeight
());
orderGoods
.
setResidueTransportWeight
(
child
.
getExtractWeight
());
orderGoods
.
setResidueTransportWeight
(
child
.
getExtractWeight
());
orderGoods
.
setAlreadyTransportWeight
(
BigDecimal
.
ZERO
);
orderGoods
.
setLossPrice
(
orderInfo
.
getLossPrice
());
orderGoods
.
setLossPrice
(
orderInfo
.
getLossPrice
());
orderGoods
.
setTruckDemand
(
TruckDemandEnum
.
TruckType
.
OWNER_CAR
.
getCode
());
orderGoods
.
setTruckDemand
(
TruckDemandEnum
.
TruckType
.
OWNER_CAR
.
getCode
());
...
@@ -112,11 +125,12 @@ public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, Initializing
...
@@ -112,11 +125,12 @@ public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, Initializing
orderGoods
.
setLastArriveSendTime
(
DateUtils
.
parseDateTime
(
child
.
getLastArriveSendTime
()).
get
());
orderGoods
.
setLastArriveSendTime
(
DateUtils
.
parseDateTime
(
child
.
getLastArriveSendTime
()).
get
());
//定向运单失效时间
//定向运单失效时间
// orderGoods.setDirectionalExpireTime(DateUtils.parseDateTime(child.getDirectionalExpireTime()).get());
// orderGoods.setDirectionalExpireTime(DateUtils.parseDateTime(child.getDirectionalExpireTime()).get());
//
orderGoods.setSeniorLogisticsManagerId(child.getSeniorLogisticsManagerId());
orderGoods
.
setSeniorLogisticsManagerId
(
child
.
getSeniorLogisticsManagerId
());
//
orderGoods.setSeniorLogisticsManagerName(child.getSeniorLogisticsManagerName());
orderGoods
.
setSeniorLogisticsManagerName
(
child
.
getSeniorLogisticsManagerName
());
orderGoods
.
setOrderNo
(
orderNo
);
orderGoods
.
setOrderNo
(
orderNo
);
orderGoods
.
setOrderGoodsNo
(
OrderGoodsTypeEnum
.
Status
.
PLATFORM
.
getCode
()
+
beginOrderGoodsId
);
orderGoods
.
setOrderGoodsNo
(
OrderGoodsTypeEnum
.
Status
.
PLATFORM
.
getCode
()
+
beginOrderGoodsId
);
orderGoods
.
setOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
CREATED
.
getCode
());
orderGoods
.
setOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
CREATED
.
getCode
());
orderGoods
.
setSendAddressId
(
orderInfo
.
getSendAddressId
());
orderGoods
.
setSendAddressId
(
orderInfo
.
getSendAddressId
());
orderGoods
.
setSendAddressShorter
(
orderInfo
.
getSendAddressShorter
());
orderGoods
.
setSendAddressShorter
(
orderInfo
.
getSendAddressShorter
());
...
@@ -128,6 +142,8 @@ public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, Initializing
...
@@ -128,6 +142,8 @@ public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, Initializing
orderGoods
.
setReceiveAddressId
(
orderInfo
.
getReveiveAddressId
());
orderGoods
.
setReceiveAddressId
(
orderInfo
.
getReveiveAddressId
());
orderGoods
.
setReceiveAddressShorter
(
orderInfo
.
getReveiveAddressShorter
());
orderGoods
.
setReceiveAddressShorter
(
orderInfo
.
getReveiveAddressShorter
());
orderGoods
.
setGoodsName
(
orderInfo
.
getGoodsName
());
orderGoods
.
setGoodsName
(
orderInfo
.
getGoodsName
());
orderGoods
.
setGoodsId
(
orderInfo
.
getGoodsNameId
());
orderGoods
.
setCreateTime
(
now
);
orderGoods
.
setCreateTime
(
now
);
orderGoods
.
setModifiedTime
(
now
);
orderGoods
.
setModifiedTime
(
now
);
orderGoods
.
setUserName
(
loginUserInfo
.
getUserName
());
orderGoods
.
setUserName
(
loginUserInfo
.
getUserName
());
...
@@ -139,17 +155,22 @@ public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, Initializing
...
@@ -139,17 +155,22 @@ public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, Initializing
beginOrderGoodsId
=
beginOrderGoodsId
+
1
;
beginOrderGoodsId
=
beginOrderGoodsId
+
1
;
orderGoods
Mapper
.
insert
(
orderGoods
);
orderGoods
List
.
add
(
orderGoods
);
}
}
orderGoodsDao
.
saveBatchEntity
(
orderGoodsList
);
orderFeign
.
updateOrderInfoResidueWeight
(
orderInfo
.
getId
(),
orderInfo
.
getResidueWeight
().
subtract
(
childSum
));
UpdateOrderInfoResidueWeightParam
param
=
new
UpdateOrderInfoResidueWeightParam
();
param
.
setOrderId
(
orderInfo
.
getId
());
param
.
setUpdateType
(
"1"
);
param
.
setResidueWeight
(
residueWeight
.
subtract
(
childSum
));
orderFeign
.
updateOrderInfoResidueWeight
(
param
);
sendMq
(
mqMap
,
now
);
sendMq
(
mqMap
,
now
);
return
sendLazyTime
;
return
sendLazyTime
;
}
}
@Override
@Override
public
void
afterPropertiesSet
()
throws
Exception
{
public
void
afterPropertiesSet
()
{
goodsOrderStrategyContext
.
strategyContext
.
put
(
TruckDemandEnum
.
TruckType
.
OWNER_CAR
.
getCode
(),
this
);
goodsOrderStrategyContext
.
strategyContext
.
put
(
TruckDemandEnum
.
TruckType
.
OWNER_CAR
.
getCode
(),
this
);
}
}
public
void
sendMq
(
Map
<
String
,
LocalDateTime
>
mqMap
,
LocalDateTime
now
)
{
public
void
sendMq
(
Map
<
String
,
LocalDateTime
>
mqMap
,
LocalDateTime
now
)
{
...
...
performance-web/src/main/java/com/clx/performance/strategy/impl/TwoGoodsOrderStrategy.java
浏览文件 @
f5383368
...
@@ -2,12 +2,14 @@ package com.clx.performance.strategy.impl;
...
@@ -2,12 +2,14 @@ package com.clx.performance.strategy.impl;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.param.feign.UpdateOrderInfoResidueWeightParam
;
import
com.clx.order.params.OrderGoodsChildParams
;
import
com.clx.order.params.OrderGoodsChildParams
;
import
com.clx.order.params.OrderGoodsParams
;
import
com.clx.order.params.OrderGoodsParams
;
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.component.OrderGoodsIdGenerate
;
import
com.clx.performance.component.OrderGoodsIdGenerate
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.dao.OrderGoodsDao
;
import
com.clx.performance.dao.OrderGoodsTruckBindDao
;
import
com.clx.performance.dao.OrderGoodsTruckBindDao
;
import
com.clx.performance.enums.OrderGoodsStatusEnum
;
import
com.clx.performance.enums.OrderGoodsStatusEnum
;
import
com.clx.performance.enums.OrderGoodsTypeEnum
;
import
com.clx.performance.enums.OrderGoodsTypeEnum
;
...
@@ -22,19 +24,25 @@ import com.msl.common.utils.DateUtils;
...
@@ -22,19 +24,25 @@ import com.msl.common.utils.DateUtils;
import
com.msl.user.data.UserSessionData
;
import
com.msl.user.data.UserSessionData
;
import
com.msl.user.utils.TokenUtil
;
import
com.msl.user.utils.TokenUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.MessageBuilder
;
import
org.springframework.amqp.core.MessageBuilder
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
/**
* 部分平台
*/
@Component
(
"TwoGoodsOrderStrategy"
)
@Component
(
"TwoGoodsOrderStrategy"
)
@Slf4j
@Slf4j
public
class
TwoGoodsOrderStrategy
implements
GoodsOrderStrategy
,
InitializingBean
{
public
class
TwoGoodsOrderStrategy
implements
GoodsOrderStrategy
,
InitializingBean
{
...
@@ -50,7 +58,7 @@ public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
...
@@ -50,7 +58,7 @@ public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
OrderGoodsService
orderGoodsService
;
OrderGoodsService
orderGoodsService
;
@Autowired
@Autowired
OrderGoods
Mapper
orderGoodsMapper
;
OrderGoods
Dao
orderGoodsDao
;
@Autowired
@Autowired
private
OrderFeign
orderFeign
;
private
OrderFeign
orderFeign
;
...
@@ -63,18 +71,27 @@ public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
...
@@ -63,18 +71,27 @@ public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
private
RabbitTemplate
rabbitTemplate
;
private
RabbitTemplate
rabbitTemplate
;
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
LocalDateTime
goodsOrderProcess
(
OrderGoodsParams
orderGoodsParams
,
FeignOrderVO
orderInfo
,
LocalDateTime
now
)
{
public
LocalDateTime
goodsOrderProcess
(
OrderGoodsParams
orderGoodsParams
,
FeignOrderVO
orderInfo
,
LocalDateTime
now
)
{
String
orderNo
=
orderGoodsParams
.
getOrderNo
();
String
orderNo
=
orderGoodsParams
.
getOrderNo
();
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
LocalDateTime
sendLazyTime
=
null
;
LocalDateTime
sendLazyTime
=
null
;
List
<
OrderGoodsChildParams
>
childParamsList
=
orderGoodsParams
.
getOrderGoodsChildParams
();
List
<
OrderGoodsChildParams
>
childParamsList
=
orderGoodsParams
.
getOrderGoodsChildParams
();
BigDecimal
childSum
=
childParamsList
.
stream
(
).
map
(
OrderGoodsChildParams:
:
getExtractWeight
).
reduce
(
BigDecimal
platSum
=
childParamsList
.
stream
().
filter
(
i
->
"1"
.
equals
(
i
.
getVehicleUsage
())
).
map
(
OrderGoodsChildParams:
:
getExtractWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
if
(
orderInfo
.
getResidueWeight
().
compareTo
(
childSum
)
<
0
)
{
BigDecimal
ownSum
=
childParamsList
.
stream
().
filter
(
i
->
!
"1"
.
equals
(
i
.
getVehicleUsage
())).
map
(
OrderGoodsChildParams:
:
getExtractWeight
).
reduce
(
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前货单总吨数已超订单总吨数"
);
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
BigDecimal
platformCarryWeight
=
new
BigDecimal
(
orderInfo
.
getPlatformCarryWeight
());
if
(
platformCarryWeight
.
compareTo
(
platSum
)
<
0
)
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前平台承运货单总吨数已超平台承运订单总吨数"
);
}
BigDecimal
ownCarryWeight
=
new
BigDecimal
(
orderInfo
.
getOwnCarryWeight
());
if
(
ownCarryWeight
.
compareTo
(
ownSum
)
<
0
)
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前自有承运货单总吨数已超自有承运订单总吨数"
);
}
}
Map
<
String
,
LocalDateTime
>
mqMap
=
new
HashMap
<>();
Map
<
String
,
LocalDateTime
>
mqMap
=
new
HashMap
<>();
List
<
OrderGoods
>
orderGoodsList
=
new
LinkedList
<>();
long
beginOrderGoodsId
=
orderGoodsIdGenerate
.
getOrderGoodsId
(
OrderGoodsTypeEnum
.
Status
.
PLATFORM
.
getCode
(),
childParamsList
.
size
());
long
beginOrderGoodsId
=
orderGoodsIdGenerate
.
getOrderGoodsId
(
OrderGoodsTypeEnum
.
Status
.
PLATFORM
.
getCode
(),
childParamsList
.
size
());
for
(
OrderGoodsChildParams
child
:
childParamsList
)
{
for
(
OrderGoodsChildParams
child
:
childParamsList
)
{
...
@@ -92,6 +109,8 @@ public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
...
@@ -92,6 +109,8 @@ public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
//提取吨数
//提取吨数
orderGoods
.
setExtractWeight
(
child
.
getExtractWeight
());
orderGoods
.
setExtractWeight
(
child
.
getExtractWeight
());
orderGoods
.
setResidueTransportWeight
(
child
.
getExtractWeight
());
orderGoods
.
setResidueTransportWeight
(
child
.
getExtractWeight
());
orderGoods
.
setAlreadyTransportWeight
(
BigDecimal
.
ZERO
);
orderGoods
.
setLossPrice
(
orderInfo
.
getLossPrice
());
orderGoods
.
setLossPrice
(
orderInfo
.
getLossPrice
());
orderGoods
.
setTruckDemand
(
TruckDemandEnum
.
TruckType
.
PLATFORM_ANY_CAR
.
getCode
());
orderGoods
.
setTruckDemand
(
TruckDemandEnum
.
TruckType
.
PLATFORM_ANY_CAR
.
getCode
());
...
@@ -117,11 +136,12 @@ public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
...
@@ -117,11 +136,12 @@ public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
orderGoods
.
setLastArriveSendTime
(
DateUtils
.
parseDateTime
(
child
.
getLastArriveSendTime
()).
get
());
orderGoods
.
setLastArriveSendTime
(
DateUtils
.
parseDateTime
(
child
.
getLastArriveSendTime
()).
get
());
//定向运单失效时间
//定向运单失效时间
// orderGoods.setDirectionalExpireTime(DateUtils.parseDateTime(child.getDirectionalExpireTime()).get());
// orderGoods.setDirectionalExpireTime(DateUtils.parseDateTime(child.getDirectionalExpireTime()).get());
//
orderGoods.setSeniorLogisticsManagerId(child.getSeniorLogisticsManagerId());
orderGoods
.
setSeniorLogisticsManagerId
(
child
.
getSeniorLogisticsManagerId
());
//
orderGoods.setSeniorLogisticsManagerName(child.getSeniorLogisticsManagerName());
orderGoods
.
setSeniorLogisticsManagerName
(
child
.
getSeniorLogisticsManagerName
());
orderGoods
.
setOrderNo
(
orderNo
);
orderGoods
.
setOrderNo
(
orderNo
);
orderGoods
.
setOrderGoodsNo
(
OrderGoodsTypeEnum
.
Status
.
PLATFORM
.
getCode
()
+
beginOrderGoodsId
);
orderGoods
.
setOrderGoodsNo
(
OrderGoodsTypeEnum
.
Status
.
PLATFORM
.
getCode
()
+
beginOrderGoodsId
);
orderGoods
.
setOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
CREATED
.
getCode
());
orderGoods
.
setOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
CREATED
.
getCode
());
orderGoods
.
setSendAddressId
(
orderInfo
.
getSendAddressId
());
orderGoods
.
setSendAddressId
(
orderInfo
.
getSendAddressId
());
orderGoods
.
setSendAddressShorter
(
orderInfo
.
getSendAddressShorter
());
orderGoods
.
setSendAddressShorter
(
orderInfo
.
getSendAddressShorter
());
...
@@ -133,6 +153,8 @@ public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
...
@@ -133,6 +153,8 @@ public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
orderGoods
.
setReceiveAddressId
(
orderInfo
.
getReveiveAddressId
());
orderGoods
.
setReceiveAddressId
(
orderInfo
.
getReveiveAddressId
());
orderGoods
.
setReceiveAddressShorter
(
orderInfo
.
getReveiveAddressShorter
());
orderGoods
.
setReceiveAddressShorter
(
orderInfo
.
getReveiveAddressShorter
());
orderGoods
.
setGoodsName
(
orderInfo
.
getGoodsName
());
orderGoods
.
setGoodsName
(
orderInfo
.
getGoodsName
());
orderGoods
.
setGoodsId
(
orderInfo
.
getGoodsNameId
());
orderGoods
.
setCreateTime
(
now
);
orderGoods
.
setCreateTime
(
now
);
orderGoods
.
setModifiedTime
(
now
);
orderGoods
.
setModifiedTime
(
now
);
orderGoods
.
setUserName
(
loginUserInfo
.
getUserName
());
orderGoods
.
setUserName
(
loginUserInfo
.
getUserName
());
...
@@ -143,16 +165,40 @@ public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
...
@@ -143,16 +165,40 @@ public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
mqMap
.
put
(
OrderGoodsTypeEnum
.
Status
.
PLATFORM
.
getCode
()
+
beginOrderGoodsId
,
postedTime
);
mqMap
.
put
(
OrderGoodsTypeEnum
.
Status
.
PLATFORM
.
getCode
()
+
beginOrderGoodsId
,
postedTime
);
beginOrderGoodsId
=
beginOrderGoodsId
+
1
;
beginOrderGoodsId
=
beginOrderGoodsId
+
1
;
orderGoodsMapper
.
insert
(
orderGoods
);
orderGoodsList
.
add
(
orderGoods
);
}
orderGoodsDao
.
saveBatchEntity
(
orderGoodsList
);
BigDecimal
residueWeight
=
new
BigDecimal
(
orderInfo
.
getResidueWeight
());
if
(
platSum
!=
null
&&
ownSum
!=
null
)
{
UpdateOrderInfoResidueWeightParam
param
=
new
UpdateOrderInfoResidueWeightParam
();
param
.
setOrderId
(
orderInfo
.
getId
());
param
.
setUpdateType
(
"4"
);
param
.
setResidueWeight
(
residueWeight
.
subtract
(
platSum
).
subtract
(
ownSum
));
param
.
setOwnWeight
(
ownSum
);
param
.
setPlatWeight
(
platSum
);
orderFeign
.
updateOrderInfoResidueWeight
(
param
);
}
else
if
(
platSum
!=
null
&&
ownSum
==
null
)
{
UpdateOrderInfoResidueWeightParam
param
=
new
UpdateOrderInfoResidueWeightParam
();
param
.
setOrderId
(
orderInfo
.
getId
());
param
.
setUpdateType
(
"2"
);
param
.
setResidueWeight
(
residueWeight
.
subtract
(
platSum
));
param
.
setPlatWeight
(
platSum
);
orderFeign
.
updateOrderInfoResidueWeight
(
param
);
}
else
if
(
platSum
!=
null
&&
ownSum
==
null
)
{
UpdateOrderInfoResidueWeightParam
param
=
new
UpdateOrderInfoResidueWeightParam
();
param
.
setOrderId
(
orderInfo
.
getId
());
param
.
setUpdateType
(
"3"
);
param
.
setResidueWeight
(
residueWeight
.
subtract
(
ownSum
));
param
.
setOwnWeight
(
ownSum
);
orderFeign
.
updateOrderInfoResidueWeight
(
param
);
}
}
orderFeign
.
updateOrderInfoResidueWeight
(
orderInfo
.
getId
(),
orderInfo
.
getResidueWeight
().
subtract
(
childSum
));
sendMq
(
mqMap
,
now
);
sendMq
(
mqMap
,
now
);
return
sendLazyTime
;
return
sendLazyTime
;
}
}
@Override
@Override
public
void
afterPropertiesSet
()
throws
Exception
{
public
void
afterPropertiesSet
()
{
goodsOrderStrategyContext
.
strategyContext
.
put
(
TruckDemandEnum
.
TruckType
.
PLATFORM_ANY_CAR
.
getCode
(),
this
);
goodsOrderStrategyContext
.
strategyContext
.
put
(
TruckDemandEnum
.
TruckType
.
PLATFORM_ANY_CAR
.
getCode
(),
this
);
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论