error 6 лет назад
Родитель
Сommit
f2454e21e1
7 измененных файлов с 101 добавлено и 86 удалено
  1. 48 71
      handle/database.cpp
  2. 5 0
      mainwindow.cpp
  3. 2 0
      mainwindow.h
  4. 5 0
      packinfo.cpp
  5. 4 3
      packinfo.h
  6. 35 12
      widget/autopackform.cpp
  7. 2 0
      widget/autopackform.h

+ 48 - 71
handle/database.cpp

@@ -30,26 +30,6 @@ bool Database::createProductDatabase()
     QSqlDatabase db = QSqlDatabase::database("db");
     QSqlQuery query(db);
 
-//    query.exec("DROP TABLE dabaodata");
-
-//    bool success = query.exec("CREATE TABLE dabaodata ("
-//                              "goods_id INTEGER NOT NULL,"
-//                              "code_single INTEGER NOT NULL,"
-//                              "level_id INTEGER NOT NULL,"
-//                              "tube_number INTEGER NOT NULL,"
-//                              "gross_weight DOUBLE NOT NULL,"
-//                              "net_weight DOUBLE NOT NULL,"
-//                              "machine_no VARCHAR(5),"
-//                              "packing_time VARCHAR(15),"
-//                              "packing_type VARCHAR(10),"
-//                              "carton_type VARCHAR(5) NOT NULL,"
-//                              "operator INTEGER NOT NULL,"
-//                              "case_number INTEGER NOT NULL,"
-//                              "backet_weight DOUBLE NOT NULL,"
-//                              "sort VARCHAR NOT NULL,"
-//                              "tongbu VARCHAR(1) DEFAULT 0,"
-//                              "remark VARCHAR);");
-
     bool success = query.exec("CREATE TABLE product ("
                                   "goods_id INTEGER NOT NULL,"
                                   "code_single VARCHAR NOT NULL,"
@@ -63,8 +43,8 @@ bool Database::createProductDatabase()
                                   "packing_type VARCHAR NOT NULL,"
                                   "carton_type VARCHAR NOT NULL,"
                                   "operator_id INTEGER NOT NULL,"
-                                  "remark VARCHAR);"
-                                  "tongbu VARCHAR(1) DEFAULT 0,");
+                                  "tongbu VARCHAR(1) DEFAULT 0,"
+                                  "remark VARCHAR);");
 
     if(success)
     {
@@ -73,7 +53,7 @@ bool Database::createProductDatabase()
     }
     else
     {
-        qDebug() << QObject::tr("product数据库表创建失败!\n");
+        qDebug() << QObject::tr("product数据库表已存在!\n");
         return false;
     }
 }
@@ -101,58 +81,11 @@ bool Database::createDetailsDatabase()
     }
     else
     {
-        qDebug() << QObject::tr("details数据库表创建失败!\n");
+        qDebug() << QObject::tr("details数据库表已存在!\n");
         return false;
     }
 }
 
-
-
-//bool Database::insert(QString &table, QStringList &names, QStringList &values)
-//{
-//    if(names.size() != values.size())
-//    {
-//        return false;
-//    }
-
-////    QSqlQuery query(QSqlDatabase::database());
-
-//    QSqlDatabase db = QSqlDatabase::database("db");
-//    QSqlQuery query(db);
-
-//    QString sql = QString("insert into ") + table + QString("(");
-
-//    int i;
-//    for(i = 0; i < names.size(); i++)
-//    {
-//        sql = sql + names.value(i);
-//        if(i != names.size()-1)
-//        {
-//            sql += QString(",");
-//        }
-//        else
-//        {
-//            sql += QString(")");
-//        }
-//    }
-
-//    sql = sql + QString("values (");
-
-//    for(i = 0; i < values.size(); i++)
-//    {
-//        sql = sql + QString("'") + values.value(i) + QString("'");
-//        if (i != values.size()-1)
-//        {
-//            sql += QString(",");
-//        }
-//    }
-//    sql += QString(")");
-
-
-
-//    return (query.exec(sql)) ? true : false;
-//}
-
 bool Database::insertProduct(product_data productData)
 {
     QSqlDatabase db = QSqlDatabase::database("db");
@@ -310,3 +243,47 @@ QList<QStringList> Database::GetValues(QString &table, QStringList &values)
 //}
 
 
+//bool Database::insert(QString &table, QStringList &names, QStringList &values)
+//{
+//    if(names.size() != values.size())
+//    {
+//        return false;
+//    }
+
+////    QSqlQuery query(QSqlDatabase::database());
+
+//    QSqlDatabase db = QSqlDatabase::database("db");
+//    QSqlQuery query(db);
+
+//    QString sql = QString("insert into ") + table + QString("(");
+
+//    int i;
+//    for(i = 0; i < names.size(); i++)
+//    {
+//        sql = sql + names.value(i);
+//        if(i != names.size()-1)
+//        {
+//            sql += QString(",");
+//        }
+//        else
+//        {
+//            sql += QString(")");
+//        }
+//    }
+
+//    sql = sql + QString("values (");
+
+//    for(i = 0; i < values.size(); i++)
+//    {
+//        sql = sql + QString("'") + values.value(i) + QString("'");
+//        if (i != values.size()-1)
+//        {
+//            sql += QString(",");
+//        }
+//    }
+//    sql += QString(")");
+
+//    return (query.exec(sql)) ? true : false;
+//}
+
+

+ 5 - 0
mainwindow.cpp

@@ -13,6 +13,10 @@ MainWindow::MainWindow(QWidget *parent)
     connect(ui->pageSelectValue,&SelectValueForm::selectProject,this,&MainWindow::pageStatusChange);
     ui->stackedWidget->setCurrentWidget(ui->pageLogin);
     connect(ui->pageAutoPack,&AutoPackForm::djmbbox,this,&MainWindow::changedjmb);
+
+    database.openDB();
+    database.createDetailsDatabase();
+    database.createProductDatabase();
 }
 
 MainWindow::~MainWindow()
@@ -33,6 +37,7 @@ void MainWindow::pageStatusChange(const ProjectInfo & info, int status)
     case 1:
         ui->stackedWidget->setCurrentWidget(ui->pageAutoPack);
         ui->pageAutoPack->setProInfo(info);
+        ui->pageAutoPack->init();
     }
 }
 

+ 2 - 0
mainwindow.h

@@ -3,6 +3,7 @@
 
 #include <QMainWindow>
 #include "configinfo.h"
+#include "handle/database.h"
 
 QT_BEGIN_NAMESPACE
 namespace Ui { class MainWindow; }
@@ -23,6 +24,7 @@ private:
     void backMenu();
     void pageStatusChange(const ProjectInfo & info, int status);
     void changedjmb(QImage image);
+    Database database;
 
 private:
     Ui::MainWindow *ui;

+ 5 - 0
packinfo.cpp

@@ -8,6 +8,11 @@ int PackInfo::lastNum = 1;
 PackInfo::PackInfo(const ProjectInfo & info) : _info(info)
 {
     code_single = buildPackId();
+    goods_id = info.goods_id;
+    packing_time = QDate::currentDate().toString("yyMMdd");
+    packing_type = info.category;
+    operator_id = GlobalInfo::this_()->user().accountId;
+
 }
 
 

+ 4 - 3
packinfo.h

@@ -38,9 +38,9 @@ public:
     int quantity = 0;//	是	int	箱数
     int level_id = 0;//	是	int	等级ID
     QString level;
-    int machine_no = 0;//	是	string	机台
-    int packing_time = 0;//	是	string	打包时间
-    int packing_type = 0;//	是	string	打包类型
+    QString machine_no;//	是	string	机台
+    QString packing_time;//	是	string	打包时间
+    QString packing_type;//	是	string	打包类型
     QString carton_type;//	是	string	纸箱
     int operator_id = 0;//	是	int	操作员ID
     QString remark;//	否	string
@@ -52,6 +52,7 @@ public:
     int tube_number(); //int	筒数
     int gross_weight(); // 	毛重 单位:克
     int net_weight(); //单位:克
+    int goodsID() {return goods_id;}
 
     QSharedPointer<BoxInfo> addBoxInfo();
     void addBoxInfoList(QSharedPointer<BoxInfo> boxes);

+ 35 - 12
widget/autopackform.cpp

@@ -30,7 +30,7 @@ void AutoPackForm::init()
     connect(&packConfig,&RemotePackConfig::dengJIConfigUp,this,&AutoPackForm::upDengjiInfo);
     connect(&_request,&HttpRequest::result,this,&AutoPackForm::httpResult);
     ui->comboBox->clear();
-    for(int i = 0;i<20;i++){
+    for(int i = 1;i<20;i++){
         ui->comboBox->addItem(QString::number(i));
     }
     on_addPackList_clicked();
@@ -106,10 +106,13 @@ 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()
@@ -122,19 +125,35 @@ void AutoPackForm::on_addBoxList_clicked()
     box->bucket_weight = ui->pizhong->currentText().toInt()*ui->tongshu->text().toInt();
     box->gross_weight = ui->grossWeight_2->text().toInt();
     box->box_weight = ui->netWeight_2->text().toInt();
+    box->sort = "1";
     box->remark = ui->beizhu->toPlainText();
     packinfo->level = ui->dengji->currentText();
     packinfo->level_id = ui->dengji->currentData().toInt();
-    packinfo->addBoxInfoList(box);
-    insertDetailsSQL(box,packinfo->codeSingle());
+
 
     //TODO: 缓存数据,显示数据
 //    emit djmbbox(djmb.printBoxInfo(box->caseNumber(),box));
 //    qDebug()<<packinfo->boxes().size();
 //    doSend(packinfo);
 
+    //把box数据添加到packinfo的boxes数据表里;
+    packinfo->addBoxInfoList(box);
+
+    //添加数据库
+    insertDetailsSQL(box,packinfo->codeSingle());
+
+    //packinfo其他数据在new时已经定义好的,需要时直接调就可以了,所以这里只要箱数,等级,机台和类型
+    if(packinfo->boxes().size()>=ui->comboBox->currentText().toInt()){
+        packinfo->quantity = packinfo->boxes().size();
+        packinfo->level_id = ui->dengji->currentData().toInt();
+        packinfo->machine_no = ui->jitai->currentText();
+        packinfo->carton_type = ui->zhixiang->currentText();
+        on_addPackList_clicked();
+    }
 }
 
+
+
 void AutoPackForm::httpResult(int emitcode, const QJsonObject body)
 {
     qDebug()<<emitcode;
@@ -142,8 +161,11 @@ void AutoPackForm::httpResult(int emitcode, const QJsonObject 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;
@@ -155,33 +177,34 @@ void AutoPackForm::insertDetailsSQL(QSharedPointer<BoxInfo> boxes,QString codeSi
     detailsData.remark = boxes->remark;
 
     if(database.insertDetails(detailsData)){
-        qDebug()<<"数据库添加失败";
+        qDebug()<<"details数据库添加成功";
         return;
     }
-    qDebug()<<"数据库添加成功";
+    qDebug()<<"details数据库添加失败";
 }
 
+//把PackInfo添加到product数据库里;
 void AutoPackForm::insertProductSQL(QSharedPointer<PackInfo> packes)
 {
-    productData.goods_id = _info.goods_id;
+    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 = QString::number(packes->machine_no);
-    productData.packing_time = QString::number(packes->packing_time);
-    productData.packing_type = QString::number(packes->packing_type);
+    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()<<"数据库添加失败";
+        qDebug()<<"product数据库添加成功";
         return;
     }
-    qDebug()<<"数据库添加失败";
+    qDebug()<<"product数据库添加失败";
 }
 
 
@@ -204,7 +227,7 @@ QJsonObject AutoPackForm::toJson(QSharedPointer<PackInfo> &info)
 //        detailsjson.insert("remark",info->boxes().at(i)->remark);
 //        jsonarray.append(detailsjson);
 //    }
-//    json.insert("goods_id",_info.goods_id);
+//    json.insert("goods_id",packes->goodsID());
 //    json.insert("code_single",info->codeSingle());
 //    json.insert("quantity",info->quantity);
 //    json.insert("level_id",info->level_id);

+ 2 - 0
widget/autopackform.h

@@ -46,6 +46,8 @@ private slots:
     void insertDetailsSQL(QSharedPointer<BoxInfo> boxes,QString codeSingle);
     void insertProductSQL(QSharedPointer<PackInfo> packes);
 
+//    void packData();
+
 private:
     Ui::AutoPackForm *ui;
     ProjectInfo _info;