| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420 |
- #include "fixedweightpackform.h"
- #include "ui_fixedweightpackform.h"
- #include <pqQtlib/utils/pqfileutils.h>
- #include "editboxinfodialog.h"
- using namespace PQ;
- FixedWeightPackForm::FixedWeightPackForm(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::FixedWeightPackForm),packServer(nullptr),Manger(nullptr)
- {
- ui->setupUi(this);
- // QTimer *timer = new QTimer(this);
- // connect(timer,&QTimer::timeout,this,&FixedWeightPackForm::calcData);
- // timer->start(500);
- connect(glo,&GlobalInfo::dbConfigUpdated,this,&FixedWeightPackForm::upconfig);
- connect(glo,&GlobalInfo::dengJiUped,this,&FixedWeightPackForm::upDengjiInfo);
- connect(glo,&GlobalInfo::doInited,this,&FixedWeightPackForm::changeSpecs);
- 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();
- }
- FixedWeightPackForm::~FixedWeightPackForm()
- {
- delete ui;
- }
- //从秤中获取毛重、皮重、净重、筒数------每100毫秒一次
- void FixedWeightPackForm::calcData()
- {
- double pz = ui->pizhong->currentText().toDouble();
- double tz = ui->tongzhong->currentText().toDouble();
- 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;
- }
- }
- void FixedWeightPackForm::on_pushBack_clicked()
- {
- emit back();
- QStringList list;
- list << ui->taitou->text() << ui->taiPhone->text();
- 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();
- }
- // qDebug()<<packinfo->boxes().at(0)->tube_number;
- if(ui->autoSync->isChecked() && !GlobalInfo::this_()->isNoLine())
- packServer->send(packinfo);
- Manger->savePackInfo(packinfo);
- // GlobalInfo::this_()->packInfoManger()->setPackInfoSync(packinfo->codeSingle(),packinfo->time(),true);
- if(ui->madanPrint->isChecked())
- GlobalInfo::this_()->printerPack(packinfo);
- packinfo.clear();
- }
- void FixedWeightPackForm::on_addBoxList_clicked()
- {
- checkPackInfo(); //检查packinfo isNull
- //当当前箱数大于等于最大箱数是启动on_addPackList_clicked();
- if(packinfo->boxes().size() >= ui->comboBox->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->tongzhong->currentText().toInt()*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();
- addTableWidget(box,index);
- // 把box数据添加到packinfo的boxes数据表里;
- packinfo->addBoxInfoList(box);
- if(ui->xiangdanPrint->isChecked())
- GlobalInfo::this_()->printerBox(box);
- upSum();
- //添加数据库
- // aputils.insertDetailsSQL(box,packinfo->codeSingle());
- }
- void FixedWeightPackForm::upSum()
- {
- 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));
- }
- }
- //检查packinfo isNull
- void FixedWeightPackForm::checkPackInfo()
- {
- 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;
- packinfo->packType = 0;
- restTableWidget();
- }
- }
- //往tablewidget里添加数据
- void FixedWeightPackForm::addTableWidget(QSharedPointer<BoxInfo> box, int row)
- {
- 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()));
- 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 = 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);
- }
- void FixedWeightPackForm::init()
- {
- if(packServer == nullptr){
- Manger = GlobalInfo::this_()->packInfoManger();
- packServer = new PackInfoSeed2Server(Manger);
- }
- 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);
- restTableWidget();
- }
- void FixedWeightPackForm::upconfig()
- {
- DaBaoConfig config = glo->dbConfig();
- // 码数
- ui->comboBox->clear();
- for(int i = 0; i < config.mashu.size(); ++i){
- ui->comboBox->addItem(QString::number(config.mashu.at(i)));
- }
- //机台
- 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;i<config.xiangzhong.size();i++){
- ui->pizhong->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;i<config.tongZhong.size();i++){
- ui->tongzhong->addItem(QString::number(config.tongZhong.at(i)));
- }
- }
- void FixedWeightPackForm::upDengjiInfo()
- {
- QList<DengJiConfigItem> dengJis = glo->dengJiList();
- ui->dengji->clear();
- for(int i = 0;i<dengJis.size();i++){
- if(!dengJis.at(i).isEnable){
- ui->dengji->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->spinBox->value();
- for(int i = 0; i < size; ++i){
- on_addBoxList_clicked();
- }
- }
- //获取品目信息
- void FixedWeightPackForm::on_searchButton_clicked()
- {
- auto str = ui->lineEdit->text();
- if(str.isEmpty()){
- updateTableWidget(prolist);
- } else {
- auto list = GlobalInfo::this_()->searchProject(str);
- updateTableWidget(list);
- }
- }
- void FixedWeightPackForm::changeSpecs()
- {
- prolist = GlobalInfo::this_()->project().values();
- updateTableWidget(prolist);
- }
- void FixedWeightPackForm::updateTableWidget(QList<QSharedPointer<ProjectInfo>> & list)
- {
- ui->tableWidget_2->clearContents();
- ui->tableWidget_2->setRowCount(0);
- 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();
- 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 FixedWeightPackForm::setProInfo(const QSharedPointer<ProjectInfo> & info)
- {
- _info = info;
- if(!packinfo.isNull()){
- packinfo->upInfo(_info);
- packinfo->packing_type = _info->category;
- }
- init();
- }
- void FixedWeightPackForm::xuanZe_clicked(QString batchno)
- {
- setProInfo(GlobalInfo::this_()->project().value(batchno));
- }
- void FixedWeightPackForm::del_clicked(int row)
- {
- if(packinfo.isNull()) return;
- qDebug()<<row;
- packinfo->delBoxInfoAt(row);
- restTableWidget();
- }
- 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);
- if(!packinfo.isNull()){
- for(int i = 0; i < packinfo->boxInfoSize(); ++i){
- addTableWidget(packinfo->boxInfoAt(i),i);
- }
- }
- upSum();
- }
- void FixedWeightPackForm::Makeup_clicked(int row)
- {
- if(packinfo.isNull()) return;
- auto box = packinfo->boxInfoAt(row);
- GlobalInfo::this_()->printerBox(box);
- }
- void FixedWeightPackForm::edit_clicked(int row)
- {
- if(packinfo.isNull()) return;
- auto box = packinfo->boxInfoAt(row);
- EditBoxInfoDialog dig(box,this);
- dig.exec();
- restTableWidget();
- }
- void FixedWeightPackForm::on_pushContinue_clicked()
- {
- auto dt = QDate::currentDate();
- auto list = Manger->getPackInfo(dt);
- if(list.isEmpty()){
- dt = dt.addDays(-1);
- list = Manger->getPackInfo(dt);
- }
- if(list.isEmpty()){
- QMessageBox::warning(this,tr("无可接续码单"),tr("无可接续码单"));
- }
- 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->comboBox->currentText().toInt()){
- pInfo = v.packInfo;
- break;
- }
- }
- if(pInfo.isNull()){
- QMessageBox::warning(this,tr("无可接续码单"),tr("无可接续码单"));
- }
- packinfo = pInfo;
- setProInfo(packinfo->info());
- }
- void FixedWeightPackForm::on_showMaoZhong_stateChanged(int )
- {
- if(ui->showMaoZhong->isChecked()){
- ui->labelWidget->setText(tr("毛重"));
- } else {
- ui->labelWidget->setText(tr("净重"));
- }
- }
- void FixedWeightPackForm::on_pushEditBatch_clicked()
- {
- 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().toInt()*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 FixedWeightPackForm::on_pushNoSyncList_clicked()
- {
- qDebug()<<"this";
- emit NoSyncList();
- }
|