autopackform.cpp 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. #include "autopackform.h"
  2. #include "ui_autopackform.h"
  3. #include "globalinfo.h"
  4. AutoPackForm::AutoPackForm(QWidget *parent) :
  5. QWidget(parent),
  6. ui(new Ui::AutoPackForm)
  7. {
  8. ui->setupUi(this);
  9. QTimer *timer = new QTimer(this);
  10. connect(timer,&QTimer::timeout,this,&AutoPackForm::scaleData);
  11. // timer->start(100);
  12. }
  13. AutoPackForm::~AutoPackForm()
  14. {
  15. delete ui;
  16. }
  17. //从秤中获取毛重、皮重、净重、筒数------每100毫秒一次
  18. void AutoPackForm::scaleData()
  19. {
  20. ui->grossWeight_2->setText(QString::number(GlobalInfo::this_()->GetScaleData().gross_widget));
  21. ui->tareWeight_2->setText(QString::number(GlobalInfo::this_()->GetScaleData().tare_widget));
  22. ui->netWeight_2->setText(QString::number(GlobalInfo::this_()->GetScaleData().net_widget));
  23. ui->tongshu->setText(QString::number(GlobalInfo::this_()->GetScaleData().tongshu));
  24. }
  25. void AutoPackForm::on_pushBack_clicked()
  26. {
  27. aputils.insertProductSQL(packinfo);
  28. aputils.doSend(aputils.toJson(packinfo));
  29. emit back();
  30. }
  31. void AutoPackForm::init()
  32. {
  33. // TODO: 页面进入初始化
  34. ui->pushStart->setChecked(false);
  35. ui->widget->setEnabled(true);
  36. packConfig.refConfig();
  37. connect(&packConfig,&RemotePackConfig::configUpdate,this,&AutoPackForm::upconfig);
  38. connect(&packConfig,&RemotePackConfig::dengJIConfigUp,this,&AutoPackForm::upDengjiInfo);
  39. ui->comboBox->clear();
  40. for(int i = 1;i<20;i++){
  41. ui->comboBox->addItem(QString::number(i));
  42. }
  43. ui->comboBox->setEditText("20");
  44. on_addPackList_clicked();
  45. }
  46. void AutoPackForm::on_addPackList_clicked()
  47. {
  48. //把数据添加到数据库里
  49. aputils.insertProductSQL(packinfo);
  50. //TODO: 缓存箱单数据,页面显示情空
  51. //发送码单 packinfo 数据, 转换为 json数据发送
  52. aputils.doSend(aputils.toJson(packinfo));
  53. //TODO: 初始化码单信息
  54. packinfo.reset(new PackInfo(_info));
  55. packinfo->operator_id = GlobalInfo::this_()->user().userId;
  56. packinfo->packing_time = QDate::currentDate().toString("yy-MM-dd");
  57. packinfo->packing_type = _info.category;
  58. }
  59. void AutoPackForm::upconfig(const DaBaoConfig &config)
  60. {
  61. // TODO:打包配置更新
  62. //机台
  63. ui->jitai->clear();
  64. ui->jitai->addItems(config.jitai);
  65. //打包工班次
  66. ui->comboBox_2->clear();
  67. ui->comboBox_2->addItems(config.daBaoGongBanCi);
  68. //皮重
  69. ui->pizhong->clear();
  70. for(int i = 0;i<config.xiangzhong.size();i++){
  71. ui->pizhong->addItem(QString::number(config.xiangzhong.at(i)));
  72. }
  73. //管色
  74. ui->guanse->clear();
  75. ui->guanse->addItems(config.guanse);
  76. //捻向
  77. ui->nianxiang->clear();
  78. ui->nianxiang->addItems(config.nianxiang);
  79. //纸箱
  80. ui->zhixiang->clear();
  81. ui->zhixiang->addItems(config.zhixiang);
  82. //筒重
  83. ui->tongzhong->clear();
  84. for(int i = 0;i<config.tongZhong.size();i++){
  85. ui->tongzhong->addItem(QString::number(config.tongZhong.at(i)));
  86. }
  87. }
  88. void AutoPackForm::upDengjiInfo(const QList<DengJiConfigItem> & dengJis)
  89. {
  90. // TODO: 等级信息更新
  91. ui->dengji->clear();
  92. for(int i = 0;i<dengJis.size();i++){
  93. if(!dengJis.at(i).isEnable){
  94. ui->dengji->addItem(dengJis.at(i).value,dengJis.at(i).id);
  95. }
  96. }
  97. }
  98. void AutoPackForm::on_pushStart_clicked()
  99. {
  100. if(ui->pushStart->isChecked()){
  101. ui->pushStart->setChecked(true);
  102. ui->widget->setEnabled(false);
  103. ui->handleRead->setEnabled(true);
  104. } else {
  105. init();
  106. }
  107. }
  108. void AutoPackForm::on_addBoxList_clicked()
  109. {
  110. if(packinfo.isNull()) return;
  111. auto box = packinfo->addBoxInfo();
  112. //TODO: 添加箱单 数据
  113. box->box_weight = ui->pizhong->currentText().toInt();
  114. box->tube_number = ui->tongshu->text().toInt();
  115. box->bucket_weight = ui->pizhong->currentText().toInt()*ui->tongshu->text().toInt();
  116. box->gross_weight = ui->grossWeight_2->text().toInt();
  117. box->box_weight = ui->netWeight_2->text().toInt();
  118. box->sort = "1";
  119. box->remark = ui->beizhu->toPlainText();
  120. packinfo->level = ui->dengji->currentText();
  121. packinfo->level_id = ui->dengji->currentData().toInt();
  122. //TODO: 缓存数据,显示数据
  123. ui->tableWidget->setRowCount(ui->tableWidget->rowCount()+1);
  124. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,0,new QTableWidgetItem(QString::number(ui->tableWidget->rowCount())));
  125. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,1,new QTableWidgetItem(box->caseNumber()));
  126. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,2,new QTableWidgetItem(QString::number(box->tube_number)));
  127. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,3,new QTableWidgetItem(QString::number(box->gross_weight)));
  128. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,4,new QTableWidgetItem(QString::number(box->bucket_weight)));
  129. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,5,new QTableWidgetItem(QString::number(box->net_weight)));
  130. // emit djmbbox(djmb.printBoxInfo(box->caseNumber(),box));
  131. // qDebug()<<packinfo->boxes().size();
  132. // doSend(packinfo);
  133. //把box数据添加到packinfo的boxes数据表里;
  134. packinfo->addBoxInfoList(box);
  135. //添加数据库
  136. aputils.insertDetailsSQL(box,packinfo->codeSingle());
  137. //packinfo其他数据在new时已经定义好的,需要时直接调就可以了,所以这里只要箱数,等级,机台和类型
  138. if(packinfo->boxes().size()>=ui->comboBox->currentText().toInt()){
  139. packinfo->quantity = packinfo->boxes().size();
  140. packinfo->level_id = ui->dengji->currentData().toInt();
  141. packinfo->machine_no = ui->jitai->currentText();
  142. packinfo->carton_type = ui->zhixiang->currentText();
  143. on_addPackList_clicked();
  144. // emit djmbbox(djmb.printPackInfo(packinfo->codeSingle(),packinfo));
  145. qDebug()<<"这里";
  146. }
  147. }