#include "fixedweightpackform.h" #include "ui_fixedweightpackform.h" #include using namespace PQ; FixedWeightPackForm::FixedWeightPackForm(QWidget *parent) : QWidget(parent), ui(new Ui::FixedWeightPackForm) { ui->setupUi(this); QTimer *timer = new QTimer(this); connect(timer,&QTimer::timeout,this,&FixedWeightPackForm::calcData); timer->start(500); connect(&packConfig,&RemotePackConfig::configUpdate,this,&FixedWeightPackForm::upconfig); connect(&packConfig,&RemotePackConfig::dengJIConfigUp,this,&FixedWeightPackForm::upDengjiInfo); 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); // ui->pushStart->hide(); } FixedWeightPackForm::~FixedWeightPackForm() { delete ui; } //从秤中获取毛重、皮重、净重、筒数------每100毫秒一次 void FixedWeightPackForm::calcData() { // ui->grossWeight_2->setText(ui->type->currentText()); netNum = ui->grossWeight_2->text().toDouble()-ui->pizhong->currentText().toDouble()-ui->tongshu->text().toDouble()*ui->tongzhong->currentText().toDouble(); if(netNum<0){ netNum = 0.00; } // ui->netWeight_2->setText(QString::number(netNum)); // ui->tongshu->setText(QString::number(GlobalInfo::this_()->GetScaleData().tongshu)); } void FixedWeightPackForm::on_pushBack_clicked() { emit back(); QStringList list; list << ui->taitou->text() << ui->taiPhone->text(); // CacheFile f; PQ::CacheFile::writeFile("dingzhongInfo.cache",list.join("[,]").toUtf8()); } void FixedWeightPackForm::on_addPackList_clicked() { if(packinfo.isNull()) return; 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(); packinfo->carton_type = ui->zhixiang->currentText(); packinfo->customer = ui->taitou->text(); packinfo->telephone = ui->taiPhone->text(); } //把数据添加到数据库里 aputils.insertProductSQL(packinfo); //TODO: 缓存箱单数据,页面显示情空 //发送码单 packinfo 数据, 转换为 json数据发送 aputils.doSend(aputils.toJson(packinfo)); //TODO: 初始化码单信息 packinfo.clear(); } void FixedWeightPackForm::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_2->setEnabled(false); ui->pushPiLiang->setDisabled(false); } else { init(); } } void FixedWeightPackForm::on_addBoxList_clicked() { //当当前箱数大于等于最大箱数是启动on_addPackList_clicked(); if(packinfo->boxes().size() >= ui->comboBox->currentText().toInt()){ on_addPackList_clicked(); } setTableWidget();//检查packinfo isNull auto box = packinfo->addBoxInfo(); 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_2->text().toDouble()*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); // 把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)); } //检查packinfo isNull void FixedWeightPackForm::setTableWidget() { if(packinfo.isNull()){ 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); } } void FixedWeightPackForm::addTableWidget(QSharedPointer box) { 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("补打"); QWidget *tmp_widget = new QWidget(); QHBoxLayout *tmp_layout = new QHBoxLayout(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; connect(btn_1,&QPushButton::clicked,[i,this](){this->del_clicked(i);}); connect(btn_3,&QPushButton::clicked,[i,this](){this->Makeup_clicked(i);}); ui->tableWidget->setCellWidget(ui->tableWidget->rowCount()-1,6,tmp_widget); } void FixedWeightPackForm::init() { ui->pushStart->setChecked(false); ui->addBoxList->setDisabled(true); ui->addPackList->setDisabled(true); ui->pushPiLiang->setDisabled(true); ui->widget_2->setEnabled(true); packConfig.refConfig(); ui->comboBox->clear(); for(int i = 1;i<=20;i++){ ui->comboBox->addItem(QString::number(i)); } ui->comboBox->setCurrentText("20"); specs.getInfo(0,20); setTableWidget();//检查packinfo isNull } void FixedWeightPackForm::upconfig(const DaBaoConfig &config) { //机台 ui->jitai->clear(); ui->jitai->addItems(config.jitai); //打包工班次 ui->comboBox_2->clear(); ui->comboBox_2->addItems(config.daBaoGongBanCi); //皮重 ui->pizhong->clear(); for(int i = 0;ipizhong->addItem(QString::number(config.xiangzhong.at(i))); } //管色 ui->guanse->clear(); ui->guanse->addItems(config.guanse); //捻向 ui->nianxiang->clear(); ui->nianxiang->addItems(config.nianxiang); //纸箱 ui->zhixiang->clear(); ui->zhixiang->addItems(config.zhixiang); //筒重 ui->tongzhong->clear(); for(int i = 0;itongzhong->addItem(QString::number(config.tongZhong.at(i))); } //设置选择打包界面的数据为首个; 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 FixedWeightPackForm::upDengjiInfo(const QList & dengJis) { ui->dengji->clear(); for(int i = 0;idengji->addItem(dengJis.at(i).value,dengJis.at(i).id); } } } void FixedWeightPackForm::on_pushPiLiang_clicked() { int tsize = 0; if(!packinfo.isNull()) tsize = packinfo->boxes().size(); auto size = ui->comboBox->currentText().toInt() - tsize; for(int i = 0; i < size; ++i){ on_addBoxList_clicked(); } } //获取品目信息 void FixedWeightPackForm::on_searchButton_clicked() { specs.getInfo(0,20); } void FixedWeightPackForm::changeSpecs() { 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)); } } void FixedWeightPackForm::xuanZe_clicked(int row) { setProInfo(specs.currtInfo.at(row)); packConfig.refConfig(); } void FixedWeightPackForm::del_clicked(int row) { qDebug()<delBoxInfoAt(row); ui->tableWidget->clear(); ui->tableWidget->setRowCount(0); for(int i = 0;iboxInfoSize();i++){ ui->tableWidget->setRowCount(ui->tableWidget->rowCount()+1); addTableWidget(packinfo->boxInfoAt(row)); } } void FixedWeightPackForm::Makeup_clicked(int row) { djmb.printBoxInfo(packinfo->boxInfoAt(row)->caseNumber(),packinfo->boxInfoAt(row)); }