Commit 28e695f7 by wuyang.zou

new feature: 分页拉取订单列表

             订单详情页面展示 Pos Key
             展示 微信-MOD + 口碑-MOP
             转换成ServiceTypeID 并入库;
	     Version: 4.2020.318.1
parent 4daf93a9
......@@ -742,14 +742,15 @@ bool FlowControl::_PullOrderList(const int &pageSize, const int &pageNo)
QLOG_ERROR() << QString("[<<<<---FlowControl::_PullOrderList:Pull Order List Error--->>>>][msg->%1]").arg(error);
emit showAlert(AlertForm::MSGERROR, QString::fromLocal8Bit("获取订单失败![%1]").arg(error));
result=false;
m_orderCount = 0;
} else {
QJsonArray orders = recvJson[JSON_DATA].toObject()[JSON_ORDERS].toArray();
foreach(QJsonValue order, orders) {
_OrderAnalysis(order.toObject());
}
ordertotalSum=recvJson[JSON_DATA].toObject()[JSON_COUNT].toInt();
m_orderCount+=1000;
if(m_orderCount<ordertotalSum) {
m_orderCount += orders.size();
if ( m_orderCount < ordertotalSum ) {
//避免出现存在多页数据,导致出现死锁: 先调用定时器的timeout 触发槽函数:_PullOrderData,
//_PullOrderData:内部会有加锁并且会调用分页获取订单函数_AddOrderPull(QString(),QString(),pageNo+1,pageSize): 内部也有加锁,所以导致死锁;
//_AddOrderPull(QString(),QString(),pageNo+1,pageSize);
......@@ -759,9 +760,13 @@ bool FlowControl::_PullOrderList(const int &pageSize, const int &pageNo)
orderPull->channel=QString();
orderPull->pageNumber=pageNo+1;
orderPull->pageSize=pageSize;
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_PullOrderList: Next Page Order List :pageNo:%1--->>>>]").arg(pageNo+1);
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_PullOrderList: Next Page Order List :pageNo:%1 pageSize:%2--->>>>]").arg(pageNo+1).arg(pageSize);
m_orderPullList.append(orderPull);
//避免出现存在多页数据,导致出现死锁;
} else {
//分页拉取订单列表最后一页成功后,需要重置本地拉单计数缓存, 防止影响下一次获取订单列表判断;
m_orderCount = 0;
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_PullOrderList Had Finished: The Last Request PageNo:%1--->>>>]").arg(pageNo);
}
}
}
......@@ -3148,8 +3153,7 @@ void FlowControl::onProcessReTryInputOrder(const QString &orderId)
orderPull->orderId=orderId;
orderPull->channel=TempOrderObject->channel;
orderPull->pageNumber=1;
orderPull->pageSize=1000;
m_orderCount = 0; //重置插件本地缓存数据页;
orderPull->pageSize=30;
m_orderPullList.append(orderPull);
m_PullOrderDataMutex.unlock();
}
......
......@@ -380,9 +380,9 @@ public slots:
QString _Penny2Dollar(int penny);
void _GetIpAddress();
void _AddOrderPull(const QString& orderId=0,const QString& channel=0,const int& pageNumber=1,const int& pageSize=1000);
void _AddOrderPull(const QString& orderId=0,const QString& channel=0,const int& pageNumber=1,const int& pageSize=30);
// 避免获取较多历史订单的同时,OMS又有推单过来,导致死锁;
bool _TryAddOrderPull(const QString &orderId=0, const QString &channel=0, const int &pageNumber=1, const int &pageSize=1000);
bool _TryAddOrderPull(const QString &orderId=0, const QString &channel=0, const int &pageNumber=1, const int &pageSize=30);
//点击屏幕指定区域
void _ClickOMSAssignArea();
......
......@@ -6,7 +6,7 @@
#include <QtSql/QSqlError>
#include <QObject>
#include <QMutex>
#include <Model/orderObject.h>
#include "Model/orderObject.h"
#include "preDefine.h"
class PmsOrdersData : public QObject
......@@ -25,6 +25,17 @@ public:
bool initPmsOrdersData();
/**
*功能:根据OMS数据 转换成 POS上申请的 ServiceType ID 保存到 PMS 数据库中;
*参数:[1]订单对象指针 [2]订单状态;
*返回:int ServiceType ID
* 【index id:
* App-MOP[18-销售,19-退货] KouBei-MOP[29-销售,30-退货] App-MOD[9-销售,17-退货] 客诉单[12 (无退单)] Wechat-MOD[27-销售, 28-退货 ]
* ELEME[11-销售, 16-退货] ORS[21-实物-销售(实物无退货), 23-配送费-销售, 24-配送费-退货] MOP自测[20-销售(无退单) ] STC[25-未使用] HM[14-已停用]
* 】
**/
int convertPosServiceTypeId(const OrderObject* orderObj, const int &OrderStatus);
/**
*功能:插入一条汇总单信息到PMS数据库中;
*参数:[1]订单对象指针 [2]返回插入成功后的自增序号;
*返回:true操作成功,false失败
......
......@@ -130,25 +130,41 @@ QString OrderObject::getChannelName()
{
QLOG_INFO() << QString("[<<<<---OrderObject:getChannelName [%1]--->>>>]").arg(channel);
if ("MOD" == channel && 3 != orderType){
return QString::fromLocal8Bit("星-MOD");
if ( "4" == platformSource ) {
return QString::fromLocal8Bit("微信-MOD");
} else {
return QString::fromLocal8Bit("星-MOD");
}
}else if("MOD" == channel && 3 == orderType){
return QString::fromLocal8Bit("星-客诉");
}else if("ELE" == channel){
return QString::fromLocal8Bit("饿了么");
}else if("BAIDU" == channel){
return QString::fromLocal8Bit("百度外卖");
}else if("MOP" == channel && 4 != orderType){
return QString::fromLocal8Bit("星-MOP");
if ( "5" == platformSource ) {
return QString::fromLocal8Bit("口碑-MOP");
} else {
return QString::fromLocal8Bit("星-MOP");
}
}else if("MOP" == channel && 4 == orderType){
return QString::fromLocal8Bit("星-自测");
}else if("ORS" == channel){
return QString::fromLocal8Bit("星-预约");
}else if("STC" == channel){
return QString::fromLocal8Bit("SmartCase");
}else{
if("HM" == channel) {
return QString::fromLocal8Bit("盒马");
}
return QString::fromLocal8Bit("未知");
}
}
......
......@@ -45,6 +45,7 @@ class OrderObject : public QObject
Q_PROPERTY (QString lang READ getLang WRITE setLang)
Q_PROPERTY (QString memo READ getMemo WRITE setMemo)
Q_PROPERTY (QString consumerRemark READ getConsumerRemark WRITE setConsumerRemark)
Q_PROPERTY (QString invoiceType READ getInvoiceType WRITE setInvoiceType)
Q_PROPERTY (QString invoiceUrl READ getInvoiceUrl WRITE setInvoiceUrl)
Q_PROPERTY (QString invoiceTitle READ getInvoiceTitle WRITE setInvoiceTitle)
......@@ -81,6 +82,7 @@ class OrderObject : public QObject
Q_PROPERTY (int refundStatus READ getRefundStatus WRITE setRefundStatus)
Q_PROPERTY (int deliveryChannel READ getDeliveryChannel WRITE setDeliveryChannel)
Q_PROPERTY (QString customerSex READ getCustomerSex WRITE setCustomerSex)
Q_PROPERTY (QString platformSource READ getPlatformSource WRITE setPlatformSource)
Q_PROPERTY (int orderIndex READ getOrderIndex WRITE setOrderIndex)
public:
OrderObject(QObject *parent=0)
......@@ -140,6 +142,7 @@ public:
QString cancelReason = "";
QString lang = ""; //语言(中文/英文)
QString memo = "";
QString consumerRemark; // 客户备注;
QString invoiceUrl = "";
QString invoiceType = "";
QString invoiceTitle = "";
......@@ -154,7 +157,8 @@ public:
QString addressDetail = "";
int orderIndex = 0;
int updateTime = 0;
QString customerSex = ""; //用户性别 1-男; 2-女
QString customerSex = ""; //用户性别 1-男; 2-女
QString platformSource; //订单平台来源:1 app; 2 ele; 3 ors; 4 WeChat; 5 口碑;
int needInvoice = 0;
int deliveryPrice = 0; // 配送费
int deliveryDiscount = 0; // 配送费折扣
......@@ -289,6 +293,9 @@ public:
inline QString getMemo()const{return memo;}
inline void setMemo(const QString& v){memo = v;}
inline QString getConsumerRemark() const { return consumerRemark; }
inline void setConsumerRemark(const QString& v) { consumerRemark = v; }
inline QString getInvoiceType()const{return invoiceType;}
inline void setInvoiceType(const QString& v){invoiceType = v;}
......@@ -388,6 +395,9 @@ public:
inline QString getCustomerSex()const{return customerSex;}
inline void setCustomerSex(const QString& v){customerSex = v;}
inline QString getPlatformSource()const{return platformSource;}
inline void setPlatformSource(const QString& v){platformSource = v;}
inline QString getPackageSku()const{return packageSku;}
inline void setPackageSku(const QString& v){packageSku = v;}
......
......@@ -66,7 +66,7 @@ void DetailForm::InitData(OrderObject *orderObject)
QLOG_INFO() << QString("[<<<<---DetailForm::InitData ui->detailSlab6 --->>>>]");
ui->detailLab7->setText(orderObject->msr_no.length()? orderObject->msr_no : orderObject->customerId); // MSR_NO
ui->detailLab5->setText(QString("[%1]").arg(orderObject->memo));
ui->detailLab5->setText( QString("[%1 | %2 ]").arg( orderObject->memo).arg(orderObject->consumerRemark) );
int i = 0, pNum = 0, coupNum = 0;
/*********************************** 遍历 商品列表:商品信息展示 begin ***************************************************/
for(; i<orderObject->proList.count(); i++,pNum++)
......@@ -111,7 +111,7 @@ void DetailForm::InitData(OrderObject *orderObject)
if(tempDishObj->promotionSku.length()){
pNum++;
ui->detailTable0->insertRow(pNum);
ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(QString("( ") + tempDishObj->promotionName )); // 商品名
ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(QString("( ") + tempDishObj->promotionName + QString(":") + tempDishObj->promotionSku)); // 商品名
ui->detailTable0->item(pNum, 0)->setTextAlignment(Qt::AlignRight);
ui->detailTable0->setItem(pNum, 1, new QTableWidgetItem( QString("-") + Penny2Dollar(tempDishObj->promotionPrice))); // 价格
ui->detailTable0->item(pNum, 1)->setTextAlignment(Qt::AlignCenter);
......@@ -123,7 +123,7 @@ void DetailForm::InitData(OrderObject *orderObject)
if(tempDishObj->starPromotionSku.length()){
pNum++;
ui->detailTable0->insertRow(pNum);
ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(QString("( ") + tempDishObj->starPromotionName )); // 商品名
ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(QString("( ") + tempDishObj->starPromotionName + QString(":") +tempDishObj->starPromotionSku )); // 商品名
ui->detailTable0->item(pNum, 0)->setTextAlignment(Qt::AlignRight);
ui->detailTable0->setItem(pNum, 1, new QTableWidgetItem( QString("-") + Penny2Dollar(tempDishObj->starPromotionPrice))); // 价格
ui->detailTable0->item(pNum, 1)->setTextAlignment(Qt::AlignCenter);
......@@ -172,7 +172,7 @@ void DetailForm::InitData(OrderObject *orderObject)
// 新增配送费 + 打包费
ui->detailTable0->insertRow(pNum);
ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(QString::fromLocal8Bit("配送费"))); // 配送费
ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(QString::fromLocal8Bit("配送费:") + QString("6000101") )); // 配送费
ui->detailTable0->item(pNum, 0)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(pNum, 1, new QTableWidgetItem(Penny2Dollar(orderObject->deliveryPrice))); // 价格
ui->detailTable0->item(pNum, 1)->setTextAlignment(Qt::AlignCenter);
......@@ -192,7 +192,7 @@ void DetailForm::InitData(OrderObject *orderObject)
}
ui->detailTable0->insertRow(pNum);
ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(QString::fromLocal8Bit("包装费"))); // 包装费
ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(QString::fromLocal8Bit("包装费:") + QString("6000201") )); // 包装费
ui->detailTable0->item(pNum, 0)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(pNum, 1, new QTableWidgetItem(Penny2Dollar(orderObject->packageFee))); // 价格
ui->detailTable0->item(pNum, 1)->setTextAlignment(Qt::AlignCenter);
......@@ -291,7 +291,7 @@ QString DetailForm::GetProductName(dishesObject *dish)
QString name;
QString propertyTags;
name.append(dish->name).append("\r\n");
propertyTags=dish->specId;
propertyTags=dish->code;
if(!propertyTags.isEmpty())
{
name.append(QString("(%1)").arg(propertyTags));
......@@ -303,7 +303,12 @@ QString DetailForm::GetProductName(dishesObject *dish)
foreach(auto value,dish->sub_products)
{
name.append("| ");
name.append(value->name).append(" |").append("\r\n");
name.append(value->name);
if ( !( value->code.contains("Default",Qt::CaseInsensitive) ) ) {
name.append(':').append(value->code);
}
name.append(" |").append("\r\n");
}
}
name.remove((name.length()-1),1);
......
......@@ -7,8 +7,8 @@ IDI_ICON ICON DISCARDABLE "logo.ico"
#endif
VS_VERSION_INFO VERSIONINFO
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
FILEVERSION 4,2019,1225,1
PRODUCTVERSION 4,2019,1225,1
FILEVERSION 4,2020,318,1
PRODUCTVERSION 4,2020,318,1
//*************************************************************************//
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
......@@ -31,8 +31,8 @@ VS_VERSION_INFO VERSIONINFO
VALUE "OriginalFilename", "PmsPlugin.exe"
VALUE "ProductName", "PMS Plugin"
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
VALUE "ProductVersion", "4.2019.1225.1"
VALUE "FileVersion", "4.2019.1225.1"
VALUE "ProductVersion", "4.2020.318.1"
VALUE "FileVersion", "4.2020.318.1"
//*************************************************************************//
END
END
......
......@@ -92,7 +92,7 @@ int main(int argc, char *argv[])
LoadTheme(APP_THEME);
QLOG_INFO() << QString("[<<<<<<<<<<<<<<<<<<<<---->>>>>>>>>>>>>>>>>>>>>>>>>>]");
QLOG_INFO() << QString("[<<<<<<<<<<<-- fmPmsPlugin Start -->>>>>>>>>>>>>>>>]");
QLOG_INFO() << QString("[<<<<<<<<<<<<<<<<<<-- fmPmsPlugin Start Version:%1 -->>>>>>>>>>>>>>>>>>>>>>]").arg(APP_VERSION);
QLOG_INFO() << QString("[<<<<<<<<<<<<<<<<<<<<---->>>>>>>>>>>>>>>>>>>>>>>>>>]");
// 将控制器移到工作线程
......
......@@ -383,17 +383,9 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
// 非首次收到的订单需要现在原先表中删除
if(oldStatus != -100)
{
//TODO
// if(/*2==orderObject->order_type&&*/(1==oldStatus||2==oldStatus))
// {
// table=ui->mainTableReserve;
// tabBtn = ui->mainBtnReserve;
// }
//else{
tabBtn = _GetTabBtnByOrderStatus(oldStatus);
table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
//}
tabBtn = _GetTabBtnByOrderStatus(oldStatus);
table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
for(int i=0; i<table->rowCount(); i++)
{
if(!table->item(i, 1)->text().compare(orderObject->id))
......@@ -405,17 +397,9 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
}
}
}
// 将数据插入到表中
//TODO
// if(/*2==orderObject->order_type&&*/(1==orderObject->orderStatus||2==orderObject->orderStatus))
// {
// table = ui->mainTableReserve;
// tabBtn = ui->mainBtnReserve;
// }
//else{
tabBtn = _GetTabBtnByOrderStatus(orderObject->orderStatus);
table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
//}
tabBtn = _GetTabBtnByOrderStatus(orderObject->orderStatus);
table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
table->insertRow(0);
QTableWidgetItem *item0 = new QTableWidgetItem(orderObject->getChannelName());
......
......@@ -6,7 +6,8 @@
#define APP_THEME "deaufult"
//#define APP_VERSION "4.2019.1031.1"
#define APP_VERSION "4.2019.1225.1"
//#define APP_VERSION "4.2019.1225.1"
#define APP_VERSION "4.2020.318.1"
//修正版本号时,切记修正 FmTakeout.rc 中的版本号
#define SERVER_PASSWORD "posoperator@freemud.cn"
......
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