fixedweightpackform.cpp 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. #include "fixedweightpackform.h"
  2. #include "ui_fixedweightpackform.h"
  3. #include "handle/utils/cachefile.h"
  4. FixedWeightPackForm::FixedWeightPackForm(QWidget *parent) :
  5. QWidget(parent),
  6. ui(new Ui::FixedWeightPackForm)
  7. {
  8. ui->setupUi(this);
  9. QTimer *timer = new QTimer(this);
  10. connect(timer,&QTimer::timeout,this,&FixedWeightPackForm::calcData);
  11. timer->start(500);
  12. connect(&packConfig,&RemotePackConfig::configUpdate,this,&FixedWeightPackForm::upconfig);
  13. connect(&packConfig,&RemotePackConfig::dengJIConfigUp,this,&FixedWeightPackForm::upDengjiInfo);
  14. CacheFile f;
  15. auto dt = f.readFile("dingzhongInfo.cache");
  16. auto list = QString::fromUtf8(dt).split("[,]");
  17. if(list.size() == 2){
  18. ui->taitou->setText(list.at(0));
  19. ui->taiPhone->setText(list.at(1));
  20. }
  21. }
  22. FixedWeightPackForm::~FixedWeightPackForm()
  23. {
  24. delete ui;
  25. }
  26. //从秤中获取毛重、皮重、净重、筒数------每100毫秒一次
  27. void FixedWeightPackForm::calcData()
  28. {
  29. ui->grossWeight_2->setText(QString::number(GlobalInfo::this_()->GetScaleData().gross_widget));
  30. // ui->grossWeight_2->setText(ui->type->currentText());
  31. netNum = ui->grossWeight_2->text().toDouble()-ui->pizhong->currentText().toDouble()-ui->tongshu->text().toDouble()*ui->tongzhong->currentText().toDouble();
  32. if(netNum<0){
  33. netNum = 0.00;
  34. }
  35. // ui->netWeight_2->setText(QString::number(netNum));
  36. // ui->tongshu->setText(QString::number(GlobalInfo::this_()->GetScaleData().tongshu));
  37. }
  38. void FixedWeightPackForm::on_pushBack_clicked()
  39. {
  40. if(!packinfo.isNull()){
  41. aputils.insertProductSQL(packinfo);
  42. aputils.doSend(aputils.toJson(packinfo));
  43. }
  44. emit back();
  45. QStringList list;
  46. list << ui->taitou->text() << ui->taiPhone->text();
  47. CacheFile f;
  48. f.writeFile("dingzhongInfo.cache",list.join("[,]").toUtf8());
  49. }
  50. void FixedWeightPackForm::on_addPackList_clicked()
  51. {
  52. if(packinfo.isNull()) return;
  53. if(!packinfo.isNull()&&packinfo->boxes().size()>0){
  54. packinfo->quantity = packinfo->boxes().size();
  55. packinfo->level_id = ui->dengji->currentData().toInt();
  56. packinfo->machine_no = ui->jitai->currentText();
  57. packinfo->carton_type = ui->zhixiang->currentText();
  58. }
  59. //把数据添加到数据库里
  60. aputils.insertProductSQL(packinfo);
  61. //TODO: 缓存箱单数据,页面显示情空
  62. //发送码单 packinfo 数据, 转换为 json数据发送
  63. aputils.doSend(aputils.toJson(packinfo));
  64. //TODO: 初始化码单信息
  65. packinfo.clear();
  66. }
  67. void FixedWeightPackForm::on_pushStart_clicked()
  68. {
  69. _info.customer = ui->taitou->text();
  70. _info.telephone = ui->taiPhone->text();
  71. if(ui->pushStart->isChecked()){
  72. ui->pushStart->setChecked(true);
  73. ui->addBoxList->setDisabled(false);
  74. ui->addPackList->setDisabled(false);
  75. ui->widget_2->setEnabled(false);
  76. ui->pushPiLiang->setDisabled(false);
  77. } else {
  78. init();
  79. }
  80. }
  81. void FixedWeightPackForm::on_addBoxList_clicked()
  82. {
  83. if(packinfo.isNull()){
  84. packinfo.reset(new PackInfo(_info));
  85. packinfo->operator_id = GlobalInfo::this_()->user().userId;
  86. packinfo->packing_time = QDate::currentDate().toString("yy-MM-dd");
  87. packinfo->packing_type = _info.category;
  88. ui->tableWidget->clearContents();
  89. ui->tableWidget->setRowCount(0);
  90. }
  91. auto box = packinfo->addBoxInfo();
  92. box->box_weight = int(ui->pizhong->currentText().toDouble()*1000);
  93. box->tube_number = ui->tongshu->text().toInt();
  94. box->bucket_weight = int(ui->pizhong->currentText().toInt()*ui->tongshu->text().toDouble()*1000);
  95. box->gross_weight = int(ui->grossWeight_2->text().toDouble()*1000);
  96. box->net_weight = int(netNum*1000);
  97. box->sort = "1";
  98. box->remark = ui->beizhu->toPlainText();
  99. packinfo->level = ui->dengji->currentText();
  100. packinfo->level_id = ui->dengji->currentData().toInt();
  101. ui->tableWidget->setRowCount(ui->tableWidget->rowCount()+1);
  102. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,0,new QTableWidgetItem(QString::number(ui->tableWidget->rowCount())));
  103. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,1,new QTableWidgetItem(box->caseNumber()));
  104. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,2,new QTableWidgetItem(getDecimalbit(box->tube_number / 1000.00)));
  105. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,3,new QTableWidgetItem(getDecimalbit(box->gross_weight / 1000.00)));
  106. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,4,new QTableWidgetItem(getDecimalbit(box->bucket_weight / 1000.00)));
  107. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,5,new QTableWidgetItem(getDecimalbit(box->net_weight / 1000.00)));
  108. // emit djmbbox(djmb.printBoxInfo(box->caseNumber(),box));
  109. // qDebug()<<packinfo->boxes().size();
  110. // doSend(packinfo);
  111. // 把box数据添加到packinfo的boxes数据表里;
  112. packinfo->addBoxInfoList(box);
  113. //添加数据库
  114. aputils.insertDetailsSQL(box,packinfo->codeSingle());
  115. ui->labelTongZHong->setText(QString::number(packinfo->tube_number()));
  116. ui->labelWight->setText(getDecimalbit(packinfo->gross_weight() / 1000.00));
  117. ui->labelJing->setText(getDecimalbit(packinfo->net_weight() / 1000.00));
  118. //当当前箱数大于等于最大箱数是启动on_addPackList_clicked();
  119. if(packinfo->boxes().size() >= ui->comboBox->currentText().toInt()){
  120. on_addPackList_clicked();
  121. }
  122. }
  123. void FixedWeightPackForm::init()
  124. {
  125. ui->pushStart->setChecked(false);
  126. ui->addBoxList->setDisabled(true);
  127. ui->addPackList->setDisabled(true);
  128. ui->pushPiLiang->setDisabled(true);
  129. ui->widget_2->setEnabled(true);
  130. packConfig.refConfig();
  131. ui->comboBox->clear();
  132. for(int i = 1;i<=20;i++){
  133. ui->comboBox->addItem(QString::number(i));
  134. }
  135. ui->comboBox->setCurrentText("20");
  136. // on_addPackList_clicked();
  137. }
  138. void FixedWeightPackForm::upconfig(const DaBaoConfig &config)
  139. {
  140. //机台
  141. ui->jitai->clear();
  142. ui->jitai->addItems(config.jitai);
  143. //打包工班次
  144. ui->comboBox_2->clear();
  145. ui->comboBox_2->addItems(config.daBaoGongBanCi);
  146. //皮重
  147. ui->pizhong->clear();
  148. for(int i = 0;i<config.xiangzhong.size();i++){
  149. ui->pizhong->addItem(QString::number(config.xiangzhong.at(i)));
  150. }
  151. //管色
  152. ui->guanse->clear();
  153. ui->guanse->addItems(config.guanse);
  154. //捻向
  155. ui->nianxiang->clear();
  156. ui->nianxiang->addItems(config.nianxiang);
  157. //纸箱
  158. ui->zhixiang->clear();
  159. ui->zhixiang->addItems(config.zhixiang);
  160. //筒重
  161. ui->tongzhong->clear();
  162. for(int i = 0;i<config.tongZhong.size();i++){
  163. ui->tongzhong->addItem(QString::number(config.tongZhong.at(i)));
  164. }
  165. ui->type->clear();
  166. for(int i = 0;i<config.diys.size();i++){
  167. ui->type->addItem(QString::number(config.diys.at(i).type));
  168. }
  169. }
  170. void FixedWeightPackForm::upDengjiInfo(const QList<DengJiConfigItem> & dengJis)
  171. {
  172. ui->dengji->clear();
  173. for(int i = 0;i<dengJis.size();i++){
  174. if(!dengJis.at(i).isEnable){
  175. ui->dengji->addItem(dengJis.at(i).value,dengJis.at(i).id);
  176. }
  177. }
  178. }
  179. void FixedWeightPackForm::on_pushPiLiang_clicked()
  180. {
  181. int tsize = 0;
  182. if(!packinfo.isNull()) tsize = packinfo->boxes().size();
  183. auto size = ui->comboBox->currentText().toInt() - tsize;
  184. for(int i = 0; i < size; ++i){
  185. on_addBoxList_clicked();
  186. }
  187. }