Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fmtakeout
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
李定达
fmtakeout
Commits
ed872127
Commit
ed872127
authored
May 07, 2019
by
xiaoqing.gu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加入机功能(书亦烧仙草版本)1、入机时新增平台 2、入机三张表 3、入机失败落本地库
parent
75083656
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
669 additions
and
4 deletions
+669
-4
takeout/base/DB/fm_database.cpp
+2
-0
takeout/control/orderentrywork.cpp
+506
-0
takeout/control/orderentrywork.h
+109
-0
takeout/control/ordergetwork.cpp
+4
-0
takeout/control/orderlocalizework.h
+1
-1
takeout/main.cpp
+5
-0
takeout/model/productObject.cpp
+10
-0
takeout/model/productObject.h
+5
-0
takeout/preDefine.h
+22
-0
takeout/takeout.pro
+5
-3
No files found.
takeout/base/DB/fm_database.cpp
View file @
ed872127
...
@@ -100,6 +100,7 @@ bool FMDataBase::insert(QString table, QVariantHash data)
...
@@ -100,6 +100,7 @@ bool FMDataBase::insert(QString table, QVariantHash data)
bool
FMDataBase
::
insert
(
QString
table
,
QVariantMap
data
)
bool
FMDataBase
::
insert
(
QString
table
,
QVariantMap
data
)
{
{
QLOG_DEBUG
()
<<
"FMDataBase::insert _isopen:"
<<
_isopen
;
if
(
!
_isopen
)
if
(
!
_isopen
)
return
false
;
return
false
;
...
@@ -110,6 +111,7 @@ bool FMDataBase::insert(QString table, QVariantMap data)
...
@@ -110,6 +111,7 @@ bool FMDataBase::insert(QString table, QVariantMap data)
if
(
!
getSql
(
table
,
data
,
columnnamelist
,
columnvaluelist
))
if
(
!
getSql
(
table
,
data
,
columnnamelist
,
columnvaluelist
))
{
{
_db
.
close
();
_db
.
close
();
QLOG_DEBUG
()
<<
"FMDataBase::insert getSql failed"
;
return
false
;
return
false
;
}
}
...
...
takeout/control/orderentrywork.cpp
0 → 100644
View file @
ed872127
#
include
"orderentrywork.h"
#include "QsLog.h"
#include "view/alertForm.h"
#include "model/posorderpool.h"
#include "model/orderObject.h"
#include "model/productObject.h"
#include "base/DB/fm_database.h"
#include "preDefine.h"
#include "event/fmapplication.h"
#include "event/posevent.h"
#include <QtSql/QtSql>
OrderEntryWork
::
OrderEntryWork
(
WorkObject
*
parent
)
:
WorkObject
(
parent
)
{
QString
configfile
=
qApp
->
applicationDirPath
()
+
"/"
+
CONFIG_NAME
;
int
num
=
QSettings
(
configfile
,
QSettings
::
IniFormat
).
value
(
INI_BASE_SERIAL
).
toInt
();
m_index
=
num
%
200000000
;
//将开个店新增平台插入YHJBQK表,先判断是否已经存在,存在不插入,不存在则插入
// m_db = QSqlDatabase::addDatabase("QODBC");
// m_db.setDatabaseName(QString("DRIVER={SQL SERVER};"
// "SERVER=%1;" //服务器名称
// "DATABASE=%2;"//数据库名
// "UID=%3;" //登录名
// "PWD=%4;" //密码
// )
// .arg("SH-FM")
// .arg("GSCYDB")
// .arg("sa")
// .arg("Sy0592")
// );
// QString dsn = QString::fromLocal8Bit("GSCYDB");
// m_db.setHostName("SH-FM");
// m_db.setDatabaseName(dsn);
// m_db.setUserName("sa");
// m_db.setPassword("Sy0592");
// if (!m_db.open())
// {
// QLOG_ERROR()<<"connect sql server failed!" << m_db.lastError().databaseText();
// }
// else
// {
// QLOG_DEBUG()<<"connect sql server successfully!";
// QLOG_DEBUG() << m_db.isValid();
// }
FMDataBase
db
(
qApp
->
applicationDirPath
()
+
"/"
+
DEFAULT_ENRTYFAILED
);
db
.
creat
(
QString
(
"create table entryfailedlist (order_id varchar(40) primary key,"
"order_entryfailed_dec varchar(200))"
),
DEFAULT_ENRTYFAILEDFORM
);
FMApplication
::
subscibeEvent
(
this
,
PosEvent
::
s_change_order
);
FMApplication
::
subscibeEvent
(
this
,
PosEvent
::
s_opt_change_order
);
FMApplication
::
subscibeEvent
(
this
,
PosEvent
::
s_login_storeinfo
);
// QString serverName = "DCKRSHW5HQU8SM1\\SQLEXPRESS";
// QString dbName = "test";
// QSqlDatabase myDB = QSqlDatabase::addDatabase("QODBC");//连接到ODBC驱动
// QString dsn = QString("Driver={SQL Server};Server=%1;Database=%2;Trusted_Connection=yes").arg(serverName).arg(dbName);
// myDB.setDatabaseName(dsn);
// if(myDB.open())
// {
// printf("connect to server successfully\n");
// myDB.close();
// }
// else
// {
// printf("connect to server failed\n");
// printf("%s\n",myDB.lastError().text().toLatin1().data());
// }
}
bool
OrderEntryWork
::
event
(
QEvent
*
e
)
{
if
(
e
->
type
()
==
PosEvent
::
s_change_order
||
e
->
type
()
==
PosEvent
::
s_opt_change_order
)
{
QString
orderid
;
GETEVENTINFO
(
orderid
,
e
,
QString
);
QLOG_DEBUG
()
<<
"event received"
<<
orderid
;
OrderObject
order
;
int
status
=
DefaultOrder
,
refund_status
=
DefaultOrder
;
bool
oldorder
;
PosOrderPool
::
GetOrderStatus
(
orderid
,
status
,
refund_status
,
oldorder
);
if
(
PosOrderPool
::
GetOrderObject
(
orderid
,
order
))
{
// if(m_partnerid == 2055) { //书亦的商户号,目前只有书亦需要入机
if
((
status
==
CompleteOrder
||
status
==
ServiceOrder
)
&&
!
(
refund_status
==
ApplicationRefundOrder
||
refund_status
==
ApplicationPartialRefundOrder
))
{
orderInput
(
orderid
);
}
// }
}
return
true
;
}
if
(
e
->
type
()
==
PosEvent
::
s_login_storeinfo
)
{
QVariantMap
map
;
GETEVENTINFO
(
map
,
e
,
QVariantMap
);
m_partnerid
=
map
[
JSON_KEY_PARTNERID
].
toString
();
return
true
;
}
return
WorkObject
::
event
(
e
);
}
bool
OrderEntryWork
::
openDatabase
()
{
// QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
// db.setDatabaseName(QString("DRIVER={SQL SERVER};"
// "SERVER=%1;" //服务器名称
// "DATABASE=%2;"//数据库名
// "UID=%3;" //登录名
// "PWD=%4;" //密码
// )
// .arg("202.0.0.0")
// .arg("name")
// .arg("username")
// .arg("password")
// );
// if (!m_db.open())
// {
// QLOG_ERROR()<<"connect sql server failed!" << m_db.lastError().databaseText();
// return false;
// }
// else
// {
// QLOG_DEBUG()<<"connect sql server successfully!";
// return true;
// }
return
true
;
}
void
OrderEntryWork
::
orderInput
(
QString
orderid
)
{
OrderObject
order
;
if
(
!
PosOrderPool
::
GetOrderObject
(
orderid
,
order
))
return
;
// QList<ProductObject *> products = order.proList;
// QLOG_DEBUG() << "products.size = " <<products.size();
m_db
=
QSqlDatabase
::
addDatabase
(
"QODBC"
);
m_db
.
setDatabaseName
(
QString
(
"DRIVER={SQL SERVER};"
"SERVER=%1;"
//服务器名称
"DATABASE=%2;"
//数据库名
"UID=%3;"
//登录名
"PWD=%4;"
//密码
)
.
arg
(
"SH-FM"
)
.
arg
(
"GSCYDB"
)
.
arg
(
"sa"
)
.
arg
(
"Sy0592"
)
);
// QString dsn = QString::fromLocal8Bit("GSCYDB");
// m_db.setHostName("SH-FM");
// m_db.setDatabaseName(dsn);
// m_db.setUserName("sa");
// m_db.setPassword("Sy0592");
if
(
!
m_db
.
open
())
{
QLOG_ERROR
()
<<
"connect sql server failed!"
<<
m_db
.
lastError
().
databaseText
();
return
;
}
//插入新增平台,如果存在,数据库报错不会重新插入
insertYHJBQKtable
(
QString
(
"BD"
),
QString
::
fromLocal8Bit
(
XSJBXX_DDYBH_BD
));
insertYHJBQKtable
(
QString
(
"JDDJ"
),
QString
::
fromLocal8Bit
(
XSJBXX_DDYBH_JDDJ
));
insertYHJBQKtable
(
QString
(
"SAAS"
),
QString
::
fromLocal8Bit
(
XSJBXX_DDYBH_SAAS
));
if
(
isInserted
(
order
.
fm_id
))
{
QLOG_DEBUG
()
<<
order
.
fm_id
<<
"is inserted!"
;
return
;
}
m_db
.
transaction
();
QString
error1
;
QString
error2
;
QString
error3
;
QLOG_DEBUG
()
<<
"connect sql server successfully!"
;
QLOG_DEBUG
()
<<
m_db
.
isValid
();
//消费基本信息、消费明细表、销售付款方式表
if
(
insertXSFKFStable
(
order
,
error1
)
&&
insertXSJBXXtable
(
order
,
error2
)
&&
insertXSMXXXtable
(
order
,
error3
))
{
//入机成功
QLOG_DEBUG
()
<<
QString
::
fromLocal8Bit
(
"入机成功"
);
m_db
.
commit
();
}
else
{
//入机失败,回滚表数据,并插入临时表做记录
QLOG_DEBUG
()
<<
QString
::
fromLocal8Bit
(
"入机失败,回滚表数据,并插入临时表做记录"
);
QString
error
=
QString
(
"XSFKFS error:"
)
+
error1
+
QString
(
"/XSJBXX error:"
)
+
error2
+
QString
(
"/XSMXXX error:"
)
+
error3
;
QLOG_DEBUG
()
<<
"orderinsert error info:"
<<
error
;
QVariantMap
map
;
map
.
insert
(
"order_id"
,
order
.
order_id
);
map
.
insert
(
"order_entryfailed_dec"
,
error
);
QLOG_DEBUG
()
<<
"error msg :"
<<
map
;
FMDataBase
db
(
qApp
->
applicationDirPath
()
+
"/"
+
DEFAULT_ENRTYFAILED
);
bool
flag
=
db
.
insert
(
DEFAULT_ENRTYFAILEDFORM
,
map
);
QLOG_DEBUG
()
<<
"insert tmp sqlite db result :"
<<
flag
;
m_db
.
rollback
();
}
// }
}
QString
OrderEntryWork
::
getLBBM
(
QString
LBMC
)
{
QSqlQuery
query
;
QString
str
=
QString
(
"SELECT LBBM FROM JYXMSZ WHERE XMBH = '%1'"
).
arg
(
LBMC
);
bool
res
=
query
.
exec
(
str
);
QLOG_DEBUG
()
<<
"OrderEntryWork::getLBBM"
<<
str
<<
res
;
if
(
res
)
{
while
(
query
.
next
())
{
return
query
.
value
(
0
).
toString
();
}
return
""
;
}
else
{
return
""
;
}
}
QString
OrderEntryWork
::
getXMBH
(
QString
LBBM
)
{
QSqlQuery
query
;
QString
str
=
QString
(
"SELECT XMBH FROM JYXMSZ WHERE LBBM = %1"
).
arg
(
LBBM
);
bool
res
=
query
.
exec
(
str
);
if
(
res
)
{
while
(
query
.
next
())
{
return
query
.
value
(
0
).
toString
();
}
}
else
{
return
""
;
}
}
QString
OrderEntryWork
::
getXMMC
(
QString
LBBM
)
{
QSqlQuery
query
;
QString
str
=
QString
(
"SELECT XMMC FROM JYXMSZ WHERE LBBM = %1"
).
arg
(
LBBM
);
bool
res
=
query
.
exec
(
str
);
if
(
res
)
{
while
(
query
.
next
())
{
return
query
.
value
(
0
).
toString
();
}
}
else
{
return
""
;
}
}
QString
OrderEntryWork
::
getTM
(
QString
LBBM
)
{
QSqlQuery
query
;
QString
str
=
QString
(
"SELECT TM FROM JYXMSZ WHERE LBBM = %1"
).
arg
(
LBBM
);
bool
res
=
query
.
exec
(
str
);
if
(
res
)
{
while
(
query
.
next
())
{
return
query
.
value
(
0
).
toString
();
}
}
else
{
return
""
;
}
}
QString
OrderEntryWork
::
getDW
(
QString
XMBH
)
{
QSqlQuery
query
;
QString
str
=
QString
(
"SELECT DW FROM JYXMSZ WHERE XMBH = '%1'"
).
arg
(
XMBH
);
bool
res
=
query
.
exec
(
str
);
QLOG_DEBUG
()
<<
"OrderEntryWork::getLBBM"
<<
str
<<
res
;
if
(
res
)
{
while
(
query
.
next
())
{
return
QString
::
fromUtf8
(
query
.
value
(
0
).
toByteArray
());
}
return
""
;
}
else
{
return
""
;
}
}
bool
OrderEntryWork
::
isInserted
(
QString
fm_id
)
{
QSqlQuery
query
;
QString
str
=
QString
(
"SELECT * FROM XSJBXX WHERE XSDH = '%1'"
).
arg
(
fm_id
);
QLOG_DEBUG
()
<<
"OrderEntryWork::isInserted sql str:"
<<
str
;
bool
res
=
query
.
exec
(
str
);
QLOG_DEBUG
()
<<
res
;
if
(
res
)
{
return
query
.
next
();
QLOG_DEBUG
()
<<
query
.
next
();
}
return
false
;
}
bool
OrderEntryWork
::
XHisExisted
()
{
QSqlQuery
query
;
QString
str
=
QString
(
"SELECT * FROM YHJBQK WHERE YHBH = 'SAAS'"
);
QLOG_DEBUG
()
<<
"OrderEntryWork::SAAS is existed:"
<<
str
;
bool
res
=
query
.
exec
(
str
);
QLOG_DEBUG
()
<<
res
;
if
(
res
)
{
return
query
.
next
();
QLOG_DEBUG
()
<<
query
.
next
();
}
return
false
;
}
bool
OrderEntryWork
::
insertYHJBQKtable
(
QString
pl
,
QString
platform
)
{
QSqlQuery
query
;
QString
str
=
QString
(
"INSERT INTO [dbo].[YHJBQK] (YHBH,YHMC) VALUES ('%1','%2');"
).
arg
(
pl
).
arg
(
platform
);
QLOG_DEBUG
()
<<
"OrderEntryWork::insertYHJBQKtable sql str:"
<<
str
;
bool
res
=
query
.
exec
(
str
);
QLOG_DEBUG
()
<<
res
;
if
(
res
)
{
return
query
.
next
();
QLOG_DEBUG
()
<<
"OrderEntryWork::insertYHJBQKtable :"
<<
query
.
next
();
}
QLOG_DEBUG
()
<<
"OrderEntryWork::insertYHJBQKtable :"
<<
res
;
return
false
;
}
bool
OrderEntryWork
::
insertXSJBXXtable
(
OrderObject
order
,
QString
&
error
)
{
QString
BZ
=
"POS"
;
QString
XSDH
=
order
.
fm_id
;
QString
channel
=
order
.
channel
;
QString
XH
;
QString
DDYBH
;
QString
BY7
;
if
(
channel
==
"mt"
)
{
XH
=
"MT"
;
DDYBH
=
QString
::
fromLocal8Bit
(
XSJBXX_DDYBH_MT
);
BY7
=
QString
::
fromLocal8Bit
(
XSJBXX_BY7_MT
)
+
order
.
order_id
;
}
else
if
(
channel
==
"elm"
)
{
XH
=
"ELM"
;
DDYBH
=
QString
::
fromLocal8Bit
(
XSJBXX_DDYBH_ELM
);
BY7
=
QString
::
fromLocal8Bit
(
XSJBXX_BY7_ELM
)
+
order
.
order_id
;
}
else
if
(
channel
==
"bd"
)
{
XH
=
"BD"
;
DDYBH
=
QString
::
fromLocal8Bit
(
XSJBXX_DDYBH_BD
);
BY7
=
QString
::
fromLocal8Bit
(
XSJBXX_BY7_BD
)
+
order
.
order_id
;
}
else
if
(
channel
==
"jddj"
)
{
XH
=
"JDDJ"
;
DDYBH
=
QString
::
fromLocal8Bit
(
XSJBXX_DDYBH_JDDJ
);
BY7
=
QString
::
fromLocal8Bit
(
XSJBXX_BY7_JDDJ
)
+
order
.
order_id
;
}
else
if
(
channel
==
"saas"
)
{
XH
=
"SAAS"
;
DDYBH
=
QString
::
fromLocal8Bit
(
XSJBXX_DDYBH_SAAS
);
BY7
=
QString
::
fromLocal8Bit
(
XSJBXX_BY7_SAAS
)
+
order
.
order_id
;
}
double
JEZJ
=
order
.
total_fee
/
100.00
;
double
ZKJE
=
0
;
double
ZRJE
=
0
;
double
YS
=
order
.
total_fee
/
100.00
;
double
SS
=
0
;
QDateTime
DDSJ
=
QDateTime
::
fromTime_t
(
order
.
create_time
);
QDateTime
JYSJ
=
QDateTime
::
fromTime_t
(
order
.
create_time
);
QString
JZFSBM
=
QString
::
fromLocal8Bit
(
WAISONG
);
QString
ZH
=
QString
::
number
(
order
.
order_index
);
QString
KHBH
=
"0"
;
double
QKJE
=
0
;
int
WMBS
=
order
.
order_index
;
int
JCRS
=
1
;
QSqlQuery
query
;
QString
str
=
QString
(
"INSERT INTO XSJBXX (BZ,XSDH,XH,DDYBH,JEZJ,ZKJE"
",ZRJE,YS,SS,DDSJ,JYSJ,JZFSBM,ZH,KHBH,QKJE,WMBS,BY7,JCRS) VALUES ("
"'%1','%2','%3','%4',%5,%6,%7,%8,%9,'%10','%11','%12','%13','%14',%15,%16,'%17',%18);"
)
.
arg
(
BZ
).
arg
(
XSDH
).
arg
(
XH
).
arg
(
DDYBH
).
arg
(
JEZJ
).
arg
(
ZKJE
).
arg
(
ZRJE
)
.
arg
(
YS
).
arg
(
SS
).
arg
(
DDSJ
.
toString
(
"yyyy-MM-dd hh:mm:ss"
)).
arg
(
JYSJ
.
toString
(
"yyyy-MM-dd hh:mm:ss"
)).
arg
(
JZFSBM
).
arg
(
ZH
).
arg
(
KHBH
)
.
arg
(
QKJE
).
arg
(
WMBS
).
arg
(
BY7
).
arg
(
JCRS
);
QLOG_DEBUG
()
<<
"OrderEntryWork::insertXSJBXXtable:"
<<
str
;
bool
res
=
query
.
exec
(
str
);
if
(
!
res
)
{
error
=
query
.
lastError
().
databaseText
();
QLOG_ERROR
()
<<
"insertXSJBXXtable error:"
<<
error
;
}
return
res
;
}
bool
OrderEntryWork
::
insertXSMXXXtable
(
OrderObject
order
,
QString
&
error
)
{
bool
res
=
true
;
QList
<
ProductObject
*>
products
=
order
.
proList
;
QLOG_DEBUG
()
<<
"OrderEntryWork::insertXSMXXXtable"
<<
products
.
size
();
for
(
int
i
=
0
;
i
<
products
.
size
();
i
++
)
{
ProductObject
*
product
=
products
.
at
(
i
);
QLOG_DEBUG
()
<<
"OrderEntryWork::insertXSMXXXtable"
<<
product
->
pid
;
QString
XH
=
order
.
fm_id
+
QString
(
"_"
)
+
QString
::
number
(
m_index
);
QString
XSDH
=
order
.
fm_id
;
QString
XMBH
=
product
->
stock_barcode
;
QString
XMMC
=
product
->
name
;
QString
TM
=
product
->
stock_barcode
;
QString
DW
=
getDW
(
XMBH
);
double
YSJG
=
product
->
price
/
100.00
;
double
XSJG
=
product
->
price
/
100.00
;
double
SL
=
product
->
product_amount
;
double
XSJEXJ
=
product
->
price
/
100.00
;
double
FTJE
=
product
->
price
/
100.00
;
QString
SYYXM
;
QString
channel
=
order
.
channel
;
if
(
channel
==
"mt"
)
{
SYYXM
=
QString
::
fromLocal8Bit
(
XSJBXX_DDYBH_MT
);
}
else
if
(
channel
==
"elm"
)
{
SYYXM
=
QString
::
fromLocal8Bit
(
XSJBXX_DDYBH_ELM
);
}
else
if
(
channel
==
"bd"
)
{
SYYXM
=
QString
::
fromLocal8Bit
(
XSJBXX_DDYBH_BD
);
}
else
if
(
channel
==
"jddj"
)
{
SYYXM
=
QString
::
fromLocal8Bit
(
XSJBXX_DDYBH_JDDJ
);
}
else
if
(
channel
==
"saas"
)
{
SYYXM
=
QString
::
fromLocal8Bit
(
XSJBXX_DDYBH_SAAS
);
}
QString
SSLBBM
=
getLBBM
(
XMBH
);
QLOG_DEBUG
()
<<
"INSERT XSMXXX TABLE"
<<
SSLBBM
;
QString
SFXS
=
"1"
;
QSqlQuery
query
;
QString
str
=
QString
(
"INSERT INTO XSMXXX (XH,XSDH,XMBH,XMMC,TM,DW"
",YSJG,XSJG,SL,XSJEXJ,FTJE,SYYXM,SSLBBM,SFXS) VALUES ("
"'%1','%2','%3','%4','%5','%6',%7,%8,%9,%10,%11,'%12','%13','%14');"
)
.
arg
(
XH
).
arg
(
XSDH
).
arg
(
XMBH
).
arg
(
XMMC
).
arg
(
TM
).
arg
(
DW
).
arg
(
YSJG
)
.
arg
(
XSJG
).
arg
(
SL
).
arg
(
XSJEXJ
).
arg
(
FTJE
).
arg
(
SYYXM
).
arg
(
SSLBBM
).
arg
(
SFXS
);
QLOG_DEBUG
()
<<
"OrderEntryWork::insertXSMXXXtable:"
<<
str
;
bool
flag
=
query
.
exec
(
str
);
if
(
!
flag
)
{
error
=
query
.
lastError
().
databaseText
()
+
"/"
+
product
->
name
;
QLOG_ERROR
()
<<
"insertXSMXXXtable error:"
<<
error
;
res
=
false
;
return
res
;
}
m_index
++
;
QString
configfile
=
qApp
->
applicationDirPath
()
+
"/"
+
CONFIG_NAME
;
QSettings
(
configfile
,
QSettings
::
IniFormat
).
setValue
(
INI_BASE_SERIAL
,
m_index
);
}
return
res
;
}
bool
OrderEntryWork
::
insertXSFKFStable
(
OrderObject
order
,
QString
&
error
)
{
QString
XSDH
=
order
.
fm_id
;
QString
BM
;
QString
NR
;
QString
channel
=
order
.
channel
;
if
(
channel
==
"mt"
)
{
BM
=
"MTWMBDSR"
;
NR
=
QString
::
fromLocal8Bit
(
XSFKFS_BM_MT
)
+
QString
(
"-"
)
+
QString
(
order
.
pay_type
);
}
else
if
(
channel
==
"elm"
)
{
BM
=
"ELMBDSR"
;
NR
=
QString
::
fromLocal8Bit
(
XSFKFS_BM_ELM
)
+
QString
(
"-"
)
+
QString
(
order
.
pay_type
);
}
else
if
(
channel
==
"bd"
)
{
BM
=
"BDWMBDSR"
;
NR
=
QString
::
fromLocal8Bit
(
XSFKFS_BM_BD
)
+
QString
(
"-"
)
+
QString
(
order
.
pay_type
);
}
else
if
(
channel
==
"jddj"
)
{
BM
=
"JDDJBDSR"
;
NR
=
QString
::
fromLocal8Bit
(
XSFKFS_BM_JDDJ
)
+
QString
(
"-"
)
+
QString
(
order
.
pay_type
);
}
else
if
(
channel
==
"saas"
)
{
BM
=
"SAASBDSR"
;
NR
=
QString
::
fromLocal8Bit
(
XSFKFS_BM_SAAS
)
+
QString
(
"-"
)
+
QString
(
order
.
pay_type
);
}
double
FKJE
=
order
.
total_fee
/
100.00
;
int
DYQZS
=
1
;
QSqlQuery
query
(
m_db
);
QString
str
=
QString
(
"INSERT INTO [dbo].[XSFKFS] (XSDH,BM,NR,FKJE,DYQZS) VALUES ("
"'%1','%2','%3',%4,%5);"
)
.
arg
(
XSDH
).
arg
(
BM
).
arg
(
NR
).
arg
(
FKJE
).
arg
(
DYQZS
);
QLOG_DEBUG
()
<<
"insert XSFKFStable SQL str:"
<<
str
;
bool
res
=
query
.
exec
(
str
);
if
(
!
res
)
{
error
=
query
.
lastError
().
databaseText
();
QLOG_ERROR
()
<<
"insert XSFKFStable error:"
<<
error
;
}
return
res
;
}
takeout/control/orderentrywork.h
0 → 100644
View file @
ed872127
#ifndef ORDERENTRYWORK_H
#define ORDERENTRYWORK_H
#include "control/workobject.h"
#include "view/alertForm.h"
#include "model/productObject.h"
#include "model/orderObject.h"
#include <QtSql/QtSql>
//struct XSJBXX_DATA{
// QString BZ;
// QString XSDH;
// QString XH;
// QString DDYBH;
// double JEZJ;
// double ZKJE;
// double ZRJE;
// double YS;
// double SS;
// QDateTime DDSJ;
// QDateTime JYSJ;
// QString JZFSBM;
// QString ZH;
// QString KHBH;
// double QKJE;
// int WMBS;
// QString BY7;
// int JCRS;
//};
//struct XSMXXX_DATA{
// QString XH;
// QString XSDH;
// QString XMBH;
// QString XMMC;
// QString TM;
// QString DW;
// double YSJG;
// double XSJG;
// double SL;
// double XSJEXJ;
// double FTJE;
// QString SYYXM;
// QString SSLBBM;
// QString SFXS;
//};
//struct XSFKFS_DATA{
// long XH;
// QString XSDH;
// QString BM;
// QString NR;
// double FKJE;
// int DYQZS;
//};
class
OrderEntryWork
:
public
WorkObject
{
Q_OBJECT
public
:
explicit
OrderEntryWork
(
WorkObject
*
parent
=
0
);
virtual
bool
event
(
QEvent
*
e
);
private
:
//连接数据库
bool
openDatabase
();
//订单入机
void
orderInput
(
QString
orderid
);
//通过商品名称获取项目编号
QString
getLBBM
(
QString
LBMC
);
QString
getXMBH
(
QString
LBBM
);
QString
getXMMC
(
QString
LBBM
);
QString
getTM
(
QString
LBBM
);
QString
getDW
(
QString
XMBH
);
bool
isInserted
(
QString
fm_id
);
bool
XHisExisted
();
bool
insertYHJBQKtable
(
QString
pl
,
QString
platform
);
//插入消费基本信息表
bool
insertXSJBXXtable
(
OrderObject
order
,
QString
&
error
);
//插入消费明细表
bool
insertXSMXXXtable
(
OrderObject
order
,
QString
&
error
);
//插入销售付款方式表
bool
insertXSFKFStable
(
OrderObject
order
,
QString
&
error
);
private
:
QSqlDatabase
m_db
;
int
m_index
;
QString
m_partnerid
;
};
#endif // ORDERENTRYWORK_H
takeout/control/ordergetwork.cpp
View file @
ed872127
...
@@ -426,6 +426,10 @@ void OrderGetWork::optOrderWithType(const QVariantMap &map)
...
@@ -426,6 +426,10 @@ void OrderGetWork::optOrderWithType(const QVariantMap &map)
if
(
PosOrderPool
::
GetOrderObject
(
orderid
,
localorder
))
if
(
PosOrderPool
::
GetOrderObject
(
orderid
,
localorder
))
order_type
=
localorder
.
order_type
;
order_type
=
localorder
.
order_type
;
//2019/5/6新增需求:接单、退单、同意退款、拒绝退款等操作的请求中加入source字段,source是拉单的channel字段
json
.
insert
(
JSON_KEY_SOURCE
,
localorder
.
channel
);
QLOG_INFO
()
<<
"optOrderWithType request : "
<<
json
;
QLOG_DEBUG
()
<<
"order type : "
<<
order_type
<<
"opt type : "
<<
type
;
QLOG_DEBUG
()
<<
"order type : "
<<
order_type
<<
"opt type : "
<<
type
;
OrderGetDataProcess
::
getRequestType
(
status
,
type
,
order_type
);
OrderGetDataProcess
::
getRequestType
(
status
,
type
,
order_type
);
...
...
takeout/control/orderlocalizework.h
View file @
ed872127
#ifndef ORDERLOCALIZEWORK_H
#ifndef ORDERLOCALIZEWORK_H
#define ORDERLOCALIZEWORK_H
#define ORDERLOCALIZEWORK_H
#include <QObject>
#include <QObject>
...
...
takeout/main.cpp
View file @
ed872127
...
@@ -18,6 +18,7 @@
...
@@ -18,6 +18,7 @@
#include "control/stallsgetwork.h"
#include "control/stallsgetwork.h"
#include "control/networkcheckwork.h"
#include "control/networkcheckwork.h"
#include "control/driverinfogetwork.h"
#include "control/driverinfogetwork.h"
#include "control/orderentrywork.h"
#include "base/Dump/dump.h"
#include "base/Dump/dump.h"
#include "base/DB/fm_database.h"
#include "base/DB/fm_database.h"
//#include "view/loginform.h"
//#include "view/loginform.h"
...
@@ -184,6 +185,8 @@ int main(int argc, char *argv[])
...
@@ -184,6 +185,8 @@ int main(int argc, char *argv[])
orderprintwork
printwork
;
orderprintwork
printwork
;
//订单数据本地化
//订单数据本地化
OrderLocalizeWork
loac
;
OrderLocalizeWork
loac
;
//订单入机
OrderEntryWork
entrywork
;
//心跳长良介
//心跳长良介
OrderPushWork
pwork
;
OrderPushWork
pwork
;
//预约单打印
//预约单打印
...
@@ -210,6 +213,7 @@ int main(int argc, char *argv[])
...
@@ -210,6 +213,7 @@ int main(int argc, char *argv[])
pwork
.
setSerurl
(
pushurl
);
pwork
.
setSerurl
(
pushurl
);
//移动子工作流到线程
//移动子工作流到线程
loac
.
moveToThread
(
&
thread
,
false
);
loac
.
moveToThread
(
&
thread
,
false
);
entrywork
.
moveToThread
(
&
thread
,
false
);
work
.
moveToThread
(
&
thread
,
true
);
work
.
moveToThread
(
&
thread
,
true
);
printwork
.
moveToThread
(
&
prtthreadt
,
true
);
printwork
.
moveToThread
(
&
prtthreadt
,
true
);
pwork
.
moveToThread
(
&
threadt
,
true
);
pwork
.
moveToThread
(
&
threadt
,
true
);
...
@@ -220,6 +224,7 @@ int main(int argc, char *argv[])
...
@@ -220,6 +224,7 @@ int main(int argc, char *argv[])
stallsgetwork
.
moveToThread
(
&
stallsThread
,
true
);
stallsgetwork
.
moveToThread
(
&
stallsThread
,
true
);
prtmodelgetwork
.
moveToThread
(
&
prtModelThread
,
true
);
prtmodelgetwork
.
moveToThread
(
&
prtModelThread
,
true
);
// entrywork.moveToThread(&prtModelThread, false);
driverinfogetwork
.
moveToThread
(
&
driverInfoThread
,
true
);
driverinfogetwork
.
moveToThread
(
&
driverInfoThread
,
true
);
//启动tcp长链接和拉单工作流
//启动tcp长链接和拉单工作流
thread
.
start
();
thread
.
start
();
...
...
takeout/model/productObject.cpp
View file @
ed872127
...
@@ -108,3 +108,13 @@ void ProductObject::setProductAmount(const int &v)
...
@@ -108,3 +108,13 @@ void ProductObject::setProductAmount(const int &v)
{
{
product_amount
=
v
;
product_amount
=
v
;
}
}
QString
ProductObject
::
getstock_barcode
()
const
{
return
stock_barcode
;
}
void
ProductObject
::
setstock_barcode
(
const
QString
&
v
)
{
stock_barcode
=
v
;
}
takeout/model/productObject.h
View file @
ed872127
...
@@ -20,6 +20,7 @@ public:
...
@@ -20,6 +20,7 @@ public:
Q_PROPERTY
(
int
price
READ
getprice
WRITE
setprice
)
Q_PROPERTY
(
int
price
READ
getprice
WRITE
setprice
)
Q_PROPERTY
(
int
product_amount
READ
getProductAmount
WRITE
setProductAmount
)
Q_PROPERTY
(
int
product_amount
READ
getProductAmount
WRITE
setProductAmount
)
Q_PROPERTY
(
int
cost
READ
getcost
WRITE
setcost
)
Q_PROPERTY
(
int
cost
READ
getcost
WRITE
setcost
)
Q_PROPERTY
(
QString
stock_barcode
READ
getstock_barcode
WRITE
setstock_barcode
)
QString
property_tags
;
QString
property_tags
;
QString
pid
;
QString
pid
;
...
@@ -27,6 +28,7 @@ public:
...
@@ -27,6 +28,7 @@ public:
QString
upc
;
QString
upc
;
int
price
;
int
price
;
int
product_amount
;
int
product_amount
;
QString
stock_barcode
;
QList
<
ProductObject
*>
sub_products
;
//子商品
QList
<
ProductObject
*>
sub_products
;
//子商品
int
cost
;
//是否是优惠卷
int
cost
;
//是否是优惠卷
...
@@ -55,6 +57,9 @@ protected:
...
@@ -55,6 +57,9 @@ protected:
int
getProductAmount
()
const
;
int
getProductAmount
()
const
;
void
setProductAmount
(
const
int
&
v
);
void
setProductAmount
(
const
int
&
v
);
QString
getstock_barcode
()
const
;
void
setstock_barcode
(
const
QString
&
v
);
};
};
#endif // PRODUCTOBJECT_H
#endif // PRODUCTOBJECT_H
takeout/preDefine.h
View file @
ed872127
...
@@ -14,9 +14,11 @@
...
@@ -14,9 +14,11 @@
#define DEFAULT_DBNAME "order.db"
#define DEFAULT_DBNAME "order.db"
#define DEFAULT_PRTDBNAME "prt.db"
#define DEFAULT_PRTDBNAME "prt.db"
#define DEFAULT_PRTMODEL "prtmodel.db"
#define DEFAULT_PRTMODEL "prtmodel.db"
#define DEFAULT_ENRTYFAILED "entryfailed.db"
#define DEFAULT_DBFORM "orderlist"
#define DEFAULT_DBFORM "orderlist"
#define DEFAULT_PRTFORM "prtlist"
#define DEFAULT_PRTFORM "prtlist"
#define DEFAULT_PRTMODELFORM "prtmodellist"
#define DEFAULT_PRTMODELFORM "prtmodellist"
#define DEFAULT_ENRTYFAILEDFORM "entryfailedlist"
#define SHA256RSA_PRIVATEKEY "MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmMwggJfAgEAAoGBAKbFeAqipCea1OXTR6wmz2D7XKUJ6ffRl/VRgF23kbxhhUseJ1jWJW9n7bJ1DyJsMzNgLzpi5jwCasZlvMAS+TdRYQtlvdHV8EDH8JKVaCn1O+emoN/Tbp+ngZLkZNqu3bWTQ6fBgbun4gyeFC1cXb87kn0dnBdkjnGZ/MuDu9oPAgMBAAECgYEAip3t1iEzgnvOY60GkM+9ZWXoroEcCNEcllqE8OCo8MS6LyLEH7H3ca8XwlJMHxeCQzy6ZLRZnB2CNJ/RkHD01S12JH3NPoeuY04/zhpl1BRq5Zm9iuIMkg5LP1cNjRnB5v8/ENZdLTXYEcrz4d3UDXZXvD2ywqoNNGqMqqp/U1ECQQDma32C2t3LV3lS9QeLejGXwDTeksJ53NzsUoGUOIQNkIC7f66tQfYG6wVWBfGoZTpxcLWweC+jPQ+75knWdmLHAkEAuUkYGKtzIeNmKJ0siew/dY31+Rb/pVHYj7TnZDx3dIYly0mwigQGCU7uVzkADXqyEqU+AQWU+RagQWwmjlWGeQJBALdYiMJ6zUlkDVIJTzuYu6V4d5kzRjQZnmEdNaZvYgQ5G3YWnzOV7OKMV+6fRC8ufVaOzMPinmVRzRdCozZXdTkCQQCapPo6pOasMyqx3TUuTINOr1TMOLjYl65Diz7Rt3IQTGLBAFkbaG5NWJavMADuPyjfTRGqMql7GLpawFSR2aopAkEAmKme0TgKB4EpdxS7xV4/XEm+MuZXE/dAfnN5fNOVueWw+23gDYvLXZAoAZNdpdaWw/CZl66XL6M1RMiDYllNvw=="
#define SHA256RSA_PRIVATEKEY "MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmMwggJfAgEAAoGBAKbFeAqipCea1OXTR6wmz2D7XKUJ6ffRl/VRgF23kbxhhUseJ1jWJW9n7bJ1DyJsMzNgLzpi5jwCasZlvMAS+TdRYQtlvdHV8EDH8JKVaCn1O+emoN/Tbp+ngZLkZNqu3bWTQ6fBgbun4gyeFC1cXb87kn0dnBdkjnGZ/MuDu9oPAgMBAAECgYEAip3t1iEzgnvOY60GkM+9ZWXoroEcCNEcllqE8OCo8MS6LyLEH7H3ca8XwlJMHxeCQzy6ZLRZnB2CNJ/RkHD01S12JH3NPoeuY04/zhpl1BRq5Zm9iuIMkg5LP1cNjRnB5v8/ENZdLTXYEcrz4d3UDXZXvD2ywqoNNGqMqqp/U1ECQQDma32C2t3LV3lS9QeLejGXwDTeksJ53NzsUoGUOIQNkIC7f66tQfYG6wVWBfGoZTpxcLWweC+jPQ+75knWdmLHAkEAuUkYGKtzIeNmKJ0siew/dY31+Rb/pVHYj7TnZDx3dIYly0mwigQGCU7uVzkADXqyEqU+AQWU+RagQWwmjlWGeQJBALdYiMJ6zUlkDVIJTzuYu6V4d5kzRjQZnmEdNaZvYgQ5G3YWnzOV7OKMV+6fRC8ufVaOzMPinmVRzRdCozZXdTkCQQCapPo6pOasMyqx3TUuTINOr1TMOLjYl65Diz7Rt3IQTGLBAFkbaG5NWJavMADuPyjfTRGqMql7GLpawFSR2aopAkEAmKme0TgKB4EpdxS7xV4/XEm+MuZXE/dAfnN5fNOVueWw+23gDYvLXZAoAZNdpdaWw/CZl66XL6M1RMiDYllNvw=="
#define DEFAULT_ACCESS_TOKEN "3e0e8e1b-ad85-4ec0-a0ec-ad92bb5ae043"
#define DEFAULT_ACCESS_TOKEN "3e0e8e1b-ad85-4ec0-a0ec-ad92bb5ae043"
...
@@ -83,6 +85,7 @@
...
@@ -83,6 +85,7 @@
#define INI_BASE_USERID "base/userid"
#define INI_BASE_USERID "base/userid"
#define INI_BASE_PWD "base/pwd"
#define INI_BASE_PWD "base/pwd"
#define INI_BASE_STATIONIID "base/stationid"
#define INI_BASE_STATIONIID "base/stationid"
#define INI_BASE_SERIAL "base/serial"
#define JSON_REQTYPE "reqtype"
#define JSON_REQTYPE "reqtype"
#define JSON_CURRENTUSER "current_user"
#define JSON_CURRENTUSER "current_user"
...
@@ -204,6 +207,7 @@
...
@@ -204,6 +207,7 @@
#define JSON_KEY_REASON "reason"
#define JSON_KEY_REASON "reason"
#define JSON_KEY_ORDERSTATUS "status"
#define JSON_KEY_ORDERSTATUS "status"
#define JSON_KEY_REFUNDSTATUS "refund_status"
#define JSON_KEY_REFUNDSTATUS "refund_status"
#define JSON_KEY_SOURCE "source"
#define EVENT_KEY_STATUS "status"
#define EVENT_KEY_STATUS "status"
#define EVENT_KEY_DRIVER_STATUS "driver_status"
#define EVENT_KEY_DRIVER_STATUS "driver_status"
...
@@ -425,4 +429,22 @@
...
@@ -425,4 +429,22 @@
#define CONFIG_CHECKIP_IP "CheckIP/ip"
#define CONFIG_CHECKIP_IP "CheckIP/ip"
#define CONFIG_CHECKIP_INDEX "CheckIP/index"
#define CONFIG_CHECKIP_INDEX "CheckIP/index"
//入机所需字段
#define XSJBXX_DDYBH_MT "美团外卖平台"
#define XSJBXX_DDYBH_ELM "饿了么平台"
#define XSJBXX_DDYBH_BD "百度外卖平台"
#define XSJBXX_DDYBH_JDDJ "京东到家平台"
#define XSJBXX_DDYBH_SAAS "开个店平台"
#define WAISONG "外送"
#define XSJBXX_BY7_MT "美团外卖平台订单 "
#define XSJBXX_BY7_ELM "饿了么平台订单 "
#define XSJBXX_BY7_BD "百度外卖平台订单 "
#define XSJBXX_BY7_JDDJ "京东到家平台订单 "
#define XSJBXX_BY7_SAAS "开个店平台订单 "
#define XSFKFS_BM_MT "美团外卖"
#define XSFKFS_BM_ELM "饿了么外卖"
#define XSFKFS_BM_BD "百度外卖"
#define XSFKFS_BM_JDDJ "京东到家"
#define XSFKFS_BM_SAAS "开个店"
#endif // PREDEFINE_H
#endif // PREDEFINE_H
takeout/takeout.pro
View file @
ed872127
...
@@ -21,7 +21,7 @@ LIBS += -L$$PWD/lib -llibeay32 -lssleay32 -lwinspool
...
@@ -21,7 +21,7 @@ LIBS += -L$$PWD/lib -llibeay32 -lssleay32 -lwinspool
LIBS
+=
-
lWs2_32
LIBS
+=
-
lWs2_32
LIBS
+=
-
lDbghelp
LIBS
+=
-
lDbghelp
DEFINES
+=
USE_QAACTION
#
DEFINES += USE_QAACTION
DEFINES
+=
FM_NEW_UI
DEFINES
+=
FM_NEW_UI
#DEFINES += FM_TEST
#DEFINES += FM_TEST
...
@@ -87,7 +87,8 @@ SOURCES += \
...
@@ -87,7 +87,8 @@ SOURCES += \
$$
PWD
/
base
/
Arithmetic
/
cretopt
.
cpp
\
$$
PWD
/
base
/
Arithmetic
/
cretopt
.
cpp
\
$$
PWD
/
control
/
driverinfogetwork
.
cpp
\
$$
PWD
/
control
/
driverinfogetwork
.
cpp
\
$$
PWD
/
view
/
newfloatform
.
cpp
\
$$
PWD
/
view
/
newfloatform
.
cpp
\
view
/
frminput
.
cpp
view
/
frminput
.
cpp
\
control
/
orderentrywork
.
cpp
HEADERS
+=
\
HEADERS
+=
\
$$
PWD
/
event
/
fmapplication
.
h
\
$$
PWD
/
event
/
fmapplication
.
h
\
...
@@ -148,7 +149,8 @@ HEADERS += \
...
@@ -148,7 +149,8 @@ HEADERS += \
$$
PWD
/
view
/
newchangeshiftsform
.
h
\
$$
PWD
/
view
/
newchangeshiftsform
.
h
\
$$
PWD
/
control
/
driverinfogetwork
.
h
\
$$
PWD
/
control
/
driverinfogetwork
.
h
\
$$
PWD
/
view
/
newfloatform
.
h
\
$$
PWD
/
view
/
newfloatform
.
h
\
view
/
frminput
.
h
view
/
frminput
.
h
\
control
/
orderentrywork
.
h
DISTFILES
+=
$$
PWD
/
takeout
.
rc
DISTFILES
+=
$$
PWD
/
takeout
.
rc
...
...
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