Commit 24732623 by ss.dai

提交

parent 992c53b2
......@@ -5,6 +5,15 @@
#include <QDebug>
#include <QSettings>
#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()
{
......@@ -47,6 +56,7 @@ bool FmPlugin::GetStoreInfo(QString &storeId, QString &posId, QString &cashierId
qDebug()<<inipath;
QSettings set(inipath, QSettings::IniFormat);
storeId = set.value("info/storeId").toString();
m_storeId = storeId;
posId = set.value("info/posId").toString();
cashierId = QString("001");
qDebug()<<storeId<<posId;
......@@ -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)
{
// TODO(用于鲜丰演示)
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;
}
m_orderObject = orderObject;
if(!m_db.open())
QString inipath=apppath+QString("/config.ini");
QSettings set(inipath, QSettings::IniFormat);
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;
}
// 先插入顾客信息不管成功与否不影响后续操作
int custid = -1;
_InsertInto_p_t_fmwm_custinfo(custid);
// 开启事务
if(!m_db.transaction())
QByteArray recvArray = reply->readAll();
error = QString(recvArray);
if(recvArray.size() == 0)
{
error = m_db.lastError().text();
m_db.close();
error = "nothing recved";
return false;
}
// 插入三张临时表后执行存储过程有一个失败则回滚
if(_InsertInto_d_t_food_fmbill0(cashierId, cashierName, shiftId, shiftName, custid))
QJsonObject recvJson;
recvJson = QJsonDocument::fromJson(recvArray).object();
qDebug() << recvJson;
if(recvJson["echoCode"].toString() != "0")
{
if(_InsertInto_d_t_food_fmbills0())
{
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();
error = recvJson["echoMessage"].toString();
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)
......@@ -364,3 +385,32 @@ QString FmPlugin::_Penny2Dollar(int penny)
double dollar = (double)penny/100;
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:
* 返回:元
* */
QString _Penny2Dollar(int penny);
/* 功能:获取写销售单的数据
* 参数:[1]订单对象
* 返回:销售单数据
* */
QByteArray _GetOrderEntryData(const OrderObject*);
};
#endif // FMPLUGIN_H
......@@ -6,7 +6,7 @@
QT -= gui
QT += sql
QT += sql network
TARGET = fmPlugin
TEMPLATE = lib
......
......@@ -190,8 +190,18 @@ bool FlowControl::_PullOrder()
emit changeOrderStatus(orderObject, oldStatus);
}
}
m_timestamp = orderObject->timestamp;
// if(orderObject->status != 1 && orderObject->status != 2)
// {
// 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;
}
......@@ -283,10 +293,7 @@ bool FlowControl::_ConfirmOrder(const QString &orderId, const DeliverObject &del
emit showAlert(AlertForm::LOADING, "正在录入天天饮食......");
QLOG_INFO() << QString("[---order entry begin---]");
// 写入销售单
// TODO(用于鲜丰演示)
// QString orderEntryError("[此单录入天天饮食成功]");
QString orderEntryError("");
if(!FmPlugin::GetInstance().DoOrderEntry(orderObject, m_cashierObject.id, m_cashierObject.name,
m_cashierObject.shiftId, m_cashierObject.shiftName, error))
......
......@@ -382,7 +382,7 @@
</size>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
......
......@@ -3,3 +3,6 @@ url=http://waimaiapi.freemudorder.com/api
[RefundListener]
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
{
border-image: url(:logo_1.png);
}
#mainBtnNew,#mainBtnMake,#mainBtnSend,#mainBtnFinsh,#mainBtnRefund,#mainBtnOther
#mainBtnNew,#mainBtnMake,#mainBtnSend,#mainBtnFinsh,#mainBtnRefund,#mainBtnOther,#mainBtnOur
{
font: bold 11pt "微软雅黑";
color: rgb(98, 98, 98);
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);
border-image: url(:tabBtn_checked.png);
......@@ -171,7 +171,7 @@ QWidget
{
color: rgb(172, 219, 169);
}
#mainTableNew,#mainTableMake,#mainTableSend,#mainTableFinsh,#mainTableRefund,#mainTableOther
#mainTableNew,#mainTableMake,#mainTableSend,#mainTableFinsh,#mainTableRefund,#mainTableOther,#mainTableOur
{
font: 11pt "微软雅黑";
color: rgb(98, 98, 98);
......@@ -179,7 +179,7 @@ QWidget
}
#mainTableNew QHeaderView::section,#mainTableMake 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;
background: rgb(255, 255, 255);
......@@ -188,26 +188,26 @@ QWidget
}
#mainTableNew QHeaderView::down-arrow,#mainTableMake 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;
}
#mainTableNew QHeaderView::up-arrow,#mainTableMake 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;
}
#mainTableNew QScrollBar:vertical,#mainTableMake 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;
width: 8px;
}
#mainTableNew QScrollBar::handle:vertical,#mainTableMake 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;
background: rgb(64, 119, 61);
......@@ -215,13 +215,13 @@ QWidget
}
#mainTableNew QScrollBar::add-line:vertical,#mainTableMake 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;
}
#mainTableNew QScrollBar::sub-line:vertical,#mainTableMake 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;
}
......@@ -405,7 +405,7 @@ QWidget
#detailFrm3,#detailFrm4
{
margin-left: 1px;
margin-bottom: -1px;
margin-bottom: -3px;
border-image: url(:detailFrm_bg1.png);
}
#detailSlab9,#detailSlab10
......
No preview for this file type
<?xml version="1.0" encoding="UTF-8"?>
<!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>
<data>
<variable>EnvironmentId</variable>
......@@ -238,7 +238,7 @@
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">fmTakeaway/fmTakeaway.pro</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.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="bool" key="RunConfiguration.UseCppDebugger">false</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