Commit 24732623 by ss.dai

提交

parent 992c53b2
...@@ -5,6 +5,15 @@ ...@@ -5,6 +5,15 @@
#include <QDebug> #include <QDebug>
#include <QSettings> #include <QSettings>
#include <QCoreApplication> #include <QCoreApplication>
#include <QFile>
#include <QUrl>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QTimer>
#include <QJsonDocument>
#include <QDir>
#include <QJsonArray>
#include "DTools/configManger.h"
FmPlugin &FmPlugin::GetInstance() FmPlugin &FmPlugin::GetInstance()
{ {
...@@ -47,6 +56,7 @@ bool FmPlugin::GetStoreInfo(QString &storeId, QString &posId, QString &cashierId ...@@ -47,6 +56,7 @@ bool FmPlugin::GetStoreInfo(QString &storeId, QString &posId, QString &cashierId
qDebug()<<inipath; qDebug()<<inipath;
QSettings set(inipath, QSettings::IniFormat); QSettings set(inipath, QSettings::IniFormat);
storeId = set.value("info/storeId").toString(); storeId = set.value("info/storeId").toString();
m_storeId = storeId;
posId = set.value("info/posId").toString(); posId = set.value("info/posId").toString();
cashierId = QString("001"); cashierId = QString("001");
qDebug()<<storeId<<posId; qDebug()<<storeId<<posId;
...@@ -135,49 +145,60 @@ bool FmPlugin::GetOnDutyCashiers(QList<CashierObject> &cashiersList, QString &er ...@@ -135,49 +145,60 @@ bool FmPlugin::GetOnDutyCashiers(QList<CashierObject> &cashiersList, QString &er
bool FmPlugin::DoOrderEntry(const OrderObject *orderObject, const QString &cashierId, const QString &cashierName, const QString &shiftId, const QString &shiftName, QString &error) bool FmPlugin::DoOrderEntry(const OrderObject *orderObject, const QString &cashierId, const QString &cashierName, const QString &shiftId, const QString &shiftName, QString &error)
{ {
// TODO(用于鲜丰演示)
return true; return true;
QString apppath=QCoreApplication::applicationDirPath();
// 检查这单之前是否写过
QString remark_file_path = QString("%1/orders/%2/%3_%4").arg(apppath, QDateTime::fromTime_t(orderObject->create_time).toString("yyyy-MM-dd"), orderObject->channel ,orderObject->order_id);
QFile file(remark_file_path);
if(file.exists())
{
error = "aready writed to haiding";
return true;
}
QString inipath=apppath+QString("/config.ini");
m_orderObject = orderObject; QSettings set(inipath, QSettings::IniFormat);
if(!m_db.open()) QUrl url;
url = set.value("HdServer/url").toUrl();
qDebug() << "url" << url;
QNetworkAccessManager manger;
QNetworkRequest qRequset;
qRequset.setUrl(url);
qRequset.setRawHeader("Content-Type","application/json;charset=utf-8");
qRequset.setRawHeader("Accept", "application/json;charset=utf-8");
QNetworkReply *reply = manger.post(qRequset, _GetOrderEntryData(orderObject));
QEventLoop eventLoop;
QObject::connect(&manger, SIGNAL(networkAccessibleChanged(QNetworkAccessManager::NetworkAccessibility)), &eventLoop, SLOT(quit()));
QObject::connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
QObject::connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), &eventLoop, SLOT(quit()));
// 加用定时器防止网络出现异常长时间不返回导致的阻塞
QTimer::singleShot(10000, &eventLoop, &QEventLoop::quit);
eventLoop.exec();
reply->deleteLater();
if( reply->error() != QNetworkReply::NoError)
{ {
error = m_db.lastError().text(); error = reply->errorString();
return false; return false;
} }
// 先插入顾客信息不管成功与否不影响后续操作 QByteArray recvArray = reply->readAll();
int custid = -1; error = QString(recvArray);
_InsertInto_p_t_fmwm_custinfo(custid); if(recvArray.size() == 0)
// 开启事务
if(!m_db.transaction())
{ {
error = m_db.lastError().text(); error = "nothing recved";
m_db.close();
return false; return false;
} }
// 插入三张临时表后执行存储过程有一个失败则回滚 QJsonObject recvJson;
if(_InsertInto_d_t_food_fmbill0(cashierId, cashierName, shiftId, shiftName, custid)) recvJson = QJsonDocument::fromJson(recvArray).object();
qDebug() << recvJson;
if(recvJson["echoCode"].toString() != "0")
{ {
if(_InsertInto_d_t_food_fmbills0()) error = recvJson["echoMessage"].toString();
{
if(_InsertInto_d_t_bill_fmpay0())
{
if(_Exec_pr_fmwm())
{
// 都成功则提交
m_db.commit();
error = QString("success");
m_db.close();
return true;
}
}
}
}
// 回滚
error = m_lastError;
m_db.rollback();
m_db.close();
return false; return false;
}
QDir().mkpath(remark_file_path.mid(0,remark_file_path.lastIndexOf("/")));
file.open(QFile::WriteOnly);
file.close();
return true;
} }
bool FmPlugin::GetStockInfo(QList<StockObject> &stockList, QString &error) bool FmPlugin::GetStockInfo(QList<StockObject> &stockList, QString &error)
...@@ -364,3 +385,32 @@ QString FmPlugin::_Penny2Dollar(int penny) ...@@ -364,3 +385,32 @@ QString FmPlugin::_Penny2Dollar(int penny)
double dollar = (double)penny/100; double dollar = (double)penny/100;
return QString::number(dollar,'f',2); return QString::number(dollar,'f',2);
} }
QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject)
{
QJsonObject rObj;
rObj.insert("uuid", orderObject->order_id);
rObj.insert("senderCode", m_storeId);
rObj.insert("sendWrh", "-");
rObj.insert("receiverCode", "95560000001");
rObj.insert("contactor", orderObject->customer);
rObj.insert("phoneNumber", orderObject->phone);
rObj.insert("deliverAddress", orderObject->address);
rObj.insert("remark", "非码外卖");
rObj.insert("ocrDate", QDateTime::fromTime_t(orderObject->create_time).toString("yyyy-MM-ddThh:mm:ss.zzz+0800"));
rObj.insert("filler", "*");
rObj.insert("seller", "*");
QJsonArray products;
for(int i=0; i < orderObject->proList.count(); i++)
{
QJsonObject cObj;
cObj.insert("skuId", "01001");
cObj.insert("qty", orderObject->proList.at(i)->productAmount);
cObj.insert("price", orderObject->proList.at(i)->price);
products.insert(i, cObj);
}
rObj.insert("products", products);
qDebug() << rObj;
return QJsonDocument(rObj).toJson(QJsonDocument::Compact);
}
...@@ -89,6 +89,11 @@ private: ...@@ -89,6 +89,11 @@ private:
* 返回:元 * 返回:元
* */ * */
QString _Penny2Dollar(int penny); QString _Penny2Dollar(int penny);
/* 功能:获取写销售单的数据
* 参数:[1]订单对象
* 返回:销售单数据
* */
QByteArray _GetOrderEntryData(const OrderObject*);
}; };
#endif // FMPLUGIN_H #endif // FMPLUGIN_H
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
QT -= gui QT -= gui
QT += sql QT += sql network
TARGET = fmPlugin TARGET = fmPlugin
TEMPLATE = lib TEMPLATE = lib
......
...@@ -190,8 +190,18 @@ bool FlowControl::_PullOrder() ...@@ -190,8 +190,18 @@ bool FlowControl::_PullOrder()
emit changeOrderStatus(orderObject, oldStatus); emit changeOrderStatus(orderObject, oldStatus);
} }
} }
// if(orderObject->status != 1 && orderObject->status != 2)
m_timestamp = orderObject->timestamp; // {
// QString error;
// if(FmPlugin::GetInstance().DoOrderEntry(orderObject,"","","","",error))
// {
// QLOG_INFO() << QString("_PullOrder DoOrderEntry successful") << error;
// }else
// {
// QLOG_INFO() << QString("_PullOrder DoOrderEntry failed %1").arg(error);
// }
// }
// m_timestamp = orderObject->timestamp;
} }
syncTime = recvJson[JSON_SYNCTIME].toInt()*1000; syncTime = recvJson[JSON_SYNCTIME].toInt()*1000;
} }
...@@ -283,10 +293,7 @@ bool FlowControl::_ConfirmOrder(const QString &orderId, const DeliverObject &del ...@@ -283,10 +293,7 @@ bool FlowControl::_ConfirmOrder(const QString &orderId, const DeliverObject &del
emit showAlert(AlertForm::LOADING, "正在录入天天饮食......"); emit showAlert(AlertForm::LOADING, "正在录入天天饮食......");
QLOG_INFO() << QString("[---order entry begin---]"); QLOG_INFO() << QString("[---order entry begin---]");
// 写入销售单
// TODO(用于鲜丰演示)
// QString orderEntryError("[此单录入天天饮食成功]");
QString orderEntryError(""); QString orderEntryError("");
if(!FmPlugin::GetInstance().DoOrderEntry(orderObject, m_cashierObject.id, m_cashierObject.name, if(!FmPlugin::GetInstance().DoOrderEntry(orderObject, m_cashierObject.id, m_cashierObject.name,
m_cashierObject.shiftId, m_cashierObject.shiftName, error)) m_cashierObject.shiftId, m_cashierObject.shiftName, error))
......
...@@ -382,7 +382,7 @@ ...@@ -382,7 +382,7 @@
</size> </size>
</property> </property>
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::StyledPanel</enum> <enum>QFrame::NoFrame</enum>
</property> </property>
<property name="frameShadow"> <property name="frameShadow">
<enum>QFrame::Raised</enum> <enum>QFrame::Raised</enum>
......
...@@ -3,3 +3,6 @@ url=http://waimaiapi.freemudorder.com/api ...@@ -3,3 +3,6 @@ url=http://waimaiapi.freemudorder.com/api
[RefundListener] [RefundListener]
port=34953 port=34953
[HdServer]
url=http://122.224.171.126:8980/h4rest-server/rest/h5rest-server/core/wholesaleservice/wholesale
\ No newline at end of file
...@@ -70,13 +70,13 @@ QWidget ...@@ -70,13 +70,13 @@ QWidget
{ {
border-image: url(:logo_1.png); border-image: url(:logo_1.png);
} }
#mainBtnNew,#mainBtnMake,#mainBtnSend,#mainBtnFinsh,#mainBtnRefund,#mainBtnOther #mainBtnNew,#mainBtnMake,#mainBtnSend,#mainBtnFinsh,#mainBtnRefund,#mainBtnOther,#mainBtnOur
{ {
font: bold 11pt "微软雅黑"; font: bold 11pt "微软雅黑";
color: rgb(98, 98, 98); color: rgb(98, 98, 98);
border-image: url(:tabBtn_normal.png); border-image: url(:tabBtn_normal.png);
} }
#mainBtnNew:checked,#mainBtnMake:checked,#mainBtnSend:checked,#mainBtnFinsh:checked,#mainBtnRefund:checked,#mainBtnOther:checked #mainBtnNew:checked,#mainBtnMake:checked,#mainBtnSend:checked,#mainBtnFinsh:checked,#mainBtnRefund:checked,#mainBtnOur:checked,#mainBtnOther:checked
{ {
color: rgb(255, 255, 255); color: rgb(255, 255, 255);
border-image: url(:tabBtn_checked.png); border-image: url(:tabBtn_checked.png);
...@@ -171,7 +171,7 @@ QWidget ...@@ -171,7 +171,7 @@ QWidget
{ {
color: rgb(172, 219, 169); color: rgb(172, 219, 169);
} }
#mainTableNew,#mainTableMake,#mainTableSend,#mainTableFinsh,#mainTableRefund,#mainTableOther #mainTableNew,#mainTableMake,#mainTableSend,#mainTableFinsh,#mainTableRefund,#mainTableOther,#mainTableOur
{ {
font: 11pt "微软雅黑"; font: 11pt "微软雅黑";
color: rgb(98, 98, 98); color: rgb(98, 98, 98);
...@@ -179,7 +179,7 @@ QWidget ...@@ -179,7 +179,7 @@ QWidget
} }
#mainTableNew QHeaderView::section,#mainTableMake QHeaderView::section, #mainTableNew QHeaderView::section,#mainTableMake QHeaderView::section,
#mainTableSend QHeaderView::section,#mainTableFinsh QHeaderView::section, #mainTableSend QHeaderView::section,#mainTableFinsh QHeaderView::section,
#mainTableRefund QHeaderView::section,#mainTableOther QHeaderView::section #mainTableRefund QHeaderView::section,#mainTableOther QHeaderView::section,#mainTableOur QHeaderView::section
{ {
border: 0px; border: 0px;
background: rgb(255, 255, 255); background: rgb(255, 255, 255);
...@@ -188,26 +188,26 @@ QWidget ...@@ -188,26 +188,26 @@ QWidget
} }
#mainTableNew QHeaderView::down-arrow,#mainTableMake QHeaderView::down-arrow, #mainTableNew QHeaderView::down-arrow,#mainTableMake QHeaderView::down-arrow,
#mainTableSend QHeaderView::down-arrow,#mainTableFinsh QHeaderView::down-arrow, #mainTableSend QHeaderView::down-arrow,#mainTableFinsh QHeaderView::down-arrow,
#mainTableRefund QHeaderView::down-arrow,#mainTableOther QHeaderView::down-arrow #mainTableRefund QHeaderView::down-arrow,#mainTableOther QHeaderView::down-arrow,#mainTableOur QHeaderView::down-arrow
{ {
border: 0px; border: 0px;
} }
#mainTableNew QHeaderView::up-arrow,#mainTableMake QHeaderView::up-arrow, #mainTableNew QHeaderView::up-arrow,#mainTableMake QHeaderView::up-arrow,
#mainTableSend QHeaderView::up-arrow,#mainTableFinsh QHeaderView::up-arrow, #mainTableSend QHeaderView::up-arrow,#mainTableFinsh QHeaderView::up-arrow,
#mainTableRefund QHeaderView::up-arrow,#mainTableOther QHeaderView::up-arrow #mainTableRefund QHeaderView::up-arrow,#mainTableOther QHeaderView::up-arrow,#mainTableOur QHeaderView::up-arrow
{ {
border: 0px; border: 0px;
} }
#mainTableNew QScrollBar:vertical,#mainTableMake QScrollBar:vertical, #mainTableNew QScrollBar:vertical,#mainTableMake QScrollBar:vertical,
#mainTableSend QScrollBar:vertical,#mainTableFinsh QScrollBar:vertical, #mainTableSend QScrollBar:vertical,#mainTableFinsh QScrollBar:vertical,
#mainTableRefund QScrollBar:vertical,#mainTableOther QScrollBar:vertical #mainTableRefund QScrollBar:vertical,#mainTableOther QScrollBar:vertical,#mainTableOur QScrollBar:vertical
{ {
background: transparent; background: transparent;
width: 8px; width: 8px;
} }
#mainTableNew QScrollBar::handle:vertical,#mainTableMake QScrollBar::handle:vertical, #mainTableNew QScrollBar::handle:vertical,#mainTableMake QScrollBar::handle:vertical,
#mainTableSend QScrollBar::handle:vertical,#mainTableFinsh QScrollBar::handle:vertical, #mainTableSend QScrollBar::handle:vertical,#mainTableFinsh QScrollBar::handle:vertical,
#mainTableRefund QScrollBar::handle:vertical,#mainTableOther QScrollBar::handle:vertical #mainTableRefund QScrollBar::handle:vertical,#mainTableOther QScrollBar::handle:vertical,#mainTableOur QScrollBar::handle:vertical
{ {
border-radius: 6px; border-radius: 6px;
background: rgb(64, 119, 61); background: rgb(64, 119, 61);
...@@ -215,13 +215,13 @@ QWidget ...@@ -215,13 +215,13 @@ QWidget
} }
#mainTableNew QScrollBar::add-line:vertical,#mainTableMake QScrollBar::add-line:vertical, #mainTableNew QScrollBar::add-line:vertical,#mainTableMake QScrollBar::add-line:vertical,
#mainTableSend QScrollBar::add-line:vertical,#mainTableFinsh QScrollBar::add-line:vertical, #mainTableSend QScrollBar::add-line:vertical,#mainTableFinsh QScrollBar::add-line:vertical,
#mainTableRefund QScrollBar::add-line:vertical,#mainTableOther QScrollBar::add-line:vertical #mainTableRefund QScrollBar::add-line:vertical,#mainTableOther QScrollBar::add-line:vertical,#mainTableOur QScrollBar::add-line:vertical
{ {
height: 0px; height: 0px;
} }
#mainTableNew QScrollBar::sub-line:vertical,#mainTableMake QScrollBar::sub-line:vertical, #mainTableNew QScrollBar::sub-line:vertical,#mainTableMake QScrollBar::sub-line:vertical,
#mainTableSend QScrollBar::sub-line:vertical,#mainTableFinsh QScrollBar::sub-line:vertical, #mainTableSend QScrollBar::sub-line:vertical,#mainTableFinsh QScrollBar::sub-line:vertical,
#mainTableRefund QScrollBar::sub-line:vertical,#mainTableOther QScrollBar::sub-line:vertical #mainTableRefund QScrollBar::sub-line:vertical,#mainTableOther QScrollBar::sub-line:vertical,#mainTableOur QScrollBar::sub-line:vertical
{ {
height: 0px; height: 0px;
} }
...@@ -405,7 +405,7 @@ QWidget ...@@ -405,7 +405,7 @@ QWidget
#detailFrm3,#detailFrm4 #detailFrm3,#detailFrm4
{ {
margin-left: 1px; margin-left: 1px;
margin-bottom: -1px; margin-bottom: -3px;
border-image: url(:detailFrm_bg1.png); border-image: url(:detailFrm_bg1.png);
} }
#detailSlab9,#detailSlab10 #detailSlab9,#detailSlab10
......
No preview for this file type
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.0.0, 2017-02-16T14:09:22. --> <!-- Written by QtCreator 4.0.0, 2017-02-23T18:02:33. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>
...@@ -238,7 +238,7 @@ ...@@ -238,7 +238,7 @@
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">fmTakeaway/fmTakeaway.pro</value> <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">fmTakeaway/fmTakeaway.pro</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value> <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value> <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default"></value> <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">C:/Users/Alan/Work/build/takeaway-Release/fmTakeaway</value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value> <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value> <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value> <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment