Kaynağa Gözat

修改页面及功能

error 6 yıl önce
ebeveyn
işleme
5d56e1cbe8
43 değiştirilmiş dosya ile 2899 ekleme ve 1726 silme
  1. 3 0
      JxcClient.pro
  2. 29 5
      globalinfo.cpp
  3. 6 1
      globalinfo.h
  4. 20 0
      handle/packinfomanger.cpp
  5. 1 0
      handle/packinfomanger.h
  6. 45 1
      handle/packinfoseed2server.cpp
  7. 9 2
      handle/packinfoseed2server.h
  8. 2 2
      handle/printer/boxtemlateone.cpp
  9. 23 4
      handle/printer/printermanger.cpp
  10. 1 1
      handle/projectinfomanger.cpp
  11. 31 0
      handle/remotepackconfig.cpp
  12. 18 0
      handle/remotepackconfig.h
  13. 3 1
      handle/seriport/logserialport.cpp
  14. 92 22
      mainwindow.cpp
  15. 9 2
      mainwindow.h
  16. 60 273
      mainwindow.ui
  17. 17 4
      struct_/packinfo.cpp
  18. 13 0
      struct_/packinfo.h
  19. 2 0
      struct_/projectinfo.cpp
  20. 1 0
      struct_/projectinfo.h
  21. 27 8
      widget/addnewspecsform.cpp
  22. 7 0
      widget/addnewspecsform.h
  23. 177 167
      widget/addnewspecsform.ui
  24. 34 0
      widget/dateselectdialog.cpp
  25. 32 0
      widget/dateselectdialog.h
  26. 71 0
      widget/dateselectdialog.ui
  27. 2 0
      widget/editboxinfodialog.cpp
  28. 155 27
      widget/fixedweightpackform.cpp
  29. 15 3
      widget/fixedweightpackform.h
  30. 565 481
      widget/fixedweightpackform.ui
  31. 9 3
      widget/loginform.cpp
  32. 5 0
      widget/loginform.h
  33. 0 13
      widget/loginform.ui
  34. 197 89
      widget/packdetailform.cpp
  35. 24 8
      widget/packdetailform.h
  36. 76 62
      widget/packdetailform.ui
  37. 51 7
      widget/selectvalueform.cpp
  38. 7 3
      widget/selectvalueform.h
  39. 76 58
      widget/selectvalueform.ui
  40. 2 2
      widget/settingsform.ui
  41. 375 158
      widget/uncertainweightpackform.cpp
  42. 48 20
      widget/uncertainweightpackform.h
  43. 559 299
      widget/uncertainweightpackform.ui

+ 3 - 0
JxcClient.pro

@@ -39,6 +39,7 @@ SOURCES += \
     struct_/packinfo.cpp \
     struct_/projectinfo.cpp \
     widget/addnewspecsform.cpp \
+    widget/dateselectdialog.cpp \
     widget/displaysettingsform.cpp \
     widget/editboxinfodialog.cpp \
     widget/fixedweightpackform.cpp \
@@ -73,6 +74,7 @@ HEADERS += \
     struct_/packinfo.h \
     struct_/projectinfo.h \
     widget/addnewspecsform.h \
+    widget/dateselectdialog.h \
     widget/displaysettingsform.h \
     widget/editboxinfodialog.h \
     widget/fixedweightpackform.h \
@@ -86,6 +88,7 @@ HEADERS += \
 
 FORMS += \
     widget/addnewspecsform.ui \
+    widget/dateselectdialog.ui \
     widget/displaysettingsform.ui \
     widget/editboxinfodialog.ui \
     widget/fixedweightpackform.ui \

+ 29 - 5
globalinfo.cpp

@@ -44,6 +44,7 @@ void GlobalInfo::start(UserInfo & user,bool online)
 {
     _users = user;
     _isNoLine = online;
+    packmanger  = nullptr;
     initInfo();
     _remoteConfig->refConfig();
     if(online){
@@ -64,6 +65,7 @@ void GlobalInfo::initInfo()
     _remoteConfig = new RemotePackConfig(this);
     connect(_remoteConfig,&RemotePackConfig::configUpdate,this,&GlobalInfo::configUpdate);
     connect(_remoteConfig,&RemotePackConfig::dengJIConfigUp,this,&GlobalInfo::dengJIConfigUp);
+    connect(_remoteConfig,&RemotePackConfig::wareConfigUp,this,&GlobalInfo::wareConfigUp);
     _projectmanger = new ProjectInfoManger(packmanger,this);
     connect(_projectmanger,&ProjectInfoManger::inited,this,&GlobalInfo::syncProject);
     connect(_projectmanger,&ProjectInfoManger::synced,this,&GlobalInfo::syncProject);
@@ -121,21 +123,43 @@ void GlobalInfo::dengJIConfigUp(const QList<DengJiConfigItem> & dengJis)
     emit dengJiUped();
 }
 
+void GlobalInfo::wareConfigUp(const QList<WarehouseConfig> ware)
+{
+    _wareList = ware;
+    emit wareUped();
+}
+
 
-QList<QSharedPointer<ProjectInfo>> GlobalInfo::searchProject(const QString & name)
+QList<QSharedPointer<ProjectInfo>> GlobalInfo::searchProject(const QString & batchno,const QString &specs)
 {
     QList<QSharedPointer<ProjectInfo>> ret;
     for(int i = 0; i < _cacheInfo.size(); ++i){
         auto info = _cacheInfo.at(i);
-        if(info->batch_no.contains(name)){
-            ret.append(info);
+        if(batchno != ""){
+            if(info->batch_no.contains(batchno)){
+                ret.append(info);
+                continue;
+            }
+        }
+        if(specs != ""){
+            if(info->specs.contains(specs)){
+                ret.append(info);
+            }
         }
     }
 
     for(int i = 0; i < _serverInfo.size(); ++i){
         auto info = _serverInfo.at(i);
-        if(info->batch_no.contains(name)){
-            ret.append(info);
+        if(batchno != ""){
+            if(info->batch_no.contains(batchno)){
+                ret.append(info);
+                continue;
+            }
+        }
+        if(specs != ""){
+            if(info->specs.contains(specs)){
+                ret.append(info);
+            }
         }
     }
     return ret;

+ 6 - 1
globalinfo.h

@@ -31,7 +31,7 @@ public:
     inline QList<QSharedPointer<ProjectInfo>> serverInfo() {return _serverInfo;}
     inline QList<QSharedPointer<ProjectInfo>> cacheInfo() {return _cacheInfo;}
 
-    QList<QSharedPointer<ProjectInfo>> searchProject(const QString & name);
+    QList<QSharedPointer<ProjectInfo>> searchProject(const QString & batchno , const QString & specs ="");
 
     bool addCacheInfo(QSharedPointer<ProjectInfo> & info);
     inline PackInfoManger * packInfoManger() {return packmanger;}
@@ -50,6 +50,8 @@ public:
     inline const DaBaoConfig & dbConfig() const {return _dbConfig;}
     // 等级配置
     inline const QList<DengJiConfigItem> & dengJiList() {return _dengJiList;}
+    //仓库配置
+    inline const QList<WarehouseConfig> & wareList() {return _wareList;}
 
     void printerBox(QSharedPointer<BoxInfo> info);
     void printerPack(QSharedPointer<PackInfo> info);
@@ -63,6 +65,7 @@ signals:
     void dengJiUped();
     void doInited();
     void logOuted();
+    void wareUped();
 public slots:
     void start(UserInfo & user,bool online);
 
@@ -70,6 +73,7 @@ private slots:
     void syncProject(ProjectInfoManger * manger, bool inited);
     void configUpdate(const DaBaoConfig & config);
     void dengJIConfigUp(const QList<DengJiConfigItem> & dengJis);
+    void wareConfigUp(const QList<WarehouseConfig> ware);
 private:
     QMap<QString,QSharedPointer<ProjectInfo>> _project;
     QList<QSharedPointer<ProjectInfo>> _serverInfo;
@@ -78,6 +82,7 @@ private:
 
     DaBaoConfig _dbConfig;
     QList<DengJiConfigItem> _dengJiList;
+    QList<WarehouseConfig> _wareList;
 
     void initInfo();
 private:

+ 20 - 0
handle/packinfomanger.cpp

@@ -90,6 +90,26 @@ QList<PackSaveInfo> PackInfoManger::getPackInfo(const QDate & tm,bool noSync)
     return ret;
 }
 
+QList<PackSaveInfo> PackInfoManger::getPackInfoSync(const QDate &tm)
+{
+    auto dir = getDir(tm);
+    auto list  = dir.entryInfoList(QDir::NoDotAndDotDot | QDir::Files);
+    QList<PackSaveInfo> ret;
+    for(int i = 0; i < list.size(); ++i){
+        auto & finfo = list.at(i);
+        if(finfo.fileName().indexOf("_sync") < 0) continue;
+        auto obj = QJsonDocument::fromJson(readAbsoluteFile(finfo.absoluteFilePath())).object();
+        auto info = PackInfo::fromObject(obj);
+        if(!info.isNull()){
+            PackSaveInfo pinfo;
+            pinfo.absPath = finfo.absoluteFilePath();
+            pinfo.packInfo = info;
+            ret.append(pinfo);
+        }
+    }
+    return ret;
+}
+
 
 QList<QSharedPointer<ProjectInfo>>  PackInfoManger::getLocalProjectInfo()
 {

+ 1 - 0
handle/packinfomanger.h

@@ -26,6 +26,7 @@ public:
     explicit PackInfoManger(QObject *parent = nullptr);
 
     QList<PackSaveInfo> getPackInfo(const QDate & tm,bool noSync = false);
+    QList<PackSaveInfo> getPackInfoSync(const QDate & tm);
     QDate lastSyncDate();
 
     QList<QSharedPointer<ProjectInfo>>  getLocalProjectInfo();

+ 45 - 1
handle/packinfoseed2server.cpp

@@ -7,14 +7,16 @@ PackInfoSeed2Server::PackInfoSeed2Server(PackInfoManger * manger, QObject *paren
     _manger(manger),_autoSync(autoSync)
 {
     connect(&_requst,&HttpRequest::result,this,&PackInfoSeed2Server::result);
+    connect(&_rukuRequest,&HttpRequest::result,this,&PackInfoSeed2Server::rukuResult);
     _netErrorCount = 0;
     _oneSyncError = 0;
     log = PQ::PQLogManger::this_()->getLog("PackInfoSeed2Server");
 }
 
 
-void PackInfoSeed2Server::send(QSharedPointer<PackInfo> & info)
+void PackInfoSeed2Server::send(QSharedPointer<PackInfo> & info,bool isruku)
 {
+    isRuKu = isruku;
     if(_manger == nullptr) return;
     _queue.append(info);
     QTimer::singleShot(20,this,&PackInfoSeed2Server::doSend);
@@ -43,6 +45,41 @@ void PackInfoSeed2Server::sendList(QList<QSharedPointer<PackInfo>> & infos)
     QTimer::singleShot(20,this,&PackInfoSeed2Server::doSend);
 }
 
+void PackInfoSeed2Server::ruKu(QSharedPointer<PackInfo> current,int product)
+{
+    QJsonObject obj;
+    QJsonArray array;
+    for(int i = 0;i<current->boxInfoSize();i++){
+        array.append(current->boxes().at(i)->caseNumber());
+    }
+    obj.insert("product_id",product);
+    obj.insert("details",array);
+
+    _rukuCurrent.warehouse_id = current->warehouse_id;
+    _rukuCurrent.way = 2;
+    _rukuCurrent.product_details.append(obj);
+    _rukuCurrent.remark = current->remark;
+    _rukuQueue.append(_rukuCurrent);
+
+    QTimer::singleShot(20,this,&PackInfoSeed2Server::doRuKu);
+}
+
+void PackInfoSeed2Server::doRuKu()
+{
+
+    if(_rukuQueue.isEmpty()){
+        return;
+    }
+    QString url = GlobalInfo::this_()->config()->baseUrl+"/v1/product/inbound";
+    _rukuRequest.setUserToken(QString::number(GlobalInfo::this_()->user().accountId),GlobalInfo::this_()->user().acessToken);
+    _rukuRequest.post(url,_rukuCurrent.toObject());
+    _rukuQueue.dequeue();
+}
+
+void PackInfoSeed2Server::rukuResult(int code, const QJsonObject & body){
+    qDebug()<<body;
+}
+
 void PackInfoSeed2Server::result(int code, const QJsonObject & body)
 {
     qDebug()<<body;
@@ -57,10 +94,17 @@ void PackInfoSeed2Server::result(int code, const QJsonObject & body)
     if(error == 200 || message.indexOf("已存在") >= 0){ // TODO: fix error
         _queue.dequeue();
         _manger->setPackInfoSync(_current->codeSingle(),_current->time(),_autoSync);
+
+        int product_id = body.value("data").toObject().value("product_id").toInt();
+        if(isRuKu){
+            ruKu(_current,product_id);
+        }
+
         _current.clear();
         QTimer::singleShot(20,this,&PackInfoSeed2Server::doSend);
         _netErrorCount = 0;
         _oneSyncError = 0;
+
     } else {
         _oneSyncError ++;
         if(_oneSyncError > 3){

+ 9 - 2
handle/packinfoseed2server.h

@@ -17,21 +17,28 @@ public:
 signals:
     void syncEnd();
 public slots:
-    void send(QSharedPointer<PackInfo> & info);
-
+    void send(QSharedPointer<PackInfo> & info,bool isruku);
+    void ruKu(QSharedPointer<PackInfo> current,int product_id);
     void sendList(QList<QSharedPointer<PackInfo>> & infos);
+
 private slots:
     void doSend();
+    void doRuKu();
     void result(int code, const QJsonObject & body);
+    void rukuResult(int code, const QJsonObject & body);
 private:
     uint _netErrorCount;
     QQueue<QSharedPointer<PackInfo>> _queue;
+    QQueue<RuKuInfo> _rukuQueue;
     QSharedPointer<PackInfo> _current;
+    RuKuInfo _rukuCurrent;
     PackInfoManger * _manger;
     HttpRequest _requst;
+    HttpRequest _rukuRequest;
     bool _autoSync;
     uint _oneSyncError;
     PQ::PQLog * log;
+    bool isRuKu;
 };
 
 #endif // PACKINFOSEED2SERVER_H

+ 2 - 2
handle/printer/boxtemlateone.cpp

@@ -47,8 +47,8 @@ QImage BoxTemlateOne::doPrinter(QSharedPointer<BoxInfo> box)
     font.setPixelSize(40);
     font.setWeight(QFont::ExtraLight);
     painter.setFont(font);
-    painter.drawText(6*5,15*5,pinfo->info()->customer);
-    qDebug()<< "公司名称:" <<pinfo->info()->customer;
+    painter.drawText(6*5,15*5,box->parentPack()->customer);
+//    qDebug()<< "公司名称:" <<box->parentPack()->customer;
 
     font.setPixelSize(20);
     font.setBold(true);

+ 23 - 4
handle/printer/printermanger.cpp

@@ -45,7 +45,7 @@ void PrinterManger::printerBox(QSharedPointer<BoxInfo> info)
 
 void PrinterManger::doPrinter(QPrinter & printer,QImage & image)
 {
-    QPainter painter(&printer);                         // 创建一个QPainter对象,并指定绘图设备为一个QPainter对象
+//    QPainter painter(&printer);                         // 创建一个QPainter对象,并指定绘图设备为一个QPainter对象
 //    QRect rect = painter.viewport();                     // 获得QPainter对象的视图矩形区域
 //    QSize size(image.width(),image.height());                            // 获得图像的大小
     /* 按照图形的比例大小重新设置视图矩形区域 */
@@ -53,10 +53,29 @@ void PrinterManger::doPrinter(QPrinter & printer,QImage & image)
 //    painter.setViewport(rect.x(),rect.y(),size.width()+50,size.height());
 //        painter.setViewport(rect.x(),rect.y(),size.width(),size.height());
 //    painter.setWindow(image.rect());                      // 设置QPainter窗口大小为图像的大小
-    painter.drawImage(0,0,image);                         // 打印图像
-    painter.end();
-    auto ed = printer.newPage();
+//    painter.drawImage(0,0,image);                         // 打印图像
+//    painter.end();
+//    auto ed = printer.newPage();
 //    pqInfo(log) << "printer  newPage:" << ed;
+
+//        printer(QPrinterInfo::printerInfo(GlobalInfo::this_()->config().printerName));
+        printer.setPageSize(QPrinter::Custom);
+        printer.setPageSizeMM(QSizeF(100,70));
+
+//        printer.setPrinterName();
+        QPainter painter(&printer);                         // 创建一个QPainter对象,并指定绘图设备为一个QPainter对象
+        QRect rect =painter.viewport();                     // 获得QPainter对象的视图矩形区域
+        QSize size(image.width(),image.height());                            // 获得图像的大小
+        /* 按照图形的比例大小重新设置视图矩形区域 */
+        size.scale(rect.size(),Qt::KeepAspectRatio);
+        painter.setViewport(rect.x(),rect.y(),size.width()+50,size.height());
+//        painter.setViewport(rect.x(),rect.y(),size.width(),size.height());
+        painter.setWindow(image.rect());                      // 设置QPainter窗口大小为图像的大小
+        painter.drawImage(0,0,image);                         // 打印图像
+        painter.end();
+        auto ed = printer.newPage();
+//        QLogInfo(log) << "printer  newPage:" << ed;
+//        printer
 }
 
 void PrinterManger::printerPack(QSharedPointer<PackInfo> info)

+ 1 - 1
handle/projectinfomanger.cpp

@@ -9,6 +9,7 @@ ProjectInfoManger::ProjectInfoManger(PackInfoManger *manger, QObject *parent) :
 {
     connect(&_requst,&HttpRequest::result,this,&ProjectInfoManger::result);
     _nowJob = 0;
+    _status = IDIL;
 }
 
 bool ProjectInfoManger::loadServerList(bool local)
@@ -93,7 +94,6 @@ void ProjectInfoManger::handleList()
 
 void ProjectInfoManger::result(int code, const QJsonObject & body)
 {
-    qDebug()<<body;
     switch (_status) {
     case Load_Server_List:
         handleGetList(code,body);

+ 31 - 0
handle/remotepackconfig.cpp

@@ -6,6 +6,7 @@
 RemotePackConfig::RemotePackConfig(QObject *parent) : QObject(parent)
 {
     connect(&_request,&HttpRequest::result,this,&RemotePackConfig::result);
+    connect(&_WareRequest,&HttpRequest::result,this,&RemotePackConfig::WareResult);
     parsefUNS.insert("A1000100",[this](const QJsonObject & obj){this->_config.jitai = this->getConfigStringList(obj);});
 
     parsefUNS.insert("A1000101",[this](const QJsonObject & obj){this->_config.dangchegongbanci = this->getConfigStringList(obj);});
@@ -148,9 +149,39 @@ void RemotePackConfig::result(int code, const QJsonObject & body)
             dengji.append(dengJiConfig);
         }
         emit dengJIConfigUp(dengji);
+        refWarehouse();
     }
 }
 
+void RemotePackConfig::refWarehouse()
+{
+    QString url = GlobalInfo::this_()->config()->baseUrl+"/v1/warehouse/list?is_disable=0&page=0&limit=999";
+    _WareRequest.setUserToken(QString::number(GlobalInfo::this_()->user().accountId),GlobalInfo::this_()->user().acessToken);
+    _WareRequest.get(url);
+}
+
+void RemotePackConfig::WareResult(int code,const QJsonObject & body){
+    WarehouseConfig ware;
+    if(code != 200){
+        return;
+    }
+    QJsonArray warelist = body.value("data").toArray();
+    for(int i = 0;i<warelist.size();i++){
+        QJsonObject obj = warelist.at(i).toObject();
+        ware.warehouse_id = obj.value("warehouse_id").toInt();
+        ware.serial_number = obj.value("serial_number").toString();
+        ware.name = obj.value("name").toString();
+        ware.factory_id = obj.value("factory_id").toInt();
+        ware.factory_name = obj.value("factory_name").toString();
+        ware.remark = obj.value("remark").toString();
+        ware.is_disable = obj.value("is_disable").toInt();
+        ware.create_time = obj.value("create_time").toInt();
+        ware.modified_time = obj.value("modified_time").toInt();
+        Warehouse.append(ware);
+    }
+    emit wareConfigUp(Warehouse);
+}
+
 void RemotePackConfig::refDengJiList()
 {
     getDdengji = true;

+ 18 - 0
handle/remotepackconfig.h

@@ -85,6 +85,19 @@ struct DengJiConfigItem
     bool isEnable;
 };
 
+struct WarehouseConfig
+{
+    int warehouse_id;
+    QString serial_number;
+    QString name;
+    int factory_id;
+    QString factory_name;
+    QString remark;
+    int is_disable;
+    int create_time;
+    int modified_time;
+};
+
 class RemotePackConfig : public QObject
 {
     Q_OBJECT
@@ -97,12 +110,15 @@ public:
 signals:
     void configUpdate(const DaBaoConfig & config);
     void dengJIConfigUp(const QList<DengJiConfigItem> & dengJis);
+    void wareConfigUp(const QList<WarehouseConfig> & ware);
     void configUpdateError(int code,const QString & msg);
 
 public slots:
     void refConfig();
+    void refWarehouse();
 private slots:
     void result(int code, const QJsonObject & body);
+    void WareResult(int code,const QJsonObject & body);
 
     void refDengJiList();
 private:
@@ -118,8 +134,10 @@ private:
     QList<POYPackConfig> getPoys(const QJsonObject & data);
 private:
     HttpRequest _request;
+    HttpRequest _WareRequest;
     DaBaoConfig  _config;
     QList<DengJiConfigItem> dengji;
+    QList<WarehouseConfig> Warehouse;
     QMap<QString,ParseFun> parsefUNS;
     bool getDdengji;
 };

+ 3 - 1
handle/seriport/logserialport.cpp

@@ -3,6 +3,7 @@
 #include <QByteArray>
 #include <pqQtlib/utils/pqutilsfunc.h>
 #include <pqQtlib/utils/pqendian.h>
+#include "cstring"
 
 
 #ifdef _MSC_VER
@@ -27,7 +28,8 @@ float LogSerialPort::toFloat(const QByteArray & ray){
     ch[1] = ray.at(3);
     ch[2] = ray.at(0);
     ch[3] = ray.at(1);
-    float value = qFromLittleEndian<float>(reinterpret_cast<EndianPointType *>(&ch[0]));
+    float value = qFromBigEndian<float>(reinterpret_cast<EndianPointType *>(&ch[0]));
+//   memcpy(&value,&ch[0],4);
     return value;
 }
 

+ 92 - 22
mainwindow.cpp

@@ -10,12 +10,30 @@ MainWindow::MainWindow(QWidget *parent)
     connect(ui->widgetLogin,&LoginForm::loginFinish,this,&MainWindow::backMenu);
 
     connect(ui->pageSelectValue,&SelectValueForm::selectProject,this,&MainWindow::FixedAndUncertain);
+    connect(ui->pageSelectValue,&SelectValueForm::back,this,&MainWindow::backMenu);
+    connect(ui->pageSelectValue,&SelectValueForm::backFandU,this,&MainWindow::backFAndU);
+//    connect(ui->actionPack,&QAction::triggered,this,&MainWindow::backMenu);
+    connect(ui->pageSettings,&SettingsForm::back,this,&MainWindow::backMenu);
+    connect(ui->pagePackDetail,&PackDetailForm::back,this,&MainWindow::backMenu);
+    connect(ui->pageAddNew,&AddNewSpecsForm::back,this,&MainWindow::backMenu);
+    connect(ui->dingzhong,&FixedWeightPackForm::backup,this,&MainWindow::backSelect);
+    connect(ui->dingzhong,&FixedWeightPackForm::NoSyncList,this,&MainWindow::changeToPackDetail);
+    connect(ui->dingzhong,&FixedWeightPackForm::buding,this,&MainWindow::on_buding);
+    connect(ui->dingzhong,&FixedWeightPackForm::back,this,&MainWindow::backMenu);
+
+    connect(ui->buding,&UncertainWeightPackForm::back,this,&MainWindow::backMenu);
+    connect(ui->buding,&UncertainWeightPackForm::dingzhong,this,&MainWindow::on_dingzhong);
+    connect(ui->buding,&UncertainWeightPackForm::backup,this,&MainWindow::backSelect);
+    connect(ui->buding,&UncertainWeightPackForm::NoSyncList,this,&MainWindow::changeToPackDetail);
+
+
     connect(ui->actionSetting,&QAction::triggered,this,&MainWindow::changeToSettings);
     connect(ui->actionAddNew,&QAction::triggered,this,&MainWindow::changeToAddNew);
-    connect(ui->pageDingZhong,&FixedWeightPackForm::NoSyncList,this,&MainWindow::changeToPackDetail);
-    connect(ui->actionPack,&QAction::triggered,this,&MainWindow::backMenu);
+    connect(ui->actionPack,&QAction::triggered,this,&MainWindow::changeToPackDetail);
+    connect(ui->actionSelectvalue,&QAction::triggered,this,&MainWindow::backSelect);
+    connect(ui->actionLogout,&QAction::triggered,this,&MainWindow::logout);
+//    connect(ui->backButton,&QPushButton::clicked,this,&MainWindow::backMenu);
     ui->stackedWidget->setCurrentWidget(ui->pageLogin);
-
 }
 
 MainWindow::~MainWindow()
@@ -25,28 +43,22 @@ MainWindow::~MainWindow()
 
 void MainWindow::on_pushDingZHong_clicked()
 {
-//    ui->stackedWidget->setCurrentWidget(ui->pageSelectValue);
-//    ui->pageSelectValue->getInfo(1,20);
-//    ui->pageSelectValue->setStatus(2);
+
 }
 
 void MainWindow::on_pushBuDingZhong_clicked()
 {
-//    ui->stackedWidget->setCurrentWidget(ui->pageSelectValue);
-//    ui->pageSelectValue->getInfo(1,20);
-//    ui->pageSelectValue->setStatus(3);
+
 }
 
 void MainWindow::on_pushAuto_clicked()
 {
-//    ui->stackedWidget->setCurrentWidget(ui->pageSelectValue);
-//    ui->pageSelectValue->getInfo(1,20);
-//    ui->pageSelectValue->setStatus(1);
+    backSelect();
 }
 
 void MainWindow::on_pushList_clicked()
 {
-//    ui->stackedWidget->setCurrentWidget(ui->pagePackDetail);
+    changeToPackDetail();
 }
 
 void MainWindow::on_pushConfig_clicked()
@@ -66,6 +78,22 @@ void MainWindow::changeToSettings()
 
 void MainWindow::backMenu()
 {
+    if(GlobalInfo::this_()->user().userName == ""){
+        QMessageBox::information(this,tr("注意"),tr("请登录"));
+        ui->stackedWidget->setCurrentWidget(ui->pageLogin);
+        return;
+    }
+    ui->stackedWidget->setCurrentWidget(ui->pageMain);
+}
+
+void MainWindow::backSelect(int i)
+{
+    if(GlobalInfo::this_()->user().userName == ""){
+        QMessageBox::information(this,tr("注意"),tr("请登录"));
+        return;
+    }
+    ui->pageSelectValue->setStatus(i);
+    ui->pageSelectValue->Start();
     ui->stackedWidget->setCurrentWidget(ui->pageSelectValue);
 }
 
@@ -73,24 +101,44 @@ void MainWindow::FixedAndUncertain(QString batchno)
 {
 //    qDebug()<<batchno;
     ui->stackedWidget->setCurrentWidget(ui->pageAutoPack);
-    ui->dingzhongButton->setChecked(true);
+//    ui->dingzhongButton->setChecked(true);
     ui->dingzhong->setProInfo(GlobalInfo::this_()->project().value(batchno));
+    ui->dingzhong->changeSpecs();
+    ui->buding->setProInfo(GlobalInfo::this_()->project().value(batchno));
+    ui->buding->changeSpecs();
+}
+
+void MainWindow::backFAndU()
+{
+    ui->stackedWidget->setCurrentWidget(ui->pageAutoPack);
 }
 
 void MainWindow::changeToAddNew()
 {
+    if(GlobalInfo::this_()->user().userName == ""){
+        QMessageBox::information(this,tr("注意"),tr("请登录"));
+        return;
+    }
     ui->stackedWidget->setCurrentWidget(ui->pageAddNew);
 }
 
 void MainWindow::changeToPackDetail()
 {
-    qDebug()<<"this";
+    if(GlobalInfo::this_()->user().userName == ""){
+        QMessageBox::information(this,tr("注意"),tr("请登录"));
+        return;
+    }
     QDate tm = QDate::currentDate();
-    QList<PackSaveInfo> saveinfo = GlobalInfo::this_()->packInfoManger()->getPackInfo(tm);
-    for(int i = 0;i<saveinfo.size();i++){
-        saveinfo.at(i).packInfo->goodsID();
+    QList<PackSaveInfo> saveinfo = GlobalInfo::this_()->packInfoManger()->getPackInfoSync(tm);
+    QList<PackSaveInfo> save;
+    for(int i = saveinfo.size()-1;i>=0;i--){
+        save.append(saveinfo.at(i));
+//        qDebug()<<i;
     }
+    ui->pagePackDetail->setSaveInfo(save);
+    ui->pagePackDetail->days = 0;
     ui->stackedWidget->setCurrentWidget(ui->pagePackDetail);
+    ui->pagePackDetail->changeTreeWidget(0,5);
 }
 
 void MainWindow::changedjmb(QImage image)
@@ -100,22 +148,44 @@ void MainWindow::changedjmb(QImage image)
 
 }
 
-void MainWindow::on_dingzhongButton_clicked()
+void MainWindow::on_dingzhong()
 {
     ui->stackedWidget_2->setCurrentWidget(ui->dingzhong);
 //    ui->dingzhong->init();
 }
 
-void MainWindow::on_budingButton_clicked()
+void MainWindow::on_buding()
 {
     ui->stackedWidget_2->setCurrentWidget(ui->buding);
-    ui->buding->init();
+//    ui->buding->init();
 }
 
 
 void MainWindow::closeEvent(QCloseEvent *event)
 {
     ui->dingzhong->save();
-//    ui->buding->save();
+    ui->buding->save();
     QMainWindow::closeEvent(event);
 }
+
+void MainWindow::logout()
+{
+    ui->dingzhong->save();
+    ui->buding->save();
+    GlobalInfo::this_()->logOuted();
+    UserInfo user;
+    GlobalInfo::this_()->start(user,true);
+    ui->stackedWidget->setCurrentWidget(ui->pageLogin);
+}
+
+
+void MainWindow::on_backButton_clicked()
+{
+    qDebug()<<"this";
+    ui->stackedWidget->setCurrentWidget(ui->pageMain);
+}
+
+void MainWindow::on_autoSync_stateChanged(int arg1)
+{
+
+}

+ 9 - 2
mainwindow.h

@@ -30,19 +30,26 @@ private slots:
 
     void on_pushBuDingZhong_clicked();
 
-    void on_dingzhongButton_clicked();
 
-    void on_budingButton_clicked();
 
 
+    void on_backButton_clicked();
+
+    void on_autoSync_stateChanged(int arg1);
+
 private:
     void backMenu();
+    void backSelect(int i = 0);
     void pageStatusChange(const ProjectInfo & info, int status);
     void changedjmb(QImage image);
     void changeToSettings();
     void changeToAddNew();
     void FixedAndUncertain(QString batchno);
+    void backFAndU();
     void changeToPackDetail();
+    void on_buding();
+    void on_dingzhong();
+    void logout();
 //    RtuPort rtuport;
 
 protected:

+ 60 - 273
mainwindow.ui

@@ -13,222 +13,71 @@
   <property name="windowTitle">
    <string>MainWindow</string>
   </property>
+  <property name="styleSheet">
+   <string notr="true"/>
+  </property>
   <widget class="QWidget" name="centralwidget">
    <layout class="QGridLayout" name="gridLayout_2">
     <item row="0" column="0">
      <widget class="QStackedWidget" name="stackedWidget">
       <property name="currentIndex">
-       <number>1</number>
+       <number>5</number>
       </property>
       <widget class="QWidget" name="pageMain">
-       <layout class="QHBoxLayout" name="horizontalLayout_2">
-        <item>
-         <layout class="QVBoxLayout" name="verticalLayout">
-          <property name="spacing">
-           <number>7</number>
+       <layout class="QGridLayout" name="gridLayout_4">
+        <item row="0" column="1">
+         <widget class="QPushButton" name="pushList">
+          <property name="minimumSize">
+           <size>
+            <width>80</width>
+            <height>115</height>
+           </size>
           </property>
-          <item>
-           <widget class="QWidget" name="widget" native="true">
-            <property name="maximumSize">
-             <size>
-              <width>999999</width>
-              <height>52</height>
-             </size>
-            </property>
-            <property name="styleSheet">
-             <string notr="true">background-color: rgb(0, 170, 255);</string>
-            </property>
-            <layout class="QGridLayout" name="gridLayout_5">
-             <item row="0" column="0">
-              <widget class="QLabel" name="label_9">
-               <property name="minimumSize">
-                <size>
-                 <width>0</width>
-                 <height>30</height>
-                </size>
-               </property>
-               <property name="maximumSize">
-                <size>
-                 <width>16777215</width>
-                 <height>30</height>
-                </size>
-               </property>
-               <property name="styleSheet">
-                <string notr="true">font: 12pt &quot;黑体&quot;;
-color: rgb(255, 255, 255);</string>
-               </property>
-               <property name="text">
-                <string>打包选择</string>
-               </property>
-              </widget>
-             </item>
-             <item row="0" column="2">
-              <widget class="QLabel" name="p2_user_lb">
-               <property name="minimumSize">
-                <size>
-                 <width>100</width>
-                 <height>30</height>
-                </size>
-               </property>
-               <property name="maximumSize">
-                <size>
-                 <width>16777215</width>
-                 <height>30</height>
-                </size>
-               </property>
-               <property name="text">
-                <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;right&quot;&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-               </property>
-               <property name="alignment">
-                <set>Qt::AlignCenter</set>
-               </property>
-              </widget>
-             </item>
-             <item row="0" column="1">
-              <spacer name="horizontalSpacer_3">
-               <property name="orientation">
-                <enum>Qt::Horizontal</enum>
-               </property>
-               <property name="sizeHint" stdset="0">
-                <size>
-                 <width>40</width>
-                 <height>20</height>
-                </size>
-               </property>
-              </spacer>
-             </item>
-            </layout>
-           </widget>
-          </item>
-          <item>
-           <layout class="QGridLayout" name="gridLayout_4">
-            <property name="sizeConstraint">
-             <enum>QLayout::SetDefaultConstraint</enum>
-            </property>
-            <property name="spacing">
-             <number>7</number>
-            </property>
-            <item row="0" column="3">
-             <widget class="QPushButton" name="pushConfig">
-              <property name="minimumSize">
-               <size>
-                <width>80</width>
-                <height>115</height>
-               </size>
-              </property>
-              <property name="styleSheet">
-               <string notr="true">background-color: rgb(0, 85, 255);</string>
-              </property>
-              <property name="text">
-               <string>硬件配置</string>
-              </property>
-             </widget>
-            </item>
-            <item row="0" column="2">
-             <widget class="QPushButton" name="pushXiaoBiaoqian">
-              <property name="minimumSize">
-               <size>
-                <width>80</width>
-                <height>115</height>
-               </size>
-              </property>
-              <property name="styleSheet">
-               <string notr="true">background-color: rgb(0, 170, 255);</string>
-              </property>
-              <property name="text">
-               <string>小标签打印</string>
-              </property>
-             </widget>
-            </item>
-            <item row="0" column="0">
-             <widget class="QPushButton" name="pushDingZHong">
-              <property name="minimumSize">
-               <size>
-                <width>80</width>
-                <height>115</height>
-               </size>
-              </property>
-              <property name="styleSheet">
-               <string notr="true">background-color: rgb(0, 170, 255);</string>
-              </property>
-              <property name="text">
-               <string>定重箱单打印</string>
-              </property>
-              <property name="iconSize">
-               <size>
-                <width>20</width>
-                <height>20</height>
-               </size>
-              </property>
-             </widget>
-            </item>
-            <item row="1" column="0">
-             <widget class="QPushButton" name="pushList">
-              <property name="minimumSize">
-               <size>
-                <width>80</width>
-                <height>115</height>
-               </size>
-              </property>
-              <property name="styleSheet">
-               <string notr="true">background-color: rgb(255, 170, 0);</string>
-              </property>
-              <property name="text">
-               <string>打包明细</string>
-              </property>
-             </widget>
-            </item>
-            <item row="1" column="1">
-             <widget class="QPushButton" name="pushBanZiDong">
-              <property name="minimumSize">
-               <size>
-                <width>80</width>
-                <height>115</height>
-               </size>
-              </property>
-              <property name="styleSheet">
-               <string notr="true">background-color: rgb(85, 255, 0);</string>
-              </property>
-              <property name="text">
-               <string>半自动箱单打印</string>
-              </property>
-             </widget>
-            </item>
-            <item row="0" column="1">
-             <widget class="QPushButton" name="pushBuDingZhong">
-              <property name="minimumSize">
-               <size>
-                <width>80</width>
-                <height>115</height>
-               </size>
-              </property>
-              <property name="styleSheet">
-               <string notr="true">background-color: rgb(0, 255, 127);</string>
-              </property>
-              <property name="text">
-               <string>不定重箱单打印</string>
-              </property>
-             </widget>
-            </item>
-            <item row="1" column="2">
-             <widget class="QPushButton" name="pushAuto">
-              <property name="minimumSize">
-               <size>
-                <width>80</width>
-                <height>115</height>
-               </size>
-              </property>
-              <property name="styleSheet">
-               <string notr="true">background-color: rgb(0, 170, 255);</string>
-              </property>
-              <property name="text">
-               <string>自动箱单打印</string>
-              </property>
-             </widget>
-            </item>
-           </layout>
-          </item>
-         </layout>
+          <property name="maximumSize">
+           <size>
+            <width>300</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="font">
+           <font>
+            <pointsize>18</pointsize>
+           </font>
+          </property>
+          <property name="styleSheet">
+           <string notr="true">background-color: rgb(0, 170, 255);</string>
+          </property>
+          <property name="text">
+           <string>明细</string>
+          </property>
+         </widget>
+        </item>
+        <item row="0" column="0">
+         <widget class="QPushButton" name="pushAuto">
+          <property name="minimumSize">
+           <size>
+            <width>80</width>
+            <height>115</height>
+           </size>
+          </property>
+          <property name="maximumSize">
+           <size>
+            <width>300</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="font">
+           <font>
+            <pointsize>18</pointsize>
+           </font>
+          </property>
+          <property name="styleSheet">
+           <string notr="true">background-color: rgb(255, 170, 0);</string>
+          </property>
+          <property name="text">
+           <string>打包</string>
+          </property>
+         </widget>
         </item>
        </layout>
       </widget>
@@ -345,65 +194,6 @@ color: rgb(255, 255, 255);</string>
          <number>0</number>
         </property>
         <item row="0" column="0">
-         <widget class="QWidget" name="widget_2" native="true">
-          <property name="minimumSize">
-           <size>
-            <width>0</width>
-            <height>40</height>
-           </size>
-          </property>
-          <layout class="QGridLayout" name="gridLayout_6">
-           <item row="0" column="3">
-            <widget class="QCheckBox" name="checkBox">
-             <property name="text">
-              <string>打包是否入库</string>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="1">
-            <widget class="QRadioButton" name="dingzhongButton">
-             <property name="text">
-              <string>定重打包</string>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="4">
-            <spacer name="horizontalSpacer_5">
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-             <property name="sizeHint" stdset="0">
-              <size>
-               <width>311</width>
-               <height>20</height>
-              </size>
-             </property>
-            </spacer>
-           </item>
-           <item row="0" column="2">
-            <widget class="QRadioButton" name="budingButton">
-             <property name="text">
-              <string>不定重打包</string>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="0">
-            <spacer name="horizontalSpacer_4">
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-             <property name="sizeHint" stdset="0">
-              <size>
-               <width>338</width>
-               <height>20</height>
-              </size>
-             </property>
-            </spacer>
-           </item>
-          </layout>
-         </widget>
-        </item>
-        <item row="1" column="0">
          <widget class="QStackedWidget" name="stackedWidget_2">
           <widget class="FixedWeightPackForm" name="dingzhong"/>
           <widget class="UncertainWeightPackForm" name="buding"/>
@@ -413,7 +203,6 @@ color: rgb(255, 255, 255);</string>
       </widget>
       <widget class="SelectValueForm" name="pageSelectValue"/>
       <widget class="PackDetailForm" name="pagePackDetail"/>
-      <widget class="FixedWeightPackForm" name="pageDingZhong"/>
       <widget class="UncertainWeightPackForm" name="pageBuDing"/>
      </widget>
     </item>
@@ -425,7 +214,7 @@ color: rgb(255, 255, 255);</string>
      <x>0</x>
      <y>0</y>
      <width>1033</width>
-     <height>26</height>
+     <height>23</height>
     </rect>
    </property>
    <widget class="QMenu" name="menu">
@@ -437,7 +226,7 @@ color: rgb(255, 255, 255);</string>
       <string>规格设置</string>
      </property>
      <addaction name="actionAddNew"/>
-     <addaction name="action_3"/>
+     <addaction name="actionSelectvalue"/>
      <addaction name="action_4"/>
     </widget>
     <addaction name="menu_4"/>
@@ -450,7 +239,6 @@ color: rgb(255, 255, 255);</string>
      <string>入库</string>
     </property>
     <addaction name="actionPack"/>
-    <addaction name="actionModify"/>
    </widget>
    <widget class="QMenu" name="menu_3">
     <property name="title">
@@ -461,7 +249,6 @@ color: rgb(255, 255, 255);</string>
    <addaction name="menu_2"/>
    <addaction name="menu_3"/>
   </widget>
-  <widget class="QStatusBar" name="statusbar"/>
   <action name="actionSetting">
    <property name="text">
     <string>连接设置</string>
@@ -477,7 +264,7 @@ color: rgb(255, 255, 255);</string>
     <string>新建规格</string>
    </property>
   </action>
-  <action name="action_3">
+  <action name="actionSelectvalue">
    <property name="text">
     <string>查看规格</string>
    </property>

+ 17 - 4
struct_/packinfo.cpp

@@ -65,7 +65,7 @@ QJsonObject BoxInfo::toObject()
     ret.insert("box_weight",box_weight);
     ret.insert("tube_number",tube_number);
     ret.insert("bucket_weight",bucket_weight);
-    ret.insert("gross_weight",bucket_weight);
+    ret.insert("gross_weight",gross_weight);
     ret.insert("net_weight",net_weight);
     ret.insert("Level",Level);
     ret.insert("twist_type",twist_type);
@@ -116,7 +116,8 @@ QJsonObject PackInfo::toObject()
     ret.insert("remark",remark);
     ret.insert("telephone",telephone);
     ret.insert("customer",customer);
-    ret.insert("batch_no",_info->batch_no);
+    ret.insert("batch_no",batch_no);
+    ret.insert("warehouse_id",warehouse_id);
 
     ret.insert("packType",packType);
 
@@ -146,11 +147,13 @@ QSharedPointer<PackInfo> PackInfo::fromObject(QJsonObject &obj)
     ret->machine_no = obj.value("machine_no").toString();
     ret->packing_time = obj.value("packing_time").toString();
     ret->packing_type = obj.value("packing_type").toString();
-    ret->operator_id = obj.value("operator_id").toInt();
-    ret->carton_type = obj.value("canton_type").toString();
+    ret->operator_id = obj.value("operator").toInt();
+    ret->carton_type = obj.value("carton_type").toString();
     ret->remark = obj.value("remark").toString();
     ret->telephone = obj.value("telephone").toString();
     ret->customer = obj.value("customer").toString();
+    ret->batch_no = obj.value("batch_no").toString();
+    ret->warehouse_id = obj.value("warehouse_id").toInt();
 
     ret->packType = obj.value("packType").toInt();
     QJsonArray det = obj.value("details").toArray();
@@ -163,6 +166,16 @@ QSharedPointer<PackInfo> PackInfo::fromObject(QJsonObject &obj)
     return ret;
 }
 
+QJsonObject RuKuInfo::toObject()
+{
+    QJsonObject obj;
+    obj.insert("warehouse_id",warehouse_id);
+    obj.insert("way",way);
+    obj.insert("product_details",product_details);
+    obj.insert("remark",remark);
+    return obj;
+}
+
 QString PackInfo::buildPackId()
 {
     QDateTime now = QDateTime::currentDateTime();

+ 13 - 0
struct_/packinfo.h

@@ -4,11 +4,22 @@
 #include <QString>
 #include <QSharedPointer>
 #include "projectinfo.h"
+#include "QJsonArray"
 
 QString getDecimalbit(double v,int i = 2);
 
 class PackInfo;
 
+struct RuKuInfo
+{
+    int warehouse_id;
+    int way;
+    QJsonArray product_details;
+    QString remark;
+
+    QJsonObject toObject();
+};
+
 struct BoxInfo
 {
     inline QSharedPointer<PackInfo> parentPack() {
@@ -53,6 +64,8 @@ public:
     QString packing_type;//	是	string	打包类型
     QString carton_type;//	是	string	纸箱
     int operator_id = 0;//	是	int	操作员ID
+    QString batch_no;//批号
+    int warehouse_id;//仓库id
 
     QString remark;//	否	string
 

+ 2 - 0
struct_/projectinfo.cpp

@@ -1,4 +1,5 @@
 #include "projectinfo.h"
+#include "QDebug"
 
 
 QJsonObject ProjectInfo::toObject()
@@ -61,6 +62,7 @@ QSharedPointer<ProjectInfo> ProjectInfo::fromObject(const QJsonObject & obj)
     info->box_float = obj.value("box_float").toString();
     info->box_rule = obj.value("box_rule").toString();
     info->customer = obj.value("customer").toString();
+    info->tel = obj.value("tel").toString();
     info->remark = obj.value("remark").toString();
     info->is_disable  = obj.value("is_disable").toBool();
     info->create_time = obj.value("create_time").toInt();

+ 1 - 0
struct_/projectinfo.h

@@ -41,6 +41,7 @@ struct ProjectInfo
     QString box_float;//	string	纸箱浮动
     QString box_rule;//	string	箱号规则
     QString customer;//	string	箱单抬头
+    QString tel;//电话
     QString remark;//	string	备注
     bool is_disable;//	bool	是否禁用
     qint64 create_time;//	int	创建时间

+ 27 - 8
widget/addnewspecsform.cpp

@@ -62,20 +62,15 @@ void AddNewSpecsForm::result(int code, const QJsonObject & body)
 }
 
 void AddNewSpecsForm::projectData(){
-    if(ui->batch_no->text().isEmpty()){
-        QMessageBox::information(this,tr("注意"),tr("批号为空"));
-        ui->StartButton->setEnabled(true);
-        return;
-    }
     project.reset(new ProjectInfo);
     project->batch_no = ui->batch_no->text();
     project->category = ui->category->text();
-    project->product_type_code = ui->product_type_code->currentText();
-    project->spec_role = ui->spec_role->currentText();
+    project->product_type_code = ui->product_type_code->text();
+    project->spec_role = ui->spec_role->text();
     project->denier = ui->denier->text();
     project->dtex = ui->dtex->text();
     project->fiber = ui->fiber->text();
-    project->specs = ui->specs->currentText();
+    project->specs = ui->specs->text();
     project->color = ui->color->text();
     project->twist_type = ui->twist_type->currentText();
     project->bucket_color = ui->bucket_color->currentText();
@@ -86,11 +81,25 @@ void AddNewSpecsForm::projectData(){
     project->bucket_number = ui->bucket_number->text();
     project->customer = ui->customer->text();
     project->remark = ui->remark->toPlainText();
+    project->tel = ui->tel->text();
     qDebug()<<"this";
 }
 
 void AddNewSpecsForm::on_StartButton_clicked()
 {
+
+    if(ui->batch_no->text().isEmpty()){
+        QMessageBox::information(this,tr("注意"),tr("批号为空"));
+        ui->StartButton->setEnabled(true);
+        return;
+    }
+
+    if(ui->category->text().isEmpty()){
+        QMessageBox::information(this,tr("注意"),tr("类型为空"));
+        ui->StartButton->setEnabled(true);
+        return;
+    }
+
     ui->tiJiao_text->show();
     ui->StartButton->setEnabled(false);
     projectData();
@@ -111,3 +120,13 @@ void AddNewSpecsForm::on_StartButton_clicked()
     request.setUserToken(QString::number(GlobalInfo::this_()->user().accountId),GlobalInfo::this_()->user().acessToken);
     request.post(url,project->toObject());
 }
+
+void AddNewSpecsForm::on_backButton_clicked()
+{
+    emit back();
+}
+
+void AddNewSpecsForm::on_backButton_2_clicked()
+{
+    emit back();
+}

+ 7 - 0
widget/addnewspecsform.h

@@ -24,9 +24,16 @@ private slots:
     void on_StartButton_clicked();
     void result(int code, const QJsonObject & body);
 
+    void on_backButton_clicked();
+
+    void on_backButton_2_clicked();
+
 private:
     void projectData();
 
+signals:
+    void back();
+
 private:
     QSharedPointer<ProjectInfo> project;
     QSharedPointer<ProjectInfoManger> projectinfo;

+ 177 - 167
widget/addnewspecsform.ui

@@ -10,6 +10,12 @@
     <height>703</height>
    </rect>
   </property>
+  <property name="maximumSize">
+   <size>
+    <width>764</width>
+    <height>703</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>
@@ -116,186 +122,190 @@
    <item row="2" column="0">
     <widget class="QWidget" name="widget_2" native="true">
      <layout class="QGridLayout" name="gridLayout_5">
-      <item row="0" column="0">
-       <layout class="QGridLayout" name="gridLayout">
-        <property name="horizontalSpacing">
-         <number>43</number>
+      <item row="1" column="5">
+       <widget class="QLineEdit" name="category"/>
+      </item>
+      <item row="4" column="1">
+       <widget class="QComboBox" name="carton_type"/>
+      </item>
+      <item row="0" column="2">
+       <widget class="QLabel" name="label_14">
+        <property name="text">
+         <string>规格录入</string>
         </property>
-        <property name="verticalSpacing">
-         <number>14</number>
+       </widget>
+      </item>
+      <item row="2" column="2">
+       <widget class="QLabel" name="label_16">
+        <property name="text">
+         <string>捻    向</string>
         </property>
-        <item row="0" column="5">
-         <widget class="QLineEdit" name="denier"/>
-        </item>
-        <item row="2" column="0">
-         <widget class="QLabel" name="label_5">
-          <property name="text">
-           <string>颜    色</string>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="4">
-         <widget class="QLabel" name="label_20">
-          <property name="text">
-           <string>类    型</string>
-          </property>
-         </widget>
-        </item>
-        <item row="5" column="0">
-         <widget class="QLabel" name="label_8">
-          <property name="text">
-           <string>箱单抬头</string>
-          </property>
-         </widget>
-        </item>
-        <item row="5" column="4">
-         <widget class="QLabel" name="label_24">
-          <property name="text">
-           <string>时    间</string>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="1">
-         <widget class="QLineEdit" name="color"/>
-        </item>
-        <item row="1" column="1">
-         <widget class="QLineEdit" name="dtex"/>
-        </item>
-        <item row="3" column="4">
-         <widget class="QLabel" name="label_22">
-          <property name="text">
-           <string>机    台</string>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="2">
-         <widget class="QLabel" name="label_14">
-          <property name="text">
-           <string>规格录入</string>
-          </property>
-         </widget>
-        </item>
-        <item row="4" column="5">
-         <widget class="QComboBox" name="specs"/>
-        </item>
-        <item row="5" column="1">
-         <widget class="QLineEdit" name="customer"/>
-        </item>
-        <item row="1" column="2">
-         <widget class="QLabel" name="label_15">
-          <property name="text">
-           <string>孔数(F)</string>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="3">
-         <widget class="QComboBox" name="twist_type"/>
-        </item>
-        <item row="2" column="5">
-         <widget class="QComboBox" name="bucket_color"/>
-        </item>
-        <item row="0" column="1">
-         <widget class="QComboBox" name="product_type_code"/>
-        </item>
-        <item row="3" column="5">
-         <widget class="QComboBox" name="machine_no"/>
-        </item>
-        <item row="4" column="0">
-         <widget class="QLabel" name="label_7">
-          <property name="text">
-           <string>纸    箱</string>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="0">
-         <widget class="QLabel" name="label_4">
-          <property name="text">
-           <string>分特(dt)</string>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="2">
-         <widget class="QLabel" name="label_16">
-          <property name="text">
-           <string>捻    向</string>
-          </property>
-         </widget>
-        </item>
+       </widget>
+      </item>
+      <item row="3" column="5">
+       <widget class="QComboBox" name="machine_no"/>
+      </item>
+      <item row="5" column="1">
+       <widget class="QLineEdit" name="customer"/>
+      </item>
+      <item row="1" column="2">
+       <widget class="QLabel" name="label_15">
+        <property name="text">
+         <string>孔数(F)</string>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="0">
+       <widget class="QLabel" name="label_5">
+        <property name="text">
+         <string>颜    色</string>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="2">
+       <widget class="QLabel" name="label_17">
+        <property name="text">
+         <string>筒    重</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QLineEdit" name="product_type_code"/>
+      </item>
+      <item row="4" column="0">
+       <widget class="QLabel" name="label_7">
+        <property name="text">
+         <string>纸    箱</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="3">
+       <widget class="QLineEdit" name="spec_role"/>
+      </item>
+      <item row="3" column="4">
+       <widget class="QLabel" name="label_22">
+        <property name="text">
+         <string>机    台</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1">
+       <widget class="QLineEdit" name="dtex"/>
+      </item>
+      <item row="3" column="0">
+       <widget class="QLabel" name="label_6">
+        <property name="text">
+         <string>箱    重</string>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="1">
+       <widget class="QComboBox" name="box_weight"/>
+      </item>
+      <item row="2" column="5">
+       <widget class="QComboBox" name="bucket_color"/>
+      </item>
+      <item row="2" column="4">
+       <widget class="QLabel" name="label_21">
+        <property name="text">
+         <string>管    色</string>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="5">
+       <widget class="QLineEdit" name="specs"/>
+      </item>
+      <item row="0" column="5">
+       <widget class="QLineEdit" name="denier"/>
+      </item>
+      <item row="1" column="0">
+       <widget class="QLabel" name="label_4">
+        <property name="text">
+         <string>分特(dt)</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="4">
+       <widget class="QLabel" name="label_19">
+        <property name="text">
+         <string>旦数(D)</string>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1">
+       <widget class="QLineEdit" name="color"/>
+      </item>
+      <item row="4" column="2">
+       <widget class="QLabel" name="label_18">
+        <property name="text">
+         <string>筒    数</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="4">
+       <layout class="QGridLayout" name="gridLayout">
         <item row="0" column="0">
-         <widget class="QLabel" name="label_3">
-          <property name="text">
-           <string>品    种</string>
-          </property>
-         </widget>
-        </item>
-        <item row="4" column="2">
-         <widget class="QLabel" name="label_18">
-          <property name="text">
-           <string>筒    数</string>
-          </property>
-         </widget>
-        </item>
-        <item row="4" column="3">
-         <widget class="QLineEdit" name="bucket_number"/>
-        </item>
-        <item row="1" column="5">
-         <widget class="QLineEdit" name="category"/>
-        </item>
-        <item row="2" column="4">
-         <widget class="QLabel" name="label_21">
-          <property name="text">
-           <string>管    色</string>
-          </property>
-         </widget>
-        </item>
-        <item row="3" column="3">
-         <widget class="QComboBox" name="bucket_weight"/>
-        </item>
-        <item row="4" column="1">
-         <widget class="QComboBox" name="carton_type"/>
-        </item>
-        <item row="4" column="4">
-         <widget class="QLabel" name="label_23">
-          <property name="text">
-           <string>箱号规格</string>
-          </property>
-         </widget>
-        </item>
-        <item row="5" column="5">
-         <widget class="QComboBox" name="time"/>
-        </item>
-        <item row="3" column="1">
-         <widget class="QComboBox" name="box_weight"/>
-        </item>
-        <item row="1" column="3">
-         <widget class="QLineEdit" name="fiber"/>
-        </item>
-        <item row="0" column="3">
-         <widget class="QComboBox" name="spec_role"/>
-        </item>
-        <item row="0" column="4">
-         <widget class="QLabel" name="label_19">
-          <property name="text">
-           <string>旦数(D)</string>
+         <widget class="QLabel" name="label_26">
+          <property name="styleSheet">
+           <string notr="true">color: rgb(255, 0, 0);</string>
           </property>
-         </widget>
-        </item>
-        <item row="3" column="0">
-         <widget class="QLabel" name="label_6">
           <property name="text">
-           <string>箱    重</string>
+           <string>*</string>
           </property>
          </widget>
         </item>
-        <item row="3" column="2">
-         <widget class="QLabel" name="label_17">
+        <item row="0" column="1">
+         <widget class="QLabel" name="label_20">
           <property name="text">
-           <string>筒    重</string>
+           <string>类   型</string>
           </property>
          </widget>
         </item>
        </layout>
       </item>
+      <item row="3" column="3">
+       <widget class="QComboBox" name="bucket_weight"/>
+      </item>
+      <item row="2" column="3">
+       <widget class="QComboBox" name="twist_type"/>
+      </item>
+      <item row="1" column="3">
+       <widget class="QLineEdit" name="fiber"/>
+      </item>
+      <item row="4" column="4">
+       <widget class="QLabel" name="label_23">
+        <property name="text">
+         <string>箱号规格</string>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="3">
+       <widget class="QLineEdit" name="bucket_number"/>
+      </item>
+      <item row="5" column="0">
+       <widget class="QLabel" name="label_8">
+        <property name="text">
+         <string>箱单抬头</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0">
+       <widget class="QLabel" name="label_3">
+        <property name="text">
+         <string>品    种</string>
+        </property>
+       </widget>
+      </item>
+      <item row="5" column="4">
+       <widget class="QLabel" name="label_24">
+        <property name="text">
+         <string>电    话</string>
+        </property>
+       </widget>
+      </item>
+      <item row="5" column="5">
+       <widget class="QLineEdit" name="tel"/>
+      </item>
      </layout>
     </widget>
    </item>
@@ -449,7 +459,7 @@
          </widget>
         </item>
         <item>
-         <widget class="QPushButton" name="pushButton">
+         <widget class="QPushButton" name="backButton_2">
           <property name="text">
            <string>取消</string>
           </property>

+ 34 - 0
widget/dateselectdialog.cpp

@@ -0,0 +1,34 @@
+#include "dateselectdialog.h"
+#include "ui_dateselectdialog.h"
+
+DateSelectDialog::DateSelectDialog(QWidget *parent) :
+    QDialog(parent),
+    ui(new Ui::DateSelectDialog)
+{
+    ui->setupUi(this);
+
+}
+
+DateSelectDialog::~DateSelectDialog()
+{
+    delete ui;
+}
+
+void DateSelectDialog::on_cancelButton_clicked()
+{
+    this->close();
+}
+
+void DateSelectDialog::on_pushButton_clicked()
+{
+    QCalendarWidget *calendar1 = new  QCalendarWidget(this);
+    calendar1->setVerticalHeaderFormat(QCalendarWidget::NoVerticalHeader);
+    calendar1->setHorizontalHeaderFormat(QCalendarWidget::SingleLetterDayNames);
+    calendar1->adjustSize();
+    calendar1->raise();
+}
+
+void DateSelectDialog::on_startButton_clicked()
+{
+
+}

+ 32 - 0
widget/dateselectdialog.h

@@ -0,0 +1,32 @@
+#ifndef DATESELECTDIALOG_H
+#define DATESELECTDIALOG_H
+
+#include <QDialog>
+
+namespace Ui {
+class DateSelectDialog;
+}
+
+class DateSelectDialog : public QDialog
+{
+    Q_OBJECT
+
+public:
+    explicit DateSelectDialog(QWidget *parent = nullptr);
+    ~DateSelectDialog();
+
+signals:
+    void timeUp();
+
+private slots:
+    void on_cancelButton_clicked();
+
+    void on_pushButton_clicked();
+
+    void on_startButton_clicked();
+
+private:
+    Ui::DateSelectDialog *ui;
+};
+
+#endif // DATESELECTDIALOG_H

+ 71 - 0
widget/dateselectdialog.ui

@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DateSelectDialog</class>
+ <widget class="QDialog" name="DateSelectDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>887</width>
+    <height>506</height>
+   </rect>
+  </property>
+  <property name="maximumSize">
+   <size>
+    <width>99999</width>
+    <height>99999</height>
+   </size>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <widget class="QCalendarWidget" name="calendarWidget">
+   <property name="geometry">
+    <rect>
+     <x>428</x>
+     <y>117</y>
+     <width>248</width>
+     <height>236</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QPushButton" name="startButton">
+   <property name="geometry">
+    <rect>
+     <x>428</x>
+     <y>360</y>
+     <width>93</width>
+     <height>28</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>确定</string>
+   </property>
+  </widget>
+  <widget class="QPushButton" name="cancelButton">
+   <property name="geometry">
+    <rect>
+     <x>580</x>
+     <y>360</y>
+     <width>93</width>
+     <height>28</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>取消</string>
+   </property>
+  </widget>
+  <widget class="QDateTimeEdit" name="dateTimeEdit">
+   <property name="geometry">
+    <rect>
+     <x>120</x>
+     <y>380</y>
+     <width>194</width>
+     <height>22</height>
+    </rect>
+   </property>
+  </widget>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>

+ 2 - 0
widget/editboxinfodialog.cpp

@@ -1,5 +1,6 @@
 #include "editboxinfodialog.h"
 #include "ui_editboxinfodialog.h"
+#include "QDebug"
 
 EditBoxInfoDialog::EditBoxInfoDialog(QSharedPointer<BoxInfo> &box, QWidget *parent) :
     QDialog(parent),
@@ -12,6 +13,7 @@ EditBoxInfoDialog::EditBoxInfoDialog(QSharedPointer<BoxInfo> &box, QWidget *pare
     ui->pz->setValue(_box->box_weight / 1000.00);
     ui->netW->setValue(_box->net_weight / 1000.00);
     ui->grossW->setValue(_box->gross_weight / 1000.0);
+    qDebug()<<_box->bucket_weight;
 }
 
 EditBoxInfoDialog::~EditBoxInfoDialog()

+ 155 - 27
widget/fixedweightpackform.cpp

@@ -16,17 +16,15 @@ FixedWeightPackForm::FixedWeightPackForm(QWidget *parent) :
     connect(glo,&GlobalInfo::dbConfigUpdated,this,&FixedWeightPackForm::upconfig);
     connect(glo,&GlobalInfo::dengJiUped,this,&FixedWeightPackForm::upDengjiInfo);
     connect(glo,&GlobalInfo::doInited,this,&FixedWeightPackForm::changeSpecs);
+    connect(glo,&GlobalInfo::wareUped,this,&FixedWeightPackForm::upWare);
     auto dt = CacheFile::readFile("dingzhongInfo.cache");
     auto list = QString::fromUtf8(dt).split("[,]");
     if(list.size() == 2){
         ui->taitou->setText(list.at(0));
         ui->taiPhone->setText(list.at(1));
     }
-    ui->tableWidget_2->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
-//    packServer = new PackInfoSeed2Server(Manger);
-    // todo: 暂时隐藏同步
-//    ui->pushNoSyncList->hide();
-//    ui->pushSync->hide();
+//    ui->tableWidget_2->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
+    ui->dingzhong->setChecked(true);
 }
 
 FixedWeightPackForm::~FixedWeightPackForm()
@@ -42,17 +40,22 @@ void FixedWeightPackForm::calcData()
     double ts = ui->tongshu->text().toDouble();
     if(ui->showMaoZhong->isChecked()){
         gross_weight = ui->grossWeight_2->text().toDouble();
+
         netNum = gross_weight - pz - tz * ts;
 
     } else {
         netNum = ui->grossWeight_2->text().toDouble();
-        gross_weight = netNum + pz + ts*ts;
+        gross_weight = netNum + pz + tz*ts;
+    }
+    if(netNum<0){
+        netNum = 0.00;
     }
 }
 
 void FixedWeightPackForm::save()
 {
     QStringList list;
+    qDebug()<<ui->taitou->text();
     list << ui->taitou->text() <<  ui->taiPhone->text();
     PQ::CacheFile::writeFile("dingzhongInfo.cache",list.join("[,]").toUtf8());
 
@@ -74,23 +77,32 @@ void FixedWeightPackForm::on_addPackList_clicked()
         packinfo->telephone = ui->taiPhone->text();
     }
 //    qDebug()<<packinfo->boxes().at(0)->tube_number;
-    if(ui->autoSync->isChecked() && !GlobalInfo::this_()->isNoLine())
-        packServer->send(packinfo);
+    if(ui->AutoSync->isChecked() && !GlobalInfo::this_()->isNoLine())
+        packServer->send(packinfo,isRuku);
     Manger->savePackInfo(packinfo);
 //    GlobalInfo::this_()->packInfoManger()->setPackInfoSync(packinfo->codeSingle(),packinfo->time(),true);
     if(ui->madanPrint->isChecked())
         GlobalInfo::this_()->printerPack(packinfo);
+    ui->tableWidget->clearContents();
+    ui->tableWidget->setRowCount(0);
+
+//    ui->widget_2->setEnabled(true);
 
     packinfo.clear();
 }
 
 void FixedWeightPackForm::on_addBoxList_clicked()
 {
+    if(ui->grossWeight_2->text().toInt()<0){
+        QMessageBox::information(this,tr("注意"),tr("重量异常"));
+        return;
+    }
     checkPackInfo(); //检查packinfo isNull
     //当当前箱数大于等于最大箱数是启动on_addPackList_clicked();
     if(packinfo->boxes().size() >= ui->comboBox->currentText().toInt()){
         on_addPackList_clicked();
         checkPackInfo();
+        return;
     }
 
     auto index = packinfo->boxInfoSize();
@@ -98,7 +110,7 @@ void FixedWeightPackForm::on_addBoxList_clicked()
     calcData();
     box->box_weight = int(ui->pizhong->currentText().toDouble()*1000);
     box->tube_number = ui->tongshu->text().toInt();
-    box->bucket_weight = int(ui->tongzhong->currentText().toInt()*ui->tongshu->text().toDouble()*1000);
+    box->bucket_weight = int((ui->tongzhong->currentText().toDouble()*ui->tongshu->text().toDouble())*1000);
     box->gross_weight = int(gross_weight*1000);
     box->net_weight = int(netNum*1000);
     box->Level = ui->dengji->currentText();
@@ -108,7 +120,7 @@ void FixedWeightPackForm::on_addBoxList_clicked()
 //    box->remark = ui->beizhu->toPlainText();
     packinfo->level = ui->dengji->currentText();
     packinfo->level_id = ui->dengji->currentData().toInt();
-
+    packinfo->warehouse_id = ui->wareBox->currentData().toInt();
     addTableWidget(box,index);
 
 
@@ -144,6 +156,19 @@ void FixedWeightPackForm::checkPackInfo()
         packinfo->packing_time = QDate::currentDate().toString("yy-MM-dd");
         packinfo->packing_type = _info->category;
         packinfo->packType = 0;
+
+        //
+        packinfo->warehouse_id = 0;
+        packinfo->batch_no = _info->batch_no;
+        packinfo->quantity = packinfo->boxes().size();
+        packinfo->level_id = ui->dengji->currentData().toInt();
+        packinfo->machine_no = ui->jitai->currentText();
+        packinfo->carton_type = ui->zhixiang->currentText();
+        packinfo->customer = ui->taitou->text();
+        packinfo->telephone = ui->taiPhone->text();
+
+//        ui->widget_2->setEnabled(false);
+
         restTableWidget();
     }
 }
@@ -151,28 +176,40 @@ void FixedWeightPackForm::checkPackInfo()
 //往tablewidget里添加数据
 void FixedWeightPackForm::addTableWidget(QSharedPointer<BoxInfo> box, int row)
 {
+    ui->nowCode->setText(packinfo->codeSingle());
     ui->tableWidget->insertRow(row);
 
-    ui->tableWidget->setItem(row,0,new QTableWidgetItem(QString::number(box->tube_number)));
-    ui->tableWidget->setItem(row,1,new QTableWidgetItem(getDecimalbit(box->gross_weight / 1000.00)));
-    ui->tableWidget->setItem(row,2,new QTableWidgetItem(getDecimalbit(box->box_weight / 1000.00)));
-    ui->tableWidget->setItem(row,3,new QTableWidgetItem(getDecimalbit(box->net_weight / 1000.00)));
-    ui->tableWidget->setItem(row,4,new QTableWidgetItem(box->caseNumber()));
+    ui->tableWidget->setItem(row,0,new QTableWidgetItem(box->caseNumber()));
+    ui->tableWidget->setItem(row,1,new QTableWidgetItem(QString::number(box->tube_number)));
+    ui->tableWidget->setItem(row,2,new QTableWidgetItem(getDecimalbit(box->gross_weight / 1000.00)));
+    ui->tableWidget->setItem(row,3,new QTableWidgetItem(ui->tongzhong->currentText()));
+    ui->tableWidget->setItem(row,4,new QTableWidgetItem(box->bucket_color));
+    ui->tableWidget->setItem(row,5,new QTableWidgetItem(getDecimalbit(box->net_weight / 1000.00)));
+    ui->tableWidget->item(row,0)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
+    ui->tableWidget->item(row,1)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
+    ui->tableWidget->item(row,2)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
+    ui->tableWidget->item(row,3)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
+    ui->tableWidget->item(row,4)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
+    ui->tableWidget->item(row,5)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
 
     QWidget *tmp_widget = new QWidget();
     QHBoxLayout *tmp_layout = new QHBoxLayout(tmp_widget);
     auto btn_1 = new QPushButton("删除",tmp_widget);
+    btn_1->setMaximumWidth(50);
     auto btn_2 = new QPushButton("修改",tmp_widget);
+    btn_2->setMaximumWidth(50);
     auto btn_3 = new QPushButton("补打",tmp_widget);
+    btn_3->setMaximumWidth(50);
     tmp_layout->addWidget(btn_1);
     tmp_layout->addWidget(btn_2);
     tmp_layout->addWidget(btn_3);
+    tmp_layout->setSpacing(0);
     tmp_layout->setMargin(0);
     int i = row;
     connect(btn_1,&QPushButton::clicked,[i,this](){this->del_clicked(i);});
     connect(btn_2,&QPushButton::clicked,[i,this](){this->edit_clicked(i);});
     connect(btn_3,&QPushButton::clicked,[i,this](){this->Makeup_clicked(i);});
-    ui->tableWidget->setCellWidget(row,5,tmp_widget);
+    ui->tableWidget->setCellWidget(row,6,tmp_widget);
 }
 
 void FixedWeightPackForm::init()
@@ -180,12 +217,18 @@ void FixedWeightPackForm::init()
     if(packServer == nullptr){
         Manger = GlobalInfo::this_()->packInfoManger();
         packServer = new PackInfoSeed2Server(Manger,this,true);
-
     }
     ui->pizhong->setCurrentText(QString(_info->box_weight));
     ui->guanse->setCurrentText(_info->bucket_color);
     ui->zhixiang->setCurrentText(_info->carton_type);
     ui->tongzhong->setCurrentText(_info->bucket_weight);
+    ui->nianxiang->setCurrentText(_info->twist_type);
+    if(!_info->customer.isEmpty()){
+        ui->taitou->setText(_info->customer);
+    }
+    if(!_info->tel.isEmpty()){
+        ui->taiPhone->setText(_info->tel);
+    }
     restTableWidget();
 }
 
@@ -230,6 +273,7 @@ void FixedWeightPackForm::upconfig()
         ui->tongzhong->addItem(QString::number(config.tongZhong.at(i)));
     }
 }
+
 void FixedWeightPackForm::upDengjiInfo()
 {
     QList<DengJiConfigItem> dengJis = glo->dengJiList();
@@ -241,6 +285,16 @@ void FixedWeightPackForm::upDengjiInfo()
     }
 }
 
+void FixedWeightPackForm::upWare()
+{
+    QList<WarehouseConfig> ware = glo->wareList();
+    for(int i = 0;i<ware.size();i++){
+//        qDebug()<<ware.at(i).name;
+//        qDebug()<<ware.at(i).factory_name;
+//        qDebug()<<ware.at(i).warehouse_id;
+        ui->wareBox->addItem(ware.at(i).name,ware.at(i).warehouse_id);
+    }
+}
 
 void FixedWeightPackForm::on_pushPiLiang_clicked()
 {
@@ -274,6 +328,18 @@ void FixedWeightPackForm::updateTableWidget(QList<QSharedPointer<ProjectInfo>> &
 {
     ui->tableWidget_2->clearContents();
     ui->tableWidget_2->setRowCount(0);
+
+
+    ui->tableWidget_2->setColumnWidth(0,40);
+    ui->tableWidget_2->setColumnWidth(1,80);
+    ui->tableWidget_2->setColumnWidth(2,80);
+//    ui->tableWidget_2->setColumnWidth(3,70);
+    ui->tableWidget_2->setColumnWidth(4,40);
+    ui->tableWidget_2->horizontalHeader()->setStretchLastSection(true);
+//    ui->tableWidget_2->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
+
+
+
     int currt = -1;
     for(int i = 0; i < list.size(); ++i){
         auto & v = list.at(i);
@@ -303,10 +369,16 @@ void FixedWeightPackForm::setProInfo(const QSharedPointer<ProjectInfo> & info)
         packinfo->packing_type = _info->category;
     }
     init();
+    EditBatch();
 }
 
 void FixedWeightPackForm::xuanZe_clicked(QString batchno)
 {
+    save();
+    packinfo.clear();
+    ui->tableWidget->clearContents();
+    ui->tableWidget->setRowCount(0);
+//    ui->tableWidget->clear();
     setProInfo(GlobalInfo::this_()->project().value(batchno));
 }
 
@@ -322,12 +394,27 @@ void FixedWeightPackForm::restTableWidget()
 {
     ui->tableWidget->clearContents();
     ui->tableWidget->setRowCount(0);
-    ui->tableWidget->setColumnWidth(0,20);
-    ui->tableWidget->setColumnWidth(1,20);
-    ui->tableWidget->setColumnWidth(2,80);
-    ui->tableWidget->setColumnWidth(3,80);
-    ui->tableWidget->setColumnWidth(4,200);
-    ui->tableWidget->setColumnWidth(5,200);
+    ui->tableWidget->setColumnWidth(0,200);
+    ui->tableWidget->setColumnWidth(1,75);
+    ui->tableWidget->setColumnWidth(2,75);
+    ui->tableWidget->setColumnWidth(3,75);
+    ui->tableWidget->setColumnWidth(4,75);
+    ui->tableWidget->setColumnWidth(5,75);
+
+//    ui->tableWidget->setColumnWidth(0,130);
+//    ui->tableWidget->setColumnWidth(1,45);
+//    ui->tableWidget->setColumnWidth(2,45);
+//    ui->tableWidget->setColumnWidth(3,45);
+//    ui->tableWidget->setColumnWidth(4,45);
+//    ui->tableWidget->setColumnWidth(5,45);
+//    ui->tableWidget->resizeColumnToContents(45);
+//    ui->tableWidget->resizeColumnsToContents();
+    ui->tableWidget->horizontalHeader()->setStretchLastSection(true);
+//    ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
+//    ui->tableWidget->resizeColumnToContents(10);
+//    ui->tableWidget->resizeColumnsToContents();
+//    ui->tableWidget->horizontalHeader()->setStretchLastSection(true);
+//    ui->tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
     if(!packinfo.isNull()){
         for(int i =  0; i < packinfo->boxInfoSize(); ++i){
             addTableWidget(packinfo->boxInfoAt(i),i);
@@ -356,14 +443,20 @@ void FixedWeightPackForm::edit_clicked(int row)
 void FixedWeightPackForm::on_pushContinue_clicked()
 {
     auto dt = QDate::currentDate();
-    auto list = Manger->getPackInfo(dt);
+    auto list = Manger->getPackInfoSync(dt);
     if(list.isEmpty()){
         dt = dt.addDays(-1);
-        list = Manger->getPackInfo(dt);
+        list = Manger->getPackInfoSync(dt);
     }
     if(list.isEmpty()){
         QMessageBox::warning(this,tr("无可接续码单"),tr("无可接续码单"));
     }
+    qDebug()<<list.size();
+    for(int i = 0;i<list.size();i++){
+        if(list.at(i).packInfo->batch_no!=_info->batch_no){
+            list.removeAt(i);
+        }
+    }
     std::sort(list.begin(),list.end(),[](const PackSaveInfo & item1, const PackSaveInfo & item2){
         return item1.packInfo->time() < item2.packInfo->time();
     });
@@ -393,6 +486,11 @@ void FixedWeightPackForm::on_showMaoZhong_stateChanged(int )
 }
 
 void FixedWeightPackForm::on_pushEditBatch_clicked()
+{
+    emit backup(1);
+}
+
+void FixedWeightPackForm::EditBatch()
 {
     if(packinfo.isNull()) return;
     for(int i =  0; i < packinfo->boxInfoSize(); ++i){
@@ -400,7 +498,7 @@ void FixedWeightPackForm::on_pushEditBatch_clicked()
         calcData();
         box->box_weight = int(ui->pizhong->currentText().toDouble()*1000);
         box->tube_number = ui->tongshu->text().toInt();
-        box->bucket_weight = int(ui->pizhong->currentText().toInt()*ui->tongshu->text().toDouble()*1000);
+        box->bucket_weight = int((ui->pizhong->currentText().toDouble()*ui->tongshu->text().toDouble())*1000);
         box->gross_weight = int(gross_weight*1000);
         box->net_weight = int(netNum*1000);
         box->Level = ui->dengji->currentText();
@@ -416,6 +514,36 @@ void FixedWeightPackForm::on_pushEditBatch_clicked()
 
 void FixedWeightPackForm::on_pushNoSyncList_clicked()
 {
-    qDebug()<<"this";
     emit NoSyncList();
 }
+
+void FixedWeightPackForm::on_pushSync_clicked()
+{
+    if(GlobalInfo::this_()->isNoLine()){
+        QMessageBox::information(this,tr("注意"),tr("离线模式不予同步"));
+        return;
+    }
+    QDate tm = QDate::currentDate();
+    GlobalInfo::this_()->doSync(tm);
+    QMessageBox::information(this,tr("注意"),tr("同步成功"));
+}
+
+void FixedWeightPackForm::on_buding_clicked()
+{
+    emit buding();
+    ui->dingzhong->setChecked(true);
+}
+
+void FixedWeightPackForm::on_backButton_clicked()
+{
+    emit back();
+}
+
+void FixedWeightPackForm::on_ruku_stateChanged(int arg1)
+{
+    if(arg1 == 2){
+        isRuku = true;
+        return;
+    }
+    isRuku = false;
+}

+ 15 - 3
widget/fixedweightpackform.h

@@ -21,10 +21,9 @@ public:
     ~FixedWeightPackForm();
 
     void setProInfo(const QSharedPointer<ProjectInfo> & info);
+    inline void setAutoSync(const bool sync){AutoSync = sync;}
 
 private slots:
-    void on_pushBack_clicked();
-
     void on_addBoxList_clicked();
 
     void on_addPackList_clicked();
@@ -43,10 +42,19 @@ private slots:
 
     void on_pushNoSyncList_clicked();
 
+    void on_pushSync_clicked();
+
+    void on_buding_clicked();
+
+    void on_backButton_clicked();
+
+    void on_ruku_stateChanged(int arg1);
+
 public slots:
     void upconfig(/*const DaBaoConfig & config*/);
     void upDengjiInfo(/*const QList<DengJiConfigItem> & dengJis*/);
     void changeSpecs();
+    void upWare();
 
     void save(); // 程序关闭的时候调用,保存当前未完成的码单
 private:
@@ -61,17 +69,19 @@ private:
     void restTableWidget();
     void updateTableWidget(QList<QSharedPointer<ProjectInfo>> & list);
     void upSum();
+    void EditBatch();
 
 signals:
     void back();
+    void backup(int i);
     void NoSyncList();
+    void buding();
 
 private:
     Ui::FixedWeightPackForm *ui;
     QSharedPointer<ProjectInfo> _info;
     QSharedPointer<PackInfo> packinfo;
     QMap<QString,DengJiConfigItem> dengjiMap;// <name,详细信息>
-    RemotePackConfig packConfig;
     HttpRequest _request;
     QList<QSharedPointer<ProjectInfo>> prolist;
 
@@ -82,6 +92,8 @@ private:
     double netNum = 0.00;
     double gross_weight = 0.0;
     int row;
+    bool AutoSync = true;
+    bool isRuku = false;
 };
 
 #endif // FIXEDWEIGHTPACKFORM_H

Dosya farkı çok büyük olduğundan ihmal edildi
+ 565 - 481
widget/fixedweightpackform.ui


+ 9 - 3
widget/loginform.cpp

@@ -1,7 +1,6 @@
 #include "loginform.h"
 #include "ui_loginform.h"
 #include <QMessageBox>
-#include "globalinfo.h"
 #include <pqQtlib/utils/pqfileutils.h>
 #include <QJsonDocument>
 
@@ -13,6 +12,7 @@ LoginForm::LoginForm(QWidget *parent) :
 {
     ui->setupUi(this);
     connect(this,&LoginForm::loginFinish,this,&LoginForm::clear);
+    connect(glo,&GlobalInfo::doInited,this,&LoginForm::login);
     ui->status->setVisible(false);
     this->setEnabled(true);
     ui->linePass->setEchoMode(QLineEdit::Password);
@@ -71,6 +71,7 @@ HttpRequest  * LoginForm::request()
 
 void LoginForm::result(int code, const QJsonObject & body)
 {
+    qDebug()<<body;
     ui->status->setVisible(false);
     this->setEnabled(true);
     QString message = body["message"].toString();
@@ -102,7 +103,7 @@ void LoginForm::result(int code, const QJsonObject & body)
     user.acessToken = data["access_token"].toString();
 //    GlobalInfo::this_()->setUser(user);
     GlobalInfo::this_()->start(user,false);
-    emit loginFinish();
+//    emit loginFinish();
 }
 
 void LoginForm::on_pushButton_2_clicked()
@@ -131,5 +132,10 @@ void LoginForm::on_pushButton_clicked()
 //    GlobalInfo::this_()->isNoLine = true;
 //    GlobalInfo::this_()->setUser(user);
     GlobalInfo::this_()->start(user,true);
-     emit loginFinish();
+    emit loginFinish();
+}
+
+void LoginForm::login()
+{
+    emit loginFinish();
 }

+ 5 - 0
widget/loginform.h

@@ -3,6 +3,7 @@
 
 #include <QWidget>
 #include <handle/httprequest.h>
+#include "globalinfo.h"
 
 namespace Ui {
 class LoginForm;
@@ -29,11 +30,15 @@ private slots:
 
     void on_pushButton_clicked();
 
+    void login();
+
 private:
     HttpRequest  * request();
 private:
     Ui::LoginForm *ui;
     HttpRequest  * _request;
+
+    GlobalInfo * glo = GlobalInfo::this_();
 };
 
 #endif // LOGINFORM_H

+ 0 - 13
widget/loginform.ui

@@ -97,19 +97,6 @@
        <string>登陆</string>
       </property>
      </widget>
-     <widget class="QPushButton" name="pushButton_2">
-      <property name="geometry">
-       <rect>
-        <x>310</x>
-        <y>190</y>
-        <width>51</width>
-        <height>31</height>
-       </rect>
-      </property>
-      <property name="text">
-       <string>设置</string>
-      </property>
-     </widget>
      <widget class="QPushButton" name="pushButton">
       <property name="geometry">
        <rect>

+ 197 - 89
widget/packdetailform.cpp

@@ -8,9 +8,21 @@ PackDetailForm::PackDetailForm(QWidget *parent) :
     ui(new Ui::PackDetailForm)
 {
     ui->setupUi(this);
-    productList();
-    detailsList();
-    ui->treeWidget->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
+//    ui->treeWidget->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
+    nowPageNum = 0;
+    limits = 5;
+    connect(glo,&GlobalInfo::dengJiUped,this,&PackDetailForm::upconfig);
+    ui->denierLine->hide();
+    ui->dtexLine->hide();
+    ui->fiberLine->hide();
+    ui->startTimeEdit->setCalendarPopup(true);
+    ui->startTimeEdit->setDisplayFormat("yyyy-MM-dd");
+    ui->startTimeEdit->setDate(QDate::currentDate());
+    ui->endTimeEdit->setCalendarPopup(true);
+    ui->endTimeEdit->setDisplayFormat("yyyy-MM-dd");
+    ui->endTimeEdit->setDate(QDate::currentDate());
+    ui->startTimeEdit->setMaximumDate(QDate::currentDate());
+    ui->startTimeEdit->setMinimumDate(QDate::currentDate().addYears(-1));
 }
 
 PackDetailForm::~PackDetailForm()
@@ -25,55 +37,120 @@ void PackDetailForm::on_pushBack_clicked()
 
 void PackDetailForm::on_pushButton_clicked()
 {
+
     nowPageNum = 0;
-//    changeTable(database.GetValues("product",productSqlList));
-    QString condition = "";
-    if(!ui->codeSingleLine->text().isEmpty()){
-    condition.append("code_single="+ui->codeSingleLine->text()+" ");
+
+
+    int start = ui->startTimeEdit->date().toString("yyyyMMdd").toInt();
+    int end = ui->endTimeEdit->date().toString("yyyyMMdd").toInt();
+    if(start>end){
+        QMessageBox::information(this,tr("注意"),tr("请输入正确的起始时间和结束时间"));
+        return;
+    }
+    QDate tm = ui->startTimeEdit->date();
+    for(int i = 0;i<10;i++){
+        if(tm.addDays(i).toString("yyyyMMdd").toInt() >= end){
+            days = i;
+            break;
+        }
     }
-    if(!ui->batch_noLine->text().isEmpty()){
-        if(!condition.isEmpty()){
-            condition.append("and ");
+
+    QList<PackSaveInfo> save;
+    QList<PackSaveInfo> saveList;
+
+        for(int i = 0;i<=days;i++){
+            QDate tm = ui->endTimeEdit->date().addDays(-i);
+            qDebug()<<tm;
+            QList<PackSaveInfo> saveinfo;
+            //issync未同步按钮是否点击
+            if(!ui->issync->isChecked()){
+                saveinfo = GlobalInfo::this_()->packInfoManger()->getPackInfo(tm);
+            }else{
+                saveinfo = GlobalInfo::this_()->packInfoManger()->getPackInfoSync(tm);
+            }
+            for(int i = saveinfo.size()-1;i>=0;i--){
+                save.append(saveinfo.at(i));
+            }
+    //        saveList.append(save);
+        }
+
+//    qDebug()<<save.size();
+    setSaveInfo(save);
+    if(!ui->codeSingleLine->text().isEmpty()||!ui->batch_noLine->text().isEmpty()){
+        select();
+    }
+    dengjiselect();
+    changeTreeWidget(0,limits);
+}
+
+//筛选
+void PackDetailForm::select()
+{
+    QList<PackSaveInfo> saveList;
+    int num =saveInfo.size();
+    for(int i = 0;i<num;i++){
+        if(!ui->codeSingleLine->text().isEmpty()){
+            if(saveInfo.at(i).packInfo->codeSingle()==ui->codeSingleLine->text()){
+                saveList.append(saveInfo.at(i));
+                break;
+            }
+        }
+
+        if(!ui->batch_noLine->text().isEmpty()){
+            if(saveInfo.at(i).packInfo->batch_no==ui->batch_noLine->text()){
+                saveList.append(saveInfo.at(i));
+                continue;
+            }
         }
-        condition.append("batch_no="+ui->batch_noLine->text()+" ");
     }
-    if(!condition.isEmpty()){
-        condition = "where "+ condition;
+    setSaveInfo(saveList);
+}
+
+void PackDetailForm::dengjiselect()
+{
+    if(ui->levelBox->currentText()!="等级"){
+        QList<PackSaveInfo> save;
+        for(int i = 0;i<saveInfo.size();i++){
+            if(saveInfo.at(i).packInfo->level == ui->levelBox->currentText()){
+                save.append(saveInfo.at(i));
+            }
+        }
+        setSaveInfo(save);
+        return;
     }
-        condition.append("limit 0,20");
-//        qDebug()<<condition;
-//    changeTreeWidget(database.GetValues("product",productSqlList,/*"limit 0,20"*/condition));
-////    ui->pagesNum->setText(QString::number(pageNum)+"/"+QString::number(product.size()/20));
-//    int pageListNum = database.GetTablePage();
-//    pageNumAll = pageListNum / 20;
-//    if(pageListNum % 20 > 0)
-//        pageNumAll ++;
-    ui->pagesNum->setText(QString("%1/%2").arg(nowPageNum+1).arg(pageNumAll));
 }
 
 //往treewidget添加数据
-void PackDetailForm::changeTreeWidget(QList<QMap<QString,QString>> productList)
+void PackDetailForm::changeTreeWidget(/*QList<QMap<QString,QString>> productList*/int page,int limit)
 {
-        if(productList.isEmpty()){
+        if(saveInfo.isEmpty()){
             QMessageBox::information(this,tr("提示"),tr("数据为空"));
+            ui->treeWidget->clear();
             return;
         }
 
         ui->treeWidget->clear();
-        product = productList;
+//        product = productList;
+
 
 /******************************************************************/
         //循环添加数据
-        for(int i = 0;i<productList.size();i++){
-            QStringList list;
-            list.append(productList.at(i).value("tongbu") == "0" ? "未同步" : "已同步");
-            if(productList.at(i).value("tongbu") == "0"){
+        for(int i = 0;i<limit;i++){
+
+            if(page*limit+i>=saveInfo.size()){
+                break;
             }
-            list.append(productList.at(i).value("code_single"));
-            list.append(productList.at(i).value("batch_no"));
-            list.append(getDecimalbit(productList.at(i).value("gross_weight").toDouble()/1000.00));
-            list.append(getDecimalbit(productList.at(i).value("net_weight").toDouble()/1000.00));
-            list.append(productList.at(i).value("quantity"));
+            auto & v = saveInfo.at(page*limit+i);
+
+            QStringList list;
+            list.append(v.isSync() ? "已同步" : "未同步");
+//            if(productList.at(i).value("tongbu") == "0"){
+//            }
+            list.append(v.packInfo->codeSingle());
+//            list.append(saveInfo.at(i).packInfo.batch_no);
+            list.append(getDecimalbit(v.packInfo->gross_weight()/1000.00));
+            list.append(getDecimalbit(v.packInfo->net_weight()/1000.00));
+            list.append(QString::number(v.packInfo->quantity));
 
 
             auto item = new QTreeWidgetItem(list);
@@ -82,13 +159,13 @@ void PackDetailForm::changeTreeWidget(QList<QMap<QString,QString>> productList)
     //        connect(tongbu_btn, SIGNAL(clicked(bool)), this, SLOT(tongbu_clicked()));
             auto code_single_btn = new QPushButton("打印码单");
             connect(code_single_btn,&QPushButton::clicked,[i,this](){this->code_single_clicked(i);});
-            auto case_nember_btn = new QPushButton("打印箱单");
-            connect(case_nember_btn,SIGNAL(clicked(bool)),this,SLOT(case_number_clicked()));
+//            auto case_nember_btn = new QPushButton("打印箱单");
+//            connect(case_nember_btn,SIGNAL(clicked(bool)),this,SLOT(case_number_clicked()));
 
             ui->treeWidget->addTopLevelItem(item);
-            ui->treeWidget->setItemWidget(item,7,tongbu_btn);
-            ui->treeWidget->setItemWidget(item,8,code_single_btn);
-            ui->treeWidget->setItemWidget(item,9,case_nember_btn);
+            ui->treeWidget->setItemWidget(item,6,tongbu_btn);
+            ui->treeWidget->setItemWidget(item,7,code_single_btn);
+//            ui->treeWidget->setItemWidget(item,9,case_nember_btn);
 
 //            details = database.GetValues("details",detailSqlList," where code_single = "+product.at(i).value("code_single"));
 
@@ -102,43 +179,46 @@ void PackDetailForm::changeTreeWidget(QList<QMap<QString,QString>> productList)
             ui->treeWidget->setCurrentItem(child);
 
             //treewidget子项目数据循环添加
-            for(int i=0; i<details.length(); ++i)
+            QList<QSharedPointer<BoxInfo>> boxes = v.packInfo->boxes();
+            for(int j=0; j<boxes.size(); ++j)
                 {
                     QStringList columItemList;
                     QTreeWidgetItem *child;
-                    columItemList<<details.at(i).value("case_number")<<QString::number(details.at(i).value("gross_weight").toDouble()/1000)<<QString::number(details.at(i).value("net_weight").toDouble()/1000);
+                    columItemList<<boxes.at(j)->caseNumber()<<QString::number(boxes.at(j)->gross_weight/1000)<<QString::number(boxes.at(j)->net_weight/1000);
                     child = new QTreeWidgetItem(columItemList);
                     item->addChild(child);
                     ui->treeWidget->setCurrentItem(child);
                 }
         }
 /**************************************************************/
-
-        ui->pageDataNum->setText("本页数据:"+QString::number(product.length()));
+        pageNumAll = saveInfo.size() / limit;
+        if(saveInfo.size()%limit>0){
+            pageNumAll+=1;
+        }
+//        ui->pageDataNum->setText("本页数据:"+QString::number(product.length()));
         ui->pagesNum->setText(QString("%1/%2").arg(nowPageNum+1).arg(pageNumAll));
+
 }
 
 //同步按钮
 void PackDetailForm::tongbu_clicked(QTreeWidgetItem * item,int row)
 {
-//    qDebug()<<item->text(0);
     if(item->text(0) != "未同步"){
         QMessageBox::information(this,tr("提示"),tr("请刷新"));
         return;
     }
-    QString condition = " where code_single="+product.at(row).value("code_single");
-//    details = database.GetValues("details",detailSqlList,condition);
-//    autoPack.doSend(autoPack.toJsonMap(product.at(row),details));
-    item->setText(0,"请刷新");
+    Manger = GlobalInfo::this_()->packInfoManger();
+    packServer = new PackInfoSeed2Server(Manger,this,true);
+    QSharedPointer<PackInfo> pack = saveInfo.at(limits*nowPageNum+row).packInfo;
+    connect(packServer,&PackInfoSeed2Server::syncEnd,this,&PackDetailForm::SynReturn);
+    packServer->send(pack,false);
+    item->setText(0,"同步中");
 }
 
 void PackDetailForm::code_single_clicked(int row)
 {
-    qDebug()<<"打印码单";
-//    QStringList list;
-//    list.append("net_weight");
-    QString condition = " where code_single="+product.at(row).value("code_single");
-//    djmb.mapPrintPackInfo(product.at(row),database.GetValuesList("details","net_weight",condition));
+    QSharedPointer<PackInfo> pack = saveInfo.at(row).packInfo;
+    GlobalInfo::this_()->printerPack(pack);
 }
 
 void PackDetailForm::case_number_clicked()
@@ -153,7 +233,7 @@ void PackDetailForm::on_prevoiusPage_clicked()
         return;
     }
     nowPageNum--;
-//    changeTreeWidget(database.GetValues("product",productSqlList,"limit "+QString::number(nowPageNum*20)+",20"));
+    changeTreeWidget(nowPageNum,limits);
 }
 
 //下一页
@@ -163,7 +243,7 @@ void PackDetailForm::on_nextPage_clicked()
         return;
     }
     nowPageNum++;
-//    changeTreeWidget(database.GetValues("product",productSqlList,"limit "+QString::number(nowPageNum*20)+",20"));
+    changeTreeWidget(nowPageNum,limits);
 }
 
 //跳转
@@ -178,46 +258,72 @@ void PackDetailForm::on_jump_clicked()
         return;
     }
     nowPageNum = ui->jumpPage->text().toInt()-1;
-//    changeTreeWidget(database.GetValues("product",productSqlList,"limit "+QString::number(nowPageNum*20)+",20"));
+    changeTreeWidget(nowPageNum,limits);
 }
 
-//用作product数据库要查询的字段
-void PackDetailForm::productList()
+void PackDetailForm::SynReturn()
 {
-    productSqlList.append("tongbu");
-    productSqlList.append("goods_id");
-    productSqlList.append("code_single");
-    productSqlList.append("quantity");
-    productSqlList.append("batch_no");
-    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("category");
-    productSqlList.append("specs");
-    productSqlList.append("denier");
-    productSqlList.append("dtex");
-    productSqlList.append("fiber");
-    productSqlList.append("remark");
+    int pageNum = nowPageNum;
+//    QDate tm = QDate::currentDate().addDays(-ui->startTime->currentData().toInt());
+//    QList<PackSaveInfo> saveinfo = GlobalInfo::this_()->packInfoManger()->getPackInfo(tm);
+//    setSaveInfo(saveinfo);
+//    changeTreeWidget(pageNum,limits);
+
+    QList<PackSaveInfo> save;
+    QList<PackSaveInfo> saveList;
+
+    for(int i = 0;i<=days;i++){
+        QDate tm = QDate::currentDate().addDays(-i);
+        QList<PackSaveInfo> saveinfo;
+        if(!ui->issync->isChecked()){
+            saveinfo = GlobalInfo::this_()->packInfoManger()->getPackInfo(tm);
+        }else{
+            saveinfo = GlobalInfo::this_()->packInfoManger()->getPackInfoSync(tm);
+        }
+        for(int i = saveinfo.size()-1;i>=0;i--){
+            save.append(saveinfo.at(i));
+        }
+//        saveList.append(save);
+    }
+//    qDebug()<<save.size();
+    setSaveInfo(save);
+    if(!ui->codeSingleLine->text().isEmpty()||!ui->batch_noLine->text().isEmpty()||ui->levelBox->currentText()!="等级"){
+        select();
+    }
+    changeTreeWidget(pageNum,limits);
 }
 
-//用作details数据库要查询的字段
-void PackDetailForm::detailsList()
+void PackDetailForm::upconfig()
 {
-    detailSqlList.append("code_single");
-    detailSqlList.append("case_number");
-    detailSqlList.append("box_weight");
-    detailSqlList.append("tube_number");
-    detailSqlList.append("bucket_weight");
-    detailSqlList.append("gross_weight");
-    detailSqlList.append("net_weight");
-    detailSqlList.append("sort");
-    detailSqlList.append("remark");
+
+    DaBaoConfig config = glo->dbConfig();
+
+    QList<DengJiConfigItem> dengJis = glo->dengJiList();
+
+    for(int i = 0;i<dengJis.size();i++){
+        if(!dengJis.at(i).isEnable){
+            ui->levelBox->addItem(dengJis.at(i).value,dengJis.at(i).id);
+        }
+    }
+}
+
+void PackDetailForm::on_showMao_clicked()
+{
+    int start = ui->startTimeEdit->date().toString("yyyyMMdd").toInt();
+    int end = ui->endTimeEdit->date().toString("yyyyMMdd").toInt();
+    if(start>end){
+        QMessageBox::information(this,tr("注意"),tr("请输入正确的起始时间和结束时间"));
+        return;
+    }
+    QDate tm = ui->startTimeEdit->date();
+    int days = 0;
+    for(int i = 0;i<10;i++){
+        if(tm.addDays(i).toString("yyyyMMdd").toInt() >= end){
+            days = i;
+            break;
+        }
+    }
+
 }
 
 
@@ -295,3 +401,5 @@ void PackDetailForm::detailsList()
 //}
 
 
+
+

+ 24 - 8
widget/packdetailform.h

@@ -6,6 +6,8 @@
 #include "QMessageBox"
 #include "QTreeWidget"
 #include "globalinfo.h"
+#include "handle/packinfoseed2server.h"
+#include "dateselectdialog.h"
 
 namespace Ui {
 class PackDetailForm;
@@ -19,21 +21,18 @@ public:
     explicit PackDetailForm(QWidget *parent = nullptr);
     ~PackDetailForm();
 //    void upconfig(const DaBaoConfig &config);
-    inline void setSaveInfo(PackSaveInfo saveinfo){saveInfo = saveinfo;}
+    inline void setSaveInfo(QList<PackSaveInfo> saveinfo){saveInfo = saveinfo;}
 
 private slots:
     void on_pushButton_clicked();
 //    void changeTable(QList<QMap<QString,QString>> productList);
 
-    void changeTreeWidget(QList<QMap<QString,QString>> productList);
+
 //    void changeTreeWidget()
     void tongbu_clicked(QTreeWidgetItem * item,int row);
     void code_single_clicked(int row);
     void case_number_clicked();
 
-    void productList();
-    void detailsList();
-
     void on_pushBack_clicked();
 
     void on_prevoiusPage_clicked();
@@ -42,21 +41,38 @@ private slots:
 
     void on_jump_clicked();
 
+    void on_showMao_clicked();
+
+public slots:
+    void changeTreeWidget(/*QList<QMap<QString,QString>> productList*/int page,int limit);
+    void SynReturn();
+    void upconfig();
+    void select();
+    void dengjiselect();
+
 signals:
     void back();
 
 private:
     Ui::PackDetailForm *ui;
 
+    PackInfoSeed2Server *packServer;
+    PackInfoManger *Manger;
+    int limits;
+
     QList<QMap<QString,QString>> product;
     QList<QMap<QString,QString>> details;
-    QStringList productSqlList;
-    QStringList detailSqlList;
     QSharedPointer<PackInfo> packinfo;
     int nowPageNum;
     int pageNumAll;
 
-    PackSaveInfo saveInfo;
+
+    GlobalInfo * glo = GlobalInfo::this_();
+
+    QList<PackSaveInfo> saveInfo;
+public:
+
+    int days = 0;
 };
 
 #endif // PACKDETAILFORM_H

+ 76 - 62
widget/packdetailform.ui

@@ -116,9 +116,18 @@
           <layout class="QHBoxLayout" name="horizontalLayout_5">
            <item>
             <widget class="QLineEdit" name="codeSingleLine">
+             <property name="maximumSize">
+              <size>
+               <width>200</width>
+               <height>16777215</height>
+              </size>
+             </property>
              <property name="styleSheet">
               <string notr="true">background-color: rgb(255, 255, 255);</string>
              </property>
+             <property name="text">
+              <string/>
+             </property>
              <property name="placeholderText">
               <string>码单</string>
              </property>
@@ -126,31 +135,37 @@
            </item>
            <item>
             <widget class="QLineEdit" name="batch_noLine">
-             <property name="styleSheet">
-              <string notr="true">background-color: rgb(255, 255, 255);</string>
+             <property name="minimumSize">
+              <size>
+               <width>0</width>
+               <height>0</height>
+              </size>
              </property>
-             <property name="placeholderText">
-              <string>批号</string>
+             <property name="maximumSize">
+              <size>
+               <width>150</width>
+               <height>16777215</height>
+              </size>
              </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QComboBox" name="product_type_codeBox">
              <property name="styleSheet">
               <string notr="true">background-color: rgb(255, 255, 255);</string>
              </property>
-             <property name="currentText">
-              <string>品种</string>
+             <property name="text">
+              <string/>
+             </property>
+             <property name="placeholderText">
+              <string>批号</string>
              </property>
-             <item>
-              <property name="text">
-               <string>品种</string>
-              </property>
-             </item>
             </widget>
            </item>
            <item>
             <widget class="QLineEdit" name="denierLine">
+             <property name="maximumSize">
+              <size>
+               <width>50</width>
+               <height>16777215</height>
+              </size>
+             </property>
              <property name="styleSheet">
               <string notr="true">background-color: rgb(255, 255, 255);</string>
              </property>
@@ -161,6 +176,12 @@
            </item>
            <item>
             <widget class="QLineEdit" name="dtexLine">
+             <property name="maximumSize">
+              <size>
+               <width>50</width>
+               <height>16777215</height>
+              </size>
+             </property>
              <property name="styleSheet">
               <string notr="true">background-color: rgb(255, 255, 255);</string>
              </property>
@@ -171,6 +192,12 @@
            </item>
            <item>
             <widget class="QLineEdit" name="fiberLine">
+             <property name="maximumSize">
+              <size>
+               <width>50</width>
+               <height>16777215</height>
+              </size>
+             </property>
              <property name="styleSheet">
               <string notr="true">background-color: rgb(255, 255, 255);</string>
              </property>
@@ -192,29 +219,32 @@
             </widget>
            </item>
            <item>
-            <widget class="QComboBox" name="UserIDBox">
+            <widget class="QDateTimeEdit" name="startTimeEdit">
              <property name="styleSheet">
-              <string notr="true">background-color: rgb(255, 255, 255);</string>
+              <string notr="true">background-color: rgb(85, 170, 255);</string>
              </property>
-             <item>
-              <property name="text">
-               <string>操作员</string>
-              </property>
-             </item>
             </widget>
            </item>
            <item>
-            <widget class="QComboBox" name="comboBox_4">
+            <widget class="QDateTimeEdit" name="endTimeEdit">
              <property name="styleSheet">
-              <string notr="true">background-color: rgb(255, 255, 255);</string>
+              <string notr="true">background-color: rgb(85, 170, 255);</string>
              </property>
-             <item>
-              <property name="text">
-               <string>时间段</string>
-              </property>
-             </item>
             </widget>
            </item>
+           <item>
+            <spacer name="horizontalSpacer_7">
+             <property name="orientation">
+              <enum>Qt::Horizontal</enum>
+             </property>
+             <property name="sizeHint" stdset="0">
+              <size>
+               <width>40</width>
+               <height>20</height>
+              </size>
+             </property>
+            </spacer>
+           </item>
            <item>
             <widget class="QPushButton" name="pushButton">
              <property name="enabled">
@@ -240,6 +270,22 @@
              </property>
             </widget>
            </item>
+           <item>
+            <widget class="QCheckBox" name="issync">
+             <property name="maximumSize">
+              <size>
+               <width>80</width>
+               <height>16777215</height>
+              </size>
+             </property>
+             <property name="text">
+              <string>未同步</string>
+             </property>
+             <property name="checked">
+              <bool>true</bool>
+             </property>
+            </widget>
+           </item>
           </layout>
          </item>
         </layout>
@@ -320,7 +366,7 @@
          </layout>
         </item>
         <item>
-         <widget class="QPushButton" name="pushButton_2">
+         <widget class="QPushButton" name="showMao">
           <property name="styleSheet">
            <string notr="true"/>
           </property>
@@ -359,11 +405,6 @@
           <string>码单</string>
          </property>
         </column>
-        <column>
-         <property name="text">
-          <string>码单详情</string>
-         </property>
-        </column>
         <column>
          <property name="text">
           <string>毛重</string>
@@ -379,11 +420,6 @@
           <string>箱数</string>
          </property>
         </column>
-        <column>
-         <property name="text">
-          <string>打包时间</string>
-         </property>
-        </column>
         <column>
          <property name="text">
           <string/>
@@ -499,28 +535,6 @@
             </property>
            </widget>
           </item>
-          <item>
-           <widget class="QLabel" name="pageDataNum">
-            <property name="minimumSize">
-             <size>
-              <width>100</width>
-              <height>31</height>
-             </size>
-            </property>
-            <property name="maximumSize">
-             <size>
-              <width>100</width>
-              <height>31</height>
-             </size>
-            </property>
-            <property name="text">
-             <string>0</string>
-            </property>
-            <property name="alignment">
-             <set>Qt::AlignCenter</set>
-            </property>
-           </widget>
-          </item>
          </layout>
         </item>
         <item>

+ 51 - 7
widget/selectvalueform.cpp

@@ -10,6 +10,14 @@ SelectValueForm::SelectValueForm(QWidget *parent) :
     connect(&_request,&HttpRequest::result,this,&SelectValueForm::result);
     nowPage = 0;
     connect(glo,&GlobalInfo::doInited,this,&SelectValueForm::Start);
+    ui->denier->hide();
+    ui->dtex->hide();
+    ui->fiber->hide();
+    ui->category->hide();
+    ui->machine_no->hide();
+//    ui->specs->hide();
+    ui->color->hide();
+    ui->pushButton_2->setEnabled(false);
 }
 
 SelectValueForm::~SelectValueForm()
@@ -19,6 +27,7 @@ SelectValueForm::~SelectValueForm()
 
 void SelectValueForm::Start()
 {
+    ui->pushButton_2->setEnabled(true);
     prolist = GlobalInfo::this_()->project().values();
 
 //    if(prolist.isEmpty()){
@@ -27,7 +36,14 @@ void SelectValueForm::Start()
     totleNum = prolist.size();
     refPage(nowPage);
     ui->labelTotle->setText(QString::number(totleNum));
+    ui->back_Button->hide();
+    ui->backMainButton->hide();
 
+    if(status == 0){
+        ui->backMainButton->show();
+        return;
+    }
+    ui->back_Button->show();
 }
 
 void SelectValueForm::result(int code, const QJsonObject & body)
@@ -131,19 +147,47 @@ void SelectValueForm::on_pushNext_clicked()
 void SelectValueForm::on_pushButton_2_clicked()
 {
     int now = ui->tableWidget->currentRow();
-        emit selectProject(ui->tableWidget->itemAt(now,0)->text());
+        emit selectProject(ui->tableWidget->item(now,0)->text());
 
 }
 
-void SelectValueForm::on_pushButton_3_clicked()
+void SelectValueForm::on_searchButton_clicked()
+{
+//    UserInfo user = GlobalInfo::this_()->user();
+//    bool isNoLine = GlobalInfo::this_()->isNoLine();
+//    GlobalInfo::this_()->start(user,isNoLine);
+//    qDebug()<<user.userName<<user.accountId<<user.acessToken;
+    auto batch = ui->batch_no->text();
+    auto specs = ui->specs->text();
+    if(batch.isEmpty()&&specs.isEmpty()){
+//        updateTableWidget(prolist);
+        prolist = GlobalInfo::this_()->project().values();
+        totleNum = prolist.size();
+        refPage(nowPage);
+        ui->labelTotle->setText(QString::number(totleNum));
+    } else {
+        auto list = GlobalInfo::this_()->searchProject(batch,specs);
+//        updateTableWidget(list);
+        prolist = list;
+        totleNum = prolist.size();
+        refPage(nowPage);
+        ui->labelTotle->setText(QString::number(totleNum));
+    }
+}
+
+void SelectValueForm::on_backMainButton_clicked()
 {
     emit back();
 }
 
-void SelectValueForm::on_searchButton_clicked()
+void SelectValueForm::on_back_Button_clicked()
+{
+    emit backFandU();
+}
+
+void SelectValueForm::on_closeButton_clicked()
 {
-    UserInfo user = GlobalInfo::this_()->user();
-    bool isNoLine = GlobalInfo::this_()->isNoLine();
-    GlobalInfo::this_()->start(user,isNoLine);
-    qDebug()<<user.userName<<user.accountId<<user.acessToken;
+    ui->batch_no->clear();
+    ui->specs->clear();
+    on_searchButton_clicked();
 }

+ 7 - 3
widget/selectvalueform.h

@@ -30,6 +30,7 @@ public slots:
 
 signals:
     void back();
+    void backFandU();
     void selectProject(QString batchno);
 
 
@@ -44,12 +45,15 @@ private slots:
 
     void on_pushNext_clicked();
 
-    void on_pushButton_2_clicked();
+    void on_searchButton_clicked();
 
-    void on_pushButton_3_clicked();
+    void on_backMainButton_clicked();
 
+    void on_pushButton_2_clicked();
 
-    void on_searchButton_clicked();
+    void on_back_Button_clicked();
+
+    void on_closeButton_clicked();
 
 private:
     Ui::SelectValueForm *ui;

+ 76 - 58
widget/selectvalueform.ui

@@ -17,42 +17,29 @@
    <item>
     <widget class="QWidget" name="widget_3" native="true">
      <layout class="QGridLayout" name="gridLayout">
-      <item row="0" column="6">
-       <widget class="QLineEdit" name="lineEdit_2">
-        <property name="minimumSize">
-         <size>
-          <width>81</width>
-          <height>0</height>
-         </size>
-        </property>
+      <item row="0" column="1">
+       <widget class="QComboBox" name="dtex"/>
+      </item>
+      <item row="0" column="2">
+       <widget class="QComboBox" name="fiber"/>
+      </item>
+      <item row="0" column="10">
+       <widget class="QPushButton" name="closeButton">
         <property name="maximumSize">
          <size>
-          <width>100</width>
+          <width>50</width>
           <height>16777215</height>
          </size>
         </property>
-       </widget>
-      </item>
-      <item row="0" column="10">
-       <spacer name="horizontalSpacer_5">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>346</width>
-          <height>20</height>
-         </size>
+        <property name="text">
+         <string>清除</string>
         </property>
-       </spacer>
-      </item>
-      <item row="0" column="1">
-       <widget class="QComboBox" name="comboBox_7"/>
+       </widget>
       </item>
-      <item row="0" column="2">
-       <widget class="QComboBox" name="comboBox_8"/>
+      <item row="0" column="3">
+       <widget class="QComboBox" name="category"/>
       </item>
-      <item row="0" column="12">
+      <item row="0" column="13">
        <spacer name="horizontalSpacer_6">
         <property name="orientation">
          <enum>Qt::Horizontal</enum>
@@ -65,24 +52,8 @@
         </property>
        </spacer>
       </item>
-      <item row="0" column="5">
-       <widget class="QLineEdit" name="lineEdit">
-        <property name="minimumSize">
-         <size>
-          <width>81</width>
-          <height>0</height>
-         </size>
-        </property>
-        <property name="maximumSize">
-         <size>
-          <width>100</width>
-          <height>16777215</height>
-         </size>
-        </property>
-       </widget>
-      </item>
       <item row="0" column="7">
-       <widget class="QLineEdit" name="lineEdit_3">
+       <widget class="QLineEdit" name="color">
         <property name="minimumSize">
          <size>
           <width>81</width>
@@ -97,7 +68,7 @@
         </property>
        </widget>
       </item>
-      <item row="0" column="8">
+      <item row="0" column="9">
        <widget class="QPushButton" name="searchButton">
         <property name="maximumSize">
          <size>
@@ -110,32 +81,72 @@
         </property>
        </widget>
       </item>
-      <item row="0" column="11">
+      <item row="0" column="4">
+       <widget class="QComboBox" name="machine_no"/>
+      </item>
+      <item row="0" column="12">
        <widget class="QLabel" name="label_10">
+        <property name="font">
+         <font>
+          <pointsize>15</pointsize>
+         </font>
+        </property>
         <property name="text">
          <string>查看规格</string>
         </property>
        </widget>
       </item>
       <item row="0" column="0">
-       <widget class="QComboBox" name="comboBox_6"/>
+       <widget class="QComboBox" name="denier"/>
       </item>
-      <item row="0" column="3">
-       <widget class="QComboBox" name="comboBox_9"/>
+      <item row="0" column="6">
+       <widget class="QLineEdit" name="batch_no">
+        <property name="minimumSize">
+         <size>
+          <width>81</width>
+          <height>0</height>
+         </size>
+        </property>
+        <property name="maximumSize">
+         <size>
+          <width>100</width>
+          <height>16777215</height>
+         </size>
+        </property>
+        <property name="placeholderText">
+         <string>请输入批号</string>
+        </property>
+       </widget>
       </item>
-      <item row="0" column="4">
-       <widget class="QComboBox" name="comboBox_10"/>
+      <item row="0" column="11">
+       <spacer name="horizontalSpacer_5">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>346</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
       </item>
-      <item row="0" column="9">
-       <widget class="QPushButton" name="pushButton_5">
+      <item row="0" column="8">
+       <widget class="QLineEdit" name="specs">
+        <property name="minimumSize">
+         <size>
+          <width>81</width>
+          <height>0</height>
+         </size>
+        </property>
         <property name="maximumSize">
          <size>
-          <width>50</width>
+          <width>100</width>
           <height>16777215</height>
          </size>
         </property>
-        <property name="text">
-         <string>清除</string>
+        <property name="placeholderText">
+         <string>请输入规格</string>
         </property>
        </widget>
       </item>
@@ -327,7 +338,14 @@
              </spacer>
             </item>
             <item>
-             <widget class="QPushButton" name="pushButton_3">
+             <widget class="QPushButton" name="back_Button">
+              <property name="text">
+               <string>返回</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QPushButton" name="backMainButton">
               <property name="text">
                <string>&lt;返回主页</string>
               </property>

+ 2 - 2
widget/settingsform.ui

@@ -238,9 +238,9 @@
       <widget class="QComboBox" name="printerName">
        <property name="geometry">
         <rect>
-         <x>80</x>
+         <x>150</x>
          <y>20</y>
-         <width>331</width>
+         <width>301</width>
          <height>32</height>
         </rect>
        </property>

+ 375 - 158
widget/uncertainweightpackform.cpp

@@ -7,27 +7,33 @@ using namespace PQ;
 
 UncertainWeightPackForm::UncertainWeightPackForm(QWidget *parent) :
     QWidget(parent),
-    ui(new Ui::UncertainWeightPackForm)
+    ui(new Ui::UncertainWeightPackForm),packServer(nullptr),Manger(nullptr)
 {
     ui->setupUi(this);
-//    autoRead = true;
-//    QTimer *timer = new QTimer(this);
-//    connect(timer,&QTimer::timeout,this,&UncertainWeightPackForm::calcData);
-//    timer->start(500);
-//    connect(&packConfig,&RemotePackConfig::configUpdate,this,&UncertainWeightPackForm::upconfig);
-//    connect(&packConfig,&RemotePackConfig::dengJIConfigUp,this,&UncertainWeightPackForm::upDengjiInfo);
-////    connect(&specs,&SelectSpecs::change,this,&UncertainWeightPackForm::changeSpecs);
+    autoRead = true;
+    QTimer *timer = new QTimer(this);
+    connect(timer,&QTimer::timeout,this,&UncertainWeightPackForm::calcData);
+    timer->start(500);
 //    ui->widget_6->setEnabled(false);
 //    //筒数限制,true限制
-//    istubeNumTure = false;
-//    auto dt = CacheFile::readFile("budingzhongInfo.cache");
-//    auto list = QString::fromUtf8(dt).split("[,]");
-//    if(list.size() == 2){
-//        ui->taitou->setText(list.at(0));
-//        ui->taiPhone->setText(list.at(1));
-//    }
+    istubeNumTure = false;
 //    ui->tableWidget_2->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
 //    ui->pushStart->hide();
+
+    connect(glo,&GlobalInfo::dbConfigUpdated,this,&UncertainWeightPackForm::upconfig);
+    connect(glo,&GlobalInfo::dengJiUped,this,&UncertainWeightPackForm::upDengjiInfo);
+    connect(glo,&GlobalInfo::doInited,this,&UncertainWeightPackForm::changeSpecs);
+    connect(glo,&GlobalInfo::wareUped,this,&UncertainWeightPackForm::upWare);
+
+    auto dt = CacheFile::readFile("budingInfo.cache");
+    auto list = QString::fromUtf8(dt).split("[,]");
+    if(list.size() == 2){
+        ui->taitou->setText(list.at(0));
+        ui->taiPhone->setText(list.at(1));
+    }
+    ui->autoSync->setChecked(true);
+    ui->buding->setChecked(true);
+//    ui->tableWidget_2->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
 }
 
 UncertainWeightPackForm::~UncertainWeightPackForm()
@@ -35,27 +41,26 @@ UncertainWeightPackForm::~UncertainWeightPackForm()
     delete ui;
 }
 
-void UncertainWeightPackForm::on_pushBack_clicked()
-{
-    if(!packinfo.isNull()){
-//        aputils.insertProductSQL(packinfo);
-//        aputils.doSend(aputils.toJson(packinfo));
-    }
-    emit back();
-    QStringList list;
-    list << ui->taitou->text() <<  ui->taiPhone->text();
-    CacheFile f;
-    f.writeFile("budingzhongInfo.cache",list.join("[,]").toUtf8());
-}
-
 //从秤中获取毛重、皮重、净重、筒数------每100毫秒一次
 void UncertainWeightPackForm::calcData()
 {
-    if(autoRead == true){
-//        ui->grossWeight->setText(QString::number(GlobalInfo::this_()->GetScaleData().gross_widget));
+    double pz = ui->pizhong->currentText().toDouble();
+    double tz = ui->tongzhong->currentText().toDouble();
+    double ts = ui->tongshu->text().toDouble();
+    gross_weight = ui->grossWeight->text().toDouble();
+    if(ui->autoRead->isChecked()){
+        ui->grossWeight->setText(QString::number(GlobalInfo::this_()->currentWidght));
     }
 //    qDebug()<<autoRead;
-    netNum = ui->grossWeight->text().toDouble()-ui->pizhong->currentText().toDouble()-ui->tongshu->text().toDouble()*ui->tongzhong->currentText().toDouble();
+//    netNum = ui->grossWeight->text().toDouble()-ui->pizhong->currentText().toDouble()-ui->tongshu->text().toDouble()*ui->tongzhong->currentText().toDouble();
+    if(ui->showMaoZhong->isChecked()){
+        gross_weight = ui->grossWeight->text().toDouble();
+        netNum = gross_weight - pz - tz * ts;
+
+    } else {
+        netNum = ui->grossWeight->text().toDouble();
+        gross_weight = netNum + pz + tz * ts;
+    }
     if(netNum<0){
         netNum = 0.00;
     }
@@ -68,11 +73,21 @@ void UncertainWeightPackForm::calcData()
 //    ui->tongshu->setText(QString::number(GlobalInfo::this_()->GetScaleData().tongshu));
 }
 
+void UncertainWeightPackForm::save()
+{
+    QStringList list;
+    list << ui->taitou->text() <<  ui->taiPhone->text();
+    PQ::CacheFile::writeFile("budingInfo.cache",list.join("[,]").toUtf8());
+
+    if(!packinfo.isNull()){
+        Manger->savePackInfo(packinfo);
+    }
+}
+
 void UncertainWeightPackForm::on_addPackList_clicked()
 {
     if(packinfo.isNull()) return;
-
-    if(packinfo->boxes().size()>0){
+    if(!packinfo.isNull()&&packinfo->boxes().size()>0){
         packinfo->quantity = packinfo->boxes().size();
         packinfo->level_id = ui->dengji->currentData().toInt();
         packinfo->machine_no = ui->jitai->currentText();
@@ -80,94 +95,90 @@ void UncertainWeightPackForm::on_addPackList_clicked()
         packinfo->customer = ui->taitou->text();
         packinfo->telephone = ui->taiPhone->text();
     }
+//    qDebug()<<packinfo->boxes().at(0)->tube_number;
+    if(ui->autoSync->isChecked() && !GlobalInfo::this_()->isNoLine())
+        packServer->send(packinfo,isRuku);
+    Manger->savePackInfo(packinfo);
+//    GlobalInfo::this_()->packInfoManger()->setPackInfoSync(packinfo->codeSingle(),packinfo->time(),true);
+    if(ui->madanPrint->isChecked())
+        GlobalInfo::this_()->printerPack(packinfo);
+    ui->tableWidget->clearContents();
+    ui->tableWidget->setRowCount(0);
 
+//    ui->widget_2->setEnabled(true);
 
-
-    //把数据添加到数据库里
-//    aputils.insertProductSQL(packinfo);
-
-
-    //发送码单 packinfo 数据, 转换为 json数据发送
-//    aputils.doSend(aputils.toJson(packinfo));
     packinfo.clear();
 }
 
-void UncertainWeightPackForm::on_pushStart_clicked()
-{
-//    _info.customer = ui->taitou->text();
-//    _info.telephone = ui->taiPhone->text();
-    if(ui->pushStart->isChecked()){
-        ui->pushStart->setChecked(true);
-        ui->addBoxList->setDisabled(false);
-        ui->addPackList->setDisabled(false);
-        ui->widget_3->setEnabled(false);
-        ui->widget_5->setEnabled(false);
-        ui->widget_7->setEnabled(false);
-        ui->tongzhong->setEnabled(true);
-    } else {
-        init();
-    }
-}
-
 void UncertainWeightPackForm::on_addBoxList_clicked()
 {
-    setTableWidget();
-        if(ui->tongshu->text()!="0"&&!ui->tongshu->text().toInt()){
-            QMessageBox::information(this,tr("注意"),tr("筒数异常"));
-            return;
-        }
-        //当当前箱数大于等于最大箱数是启动on_addPackList_clicked();
-        if(packinfo->boxes().size()>=ui->mashu->currentText().toInt()){
-            on_addPackList_clicked();
-        }
-
-    setTableWidget();
+    if(ui->grossWeight->text().toInt()<0){
+        QMessageBox::information(this,tr("注意"),tr("重量异常"));
+        return;
+    }
+    checkPackInfo(); //检查packinfo isNull
+    //当当前箱数大于等于最大箱数是启动on_addPackList_clicked();
+    if(packinfo->boxes().size() >= ui->mashu->currentText().toInt()){
+        on_addPackList_clicked();
+        checkPackInfo();
+    }
 
+    auto index = packinfo->boxInfoSize();
     auto box = packinfo->addBoxInfo();
-
+    calcData();
     box->box_weight = int(ui->pizhong->currentText().toDouble()*1000);
     box->tube_number = ui->tongshu->text().toInt();
-    box->bucket_weight = int(ui->pizhong->currentText().toInt()*ui->tongshu->text().toDouble()*1000);
-    box->gross_weight = int(ui->grossWeight->text().toDouble()*1000);
+    box->bucket_weight = int((ui->tongzhong->currentText().toDouble()*ui->tongshu->text().toDouble())*1000);
+    box->gross_weight = int(gross_weight*1000);
     box->net_weight = int(netNum*1000);
     box->Level = ui->dengji->currentText();
     box->twist_type = ui->nianxiang->currentText();
     box->bucket_color = ui->guanse->currentText();
     box->sort = "1";
 //    box->remark = ui->beizhu->toPlainText();
-
     packinfo->level = ui->dengji->currentText();
     packinfo->level_id = ui->dengji->currentData().toInt();
 
-    ui->tableWidget->setRowCount(ui->tableWidget->rowCount()+1);
-    addTableWidget(box);//添加tablewidget
+    addTableWidget(box,index);
+
 
 //    把box数据添加到packinfo的boxes数据表里;
     packinfo->addBoxInfoList(box);
-
-    //添加数据库
-//    aputils.insertDetailsSQL(box,packinfo->codeSingle());
-
-    ui->labelTongZHong->setText(QString::number(packinfo->tube_number()));
-    ui->labelWight->setText(getDecimalbit(packinfo->gross_weight() / 1000.00));
-    ui->labelJing->setText(getDecimalbit(packinfo->net_weight() / 1000.00));
+    if(ui->xiangdanPrint->isChecked())
+        GlobalInfo::this_()->printerBox(box);
+    upSum();
+        //添加数据库
+    //    aputils.insertDetailsSQL(box,packinfo->codeSingle());
 
 }
 
-//自动读数按钮
-void UncertainWeightPackForm::on_handleRead_2_clicked()
+void UncertainWeightPackForm::upSum()
 {
-    if(autoRead==true){
-        autoRead = false;
-        ui->handleRead_2->setText("自动读数");
-        ui->label->setText("已开启手动");
-        return;
+    if(packinfo.isNull()){
+        ui->labelTongZHong->setText("0");
+        ui->labelWight->setText("0");
+        ui->labelJing->setText("0");
+    } else {
+        ui->labelTongZHong->setText(QString::number(packinfo->tube_number()));
+        ui->labelWight->setText(getDecimalbit(packinfo->gross_weight() / 1000.00));
+        ui->labelJing->setText(getDecimalbit(packinfo->net_weight() / 1000.00));
     }
-    autoRead = true;
-    ui->handleRead_2->setText("手动读数");
-    ui->label->setText("已开启自动");
 }
 
+//自动读数按钮
+//void UncertainWeightPackForm::on_handleRead_2_clicked()
+//{
+//    if(autoRead==true){
+//        autoRead = false;
+//        ui->handleRead_2->setText("自动读数");
+//        ui->label->setText("已开启手动");
+//        return;
+//    }
+//    autoRead = true;
+//    ui->handleRead_2->setText("手动读数");
+//    ui->label->setText("已开启自动");
+//}
+
 //筒数是否固定
 void UncertainWeightPackForm::on_tongshuguding_currentIndexChanged(const QString &arg1)
 {
@@ -191,72 +202,90 @@ void UncertainWeightPackForm::on_tongshuxianzhi_stateChanged(int arg1)
 }
 
 //检查packinfo isNull
-void UncertainWeightPackForm::setTableWidget()
+void UncertainWeightPackForm::checkPackInfo()
 {
     if(packinfo.isNull()){
-//        packinfo.reset(new PackInfo(_info));
-//        packinfo->operator_id = GlobalInfo::this_()->user().userId;
+        packinfo.reset(new PackInfo(_info));
+        packinfo->operator_id = GlobalInfo::this_()->user().userId;
         packinfo->packing_time = QDate::currentDate().toString("yy-MM-dd");
-        packinfo->packing_type = _info.category;
-        ui->tableWidget->clearContents();
-        ui->tableWidget->setRowCount(0);
-        ui->tableWidget->setColumnWidth(0,20);
-        ui->tableWidget->setColumnWidth(1,20);
-        ui->tableWidget->setColumnWidth(2,80);
-        ui->tableWidget->setColumnWidth(3,80);
-        ui->tableWidget->setColumnWidth(4,80);
-        ui->tableWidget->setColumnWidth(5,40);
+        packinfo->packing_type = _info->category;
+        packinfo->packType = 0;
+
+        packinfo->batch_no = _info->batch_no;
+        packinfo->quantity = packinfo->boxes().size();
+        packinfo->level_id = ui->dengji->currentData().toInt();
+        packinfo->machine_no = ui->jitai->currentText();
+        packinfo->carton_type = ui->zhixiang->currentText();
+        packinfo->customer = ui->taitou->text();
+        packinfo->telephone = ui->taiPhone->text();
+
+        restTableWidget();
     }
 }
 
-void UncertainWeightPackForm::addTableWidget(QSharedPointer<BoxInfo> box)
+void UncertainWeightPackForm::addTableWidget(QSharedPointer<BoxInfo> box, int row)
 {
-    ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,0,new QTableWidgetItem(QString::number(ui->tableWidget->rowCount())));
-
-    ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,1,new QTableWidgetItem(QString::number(box->tube_number)));
-    ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,2,new QTableWidgetItem(getDecimalbit(box->gross_weight / 1000.00)));
-    ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,3,new QTableWidgetItem(getDecimalbit(box->box_weight / 1000.00)));
-    ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,4,new QTableWidgetItem(getDecimalbit(box->net_weight / 1000.00)));
-    ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,5,new QTableWidgetItem(box->caseNumber()));
-
-    auto btn_1 = new QPushButton("删除");
-    auto btn_2 = new QPushButton("修改");
-    auto btn_3 = new QPushButton("补打");
-
+    ui->tableWidget->insertRow(row);
+
+    ui->tableWidget->setItem(row,0,new QTableWidgetItem(box->caseNumber()));
+    ui->tableWidget->setItem(row,1,new QTableWidgetItem(QString::number(box->tube_number)));
+    ui->tableWidget->setItem(row,2,new QTableWidgetItem(getDecimalbit(box->gross_weight / 1000.00)));
+    ui->tableWidget->setItem(row,3,new QTableWidgetItem(ui->tongzhong->currentText()));
+    ui->tableWidget->setItem(row,4,new QTableWidgetItem(box->bucket_color));
+    ui->tableWidget->setItem(row,5,new QTableWidgetItem(getDecimalbit(box->net_weight / 1000.00)));
+    ui->tableWidget->item(row,0)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
+    ui->tableWidget->item(row,1)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
+    ui->tableWidget->item(row,2)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
+    ui->tableWidget->item(row,3)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
+    ui->tableWidget->item(row,4)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
+    ui->tableWidget->item(row,5)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
 
     QWidget *tmp_widget = new QWidget();
     QHBoxLayout *tmp_layout = new QHBoxLayout(tmp_widget);
+    auto btn_1 = new QPushButton("删除",tmp_widget);
+    auto btn_2 = new QPushButton("修改",tmp_widget);
+    auto btn_3 = new QPushButton("补打",tmp_widget);
     tmp_layout->addWidget(btn_1);
     tmp_layout->addWidget(btn_2);
     tmp_layout->addWidget(btn_3);
     tmp_layout->setMargin(0);
-    int i = ui->tableWidget->rowCount()-1;
+    int i = row;
     connect(btn_1,&QPushButton::clicked,[i,this](){this->del_clicked(i);});
+    connect(btn_2,&QPushButton::clicked,[i,this](){this->edit_clicked(i);});
     connect(btn_3,&QPushButton::clicked,[i,this](){this->Makeup_clicked(i);});
-    ui->tableWidget->setCellWidget(ui->tableWidget->rowCount()-1,6,tmp_widget);
+    ui->tableWidget->setCellWidget(row,6,tmp_widget);
 }
 
 void UncertainWeightPackForm::init()
 {
-    // TODO: 页面进入初始化
-    ui->pushStart->setChecked(false);
-    ui->addBoxList->setDisabled(true);
-    ui->addPackList->setDisabled(true);
-    ui->widget_3->setEnabled(true);
-    ui->widget_5->setEnabled(true);
-    ui->widget_7->setEnabled(true);
-    packConfig.refConfig();
-    ui->mashu->clear();
-    for(int i = 1;i<=20;i++){
-        ui->mashu->addItem(QString::number(i));
+    if(packServer == nullptr){
+        Manger = GlobalInfo::this_()->packInfoManger();
+        packServer = new PackInfoSeed2Server(Manger,this,true);
     }
-    ui->mashu->setCurrentText("20");
-//    specs.getInfo(0,20);
+    ui->pizhong->setCurrentText(QString(_info->box_weight));
+    ui->guanse->setCurrentText(_info->bucket_color);
+    ui->zhixiang->setCurrentText(_info->carton_type);
+    ui->tongzhong->setCurrentText(_info->bucket_weight);
+    ui->nianxiang->setCurrentText(_info->twist_type);
+
+    if(!_info->customer.isEmpty()){
+        ui->taitou->setText(_info->customer);
+    }
+    if(!_info->tel.isEmpty()){
+        ui->taiPhone->setText(_info->tel);
+    }
+    restTableWidget();
 }
 
-void UncertainWeightPackForm::upconfig(const DaBaoConfig &config)
+void UncertainWeightPackForm::upconfig()
 {
     // TODO:打包配置更新
+    DaBaoConfig config = glo->dbConfig();
+    // 码数
+    ui->mashu->clear();
+    for(int i = 0; i < config.mashu.size(); ++i){
+        ui->mashu->addItem(QString::number(config.mashu.at(i)));
+    }
     //机台
     ui->jitai->clear();
     ui->jitai->addItems(config.jitai);
@@ -292,15 +321,11 @@ void UncertainWeightPackForm::upconfig(const DaBaoConfig &config)
     tubeNumMin = config.buDingZhongTongShuFanWei.first;
     tubeNumMax = config.buDingZhongTongShuFanWei.second;
 
-    //设置选择打包界面的数据为首个;
-    ui->pizhong->setCurrentText(QString(_info.box_weight));
-    ui->guanse->setCurrentText(_info.bucket_color);
-    ui->zhixiang->setCurrentText(_info.carton_type);
-    ui->tongzhong->setCurrentText(_info.bucket_weight);
 }
-void UncertainWeightPackForm::upDengjiInfo(const QList<DengJiConfigItem> & dengJis)
+void UncertainWeightPackForm::upDengjiInfo()
 {
 // TODO: 等级信息更新
+    QList<DengJiConfigItem> dengJis = glo->dengJiList();
     ui->dengji->clear();
     for(int i = 0;i<dengJis.size();i++){
         if(!dengJis.at(i).isEnable){
@@ -309,46 +334,238 @@ void UncertainWeightPackForm::upDengjiInfo(const QList<DengJiConfigItem> & dengJ
     }
 }
 
+
+void UncertainWeightPackForm::upWare()
+{
+    QList<WarehouseConfig> ware = glo->wareList();
+    for(int i = 0;i<ware.size();i++){
+        ui->wareBox->addItem(ware.at(i).name,ware.at(i).warehouse_id);
+    }
+}
+
 //获取品目信息
 void UncertainWeightPackForm::on_searchButton_clicked()
 {
-//    specs.getInfo(0,20);
+    auto str = ui->lineEdit->text();
+    if(str.isEmpty()){
+        updateTableWidget(prolist);
+    } else {
+        auto list = GlobalInfo::this_()->searchProject(str);
+        updateTableWidget(list);
+    }
 }
 
 void UncertainWeightPackForm::changeSpecs()
+{
+    prolist = GlobalInfo::this_()->project().values();
+    updateTableWidget(prolist);
+}
+
+void UncertainWeightPackForm::updateTableWidget(QList<QSharedPointer<ProjectInfo>> & list)
 {
     ui->tableWidget_2->clearContents();
     ui->tableWidget_2->setRowCount(0);
-//    for(int i = 0; i < specs.currtInfo.size(); ++i){
-//        auto & v = specs.currtInfo.at(i);
-//        ui->tableWidget_2->insertRow(i);
-//        auto xuanze_btn =  new QRadioButton();
-//        connect(xuanze_btn,&QPushButton::clicked,[i,this](){this->xuanZe_clicked(i);});
-//        ui->tableWidget_2->setCellWidget(i,0,xuanze_btn);
-//        ui->tableWidget_2->setItem(i,1,new QTableWidgetItem(v.specs));
-//        ui->tableWidget_2->setItem(i,2,new QTableWidgetItem(v.category));
-//        ui->tableWidget_2->setItem(i,3,new QTableWidgetItem(v.batch_no));
-//        ui->tableWidget_2->setItem(i,4,new QTableWidgetItem(v.color));
-//    }
+
+
+    ui->tableWidget_2->setColumnWidth(0,40);
+    ui->tableWidget_2->setColumnWidth(1,80);
+    ui->tableWidget_2->setColumnWidth(2,80);
+//    ui->tableWidget_2->setColumnWidth(3,70);
+    ui->tableWidget_2->setColumnWidth(4,40);
+    ui->tableWidget_2->horizontalHeader()->setStretchLastSection(true);
+
+
+    int currt = -1;
+    for(int i = 0; i < list.size(); ++i){
+        auto & v = list.at(i);
+        ui->tableWidget_2->insertRow(i);
+        auto xuanze_btn =  new QRadioButton();
+        xuanze_btn->setMaximumWidth(20);
+        QString batchno = prolist.at(i)->batch_no;
+        connect(xuanze_btn,&QPushButton::clicked,[batchno,this](){this->xuanZe_clicked(batchno);});
+        ui->tableWidget_2->setCellWidget(i,0,xuanze_btn);
+        ui->tableWidget_2->setItem(i,1,new QTableWidgetItem(v->specs));
+        ui->tableWidget_2->setItem(i,2,new QTableWidgetItem(v->category));
+        ui->tableWidget_2->setItem(i,3,new QTableWidgetItem(v->batch_no));
+        ui->tableWidget_2->setItem(i,4,new QTableWidgetItem(v->color));
+        if(!_info.isNull() && _info->batch_no == v->batch_no){
+            xuanze_btn->setChecked(true);
+            currt = i;
+        }
+    }
+    if(currt >= 0)
+        ui->tableWidget_2->setCurrentCell(currt,0);
 }
 
-void UncertainWeightPackForm::xuanZe_clicked(int row)
+void UncertainWeightPackForm::setProInfo(const QSharedPointer<ProjectInfo> & info)
 {
-//    setProInfo(specs.currtInfo.at(row));
-//    packConfig.refConfig();
+    _info = info;
+    if(!packinfo.isNull()){
+        packinfo->upInfo(_info);
+        packinfo->packing_type = _info->category;
+    }
+    init();
+}
+
+void UncertainWeightPackForm::xuanZe_clicked(QString batchno)
+{
+    save();
+    packinfo.clear();
+    ui->tableWidget->clearContents();
+    ui->tableWidget->setRowCount(0);
+//    ui->tableWidget->clear();
+    setProInfo(GlobalInfo::this_()->project().value(batchno));
 }
 
 void UncertainWeightPackForm::del_clicked(int row)
 {
+    if(packinfo.isNull()) return;
+    qDebug()<<row;
     packinfo->delBoxInfoAt(row);
-    ui->tableWidget->clear();
+    restTableWidget();
+}
+
+void UncertainWeightPackForm::edit_clicked(int row)
+{
+    if(packinfo.isNull()) return;
+    auto box =  packinfo->boxInfoAt(row);
+    EditBoxInfoDialog dig(box,this);
+    dig.exec();
+    restTableWidget();
+}
+
+void UncertainWeightPackForm::Makeup_clicked(int row)
+{
+    if(packinfo.isNull()) return;
+    auto box =  packinfo->boxInfoAt(row);
+    GlobalInfo::this_()->printerBox(box);
+}
+
+void UncertainWeightPackForm::restTableWidget()
+{
+    ui->tableWidget->clearContents();
     ui->tableWidget->setRowCount(0);
-    for(int i = 0;i<packinfo->boxInfoSize();i++){
-        ui->tableWidget->setRowCount(ui->tableWidget->rowCount()+1);
-        addTableWidget(packinfo->boxInfoAt(row));
+    ui->tableWidget->setColumnWidth(0,200);
+    ui->tableWidget->setColumnWidth(1,75);
+    ui->tableWidget->setColumnWidth(2,75);
+    ui->tableWidget->setColumnWidth(3,75);
+    ui->tableWidget->setColumnWidth(4,75);
+    ui->tableWidget->setColumnWidth(5,75);
+
+    ui->tableWidget->horizontalHeader()->setStretchLastSection(true);
+
+    if(!packinfo.isNull()){
+        for(int i =  0; i < packinfo->boxInfoSize(); ++i){
+            addTableWidget(packinfo->boxInfoAt(i),i);
+        }
     }
+    upSum();
 }
 
-void UncertainWeightPackForm::Makeup_clicked(int row)
+void UncertainWeightPackForm::on_pushContinue_clicked()
+{
+    auto dt = QDate::currentDate();
+    auto list = Manger->getPackInfoSync(dt);
+    if(list.isEmpty()){
+        dt = dt.addDays(-1);
+        list = Manger->getPackInfoSync(dt);
+    }
+    if(list.isEmpty()){
+        QMessageBox::warning(this,tr("无可接续码单"),tr("无可接续码单"));
+    }
+    qDebug()<<list.size();
+    for(int i = 0;i<list.size();i++){
+        if(list.at(i).packInfo->batch_no!=_info->batch_no){
+            list.removeAt(i);
+        }
+    }
+    std::sort(list.begin(),list.end(),[](const PackSaveInfo & item1, const PackSaveInfo & item2){
+        return item1.packInfo->time() < item2.packInfo->time();
+    });
+    QSharedPointer<PackInfo> pInfo;
+    for (int i = list.size() - 1;i >= 0 ; --i) {
+        auto & v = list.at(i);
+        if(v.packInfo->packType != 0) continue;
+        if(v.packInfo->boxInfoSize() < ui->mashu->currentText().toInt()){
+            pInfo = v.packInfo;
+            break;
+        }
+    }
+    if(pInfo.isNull()){
+        QMessageBox::warning(this,tr("无可接续码单"),tr("无可接续码单"));
+    }
+    packinfo = pInfo;
+    setProInfo(packinfo->info());
+}
+
+void UncertainWeightPackForm::on_showMaoZhong_stateChanged(int)
+{
+    if(ui->showMaoZhong->isChecked()){
+        ui->labelWidget->setText(tr("毛重"));
+    } else {
+        ui->labelWidget->setText(tr("净重"));
+    }
+}
+
+void UncertainWeightPackForm::on_pushEditBatch_clicked()
 {
+    emit backup(1);
+}
+
+void UncertainWeightPackForm::EditBatch()
+{
+    if(packinfo.isNull()) return;
+    for(int i =  0; i < packinfo->boxInfoSize(); ++i){
+        auto box = packinfo->boxInfoAt(i);
+        calcData();
+        box->box_weight = int(ui->pizhong->currentText().toDouble()*1000);
+        box->tube_number = ui->tongshu->text().toInt();
+        box->bucket_weight = int((ui->pizhong->currentText().toDouble()*ui->tongshu->text().toDouble())*1000);
+        box->gross_weight = int(gross_weight*1000);
+        box->net_weight = int(netNum*1000);
+        box->Level = ui->dengji->currentText();
+        box->twist_type = ui->nianxiang->currentText();
+        box->bucket_color = ui->guanse->currentText();
+        box->sort = "1";
+//        box->remark = ui->beizhu->toPlainText();
+    }
+    packinfo->level = ui->dengji->currentText();
+    packinfo->level_id = ui->dengji->currentData().toInt();
+    restTableWidget();
+}
+
+void UncertainWeightPackForm::on_pushNoSyncList_clicked()
+{
+    emit NoSyncList();
+}
+
+void UncertainWeightPackForm::on_pushSync_clicked()
+{
+    if(GlobalInfo::this_()->isNoLine()){
+        QMessageBox::information(this,tr("注意"),tr("离线模式不予同步"));
+        return;
+    }
+    QDate tm = QDate::currentDate();
+    GlobalInfo::this_()->doSync(tm);
+    QMessageBox::information(this,tr("注意"),tr("同步成功"));
+}
+
+void UncertainWeightPackForm::on_backButton_clicked()
+{
+    emit back();
+}
+
+void UncertainWeightPackForm::on_dingzhong_clicked()
+{
+    emit dingzhong();
+    ui->buding->setChecked(true);
+}
+
+void UncertainWeightPackForm::on_ruku_stateChanged(int arg1)
+{
+    if(arg1 == 2){
+        isRuku = true;
+        return;
+    }
+    isRuku = false;
 }

+ 48 - 20
widget/uncertainweightpackform.h

@@ -4,12 +4,10 @@
 #include <QWidget>
 #include "handle/remotepackconfig.h"
 #include "struct_/packinfo.h"
-//#include "httprequestid.h"
-//#include "handle/database.h"
-//#include "handle/autopackutils.h"
 #include "QTimer"
-//#include "handle/selectspecs.h"
 #include "QMessageBox"
+#include "globalinfo.h"
+#include "editboxinfodialog.h"
 
 namespace Ui {
 class UncertainWeightPackForm;
@@ -23,12 +21,9 @@ public:
     explicit UncertainWeightPackForm(QWidget *parent = nullptr);
     ~UncertainWeightPackForm();
 
-    inline void setProInfo(const ProjectInfo & info){_info = info;}
+    void setProInfo(const QSharedPointer<ProjectInfo> & info);
 
 private slots:
-    void on_pushBack_clicked();
-
-    void on_pushStart_clicked();
 
     void on_addBoxList_clicked();
 
@@ -36,44 +31,77 @@ private slots:
 
     void calcData();
 
-    void on_handleRead_2_clicked();
-
-
     void on_tongshuguding_currentIndexChanged(const QString &arg1);
 
     void on_tongshuxianzhi_stateChanged(int arg1);
 
     void on_searchButton_clicked();
 
-public slots:
-    void upconfig(const DaBaoConfig & config);
-    void upDengjiInfo(const QList<DengJiConfigItem> & dengJis);
+    void on_pushContinue_clicked();
+
+    void on_showMaoZhong_stateChanged(int);
+
+    void on_pushEditBatch_clicked();
+
+    void on_pushNoSyncList_clicked();
+
+    void on_pushSync_clicked();
+
+    void on_backButton_clicked();
+
+    void on_dingzhong_clicked();
+
+    void on_ruku_stateChanged(int arg1);
+
+private:
+    void updateTableWidget(QList<QSharedPointer<ProjectInfo>> & list);
     void init();
-    void changeSpecs();
-    void xuanZe_clicked(int row);
+    void xuanZe_clicked(QString batchno);
     void del_clicked(int row);
     void Makeup_clicked(int row);
+    void checkPackInfo();
+    void EditBatch();
+
+public slots:
+    void upconfig();
+    void upDengjiInfo();
+    void changeSpecs();
+    void upWare();
+
 
 public:
-    void setTableWidget();
-    void addTableWidget(QSharedPointer<BoxInfo> box);
+    void addTableWidget(QSharedPointer<BoxInfo> box, int row);
+    void restTableWidget();
+    void upSum();
+    void edit_clicked(int row);
+    void save();
+
 
 signals:
     void back();
+    void NoSyncList();
+    void dingzhong();
+    void backup(int i);
 
 private:
     Ui::UncertainWeightPackForm *ui;
-    ProjectInfo _info;
+    QSharedPointer<ProjectInfo> _info;
     QSharedPointer<PackInfo> packinfo;
     QMap<QString,DengJiConfigItem> dengjiMap;// <name,详细信息>
-    RemotePackConfig packConfig;
     HttpRequest _request;
 //    AutoPackUtils aputils;
     bool autoRead;
+    bool isRuku = false;
 //    SelectSpecs specs;
 
+    QList<QSharedPointer<ProjectInfo>> prolist;
+
+    GlobalInfo * glo = GlobalInfo::this_();
+    PackInfoSeed2Server *packServer;
+    PackInfoManger *Manger;
 
     double netNum = 0.00;
+    double gross_weight = 0.0;
     bool istubeNumTure;
     int tubeNumMax;
     int tubeNumMin;

Dosya farkı çok büyük olduğundan ihmal edildi
+ 559 - 299
widget/uncertainweightpackform.ui


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor