Browse Source

打包详情页面

error 6 years ago
parent
commit
dca3285eb3

+ 5 - 0
JxcClient.pro

@@ -18,6 +18,7 @@ DEFINES += QT_DEPRECATED_WARNINGS
 SOURCES += \
 SOURCES += \
     configinfo.cpp \
     configinfo.cpp \
     globalinfo.cpp \
     globalinfo.cpp \
+    handle/autopackutils.cpp \
     handle/code39.cpp \
     handle/code39.cpp \
     handle/danjumuban.cpp \
     handle/danjumuban.cpp \
     handle/database.cpp \
     handle/database.cpp \
@@ -28,11 +29,13 @@ SOURCES += \
     widget/loginform.cpp \
     widget/loginform.cpp \
     main.cpp \
     main.cpp \
     mainwindow.cpp \
     mainwindow.cpp \
+    widget/packdetailform.cpp \
     widget/selectvalueform.cpp
     widget/selectvalueform.cpp
 
 
 HEADERS += \
 HEADERS += \
     configinfo.h \
     configinfo.h \
     globalinfo.h \
     globalinfo.h \
+    handle/autopackutils.h \
     handle/code39.h \
     handle/code39.h \
     handle/danjumuban.h \
     handle/danjumuban.h \
     handle/database.h \
     handle/database.h \
@@ -42,12 +45,14 @@ HEADERS += \
     widget/autopackform.h \
     widget/autopackform.h \
     widget/loginform.h \
     widget/loginform.h \
     mainwindow.h \
     mainwindow.h \
+    widget/packdetailform.h \
     widget/selectvalueform.h
     widget/selectvalueform.h
 
 
 FORMS += \
 FORMS += \
     widget/autopackform.ui \
     widget/autopackform.ui \
     widget/loginform.ui \
     widget/loginform.ui \
     mainwindow.ui \
     mainwindow.ui \
+    widget/packdetailform.ui \
     widget/selectvalueform.ui
     widget/selectvalueform.ui
 
 
 # Default rules for deployment.
 # Default rules for deployment.

+ 31 - 0
configinfo.cpp

@@ -5,4 +5,35 @@ ConfigInfo::ConfigInfo()
     baseUrl = "http://erp.itwsw.cn/api";
     baseUrl = "http://erp.itwsw.cn/api";
     packId = 1031;
     packId = 1031;
     printerName = "Deli DL-820T";
     printerName = "Deli DL-820T";
+
+        Config();
+        QFileInfo fileInfo(FileName);
+       if(fileInfo.exists())
+       {
+            qDebug()<<"配置文件已存在";
+            loginUrl = Get("url","loginUrl").toString();//登录接口
+            autoPackUrl = Get("url","autoPackUrl").toString();  //待入库产品添加接口
+            configUrl = Get("url","configUrl").toString();//配置接口
+       }else{
+            qDebug()<<"配置文件不存在";
+            Set("url","autoPackUrl","http://erp.itwsw.cn/api/v1/product/pending");
+            Set("url","loginUrl","http://erp.itwsw.cn/api/v1/signin");
+            Set("url","configUrl","http://erp.itwsw.cn/api/v1/configuration");
+       }
+}
+
+void ConfigInfo::Config()
+{
+    m_psetting = new QSettings(FileName, QSettings::IniFormat);
+}
+
+void ConfigInfo::Set(QString qstrnodename,QString qstrkeyname,QVariant qvarvalue)
+{
+    m_psetting->setValue(QString("/%1/%2").arg(qstrnodename).arg(qstrkeyname), qvarvalue);
+}
+
+QVariant ConfigInfo::Get(QString name,QString keyname)
+{
+    QVariant qvar = m_psetting->value(QString("/%1/%2").arg(name).arg(keyname));
+    return qvar;
 }
 }

+ 20 - 0
configinfo.h

@@ -2,6 +2,10 @@
 #define CONFIGINFO_H
 #define CONFIGINFO_H
 
 
 #include <QString>
 #include <QString>
+#include "QSettings"
+#include "QCoreApplication"
+#include "QDir"
+#include "QDebug"
 
 
 class ConfigInfo
 class ConfigInfo
 {
 {
@@ -11,6 +15,22 @@ public:
     QString baseUrl;
     QString baseUrl;
     quint16 packId;
     quint16 packId;
     QString printerName;
     QString printerName;
+
+    //待入库产品添加接口
+    QString autoPackUrl;
+
+    //登录接口
+    QString loginUrl;
+
+    //配置接口
+    QString configUrl;
+
+    void Config();
+    void Set(QString qstrnodename,QString qstrkeyname,QVariant qvarvalue);
+    QVariant Get(QString qstrnodename,QString qstrkeyname);
+private:
+    QString FileName = QCoreApplication::applicationDirPath() + "/Config.ini";
+    QSettings *m_psetting;
 };
 };
 
 
 struct UserInfo
 struct UserInfo

+ 128 - 0
handle/autopackutils.cpp

