Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
order-group-application
order-group
Commits
8745d501
Commit
8745d501
authored
Mar 28, 2022
by
周晓航
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【【POS】业务设置】
https://www.tapd.cn/43862731/prong/stories/view/1143862731001044130
parent
f9cd22d5
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
135 additions
and
15 deletions
+135
-15
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/ExpandFieldsDTO.java
+6
-1
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/PeakShipmentDTO.java
+29
-0
order-management/src/main/java/cn/freemud/management/entities/dto/request/order/OrderManagerRequest.java
+5
-0
order-management/src/main/java/cn/freemud/management/service/handle/DeliveryHandle.java
+82
-14
order-management/src/main/java/cn/freemud/management/service/handle/SaasOrderHandle.java
+4
-0
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
+9
-0
No files found.
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/ExpandFieldsDTO.java
View file @
8745d501
...
@@ -14,7 +14,7 @@ import java.util.List;
...
@@ -14,7 +14,7 @@ import java.util.List;
public
class
ExpandFieldsDTO
{
public
class
ExpandFieldsDTO
{
/**
/**
*
是 or 开启
* 是 or 开启
*/
*/
public
static
String
STR_TRUE
=
"1"
;
public
static
String
STR_TRUE
=
"1"
;
...
@@ -75,4 +75,9 @@ public class ExpandFieldsDTO {
...
@@ -75,4 +75,9 @@ public class ExpandFieldsDTO {
*/
*/
private
List
<
DispatchConfig
>
dispatchConfig
;
private
List
<
DispatchConfig
>
dispatchConfig
;
/**
* 高峰时段出餐时长配置
*/
private
List
<
PeakShipmentDTO
>
peakShipment
;
}
}
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/PeakShipmentDTO.java
0 → 100644
View file @
8745d501
package
cn
.
freemud
.
management
.
entities
.
dto
.
request
.
console
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/3/28 10:37
* @description : 高峰期时间 订单流转设置
*/
@Data
public
class
PeakShipmentDTO
{
/**
* 开始时间 18:13
*/
private
String
startTime
;
/**
* 结束时间 19:13
*/
private
String
endTime
;
/**
* 出餐时长 15
*/
private
String
costMinute
;
}
order-management/src/main/java/cn/freemud/management/entities/dto/request/order/OrderManagerRequest.java
View file @
8745d501
...
@@ -73,4 +73,9 @@ public class OrderManagerRequest {
...
@@ -73,4 +73,9 @@ public class OrderManagerRequest {
* 半自动派单时间 (分钟)
* 半自动派单时间 (分钟)
*/
*/
private
Integer
dispatchTimeout
;
private
Integer
dispatchTimeout
;
/**
* 内部使用字段, 订单流转时间设置
*/
private
Integer
timeout
;
}
}
order-management/src/main/java/cn/freemud/management/service/handle/DeliveryHandle.java
View file @
8745d501
...
@@ -75,11 +75,12 @@ public class DeliveryHandle {
...
@@ -75,11 +75,12 @@ public class DeliveryHandle {
/**
/**
* 创建配送单
* 创建配送单
* 【ID1036616】 【野萃山】【万象&小助手】支持门店手动创建运单,通知骑手到店取餐
* 【ID1036616】 【野萃山】【万象&小助手】支持门店手动创建运单,通知骑手到店取餐
*
* @param orderBean
* @param orderBean
* @param request
* @param request
* @return
* @return
*/
*/
public
BaseResponse
createDelivery
(
OrderBeanV1
orderBean
,
OrderManagerRequest
request
,
ConsoleResponseDTO
<
BizDTO
>
storeInfo
,
boolean
idAutoCreate
)
{
public
BaseResponse
createDelivery
(
OrderBeanV1
orderBean
,
OrderManagerRequest
request
,
ConsoleResponseDTO
<
BizDTO
>
storeInfo
,
boolean
idAutoCreate
)
{
if
(
storeInfo
==
null
||
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
storeInfo
.
getStatusCode
())
||
storeInfo
.
getBizVO
()
==
null
||
storeInfo
.
getBizVO
().
getStoreInfo
()
==
null
)
{
if
(
storeInfo
==
null
||
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
storeInfo
.
getStatusCode
())
||
storeInfo
.
getBizVO
()
==
null
||
storeInfo
.
getBizVO
().
getStoreInfo
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
STORE_INFO_NOT_FOUND
);
return
ResponseUtil
.
error
(
ResponseResult
.
STORE_INFO_NOT_FOUND
);
}
}
...
@@ -90,7 +91,7 @@ public class DeliveryHandle {
...
@@ -90,7 +91,7 @@ public class DeliveryHandle {
String
dispatchType
=
expandFields
.
getDispatchType
();
String
dispatchType
=
expandFields
.
getDispatchType
();
// 1. 手动派单
// 1. 手动派单
if
(
Objects
.
equals
(
dispatchType
,
"1"
))
{
if
(
Objects
.
equals
(
dispatchType
,
"1"
))
{
ApiLog
.
printLog
(
"oms 门店自动创建运单->"
,
JSON
.
toJSONString
(
orderBean
.
getOid
()),
null
,
null
);
ApiLog
.
printLog
(
"oms 门店自动创建运单->"
,
JSON
.
toJSONString
(
orderBean
.
getOid
()),
null
,
null
);
return
ResponseUtil
.
success
();
return
ResponseUtil
.
success
();
}
}
}
}
...
@@ -139,7 +140,7 @@ public class DeliveryHandle {
...
@@ -139,7 +140,7 @@ public class DeliveryHandle {
//商家退款取消配送
//商家退款取消配送
cancelDeliveryOrderRequestDto
.
setOrderCancelDescription
(
"顾客取消订单"
);
cancelDeliveryOrderRequestDto
.
setOrderCancelDescription
(
"顾客取消订单"
);
DeliveryResponseDto
deliveryResponse
=
deliveryService
.
deliveryOrderCancel
(
cancelDeliveryOrderRequestDto
,
LogThreadLocal
.
getTrackingNo
());
DeliveryResponseDto
deliveryResponse
=
deliveryService
.
deliveryOrderCancel
(
cancelDeliveryOrderRequestDto
,
LogThreadLocal
.
getTrackingNo
());
if
(
deliveryResponse
==
null
||
!
StringUtils
.
equals
(
ResponseResult
.
SUCCESS
.
getCode
(),
deliveryResponse
.
getCode
()
+
""
))
{
if
(
deliveryResponse
==
null
||
!
StringUtils
.
equals
(
ResponseResult
.
SUCCESS
.
getCode
(),
deliveryResponse
.
getCode
()
+
""
))
{
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_CANCEL_ORDER_ERROR
);
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_CANCEL_ORDER_ERROR
);
}
}
}
}
...
@@ -154,12 +155,12 @@ public class DeliveryHandle {
...
@@ -154,12 +155,12 @@ public class DeliveryHandle {
*/
*/
public
BaseResponse
haltedDelivery
(
OrderBeanV1
data
)
{
public
BaseResponse
haltedDelivery
(
OrderBeanV1
data
)
{
if
(
data
.
getOrderType
()
==
1
&&
data
.
getAddInfo
()
!=
null
&&
ObjectUtils
.
equals
(
data
.
getAddInfo
().
getDeliveryType
(),
THIRD
))
{
if
(
data
.
getOrderType
()
==
1
&&
data
.
getAddInfo
()
!=
null
&&
ObjectUtils
.
equals
(
data
.
getAddInfo
().
getDeliveryType
(),
THIRD
))
{
DeliveryOrderHaltedRequest
deliveryOrderHaltedRequest
=
new
DeliveryOrderHaltedRequest
();
DeliveryOrderHaltedRequest
deliveryOrderHaltedRequest
=
new
DeliveryOrderHaltedRequest
();
deliveryOrderHaltedRequest
.
setHaltedReason
(
"foe入机失败"
);
deliveryOrderHaltedRequest
.
setHaltedReason
(
"foe入机失败"
);
deliveryOrderHaltedRequest
.
setOrderKey
(
data
.
getOid
());
deliveryOrderHaltedRequest
.
setOrderKey
(
data
.
getOid
());
deliveryOrderHaltedRequest
.
setStoreId
(
data
.
getShopId
());
deliveryOrderHaltedRequest
.
setStoreId
(
data
.
getShopId
());
DeliveryResponseDto
deliveryResponse
=
deliveryMCCafeClient
.
halted
(
deliveryOrderHaltedRequest
);
DeliveryResponseDto
deliveryResponse
=
deliveryMCCafeClient
.
halted
(
deliveryOrderHaltedRequest
);
if
(
deliveryResponse
==
null
||
!
StringUtils
.
equals
(
ResponseResult
.
SUCCESS
.
getCode
(),
deliveryResponse
.
getCode
()
+
""
))
{
if
(
deliveryResponse
==
null
||
!
StringUtils
.
equals
(
ResponseResult
.
SUCCESS
.
getCode
(),
deliveryResponse
.
getCode
()
+
""
))
{
emailAlertService
.
sendEmailAlert
(
"配送单停单失败"
,
String
.
format
(
"request:%s \r\nresponse:%s"
,
JSONObject
.
toJSONString
(
deliveryOrderHaltedRequest
),
JSONObject
.
toJSONString
(
deliveryResponse
)));
emailAlertService
.
sendEmailAlert
(
"配送单停单失败"
,
String
.
format
(
"request:%s \r\nresponse:%s"
,
JSONObject
.
toJSONString
(
deliveryOrderHaltedRequest
),
JSONObject
.
toJSONString
(
deliveryResponse
)));
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_ORDER_STOP_ERROR
);
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_ORDER_STOP_ERROR
);
}
}
...
@@ -168,8 +169,6 @@ public class DeliveryHandle {
...
@@ -168,8 +169,6 @@ public class DeliveryHandle {
}
}
/**
/**
* 校验是否要创建配送单
* 校验是否要创建配送单
*
*
...
@@ -184,13 +183,13 @@ public class DeliveryHandle {
...
@@ -184,13 +183,13 @@ public class DeliveryHandle {
//订单来源异常
//订单来源异常
boolean
sourceCheck
=
false
;
boolean
sourceCheck
=
false
;
String
[]
supportSource
=
supportOrderSource
.
split
(
","
);
// OrderSourceType.SAAS.getCode()
String
[]
supportSource
=
supportOrderSource
.
split
(
","
);
// OrderSourceType.SAAS.getCode()
for
(
String
source
:
supportSource
){
for
(
String
source
:
supportSource
)
{
if
(
orderBean
.
getSource
().
equalsIgnoreCase
(
source
))
{
if
(
orderBean
.
getSource
().
equalsIgnoreCase
(
source
))
{
sourceCheck
=
true
;
sourceCheck
=
true
;
break
;
break
;
}
}
}
}
if
(!
sourceCheck
){
if
(!
sourceCheck
)
{
return
false
;
return
false
;
}
}
//配送信息为空,则不创建配送单
//配送信息为空,则不创建配送单
...
@@ -207,6 +206,7 @@ public class DeliveryHandle {
...
@@ -207,6 +206,7 @@ public class DeliveryHandle {
/**
/**
* 半自动派单 获取时间区间范围
* 半自动派单 获取时间区间范围
* 对外暴露的方法
* 对外暴露的方法
*
* @param dispatchConfig
* @param dispatchConfig
* @return
* @return
*/
*/
...
@@ -235,13 +235,13 @@ public class DeliveryHandle {
...
@@ -235,13 +235,13 @@ public class DeliveryHandle {
* @param currentDate
* @param currentDate
* @param startTimeStr 时间格式 HH:mm:ss
* @param startTimeStr 时间格式 HH:mm:ss
* @param endTimeStr 时间格式 HH:mm:ss
* @param endTimeStr 时间格式 HH:mm:ss
* @param formatTime 自定义时间格式
* @return
* @return
*/
*/
p
rivate
Boolean
timeScoreVerify
(
Date
currentDate
,
String
startTimeStr
,
String
endTimeStr
)
{
p
ublic
Boolean
timeScoreVerify
(
Date
currentDate
,
String
startTimeStr
,
String
endTimeStr
,
String
formatTime
)
{
if
(
StringUtils
.
isEmpty
(
startTimeStr
)
||
StringUtils
.
isEmpty
(
endTimeStr
))
{
if
(
StringUtils
.
isEmpty
(
startTimeStr
)
||
StringUtils
.
isEmpty
(
endTimeStr
)
||
StringUtils
.
isEmpty
(
formatTime
)
)
{
return
Boolean
.
FALSE
;
return
Boolean
.
FALSE
;
}
}
String
formatTime
=
DateUtil
.
FORMAT_time
;
Date
nowTime
=
DateUtil
.
convert2Date
(
currentDate
,
formatTime
);
Date
nowTime
=
DateUtil
.
convert2Date
(
currentDate
,
formatTime
);
Date
startTime
=
DateUtil
.
convert2Date
(
startTimeStr
,
formatTime
);
Date
startTime
=
DateUtil
.
convert2Date
(
startTimeStr
,
formatTime
);
Date
endTime
=
DateUtil
.
convert2Date
(
endTimeStr
,
formatTime
);
Date
endTime
=
DateUtil
.
convert2Date
(
endTimeStr
,
formatTime
);
...
@@ -269,6 +269,18 @@ public class DeliveryHandle {
...
@@ -269,6 +269,18 @@ public class DeliveryHandle {
}
}
/**
/**
* 校验时间 是否命中范围
*
* @param currentDate
* @param startTimeStr 时间格式 HH:mm:ss
* @param endTimeStr 时间格式 HH:mm:ss
* @return
*/
private
Boolean
timeScoreVerify
(
Date
currentDate
,
String
startTimeStr
,
String
endTimeStr
)
{
return
this
.
timeScoreVerify
(
currentDate
,
startTimeStr
,
endTimeStr
,
DateUtil
.
FORMAT_time
);
}
/**
* 获取配置
* 获取配置
*
*
* @param currentDate
* @param currentDate
...
@@ -322,11 +334,67 @@ public class DeliveryHandle {
...
@@ -322,11 +334,67 @@ public class DeliveryHandle {
}
}
/**
/**
* 是否商家自配送
* 是否商家自配送
*
* @param deliveryType
* @param deliveryType
* @return true 自配送
* @return true 自配送
*/
*/
public
boolean
deliveryTypeSelf
(
String
deliveryType
){
public
boolean
deliveryTypeSelf
(
String
deliveryType
)
{
return
delivery_type_self
.
equalsIgnoreCase
(
deliveryType
);
return
delivery_type_self
.
equalsIgnoreCase
(
deliveryType
);
}
}
/**
* 到店订单,出餐模式设置的 出餐时长
*
* @param businessInfo
* @return
*/
public
Integer
getPeakTimeDelivery
(
BusinessInfoDTO
businessInfo
)
{
Integer
peakTimeDelivery
=
this
.
getPeakTimeDelivery
(
businessInfo
.
getExpandFields
());
if
(
Objects
.
nonNull
(
peakTimeDelivery
))
{
return
peakTimeDelivery
;
}
// 到店订单,门店接单 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟
Integer
takeOrderWorkflowFinishTime
=
businessInfo
.
getAutoSelfmentionTakeOrderWorkflowFinishTime
();
if
(
Objects
.
isNull
(
takeOrderWorkflowFinishTime
))
{
return
null
;
}
switch
(
takeOrderWorkflowFinishTime
)
{
case
1
:
return
120
;
case
2
:
return
60
;
case
3
:
return
30
;
case
4
:
return
15
;
case
5
:
return
10
;
case
6
:
return
5
;
default
:
return
null
;
}
}
/**
* 获取高峰时期的配置时间 是否命中
*
* @param expandFields
* @return null标识没有命中高峰期配置时间
*/
private
Integer
getPeakTimeDelivery
(
ExpandFieldsDTO
expandFields
)
{
List
<
PeakShipmentDTO
>
peakShipmentDTOList
=
expandFields
.
getPeakShipment
();
if
(
CollectionUtils
.
isEmpty
(
peakShipmentDTOList
))
{
return
null
;
}
Date
currentDate
=
new
Date
();
for
(
PeakShipmentDTO
peakShipmentDTO
:
peakShipmentDTOList
)
{
Boolean
isHit
=
this
.
timeScoreVerify
(
currentDate
,
peakShipmentDTO
.
getStartTime
(),
peakShipmentDTO
.
getEndTime
(),
"HH:mm"
);
if
(
isHit
)
{
return
Integer
.
valueOf
(
peakShipmentDTO
.
getCostMinute
());
}
}
return
null
;
}
}
}
order-management/src/main/java/cn/freemud/management/service/handle/SaasOrderHandle.java
View file @
8745d501
...
@@ -32,6 +32,7 @@ import org.springframework.beans.factory.annotation.Value;
...
@@ -32,6 +32,7 @@ import org.springframework.beans.factory.annotation.Value;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.UUID
;
import
java.util.UUID
;
//import com.freemud.application.sdk.api.log.LogThreadLocal;
//import com.freemud.application.sdk.api.log.LogThreadLocal;
...
@@ -78,6 +79,9 @@ public class SaasOrderHandle {
...
@@ -78,6 +79,9 @@ public class SaasOrderHandle {
BaseQueryOrderRequest
orderConfirmRequest
=
orderSdkAdapter
.
getOrderConfirmRequest
(
request
.
getOperator
(),
orderBean
,
dto
);
BaseQueryOrderRequest
orderConfirmRequest
=
orderSdkAdapter
.
getOrderConfirmRequest
(
request
.
getOperator
(),
orderBean
,
dto
);
orderSdkAdapter
.
convert2wmDeliveryTimeOut
(
orderConfirmRequest
,
this
.
wmDeliveryTimeOut
);
orderSdkAdapter
.
convert2wmDeliveryTimeOut
(
orderConfirmRequest
,
this
.
wmDeliveryTimeOut
);
if
(
Objects
.
isNull
(
request
.
getTimeout
()))
{
orderConfirmRequest
.
setTimeout
(
request
.
getTimeout
());
}
//合阔pos 商户订单状态不自动扭转
//合阔pos 商户订单状态不自动扭转
// 2021-07-07 合阔自动
// 2021-07-07 合阔自动
// if (CollectionUtils.isNotEmpty(notAutomaticTwistPartnerId) && notAutomaticTwistPartnerId.contains(orderBean.getCompanyId())) {
// if (CollectionUtils.isNotEmpty(notAutomaticTwistPartnerId) && notAutomaticTwistPartnerId.contains(orderBean.getCompanyId())) {
...
...
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
View file @
8745d501
...
@@ -117,6 +117,15 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -117,6 +117,15 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
request
.
setDispatchTimeout
(
deliveryHandle
.
getDispatchTimeout
(
expandFields
.
getDispatchConfig
()));
request
.
setDispatchTimeout
(
deliveryHandle
.
getDispatchTimeout
(
expandFields
.
getDispatchConfig
()));
idAutoCreate
=
true
;
idAutoCreate
=
true
;
}
}
// fisherman 到店,自提 出餐时间->订单接单状态流转 timeout字段维护 【【POS】业务设置】 https://www.tapd.cn/43862731/prong/stories/view/1143862731001044130
if
(
Objects
.
nonNull
(
bizVO
)
&&
Objects
.
nonNull
(
bizVO
.
getBusinessInfo
()))
{
// 必须是 到店订单
boolean
eatIn
=
Objects
.
equals
(
orderBean
.
getNewOrderType
(),
OrderType
.
GENERAL_DINE_IN
.
getIndex
());
if
(
eatIn
)
{
BusinessInfoDTO
businessInfo
=
bizVO
.
getBusinessInfo
();
request
.
setTimeout
(
deliveryHandle
.
getPeakTimeDelivery
(
businessInfo
));
}
}
}
}
// 订单接单
// 订单接单
BaseResponse
baseResponse
=
saasOrderHandle
.
orderConfirm
(
request
,
orderBean
);
BaseResponse
baseResponse
=
saasOrderHandle
.
orderConfirm
(
request
,
orderBean
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment