Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
takeout_sbk
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
yunpeng.song
takeout_sbk
Commits
6ef9484a
Commit
6ef9484a
authored
Aug 07, 2018
by
wuyang.zou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix bug: after try catch
:simphony 当捕捉到异常后,发送异常请求后会把simphony 挂在 录完商品后
parent
7a67d049
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
114 additions
and
16 deletions
+114
-16
fmTakeout/Control/flowControl.cpp
+73
-8
fmTakeout/Control/flowControl.h
+9
-0
fmTakeout/DTools/printSumBillPosDB.cpp
+3
-5
fmTakeout/DTools/util.cpp
+3
-0
fmTakeout/Model/orderObject.h
+2
-1
fmTakeout/detailForm.cpp
+2
-1
fmTakeout/detailForm.ui
+1
-1
fmTakeout/floatForm.ui
+0
-0
fmTakeout/mainForm.cpp
+21
-0
No files found.
fmTakeout/Control/flowControl.cpp
View file @
6ef9484a
...
...
@@ -1040,13 +1040,11 @@ bool FlowControl::_RefundOrder(const QString &orderId,int reasonCode,const QStri
int
oldOrderStatus
=
orderObject
->
orderStatus
;
orderObject
->
orderStatus
=
orderStatus
;
emit
changeOrderStatus
(
orderObject
,
oldOrderStatus
);
emit
doHideMainShowFloatFrom
();
//退货订单,将此订单添加到simphony 模拟点单列表中;
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _RefundOrder: orderObject->id:%1 , orderObject->orderStatus:%2 --->>>>]"
).
arg
(
orderObject
->
id
).
arg
(
orderObject
->
orderStatus
);
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _RefundOrder: orderObject->id:%1 , orderObject->isCancle:%2 --->>>>]"
).
arg
(
orderObject
->
id
).
arg
(
orderObject
->
isCancle
);
if
(
OrderObject
::
Refunded
==
orderObject
->
orderStatus
)
{
if
(
OrderObject
::
Refunded
==
orderObject
->
orderStatus
&&
OrderObject
::
SimExcept
!=
oldOrderStatus
)
{
//能退单成功就肯定能断言,此订单是没有录过退货的
// 判断Simphony 队列中的订单是否已经存在:不存在(Simphony已经点单完成后会移除)则添加; 如果存在(说明此订单还拟点单),则需要直接向现存在Sim有效队列中的记录移除;没有模
m_OrderEntryMutex
.
lock
();
...
...
@@ -1065,7 +1063,6 @@ bool FlowControl::_RefundOrder(const QString &orderId,int reasonCode,const QStri
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _RefundOrder: _ClickOMSAssignArea --->>>>]"
);
m_OrderEntryMutex
.
unlock
();
_ClickOMSAssignArea
();
//必须执行,否则退货,点击取消后,就不会再提醒了;
}
//m_OrderEntryMutex.unlock(); //必须放开锁的范围;否则会出错;
}
else
{
...
...
@@ -1378,6 +1375,9 @@ bool FlowControl::_ResponseHttpRequest(const QJsonObject &content,QJsonObject &d
case
5
:
//simphony更新订单数据到POS本地数据库以便POS打印小票及汇总单信息 回复
result
=
_ResponseSimphony05Request
(
content
,
data
,
error
);
break
;
case
6
:
//simphony汇报SIM录单异常 回复
result
=
_ResponseSimphony06Request
(
content
,
data
,
error
);
break
;
case
11
:
//FM OMS推送订单
result
=
_ResponseOMS11Request
(
content
,
data
,
error
);
break
;
...
...
@@ -1578,6 +1578,71 @@ bool FlowControl::_ResponseSimphony05Request(const QJsonObject &content, QJsonOb
}
bool
FlowControl
::
_ResponseSimphony06Request
(
const
QJsonObject
&
content
,
QJsonObject
&
data
,
QString
&
error
)
{
QLOG_INFO
()
<<
__FUNCTION__
;
bool
result
=
true
;
if
(
m_bLoginResult
&&
content
.
contains
(
"orderId"
)){
QString
orderId
=
content
[
"orderId"
].
toString
();
QString
simExceptCode
=
content
[
"simExceptCode"
].
toString
();
if
(
!
simExceptCode
.
isEmpty
()
&&!
orderId
.
isEmpty
())
{
OrderObject
*
order_p
=
m_FmOrdersMap
.
value
(
orderId
);
if
(
!
order_p
)
{
QLOG_ERROR
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---%1订单并不存在m_FmOrdersMap[键值对]中;m_FmOrdersMap.size()=%2--->>>>]"
).
arg
(
orderId
).
arg
(
m_FmOrdersMap
.
size
());
error
=
QString
::
fromLocal8Bit
(
"%1订单并不存在m_FmOrdersMap[键值对]中;m_FmOrdersMap.size()=%2"
).
arg
(
orderId
).
arg
(
m_FmOrdersMap
.
size
());
return
false
;
}
// 判断SIM是否存在错误码:
// 0:会在汇报完小票号发送此错误码的请求给插件以便做一些特别事件: 解锁悬浮框;
// 1:SIM录单出异常:转移订单tab至异常单、请求sim的有效订单列表、解锁悬浮框:
int
retProcSimExceptCode
=
0
;
if
(
simExceptCode
.
toInt
())
{
//录单异常//
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---_ResponseSimphony06Request:: OrderId:%1 录单异常--->>>>>]"
).
arg
(
orderId
);
if
(
m_simValidOrdersList
.
contains
(
orderId
))
{
m_OrderEntryMutex
.
lock
();
m_simValidOrdersList
.
removeOne
(
orderId
);
m_OrderEntryMutex
.
unlock
();
int
oldStatus
=
order_p
->
orderStatus
;
order_p
->
orderStatus
=
OrderObject
::
SimExcept
;
emit
changeOrderStatus
(
order_p
,
oldStatus
);
error
=
QString
::
fromLocal8Bit
(
"处理SIM录单异常成功"
);
retProcSimExceptCode
=
1
;
result
=
true
;
}
}
else
{
//录单正常//
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---_ResponseSimphony06Request:: OrderId:%1 录单成功--->>>>>]"
).
arg
(
orderId
);
error
=
QString
::
fromLocal8Bit
(
"处理SIM录单异常成功"
);
retProcSimExceptCode
=
1
;
result
=
true
;
}
//**************** 组装响应SIM录单异常响应********************//
QJsonObject
rObj
,
cObj
;
rObj
.
insert
(
"fm_cmd"
,
""
);
rObj
.
insert
(
"fm_ver"
,
"1.0"
);
cObj
.
insert
(
"pay_id"
,
"002"
);
cObj
.
insert
(
"pay_str"
,
QString
::
fromLocal8Bit
(
"非码外卖"
));
cObj
.
insert
(
"reqResult"
,
retProcSimExceptCode
);
//响应SIM汇报异常结果:[1:处理异常成功;0:处理异常失败]
cObj
.
insert
(
"paid_trans_id"
,
orderId
);
rObj
.
insert
(
"pay_id"
,
cObj
);
data
=
rObj
;
//****************解锁悬浮框********************//
/*
*
*/
}
else
{
result
=
false
;
error
=
QString
::
fromLocal8Bit
(
"订单编号 和 SIM错误码不能为空"
);
}
}
else
{
result
=
false
;
error
=
QString
::
fromLocal8Bit
(
"请求参数错误"
);
}
return
result
;
}
bool
FlowControl
::
_ResponseOMS11Request
(
const
QJsonObject
&
content
,
QJsonObject
&
data
,
QString
&
error
)
{
QLOG_INFO
()
<<
__FUNCTION__
;
...
...
@@ -1704,10 +1769,10 @@ bool FlowControl::_ResponseSimReqFristOrderData(QJsonObject &data, QString &erro
tempSbkAppPayValue
=
orderObject
->
payfmId
;
}
else
if
(
1
==
orderObject
->
payWay
){
tempSbkAppPayType
=
78
;
tempSbkAppPayValue
=
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
'0'
);
tempSbkAppPayValue
=
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
"123456789"
);
}
else
if
(
2
==
orderObject
->
payWay
){
tempSbkAppPayType
=
77
;
tempSbkAppPayValue
=
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
'0'
);
tempSbkAppPayValue
=
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
"123456789"
);
}
else
{
tempSbkAppPayType
=
-
1
;
tempSbkAppPayValue
=
"-1"
;
...
...
@@ -1737,10 +1802,10 @@ bool FlowControl::_ResponseSimReqFristOrderData(QJsonObject &data, QString &erro
cObj
.
insert
(
"orderPayType"
,
tempOrderPayType
);
cObj
.
insert
(
"sbkAppPayType"
,
tempSbkAppPayType
);
cObj
.
insert
(
"sbkAppPayValue"
,
tempSbkAppPayValue
);
cObj
.
insert
(
"orderTransFlowNo"
,
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
"
0
"
)
);
//第三方交易流水号
cObj
.
insert
(
"orderTransFlowNo"
,
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
"
123456789
"
)
);
//第三方交易流水号
cObj
.
insert
(
"packFree"
,
orderObject
->
packageFee
);
cObj
.
insert
(
"deliveryFree"
,
orderObject
->
deliveryPrice
);
cObj
.
insert
(
"waybillId"
,
(
orderObject
->
waybillId
).
length
()
?
orderObject
->
waybillId
:
QString
(
"
0
"
)
);
cObj
.
insert
(
"waybillId"
,
(
orderObject
->
waybillId
).
length
()
?
orderObject
->
waybillId
:
QString
(
"
123456
"
)
);
cObj
.
insert
(
"pos_sale_id"
,
orderObject
->
posCheckNo
);
cObj
.
insert
(
"order_status"
,
orderObject
->
orderStatus
);
//订单的状态
cObj
.
insert
(
"pay_ebcode"
,
orderObject
->
channel
);
...
...
fmTakeout/Control/flowControl.h
View file @
6ef9484a
...
...
@@ -480,6 +480,15 @@ public slots:
**/
bool
_ResponseSimphony05Request
(
const
QJsonObject
&
content
,
QJsonObject
&
data
,
QString
&
error
);
/**
*功能:FM外卖插件为响应Simphony请求[action:06 -> simphony汇报SIM录单异常]准备返回数据
*参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息;
*返回:是否准备成功;
**/
bool
_ResponseSimphony06Request
(
const
QJsonObject
&
content
,
QJsonObject
&
data
,
QString
&
error
);
/**
*功能:FM外卖插件为响应Simphony请求[action:11 -> Sim/POS推送订单到FM插件]准备返回数据
*参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息;
...
...
fmTakeout/DTools/printSumBillPosDB.cpp
View file @
6ef9484a
...
...
@@ -72,14 +72,12 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj,const QString&
query
.
addBindValue
(
orderObj
->
addressDetail
);
// --收货者
query
.
addBindValue
(
orderObj
->
consigneePhone
);
// --收货者-电话
query
.
addBindValue
(
orderObj
->
id
);
// --订单编号
query
.
addBindValue
((
orderObj
->
waybillId
).
length
()
?
orderObj
->
waybillId
:
QString
(
"
0
"
)
);
// --物流编号
query
.
addBindValue
((
orderObj
->
waybillId
).
length
()
?
orderObj
->
waybillId
:
QString
(
"
123456
"
)
);
// --物流编号
query
.
addBindValue
((
orderObj
->
pickupCode
).
length
()
?
orderObj
->
pickupCode
.
toInt
()
:
0
);
// --取餐号;
query
.
addBindValue
(
orderObj
->
riderPhone
);
// --配送者电话
query
.
addBindValue
(
orderObj
->
riderName
);
// -配送者名称
QLOG_INFO
()
<<
QString
(
"[<<<--PrintSumBillPosDB::insertOrderSumBill waybillId length :%1-->>>>]"
).
arg
((
orderObj
->
waybillId
).
length
());
QLOG_INFO
()
<<
QString
(
"[<<<--PrintSumBillPosDB::insertOrderSumBill waybillId :%1-->>>>]"
).
arg
(
orderObj
->
waybillId
);
QLOG_INFO
()
<<
QString
(
"[<<<--PrintSumBillPosDB::insertOrderSumBill waybillId:%1-->>>>]"
).
arg
((
orderObj
->
waybillId
).
length
()
?
orderObj
->
waybillId
:
QString
(
"0"
));
QLOG_INFO
()
<<
QString
(
"[<<<--PrintSumBillPosDB::insertOrderSumBill waybillId:%1-->>>>]"
).
arg
((
orderObj
->
waybillId
).
length
()
?
orderObj
->
waybillId
:
QString
(
"123456"
));
if
(
!
query
.
exec
())
{
...
...
@@ -93,7 +91,7 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj,const QString&
.
arg
(
orderObj
->
lastName
).
arg
(
orderObj
->
customerName
).
arg
(
temp_customerSex
)
.
arg
(
0
).
arg
(
qdaTi
.
addSecs
(
60
*
60
*
8
).
toString
(
"yyyy-MM-dd hh:mm:ss"
)).
arg
(
FlowControl
::
GetInstance
().
_GetCashierId
()).
arg
(
""
).
arg
(
""
)
.
arg
(
orderObj
->
consigneeName
).
arg
(
orderObj
->
addressDetail
).
arg
(
orderObj
->
consigneePhone
).
arg
(
orderObj
->
id
)
.
arg
((
orderObj
->
waybillId
).
length
()
?
orderObj
->
waybillId
:
QString
(
"
0
"
)).
arg
(
orderObj
->
pickupCode
.
length
()
==
0
?
0
:
orderObj
->
pickupCode
.
toInt
()).
arg
(
orderObj
->
riderPhone
).
arg
(
orderObj
->
riderName
);
.
arg
((
orderObj
->
waybillId
).
length
()
?
orderObj
->
waybillId
:
QString
(
"
123456
"
)).
arg
(
orderObj
->
pickupCode
.
length
()
==
0
?
0
:
orderObj
->
pickupCode
.
toInt
()).
arg
(
orderObj
->
riderPhone
).
arg
(
orderObj
->
riderName
);
}
else
{
QLOG_INFO
()
<<
QString
(
"[<<<<---SqlServer Database:Insert OrderId %1 Into customer_info Success--->>>>]"
).
arg
(
orderObj
->
id
);
result
=
true
;
...
...
fmTakeout/DTools/util.cpp
View file @
6ef9484a
...
...
@@ -104,6 +104,9 @@ QString GetOperNameByStatus(int status, bool bRefuse)
}
return
QString
::
fromLocal8Bit
(
OPERATIONNAME_REFUNDORDER
);
break
;
case
50
:
return
QString
::
fromLocal8Bit
(
OPERATIONNAME_REFUNDORDER
);
break
;
default
:
return
"NULL"
;
break
;
...
...
fmTakeout/Model/orderObject.h
View file @
6ef9484a
...
...
@@ -71,7 +71,8 @@ public:
typedef
enum
{
NewOrder
=
2
,
Confirmed
,
Sendout
,
Finished
,
Refunded
,
RequestRefund
,
Locked
=-
1
,
AgreeRefund
=
30
,
RefuseRefund
=
40
/*,Refunded=6 Cancled=6(订单状态是6时,是退单); 退单目前本佳那边不区分*/
,
Locked
=-
1
,
AgreeRefund
=
30
,
RefuseRefund
=
40
,
SimExcept
=
50
/*,Refunded=6 Cancled=6(订单状态是6时,是退单); 退单目前本佳那边不区分*/
}
OrderStatus
;
/* 功能:从Json对象初获取数据
...
...
fmTakeout/detailForm.cpp
View file @
6ef9484a
...
...
@@ -46,6 +46,7 @@ void DetailForm::InitData(OrderObject *orderObject)
//TODO
ui
->
detailLab4
->
setText
(
Penny2Dollar
(
orderObject
->
productPrice
));
ui
->
detailLab6
->
setText
(
orderObject
->
needInvoice
?
orderObject
->
invoiceTitle
:
QString
::
fromLocal8Bit
(
"不需要发票"
));
ui
->
detailLab7
->
setText
(
orderObject
->
msr_no
.
length
()
?
orderObject
->
msr_no
:
orderObject
->
customerId
);
// MSR_NO
ui
->
detailLab5
->
setText
(
QString
(
"[%1]"
).
arg
(
orderObject
->
memo
));
for
(
int
i
=
0
;
i
<
orderObject
->
proList
.
count
();
i
++
)
{
...
...
@@ -73,7 +74,7 @@ void DetailForm::InitData(OrderObject *orderObject)
ui
->
detailBtn2
->
setText
(
GetOperNameByStatus
(
orderObject
->
orderStatus
,
true
));
ui
->
detailBtn2
->
setProperty
(
"operation"
,
GetOperByStatus
(
orderObject
->
orderStatus
,
true
));
ui
->
detailBtn2
->
setProperty
(
"orderId"
,
orderObject
->
id
);
if
(
orderObject
->
orderStatus
!=
1
&&
orderObject
->
orderStatus
!=
20
&&
orderObject
->
orderStatus
!=
2
&&
orderObject
->
orderStatus
!=
3
&&
orderObject
->
orderStatus
!=
4
)
if
(
orderObject
->
orderStatus
!=
1
&&
orderObject
->
orderStatus
!=
20
&&
orderObject
->
orderStatus
!=
2
&&
orderObject
->
orderStatus
!=
3
&&
orderObject
->
orderStatus
!=
4
&&
orderObject
->
orderStatus
!=
OrderObject
::
SimExcept
)
{
ui
->
detailBtn2
->
hide
();
}
...
...
fmTakeout/detailForm.ui
View file @
6ef9484a
...
...
@@ -725,7 +725,7 @@
</size>
</property>
<property name="text">
<string
/
>
<string
>MSR卡号:</string
>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
...
...
fmTakeout/floatForm.ui
View file @
6ef9484a
This diff is collapsed.
Click to expand it.
fmTakeout/mainForm.cpp
View file @
6ef9484a
...
...
@@ -474,6 +474,27 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
table
->
setCellWidget
(
0
,
6
,
pWdg
);
// 操作按钮
//connect(pBtn, &QPushButton::clicked, this, &MainForm::onMainProcBtnClicked);
}
// SIM录外卖订单出现异常的订单;
if
(
OrderObject
::
SimExcept
==
orderObject
->
orderStatus
)
{
qDebug
()
<<
table
->
objectName
()
<<
"------"
;
QWidget
*
pWdg
=
new
QWidget
(
table
);
QHBoxLayout
*
hLayout
=
new
QHBoxLayout
(
pWdg
);
QPushButton
*
pBtn
=
new
QPushButton
(
pWdg
);
pBtn
->
setFixedSize
(
90
,
30
);
pBtn
->
setFocusPolicy
(
Qt
::
NoFocus
);
pBtn
->
setObjectName
(
"mainProcBtn"
);
pBtn
->
setProperty
(
"orderId"
,
orderObject
->
id
);
//pBtn->setProperty("operation", table->property("operation").toString());
pBtn
->
setText
(
QString
::
fromLocal8Bit
(
"POS录单失败"
));
pBtn
->
setDisabled
(
true
);
hLayout
->
addWidget
(
pBtn
);
hLayout
->
setMargin
(
0
);
pWdg
->
setLayout
(
hLayout
);
table
->
setCellWidget
(
0
,
6
,
pWdg
);
// 操作按钮
//connect(pBtn, &QPushButton::clicked, this, &MainForm::onMainProcBtnClicked);
}
// 已下单待支付;
if
(
1
==
orderObject
->
orderStatus
)
{
...
...
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