@@ -0,0 +1,128 @@
+#include "autopackutils.h"
+
+/**
+ * @brief AutoPackForm工具类
+ */
+AutoPackUtils::AutoPackUtils()
+{
+    connect(&_request,&HttpRequest::result,this,&AutoPackUtils::httpResult);
+}
+
+/**
+ * @brief 把打包数据存入本地数据库后,上传服务器打包数据
+ * @param info
+ */
+void AutoPackUtils::doSend(QSharedPointer<PackInfo> &info)
+{
+    if(info.isNull()) return;
+    //把数据添加到数据库里
+    insertProductSQL(info);
+    //TODO:发送码单 packinfo 数据, 转换为 json数据发送
+    QJsonObject json = toJson(info);
+    _request.setUserToken(QString::number(GlobalInfo::this_()->user().accountId),GlobalInfo::this_()->user().acessToken);
+//    qDebug()<<QString::number(GlobalInfo::this_()->user().accountId);
+//    qDebug()<<GlobalInfo::this_()->user().acessToken;
+
+//    _request.post(GlobalInfo::this_()->config().autoPackUrl,json);
+
+//    qDebug()<<json;
+}  // http://doc.vanlai.net:3001/web/#/1?page_id=64
+
+void AutoPackUtils::httpResult(int emitcode, const QJsonObject body)
+{
+    qDebug()<<emitcode;
+    qDebug()<<body;
+    if(emitcode==200&&body["product_id"].toInt()!=0){
+        database.changeState(codeSingle);
+    }
+}
+
+
+//把BoxInfo数据添加到deetails数据库里;
+void AutoPackUtils::insertDetailsSQL(QSharedPointer<BoxInfo> boxes,QString codeSingle)
+{
+//    qDebug()<<boxes->caseNumber();
+    detailsData.code_single = codeSingle;
+    detailsData.case_number = boxes->caseNumber();
+    detailsData.box_weight = boxes->box_weight;
+    detailsData.tube_number = boxes->tube_number;
+    detailsData.bucket_weight = boxes->bucket_weight;
+    detailsData.gross_weight = boxes->gross_weight;
+    detailsData.net_weight = boxes->net_weight;
+    detailsData.sort = boxes->sort;
+    detailsData.remark = boxes->remark;
+
+    if(database.insertDetails(detailsData)){
+        qDebug()<<"details数据库添加成功";
+        return;
+    }
+    qDebug()<<"details数据库添加失败";
+}
+
+//把PackInfo添加到product数据库里;
+void AutoPackUtils::insertProductSQL(QSharedPointer<PackInfo> packes)
+{
+    //保存码单,上传服务器成功后,以codeSingle为条件更改同步字段;
+    this->codeSingle = packes->codeSingle();
+
+    productData.goods_id = packes->goodsID();
+    productData.code_single = packes->codeSingle();
+    productData.quantity = packes->quantity;
+    productData.batch_no = packes->info().batch_no;
+    productData.category = packes->info().category;
+    productData.level_id = packes->level_id;
+    productData.tube_number = packes->tube_number();
+    productData.gross_weight = packes->gross_weight();
+    productData.net_weight = packes->net_weight();
+    productData.machine_no = packes->machine_no;
+    productData.packing_time = packes->packing_time;
+    productData.packing_type = packes->packing_type;
+    productData.carton_type = packes->carton_type;
+    productData.operator_id = packes->operator_id;
+    productData.remark = packes->remark;
+
+    if(database.insertProduct(productData)){
+        qDebug()<<"product数据库添加成功";
+        return;
+    }
+    qDebug()<<"product数据库添加失败";
+}
+
+
+
+//将打包数据转换为json数据
+QJsonObject AutoPackUtils::toJson(QSharedPointer<PackInfo> &info)
+{
+    QJsonObject json;
+    QJsonObject detailsjson;
+    QJsonArray jsonarray;
+    for(int i = 0;i<info->boxes().size();i++){
+        detailsjson.insert("case_number",info->boxes().at(i)->caseNumber());
+        detailsjson.insert("box_weight",info->boxes().at(i)->box_weight);
+        detailsjson.insert("tube_number",info->boxes().at(i)->tube_number);
+        detailsjson.insert("bucket_weight",info->boxes().at(i)->bucket_weight);
+        detailsjson.insert("gross_weight",info->boxes().at(i)->gross_weight);
+        detailsjson.insert("net_weight",info->boxes().at(i)->net_weight);
+        detailsjson.insert("box_weight",info->boxes().at(i)->box_weight);
+        detailsjson.insert("sort",info->boxes().at(i)->sort);
+        detailsjson.insert("remark",info->boxes().at(i)->remark);
+        jsonarray.append(detailsjson);
+    }
+    json.insert("goods_id",info->goodsID());
+    json.insert("code_single",info->codeSingle());
+    json.insert("quantity",info->quantity);
+    json.insert("level_id",info->level_id);
+    json.insert("tube_number",info->tube_number());
+    json.insert("gross_weight",info->gross_weight());
+    json.insert("net_weight",info->net_weight());
+    json.insert("machine_no",info->machine_no);
+    json.insert("packing_time",info->packing_time);
+    json.insert("packing_type",info->packing_type);
+    json.insert("carton_type",info->carton_type);
+    json.insert("operator",info->operator_id);
+    json.insert("details",jsonarray);
+    json.insert("remark",info->remark);
+
+
+    return json;
+}

+ 38 - 0
handle/autopackutils.h

@@ -0,0 +1,38 @@
+#ifndef AUTOPACKUTILS_H
+#define AUTOPACKUTILS_H
+
+#include "QObject"
+#include "qabstractanimation.h"
+#include "httprequest.h"
+#include "database.h"
+#include "packinfo.h"
+#include "globalinfo.h"
+#include "danjumuban.h"
+
+//AutoPackFrom工具类
+class AutoPackUtils : public QObject
+{
+
+    Q_OBJECT
+
+public:
+    AutoPackUtils();
+public slots:
+
+    void doSend(QSharedPointer<PackInfo> & info);
+    void httpResult(int emitcode, const QJsonObject body);
+
+    void insertDetailsSQL(QSharedPointer<BoxInfo> boxes,QString codeSingle);
+    void insertProductSQL(QSharedPointer<PackInfo> packes);
+
+    QJsonObject toJson(QSharedPointer<PackInfo> &info);
+private:
+    HttpRequest _request;
+    DanJuMuBan djmb;
+    Database database;
+    details_data detailsData;
+    product_data productData;
+    QString codeSingle;
+};
+
+#endif // AUTOPACKUTILS_H

+ 4 - 4
handle/code39.cpp

@@ -74,7 +74,7 @@ void Code39::draw(QPainter & painter, QRect & pos,QString & barcode)
     //QBitmap bmp(MAXWIDTH,MAXHEIGHT+FONTHEIGHT);
     //QBitmap bmp(MAXWIDTH,MAXHEIGHT+FONTHEIGHT);
 //    QPainter painter(&image);
 //    QPainter painter(&image);
     painter.save();
     painter.save();
-    painter.setWindow(pos);
+//    painter.setWindow(pos);
     QPen white,black;
     QPen white,black;
     //    painter.setRenderHint(QPainter::Antialiasing,true);//弧线圆润
     //    painter.setRenderHint(QPainter::Antialiasing,true);//弧线圆润
     white.setColor(QColor(255,255,255));
     white.setColor(QColor(255,255,255));
@@ -91,7 +91,7 @@ void Code39::draw(QPainter & painter, QRect & pos,QString & barcode)
     {
     {
         if(BinaryNum.at(i)=='1') painter.setPen(black);
         if(BinaryNum.at(i)=='1') painter.setPen(black);
         else painter.setPen(white);
         else painter.setPen(white);
-        painter.drawLine(i*LineWidth+LineWidth/2+move,0,i*LineWidth+LineWidth/2+move,MAXHEIGHT);
+        painter.drawLine(i*LineWidth+LineWidth/2+move,pos.top(),i*LineWidth+LineWidth/2+move,MAXHEIGHT);
     }
     }
 
 
 //    qDebug()<<barcode<<endl;
 //    qDebug()<<barcode<<endl;
@@ -102,10 +102,10 @@ void Code39::draw(QPainter & painter, QRect & pos,QString & barcode)
     painter.setRenderHint(QPainter::HighQualityAntialiasing,true);
     painter.setRenderHint(QPainter::HighQualityAntialiasing,true);
     QFont font;
     QFont font;
     font.setFamily("宋体");
     font.setFamily("宋体");
-    font.setPixelSize(10);
+    font.setPixelSize(5*5);
     font.setWeight(QFont::ExtraLight);
     font.setWeight(QFont::ExtraLight);
     painter.setFont(font);
     painter.setFont(font);
-    painter.drawText(5,30,MAXWIDTH,10,Qt::AlignCenter,/*"S/N:" +*/ barcode);
+    painter.drawText(4*5,66*5,MAXWIDTH,16,Qt::AlignCenter,/*"S/N:" +*/ barcode);
 
 
     painter.restore();
     painter.restore();
 }
 }

+ 2 - 1
handle/danjumuban.cpp

@@ -32,7 +32,7 @@ QImage DanJuMuBan::printBoxInfo(QString bar,QSharedPointer<BoxInfo> info)
     painter.drawRect(5*5,55*5,90*5,15*5);
     painter.drawRect(5*5,55*5,90*5,15*5);
     painter.drawRect(5*5,70*5,90*5,7*5);
     painter.drawRect(5*5,70*5,90*5,7*5);
 
 
-    QRect target(0*5, 57*5, 100*5, 60*5);
+    QRect target(0*5, 57*5, 100*5, 65*5);
 //    QRect source(-10*5, 0, 65*5, 40*5);
 //    QRect source(-10*5, 0, 65*5, 40*5);
     barCode.draw(painter,target,bar);
     barCode.draw(painter,target,bar);
 //    painter.drawImage(target,barCode.draw(barCode.CodeBinary(bar),bar),source);
 //    painter.drawImage(target,barCode.draw(barCode.CodeBinary(bar),bar),source);
@@ -46,6 +46,7 @@ QImage DanJuMuBan::printBoxInfo(QString bar,QSharedPointer<BoxInfo> info)
     font.setWeight(QFont::ExtraLight);
     font.setWeight(QFont::ExtraLight);
     painter.setFont(font);
     painter.setFont(font);
     painter.drawText(6*5,15*5,pinfo->info().customer);
     painter.drawText(6*5,15*5,pinfo->info().customer);
+    qDebug()<<pinfo->info().customer;
 
 
     font.setPixelSize(20);
     font.setPixelSize(20);
     font.setBold(true);
     font.setBold(true);

+ 22 - 14
handle/database.cpp

@@ -30,10 +30,14 @@ bool Database::createProductDatabase()
     QSqlDatabase db = QSqlDatabase::database("db");
     QSqlDatabase db = QSqlDatabase::database("db");
     QSqlQuery query(db);
     QSqlQuery query(db);
 
 
+
+
     bool success = query.exec("CREATE TABLE product ("
     bool success = query.exec("CREATE TABLE product ("
                                   "goods_id INTEGER NOT NULL,"
                                   "goods_id INTEGER NOT NULL,"
                                   "code_single VARCHAR NOT NULL,"
                                   "code_single VARCHAR NOT NULL,"
                                   "quantity INTEGER NOT NULL,"
                                   "quantity INTEGER NOT NULL,"
+                                  "batch_no VARCHAR NOT NULL,"
+                                  "category VARCHAR NOT NULL,"
                                   "level_id INTEGER NOT NULL,"
                                   "level_id INTEGER NOT NULL,"
                                   "tube_number INTEGER NOT NULL,"
                                   "tube_number INTEGER NOT NULL,"
                                   "gross_weight INTEGER NOT NULL,"
                                   "gross_weight INTEGER NOT NULL,"
@@ -46,6 +50,8 @@ bool Database::createProductDatabase()
                                   "tongbu VARCHAR(1) DEFAULT 0,"
                                   "tongbu VARCHAR(1) DEFAULT 0,"
                                   "remark VARCHAR);");
                                   "remark VARCHAR);");
 
 
