uncertainweightpackform.cpp 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. #include "uncertainweightpackform.h"
  2. #include "ui_uncertainweightpackform.h"
  3. UncertainWeightPackForm::UncertainWeightPackForm(QWidget *parent) :
  4. QWidget(parent),
  5. ui(new Ui::UncertainWeightPackForm)
  6. {
  7. ui->setupUi(this);
  8. autoRead = true;
  9. QTimer *timer = new QTimer(this);
  10. connect(timer,&QTimer::timeout,this,&UncertainWeightPackForm::calcData);
  11. timer->start(500);
  12. ui->widget_6->setEnabled(false);
  13. //筒数限制,true限制
  14. istubeNumTure = false;
  15. }
  16. UncertainWeightPackForm::~UncertainWeightPackForm()
  17. {
  18. delete ui;
  19. }
  20. void UncertainWeightPackForm::on_pushBack_clicked()
  21. {
  22. emit back();
  23. }
  24. //从秤中获取毛重、皮重、净重、筒数------每100毫秒一次
  25. void UncertainWeightPackForm::calcData()
  26. {
  27. if(autoRead == true){
  28. ui->grossWeight->setText(QString::number(GlobalInfo::this_()->GetScaleData().gross_widget));
  29. }
  30. // qDebug()<<autoRead;
  31. netNum = ui->grossWeight->text().toDouble()-ui->pizhong->currentText().toDouble()-ui->tongshu->text().toDouble()*ui->tongzhong->currentText().toDouble();
  32. if(netNum<0){
  33. netNum = 0.00;
  34. }
  35. if(istubeNumTure){
  36. if(ui->tongshu->text().toInt()>tubeNumMax || ui->tongshu->text().toInt()<tubeNumMin){
  37. ui->tongshu->setValue(tubeNumMin);
  38. }
  39. }
  40. // ui->netWeight_2->setText(QString::number(netNum));
  41. // ui->tongshu->setText(QString::number(GlobalInfo::this_()->GetScaleData().tongshu));
  42. }
  43. void UncertainWeightPackForm::on_addPackList_clicked()
  44. {
  45. if(!packinfo.isNull()&&packinfo->boxes().size()>0){
  46. packinfo->quantity = packinfo->boxes().size();
  47. packinfo->level_id = ui->dengji->currentData().toInt();
  48. packinfo->machine_no = ui->jitai->currentText();
  49. packinfo->carton_type = ui->zhixiang->currentText();
  50. }
  51. //把数据添加到数据库里
  52. aputils.insertProductSQL(packinfo);
  53. //发送码单 packinfo 数据, 转换为 json数据发送
  54. aputils.doSend(aputils.toJson(packinfo));
  55. packinfo.reset(new PackInfo(_info));
  56. packinfo->operator_id = GlobalInfo::this_()->user().userId;
  57. packinfo->packing_time = QDate::currentDate().toString("yy-MM-dd");
  58. packinfo->packing_type = _info.category;
  59. }
  60. void UncertainWeightPackForm::on_pushStart_clicked()
  61. {
  62. if(ui->pushStart->isChecked()){
  63. ui->pushStart->setChecked(true);
  64. ui->addBoxList->setDisabled(false);
  65. ui->addPackList->setDisabled(false);
  66. ui->widget_3->setEnabled(false);
  67. ui->widget_5->setEnabled(false);
  68. ui->widget_7->setEnabled(false);
  69. ui->tongzhong->setEnabled(true);
  70. } else {
  71. init();
  72. }
  73. }
  74. void UncertainWeightPackForm::on_addBoxList_clicked()
  75. {
  76. if(ui->tongshu->text()!="0"&&!ui->tongshu->text().toInt()){
  77. QMessageBox::information(this,tr("注意"),tr("筒数异常"));
  78. return;
  79. }
  80. if(packinfo.isNull()) return;
  81. auto box = packinfo->addBoxInfo();
  82. box->box_weight = int(ui->pizhong->currentText().toDouble()*1000);
  83. box->tube_number = ui->tongshu->text().toInt();
  84. box->bucket_weight = int(ui->pizhong->currentText().toInt()*ui->tongshu->text().toDouble()*1000);
  85. box->gross_weight = int(ui->grossWeight->text().toDouble()*1000);
  86. box->net_weight = int(netNum*1000);
  87. box->sort = "1";
  88. box->remark = ui->beizhu->toPlainText();
  89. packinfo->level = ui->dengji->currentText();
  90. packinfo->level_id = ui->dengji->currentData().toInt();
  91. ui->tableWidget->setRowCount(ui->tableWidget->rowCount()+1);
  92. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,0,new QTableWidgetItem(QString::number(ui->tableWidget->rowCount())));
  93. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,1,new QTableWidgetItem(box->caseNumber()));
  94. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,2,new QTableWidgetItem(QString::number(box->tube_number)));
  95. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,3,new QTableWidgetItem(QString::number(box->gross_weight)));
  96. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,4,new QTableWidgetItem(QString::number(box->bucket_weight)));
  97. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,5,new QTableWidgetItem(QString::number(box->net_weight)));
  98. // emit djmbbox(djmb.printBoxInfo(box->caseNumber(),box));
  99. // qDebug()<<packinfo->boxes().size();
  100. // doSend(packinfo);
  101. // 把box数据添加到packinfo的boxes数据表里;
  102. packinfo->addBoxInfoList(box);
  103. //添加数据库
  104. aputils.insertDetailsSQL(box,packinfo->codeSingle());
  105. //当当前箱数大于等于最大箱数是启动on_addPackList_clicked();
  106. if(packinfo->boxes().size()>=ui->mashu->currentText().toInt()){
  107. on_addPackList_clicked();
  108. }
  109. }
  110. //自动读数按钮
  111. void UncertainWeightPackForm::on_handleRead_2_clicked()
  112. {
  113. if(autoRead==true){
  114. autoRead = false;
  115. ui->handleRead_2->setText("自动读数");
  116. ui->label->setText("已开启手动");
  117. return;
  118. }
  119. autoRead = true;
  120. ui->handleRead_2->setText("手动读数");
  121. ui->label->setText("已开启自动");
  122. }
  123. //筒数是否固定
  124. void UncertainWeightPackForm::on_tongshuguding_currentIndexChanged(const QString &arg1)
  125. {
  126. if(arg1=="固定"){
  127. ui->widget_6->setEnabled(false);
  128. return;
  129. }
  130. ui->widget_6->setEnabled(true);
  131. }
  132. //筒数是否限制
  133. void UncertainWeightPackForm::on_tongshuxianzhi_stateChanged(int arg1)
  134. {
  135. qDebug()<<arg1;
  136. if(arg1 == 2){
  137. istubeNumTure = true;
  138. return;
  139. }
  140. istubeNumTure = false;
  141. }
  142. void UncertainWeightPackForm::init()
  143. {
  144. // TODO: 页面进入初始化
  145. ui->pushStart->setChecked(false);
  146. ui->addBoxList->setDisabled(true);
  147. ui->addPackList->setDisabled(true);
  148. ui->widget_3->setEnabled(true);
  149. ui->widget_5->setEnabled(true);
  150. ui->widget_7->setEnabled(true);
  151. packConfig.refConfig();
  152. connect(&packConfig,&RemotePackConfig::configUpdate,this,&UncertainWeightPackForm::upconfig);
  153. connect(&packConfig,&RemotePackConfig::dengJIConfigUp,this,&UncertainWeightPackForm::upDengjiInfo);
  154. ui->mashu->clear();
  155. for(int i = 1;i<=20;i++){
  156. ui->mashu->addItem(QString::number(i));
  157. }
  158. ui->mashu->setCurrentText("20");
  159. on_addPackList_clicked();
  160. }
  161. void UncertainWeightPackForm::upconfig(const DaBaoConfig &config)
  162. {
  163. // TODO:打包配置更新
  164. //机台
  165. ui->jitai->clear();
  166. ui->jitai->addItems(config.jitai);
  167. //打包工班次
  168. ui->dabaobanci->clear();
  169. ui->dabaobanci->addItems(config.daBaoGongBanCi);
  170. //皮重
  171. ui->pizhong->clear();
  172. for(int i = 0;i<config.xiangzhong.size();i++){
  173. ui->pizhong->addItem(QString::number(config.xiangzhong.at(i)));
  174. }
  175. //管色
  176. ui->guanse->clear();
  177. ui->guanse->addItems(config.guanse);
  178. //捻向
  179. ui->nianxiang->clear();
  180. ui->nianxiang->addItems(config.nianxiang);
  181. //纸箱
  182. ui->zhixiang->clear();
  183. ui->zhixiang->addItems(config.zhixiang);
  184. //筒重
  185. ui->tongzhong->clear();
  186. for(int i = 0;i<config.tongZhong.size();i++){
  187. ui->tongzhong->addItem(QString::number(config.tongZhong.at(i)));
  188. }
  189. tubeNumMin = config.buDingZhongTongShuFanWei.first;
  190. tubeNumMax = config.buDingZhongTongShuFanWei.second;
  191. }
  192. void UncertainWeightPackForm::upDengjiInfo(const QList<DengJiConfigItem> & dengJis)
  193. {
  194. // TODO: 等级信息更新
  195. ui->dengji->clear();
  196. for(int i = 0;i<dengJis.size();i++){
  197. if(!dengJis.at(i).isEnable){
  198. ui->dengji->addItem(dengJis.at(i).value,dengJis.at(i).id);
  199. }
  200. }
  201. }