+//    bool success = query.exec("drop table product;");
+
     if(success)
     if(success)
     {
     {
         qDebug() << QObject::tr("product数据库表创建成功!\n");
         qDebug() << QObject::tr("product数据库表创建成功!\n");
@@ -92,23 +98,25 @@ bool Database::insertProduct(product_data productData)
     QSqlQuery query(db);
     QSqlQuery query(db);
 
 
     query.prepare("INSERT INTO product(goods_id,"
     query.prepare("INSERT INTO product(goods_id,"
-                          "code_single, quantity, level_id, tube_number,"
+                          "code_single, quantity, batch_no, category,level_id, tube_number,"
                           "gross_weight, net_weight, machine_no, packing_time,"
                           "gross_weight, net_weight, machine_no, packing_time,"
                           "packing_type, carton_type, operator_id, remark)"
                           "packing_type, carton_type, operator_id, remark)"
-                          "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)");
+                          "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
     query.bindValue(0,productData.goods_id);
     query.bindValue(0,productData.goods_id);
     query.bindValue(1,productData.code_single);
     query.bindValue(1,productData.code_single);
     query.bindValue(2,productData.quantity);
     query.bindValue(2,productData.quantity);
-    query.bindValue(3,productData.level_id);
-    query.bindValue(4,productData.tube_number);
-    query.bindValue(5,productData.gross_weight);
-    query.bindValue(6,productData.net_weight);
-    query.bindValue(7,productData.machine_no);
-    query.bindValue(8,productData.packing_time);
-    query.bindValue(9,productData.packing_type);
-    query.bindValue(10,productData.carton_type);
-    query.bindValue(11,productData.operator_id);
-    query.bindValue(12,productData.remark);
+    query.bindValue(3,productData.batch_no);
+    query.bindValue(4,productData.category);
+    query.bindValue(5,productData.level_id);
+    query.bindValue(6,productData.tube_number);
+    query.bindValue(7,productData.gross_weight);
+    query.bindValue(8,productData.net_weight);
+    query.bindValue(9,productData.machine_no);
+    query.bindValue(10,productData.packing_time);
+    query.bindValue(11,productData.packing_type);
+    query.bindValue(12,productData.carton_type);
+    query.bindValue(13,productData.operator_id);
+    query.bindValue(14,productData.remark);
 
 
     bool success=query.exec();
     bool success=query.exec();
     return success;
     return success;
@@ -185,7 +193,7 @@ bool Database::del(QString &table, QString &expression)
     return (query.exec(sql)) ? true : false;
     return (query.exec(sql)) ? true : false;
 }
 }
 
 
-QList<QStringList> Database::GetValues(QString &table, QStringList &values)
+QList<QMap<QString,QString>> Database::GetValues(QString &table, QStringList &values)
 {
 {
     dbmxdata.clear();
     dbmxdata.clear();
     dbmxlist.clear();
     dbmxlist.clear();
@@ -198,7 +206,7 @@ QList<QStringList> Database::GetValues(QString &table, QStringList &values)
     {
     {
         for(int i = 0;i <= values.size()-1;i++){
         for(int i = 0;i <= values.size()-1;i++){
 //            qDebug()<<values.at(i) << query.value(values.at(i)).toString();
 //            qDebug()<<values.at(i) << query.value(values.at(i)).toString();
-            dbmxdata.append(query.value(values.at(i)).toString());
+            dbmxdata.insert(values.at(i),query.value(values.at(i)).toString());
         }
         }
         dbmxlist.append(dbmxdata);
         dbmxlist.append(dbmxdata);
         dbmxdata.clear();
         dbmxdata.clear();

+ 5 - 3
handle/database.h

@@ -12,6 +12,8 @@ struct product_data
     int goods_id;
     int goods_id;
     QString code_single;
     QString code_single;
     int quantity;
     int quantity;
+    QString batch_no;
+    QString category;
     int level_id;
     int level_id;
     int tube_number;
     int tube_number;
     int gross_weight;
     int gross_weight;
@@ -53,7 +55,7 @@ public:
 //    bool insert(QString &table, QStringList &names, QStringList &values);
 //    bool insert(QString &table, QStringList &names, QStringList &values);
     bool update(QString &table, QStringList &names, QStringList &values, QString &expression);
     bool update(QString &table, QStringList &names, QStringList &values, QString &expression);
     bool del(QString &table, QString &expression);
     bool del(QString &table, QString &expression);
-    QList<QStringList> GetValues(QString &table, QStringList &values);
+    QList<QMap<QString,QString>> GetValues(QString &table, QStringList &values);
 
 
     bool insertProduct(product_data productData);
     bool insertProduct(product_data productData);
     bool insertDetails(details_data detailsData);
     bool insertDetails(details_data detailsData);
@@ -65,8 +67,8 @@ private:
     QSqlDatabase _database;
     QSqlDatabase _database;
     QSqlTableModel *model;
     QSqlTableModel *model;
     QString _tableName;
     QString _tableName;
-    QList<QStringList> dbmxlist;
-    QStringList dbmxdata;
+    QList<QMap<QString,QString>> dbmxlist;
+    QMap<QString,QString> dbmxdata;
 };
 };
 
 
 #endif // DATABASE_H
 #endif // DATABASE_H

+ 1 - 0
handle/httprequest.cpp

@@ -20,6 +20,7 @@ void HttpRequest::get(const QString & url)
 void HttpRequest::post(const QString & url, const QJsonObject & body)
 void HttpRequest::post(const QString & url, const QJsonObject & body)
 {
 {
      QNetworkRequest req;
      QNetworkRequest req;
+     req.setUrl(url);
      initRequest(req, 1);
      initRequest(req, 1);
      req.setHeader(QNetworkRequest::ContentTypeHeader,"application/json");
      req.setHeader(QNetworkRequest::ContentTypeHeader,"application/json");
      _manager.post(req, QJsonDocument(body).toJson());
      _manager.post(req, QJsonDocument(body).toJson());

+ 1 - 1
handle/remotepackconfig.cpp

@@ -102,7 +102,7 @@ void RemotePackConfig::refConfig()
 //    _aid = QString::number(body["user_id"].toInt());
 //    _aid = QString::number(body["user_id"].toInt());
 //    _token = body["access_token"].toString();
 //    _token = body["access_token"].toString();
     _request.setUserToken(QString::number( glo->user().accountId) ,glo->user().acessToken);
     _request.setUserToken(QString::number( glo->user().accountId) ,glo->user().acessToken);
-    QString url = glo->config().baseUrl +  "/v1/configuration";
+    QString url = glo->config().configUrl;
     _request.get(url);
     _request.get(url);
 }
 }
 
 

+ 2 - 2
handle/remotepackconfig.h

@@ -28,7 +28,7 @@ struct DaBaoConfig
     //基础配置
     //基础配置
     QStringList jitai;//机台
     QStringList jitai;//机台
     QStringList dangchegongbanci;//挡车工班次
     QStringList dangchegongbanci;//挡车工班次
-    QStringList daBaoGongBanCi;
+    QStringList daBaoGongBanCi;//打包工班次
     QList<double> xiangzhong;//箱重
     QList<double> xiangzhong;//箱重
     QList<double> tongZhong;// 桶重
     QList<double> tongZhong;// 桶重
     QStringList guanse;//管色
     QStringList guanse;//管色
@@ -53,7 +53,7 @@ struct DaBaoConfig
     bool daBaoZhuangMaoZhongXianZhiKaiQi;//大包装毛重限制开启
     bool daBaoZhuangMaoZhongXianZhiKaiQi;//大包装毛重限制开启
     bool pingBanZiDongTongBuShuJu;// 平板自动同步数据
     bool pingBanZiDongTongBuShuJu;// 平板自动同步数据
     bool ziDongDaBaoKaiQi;//自动打包开启
     bool ziDongDaBaoKaiQi;//自动打包开启
-    int chengZhongJIngDu;
+    int chengZhongJIngDu;//称重精度
     int chengZhongJingDuMode; // 0 四舍五入,1 二舍三入,2 一舍二入
     int chengZhongJingDuMode; // 0 四舍五入,1 二舍三入,2 一舍二入
     QPair<int,int> buDingZhongTongShuFanWei;//不定重筒数范围
     QPair<int,int> buDingZhongTongShuFanWei;//不定重筒数范围
     QPair<int,int> dingZhongTongShuFanwei;//定重筒数范围
     QPair<int,int> dingZhongTongShuFanwei;//定重筒数范围

+ 5 - 0
mainwindow.cpp

@@ -51,3 +51,8 @@ void MainWindow::changedjmb(QImage image)
     ui->stackedWidget->setCurrentWidget(ui->pageTest);
     ui->stackedWidget->setCurrentWidget(ui->pageTest);
     ui->djmb->setPixmap(QPixmap::fromImage(image));
     ui->djmb->setPixmap(QPixmap::fromImage(image));
 }
 }
+
+void MainWindow::on_pushList_clicked()
+{
+    ui->stackedWidget->setCurrentWidget(ui->pagePackDetail);
+}

+ 2 - 0
mainwindow.h

@@ -20,6 +20,8 @@ public:
 private slots:
 private slots:
     void on_pushAuto_clicked();
     void on_pushAuto_clicked();
 
 
+    void on_pushList_clicked();
+
 private:
 private:
     void backMenu();
     void backMenu();
     void pageStatusChange(const ProjectInfo & info, int status);
     void pageStatusChange(const ProjectInfo & info, int status);

+ 8 - 1
mainwindow.ui

@@ -33,7 +33,7 @@
     <item>
     <item>
      <widget class="QStackedWidget" name="stackedWidget">
      <widget class="QStackedWidget" name="stackedWidget">
       <property name="currentIndex">
       <property name="currentIndex">
-       <number>0</number>
+       <number>5</number>
       </property>
       </property>
       <widget class="QWidget" name="pageMain">
       <widget class="QWidget" name="pageMain">
        <layout class="QHBoxLayout" name="horizontalLayout_2">
        <layout class="QHBoxLayout" name="horizontalLayout_2">
@@ -314,6 +314,7 @@ color: rgb(255, 255, 255);</string>
       </widget>
       </widget>
       <widget class="AutoPackForm" name="pageAutoPack"/>
       <widget class="AutoPackForm" name="pageAutoPack"/>
       <widget class="SelectValueForm" name="pageSelectValue"/>
       <widget class="SelectValueForm" name="pageSelectValue"/>
+      <widget class="PackDetailForm" name="pagePackDetail"/>
      </widget>
      </widget>
     </item>
     </item>
    </layout>
    </layout>
@@ -349,6 +350,12 @@ color: rgb(255, 255, 255);</string>
    <header>widget/selectvalueform.h</header>
    <header>widget/selectvalueform.h</header>
    <container>1</container>
    <container>1</container>
   </customwidget>
   </customwidget>
+  <customwidget>
+   <class>PackDetailForm</class>
+   <extends>QWidget</extends>
+   <header>widget/packdetailform.h</header>
+   <container>1</container>
+  </customwidget>
  </customwidgets>
  </customwidgets>
  <resources/>
  <resources/>
  <connections/>
  <connections/>

+ 1 - 5
packinfo.cpp

@@ -9,10 +9,6 @@ PackInfo::PackInfo(const ProjectInfo & info) : _info(info)
 {
 {
     code_single = buildPackId();
     code_single = buildPackId();
     goods_id = info.goods_id;
     goods_id = info.goods_id;
-    packing_time = QDate::currentDate().toString("yyMMdd");
-    packing_type = info.category;
-    operator_id = GlobalInfo::this_()->user().accountId;
-
 }
 }
 
 
 
 
@@ -35,7 +31,7 @@ QString PackInfo::buildBoxId()
 {
 {
      int nowNum = boxes().size() + 1;
      int nowNum = boxes().size() + 1;
      QDateTime now = QDateTime::currentDateTime();
      QDateTime now = QDateTime::currentDateTime();
-     QString id = now.toString("yyMMdd") + GlobalInfo::this_()->packNum() + QString::asprintf("%03d",nowNum);
+     QString id = now.toString("yyMMddhhmmss") + /*GlobalInfo::this_()->packNum() +*/ QString::asprintf("%03d",nowNum);
      return id;
      return id;
 }
 }
 
 

+ 14 - 132
widget/autopackform.cpp

@@ -16,7 +16,7 @@ AutoPackForm::~AutoPackForm()
 
 
 void AutoPackForm::on_pushBack_clicked()
 void AutoPackForm::on_pushBack_clicked()
 {
 {
-    doSend(packinfo);
+    aputils.doSend(packinfo);
     emit back();
     emit back();
 }
 }
 
 
@@ -28,7 +28,6 @@ void AutoPackForm::init()
     packConfig.refConfig();
     packConfig.refConfig();
     connect(&packConfig,&RemotePackConfig::configUpdate,this,&AutoPackForm::upconfig);
     connect(&packConfig,&RemotePackConfig::configUpdate,this,&AutoPackForm::upconfig);
     connect(&packConfig,&RemotePackConfig::dengJIConfigUp,this,&AutoPackForm::upDengjiInfo);
     connect(&packConfig,&RemotePackConfig::dengJIConfigUp,this,&AutoPackForm::upDengjiInfo);
-    connect(&_request,&HttpRequest::result,this,&AutoPackForm::httpResult);
     ui->comboBox->clear();
     ui->comboBox->clear();
     for(int i = 1;i<20;i++){
     for(int i = 1;i<20;i++){
         ui->comboBox->addItem(QString::number(i));
         ui->comboBox->addItem(QString::number(i));
@@ -39,10 +38,12 @@ void AutoPackForm::init()
 void AutoPackForm::on_addPackList_clicked()
 void AutoPackForm::on_addPackList_clicked()
 {
 {
     //TODO: 缓存箱单数据,页面显示情空
     //TODO: 缓存箱单数据,页面显示情空
-    doSend(packinfo);
+    aputils.doSend(packinfo);
     //TODO: 初始化码单信息
     //TODO: 初始化码单信息
     packinfo.reset(new PackInfo(_info));
     packinfo.reset(new PackInfo(_info));
     packinfo->operator_id = GlobalInfo::this_()->user().userId;
     packinfo->operator_id = GlobalInfo::this_()->user().userId;
+    packinfo->packing_time = QDate::currentDate().toString("yy-MM-dd");
+    packinfo->packing_type = _info.category;
 }
 }
 
 
 void AutoPackForm::upconfig(const DaBaoConfig &config)
 void AutoPackForm::upconfig(const DaBaoConfig &config)
@@ -103,17 +104,7 @@ void AutoPackForm::on_pushStart_clicked()
     }
     }
 }
 }
 
 
-void AutoPackForm::doSend(QSharedPointer<PackInfo> &info)
-{
-    if(info.isNull()) return;
-    //把数据添加到数据库里
-    insertProductSQL(info);
-    //TODO:发送码单 packinfo 数据, 转换为 json数据发送
-    QJsonObject json = this->toJson(info);
-    _request.setUserToken(QString::number(GlobalInfo::this_()->user().accountId),GlobalInfo::this_()->user().acessToken);
-//    _request.post("http://doc.vanlai.net:3001/web/#/1?page_id=64",json);
 
 
-}  // http://doc.vanlai.net:3001/web/#/1?page_id=64
 
 
 void AutoPackForm::on_addBoxList_clicked()
 void AutoPackForm::on_addBoxList_clicked()
 {
 {
@@ -132,7 +123,15 @@ void AutoPackForm::on_addBoxList_clicked()
 
 
 
 
     //TODO: 缓存数据,显示数据
     //TODO: 缓存数据,显示数据
-//    emit djmbbox(djmb.printBoxInfo(box->caseNumber(),box));
+    ui->tableWidget->setRowCount(ui->tableWidget->rowCount()+1);
+    ui->tableWidget->setItem(ui->tableWidget->rowCount(),0,new QTableWidgetItem(QString::number(ui->tableWidget->rowCount()+1)));
+    ui->tableWidget->setItem(ui->tableWidget->rowCount(),1,new QTableWidgetItem(box->caseNumber()));
+    ui->tableWidget->setItem(ui->tableWidget->rowCount(),2,new QTableWidgetItem(box->tube_number));
+    ui->tableWidget->setItem(ui->tableWidget->rowCount(),3,new QTableWidgetItem(box->gross_weight));
+    ui->tableWidget->setItem(ui->tableWidget->rowCount(),4,new QTableWidgetItem(box->bucket_weight));
+    ui->tableWidget->setItem(ui->tableWidget->rowCount(),5,new QTableWidgetItem(box->net_weight));
+
+    emit djmbbox(djmb.printBoxInfo(box->caseNumber(),box));
 //    qDebug()<<packinfo->boxes().size();
 //    qDebug()<<packinfo->boxes().size();
 //    doSend(packinfo);
 //    doSend(packinfo);
 
 
@@ -140,7 +139,7 @@ void AutoPackForm::on_addBoxList_clicked()
     packinfo->addBoxInfoList(box);
     packinfo->addBoxInfoList(box);
 
 
     //添加数据库
     //添加数据库
-    insertDetailsSQL(box,packinfo->codeSingle());
+    aputils.insertDetailsSQL(box,packinfo->codeSingle());
 
 
     //packinfo其他数据在new时已经定义好的,需要时直接调就可以了,所以这里只要箱数,等级,机台和类型
     //packinfo其他数据在new时已经定义好的,需要时直接调就可以了,所以这里只要箱数,等级,机台和类型
     if(packinfo->boxes().size()>=ui->comboBox->currentText().toInt()){
     if(packinfo->boxes().size()>=ui->comboBox->currentText().toInt()){
@@ -154,120 +153,3 @@ void AutoPackForm::on_addBoxList_clicked()
 
 
 
 
 
 
-void AutoPackForm::httpResult(int emitcode, const QJsonObject body)
-{
-    qDebug()<<emitcode;
-    qDebug()<<body;
-    database.changeState(packinfo->codeSingle());
-}
-
-
-//把BoxInfo数据添加到deetails数据库里;
-void AutoPackForm::insertDetailsSQL(QSharedPointer<BoxInfo> boxes,QString codeSingle)
-{
-    qDebug()<<boxes->caseNumber();
-    detailsData.code_single = codeSingle;
-    detailsData.case_number = boxes->caseNumber();
-    detailsData.box_weight = boxes->box_weight;
-    detailsData.tube_number = boxes->tube_number;
-    detailsData.bucket_weight = boxes->bucket_weight;
-    detailsData.gross_weight = boxes->gross_weight;
-    detailsData.net_weight = boxes->net_weight;
-    detailsData.sort = boxes->sort;
-    detailsData.remark = boxes->remark;
-
-    if(database.insertDetails(detailsData)){
-        qDebug()<<"details数据库添加成功";
-        return;
-    }
-    qDebug()<<"details数据库添加失败";
-}
-
-//把PackInfo添加到product数据库里;
-void AutoPackForm::insertProductSQL(QSharedPointer<PackInfo> packes)
-{
-    productData.goods_id = packes->goodsID();
-    productData.code_single = packes->codeSingle();
-    productData.quantity = packes->quantity;
-    productData.level_id = packes->level_id;
-    productData.tube_number = packes->tube_number();
-    productData.gross_weight = packes->gross_weight();
-    productData.net_weight = packes->net_weight();
-    productData.machine_no = packes->machine_no;
-    productData.packing_time = packes->packing_time;
-    productData.packing_type = packes->packing_type;
-    productData.carton_type = packes->carton_type;
-    productData.operator_id = packes->operator_id;
-    productData.remark = packes->remark;
-
-    if(database.insertProduct(productData)){
-        qDebug()<<"product数据库添加成功";
-        return;
-    }
-    qDebug()<<"product数据库添加失败";
-}
-
-
-
-//将打包数据转换为json数据
-QJsonObject AutoPackForm::toJson(QSharedPointer<PackInfo> &info)
-{
-    QJsonObject json;
-    QJsonObject detailsjson;
-    QJsonArray jsonarray;
-//    for(int i = 0;i<info->boxes().size();i++){
-//        detailsjson.insert("case_number",info->boxes().at(i)->caseNumber());
-//        detailsjson.insert("box_weight",info->boxes().at(i)->box_weight);
-//        detailsjson.insert("tube_number",info->boxes().at(i)->tube_number);
-//        detailsjson.insert("bucket_weight",info->boxes().at(i)->bucket_weight);
-//        detailsjson.insert("gross_weight",info->boxes().at(i)->gross_weight);
-//        detailsjson.insert("net_weight",info->boxes().at(i)->net_weight);
-//        detailsjson.insert("box_weight",info->boxes().at(i)->box_weight);
-//        detailsjson.insert("sort",info->boxes().at(i)->sort);
-//        detailsjson.insert("remark",info->boxes().at(i)->remark);
-//        jsonarray.append(detailsjson);
-//    }
-//    json.insert("goods_id",packes->goodsID());
-//    json.insert("code_single",info->codeSingle());
-//    json.insert("quantity",info->quantity);
-//    json.insert("level_id",info->level_id);
-//    json.insert("tube_number",info->tube_number());
-//    json.insert("gross_weight",info->gross_weight());
-//    json.insert("net_weight",info->net_weight());
-//    json.insert("machine_no",info->machine_no);
-//    json.insert("packing_time",info->packing_time);
-//    json.insert("packing_type",info->packing_type);
-//    json.insert("carton_type",info->carton_type);
-//    json.insert("operator",info->operator_id);
-//    json.insert("details",jsonarray);
-//    json.insert("remark",info->remark);
-    for(int i = 0;i<1;i++){
-        detailsjson.insert("case_number","11234123");
-        detailsjson.insert("box_weight","123");
-        detailsjson.insert("tube_number","12");
-        detailsjson.insert("bucket_weight","23");
-        detailsjson.insert("gross_weight","412");
-        detailsjson.insert("net_weight","312");
-        detailsjson.insert("box_weight","12");
-        detailsjson.insert("sort","32");
-        detailsjson.insert("remark","23");
-
-        jsonarray.append(detailsjson);
-    }
-    json.insert("goods_id","115");
-    json.insert("code_single","232");
-    json.insert("quantity","23");
-    json.insert("level_id","412");
-    json.insert("tube_number","134");
-    json.insert("gross_weight","1234");
-    json.insert("net_weight","1242");
-    json.insert("machine_no","2341");
-    json.insert("packing_time","134");
-    json.insert("packing_type","1234");
-    json.insert("carton_type","1234");
-    json.insert("operator","1001");
-    json.insert("details",jsonarray);
-    json.insert("remark","1");
-
-    return json;
-}

+ 7 - 8
widget/autopackform.h

@@ -8,6 +8,7 @@
 #include "httprequestid.h"
 #include "httprequestid.h"
 #include "handle/danjumuban.h"
 #include "handle/danjumuban.h"
 #include "handle/database.h"
 #include "handle/database.h"
+#include "handle/autopackutils.h"
 
 
 namespace Ui {
 namespace Ui {
 class AutoPackForm;
 class AutoPackForm;
@@ -37,14 +38,15 @@ private slots:
     void on_addPackList_clicked();
     void on_addPackList_clicked();
 
 
 
 
-    void doSend(QSharedPointer<PackInfo> & info);
+//    void doSend(QSharedPointer<PackInfo> & info);
     void on_pushStart_clicked();
     void on_pushStart_clicked();
 
 
     void on_addBoxList_clicked();
     void on_addBoxList_clicked();
-    void httpResult(int emitcode, const QJsonObject body);
+//    void httpResult(int emitcode, const QJsonObject body);
 
 
-    void insertDetailsSQL(QSharedPointer<BoxInfo> boxes,QString codeSingle);
-    void insertProductSQL(QSharedPointer<PackInfo> packes);
+//    void insertDetailsSQL(QSharedPointer<BoxInfo> boxes,QString codeSingle);
+//    void insertProductSQL(QSharedPointer<PackInfo> packes);
+//    QJsonObject toJson(QSharedPointer<PackInfo> &info);
 
 
 //    void packData();
 //    void packData();
 
 
@@ -56,10 +58,7 @@ private:
     RemotePackConfig packConfig;
     RemotePackConfig packConfig;
     HttpRequest _request;
     HttpRequest _request;
     DanJuMuBan djmb;
     DanJuMuBan djmb;
-    Database database;
-    details_data detailsData;
-    product_data productData;
-    QJsonObject toJson(QSharedPointer<PackInfo> &info);
+    AutoPackUtils aputils;
 
 
 };
 };
 
 

+ 1 - 1
widget/loginform.cpp

@@ -23,7 +23,7 @@ void LoginForm::on_pushLogin_clicked()
     auto glo = GlobalInfo::this_();
     auto glo = GlobalInfo::this_();
     auto uname = this->ui->lineUser->text();
     auto uname = this->ui->lineUser->text();
     auto upass = this->ui->linePass->text();
     auto upass = this->ui->linePass->text();
-    auto url = glo->config().baseUrl + "/v1/signin";
+    auto url = glo->config().loginUrl;
     QMap<QString,QString> params;
     QMap<QString,QString> params;
     params.insert("password",uname);
     params.insert("password",uname);
     params.insert("username",upass);
     params.insert("username",upass);

+ 73 - 0
widget/packdetailform.cpp

@@ -0,0 +1,73 @@
+#include "packdetailform.h"
+#include "ui_packdetailform.h"
+
+PackDetailForm::PackDetailForm(QWidget *parent) :
+    QWidget(parent),
+    ui(new Ui::PackDetailForm)
+{
+    ui->setupUi(this);
+//    connect(&packConfig,&RemotePackConfig::configUpdate,this,&PackDetailForm::upconfig);
+    productList();
+}
+
+PackDetailForm::~PackDetailForm()
+{
+    delete ui;
+}
+
+
+void PackDetailForm::on_pushButton_clicked()
+{
+    changeTable(database.GetValues(dataname,productSqlList));
+}
+
+//往QTableWidget里添加数据
+void PackDetailForm::changeTable(QList<QMap<QString,QString>> productList)
+{
+//    qDebug()<<productList.at(0).value("goods_id");
+    if(productList.isEmpty()){
+        QMessageBox::information(this,tr("提示"),tr("数据为空"));
+    }
+    ui->tableWidget->setColumnCount(11);
+    for(int i = 0;i<productList.size();i++){
+        ui->tableWidget->insertRow(i);
+        ui->tableWidget->setItem(i,0,new QTableWidgetItem(productList.at(i).value("tongbu")));
+        ui->tableWidget->setItem(i,1,new QTableWidgetItem(productList.at(i).value("code_single")));
+        ui->tableWidget->setItem(i,2,new QTableWidgetItem(productList.at(i).value("batch_no")+"_"+productList.at(i).value("batch_no")));
+        ui->tableWidget->setItem(i,3,new QTableWidgetItem(productList.at(i).value("gross_weight")));
+        ui->tableWidget->setItem(i,4,new QTableWidgetItem(productList.at(i).value("net_weight")));
+        ui->tableWidget->setItem(i,5,new QTableWidgetItem(productList.at(i).value("quantity")));
+        ui->tableWidget->setItem(i,6,new QTableWidgetItem(productList.at(i).value("packing_time")));
+        auto tongbu_btn =  new QPushButton("同步");
+        connect(tongbu_btn, SIGNAL(clicked(bool)), this, SLOT(tongbu_clicked()));
+        auto code_single_btn = new QPushButton("打印码单");
+        auto case_nember_btn = new QPushButton("打印箱单");
+        ui->tableWidget->setCellWidget(i,7,tongbu_btn);
+        ui->tableWidget->setCellWidget(i,8,code_single_btn);
+        ui->tableWidget->setCellWidget(i,9,case_nember_btn);
+    }
+}
+
+//同步
+void PackDetailForm::tongbu_clicked()
+{
+
+}
+
+void PackDetailForm::productList()
+{
+    productSqlList.append("tongbu");
+    productSqlList.append("goods_id");
+    productSqlList.append("code_single");
+    productSqlList.append("quantity");
+    productSqlList.append("level_id");
+    productSqlList.append("tube_number");
+    productSqlList.append("gross_weight");
+    productSqlList.append("net_weight");
+    productSqlList.append("machine_no");
+    productSqlList.append("packing_time");
+    productSqlList.append("packing_type");
+    productSqlList.append("carton_type");
+    productSqlList.append("operator_id");
+    productSqlList.append("remark");
+}

+ 36 - 0
widget/packdetailform.h

@@ -0,0 +1,36 @@
+#ifndef PACKDETAILFORM_H
+#define PACKDETAILFORM_H
+
+#include <QWidget>
+//#include "handle/remotepackconfig.h"
+#include "handle/database.h"
+#include "QMessageBox"
+
+namespace Ui {
+class PackDetailForm;
+}
+
+class PackDetailForm : public QWidget
+{
+    Q_OBJECT
+
+public:
+    explicit PackDetailForm(QWidget *parent = nullptr);
+    ~PackDetailForm();
+//    void upconfig(const DaBaoConfig &config);
+
+private slots:
+    void on_pushButton_clicked();
+    void changeTable(QList<QMap<QString,QString>> productList);
+    void tongbu_clicked();
+    void productList();
+
+private:
+    Ui::PackDetailForm *ui;
+//    RemotePackConfig packConfig;
+    Database database;
+    QString dataname = "product";
+    QStringList productSqlList;
+};
+
+#endif // PACKDETAILFORM_H

+ 297 - 0
widget/packdetailform.ui

@@ -0,0 +1,297 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>PackDetailForm</class>
+ <widget class="QWidget" name="PackDetailForm">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>1067</width>
+    <height>571</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout_2">
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <property name="spacing">
+    <number>7</number>
+   </property>
+   <item row="0" column="0">
+    <widget class="QWidget" name="widget" native="true">
+     <property name="minimumSize">
+      <size>
+       <width>0</width>
+       <height>30</height>
+      </size>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout_9">
+      <property name="topMargin">
+       <number>0</number>
+      </property>
+      <property name="bottomMargin">
+       <number>0</number>
+      </property>
+      <item>
+       <widget class="QPushButton" name="pushBack">
+        <property name="text">
+         <string>&lt;返回主页</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <spacer name="horizontalSpacer">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>452</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item>
+       <widget class="QLabel" name="label">
+        <property name="text">
+         <string>自动打包</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <spacer name="horizontalSpacer_2">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>451</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="1" column="0">
+    <widget class="QWidget" name="widget_2" native="true">
+     <property name="styleSheet">
+      <string notr="true">background-color: rgb(0, 170, 255);</string>
+     </property>
+     <layout class="QGridLayout" name="gridLayout">
+      <item row="0" column="0">
+       <widget class="QLineEdit" name="lineEdit">
+        <property name="placeholderText">
+         <string>码单</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QLineEdit" name="lineEdit_2">
+        <property name="placeholderText">
+         <string>批号</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2">
+       <widget class="QComboBox" name="comboBox">
+        <property name="currentText">
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="3">
+       <widget class="QLineEdit" name="lineEdit_3">
+        <property name="placeholderText">
+         <string>旦数</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="4">
+       <widget class="QLineEdit" name="lineEdit_4">
+        <property name="placeholderText">
+         <string>分特</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="5">
+       <widget class="QLineEdit" name="lineEdit_5">
+        <property name="placeholderText">
+         <string>孔数</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="6">
+       <widget class="QComboBox" name="comboBox_2"/>
+      </item>
+      <item row="0" column="7">
+       <widget class="QComboBox" name="comboBox_3"/>
+      </item>
+      <item row="0" column="8">
+       <widget class="QComboBox" name="comboBox_4"/>
+      </item>
+      <item row="0" column="9">
+       <widget class="QPushButton" name="pushButton">
+        <property name="minimumSize">
+         <size>
+          <width>91</width>
+          <height>41</height>
+         </size>
+        </property>
+        <property name="maximumSize">
+         <size>
+          <width>91</width>
+          <height>41</height>
+         </size>
+        </property>
+        <property name="text">
+         <string>搜索</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="2" column="0">
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <layout class="QVBoxLayout" name="verticalLayout">
+       <item>
+        <widget class="QLabel" name="label_2">
+         <property name="text">
+          <string>箱单</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QComboBox" name="comboBox_5"/>
+       </item>
+      </layout>
+     </item>
+     <item>
+      <layout class="QVBoxLayout" name="verticalLayout_2">
+       <item>
+        <widget class="QLabel" name="label_3">
+         <property name="text">
+          <string>码单</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QComboBox" name="comboBox_6"/>
+       </item>
+      </layout>
+     </item>
+     <item>
+      <layout class="QVBoxLayout" name="verticalLayout_3">
+       <item>
+        <widget class="QLabel" name="label_4">
+         <property name="text">
+          <string>箱单抬头</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QLineEdit" name="lineEdit_6"/>
+       </item>
+      </layout>
+     </item>
+     <item>
+      <layout class="QVBoxLayout" name="verticalLayout_4">
+       <item>
+        <widget class="QLabel" name="label_5">
+         <property name="text">
+          <string>备注</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QLineEdit" name="lineEdit_7"/>
+       </item>
+      </layout>
+     </item>
+     <item>
+      <widget class="QPushButton" name="pushButton_2">
+       <property name="text">
+        <string>PushButton</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer_3">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>348</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item row="3" column="0">
+    <widget class="QTableWidget" name="tableWidget">
+     <column>
+      <property name="text">
+       <string>同步状态</string>
+      </property>
+     </column>
+     <column>
+      <property name="text">
+       <string>码单</string>
+      </property>
+     </column>
+     <column>
+      <property name="text">
+       <string>码单详情</string>
+      </property>
+     </column>
+     <column>
+      <property name="text">
+       <string>毛重</string>
+      </property>
+     </column>
+     <column>
+      <property name="text">
+       <string>净重</string>
+      </property>
+     </column>
+     <column>
+      <property name="text">
+       <string>箱数</string>
+      </property>
+     </column>
+     <column>
+      <property name="text">
+       <string>打包时间</string>
+      </property>
+     </column>
+     <column>
+      <property name="text">
+       <string>箱单详情</string>
+      </property>
+     </column>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>