fixedweightpackform.cpp 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  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. connect(&specs,&SelectSpecs::change,this,&FixedWeightPackForm::changeSpecs);
  15. CacheFile f;
  16. auto dt = f.readFile("dingzhongInfo.cache");
  17. auto list = QString::fromUtf8(dt).split("[,]");
  18. if(list.size() == 2){
  19. ui->taitou->setText(list.at(0));
  20. ui->taiPhone->setText(list.at(1));
  21. }
  22. ui->tableWidget_2->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
  23. ui->pushStart->hide();
  24. }
  25. FixedWeightPackForm::~FixedWeightPackForm()
  26. {
  27. delete ui;
  28. }
  29. //从秤中获取毛重、皮重、净重、筒数------每100毫秒一次
  30. void FixedWeightPackForm::calcData()
  31. {
  32. ui->grossWeight_2->setText(QString::number(GlobalInfo::this_()->GetScaleData().gross_widget));
  33. // ui->grossWeight_2->setText(ui->type->currentText());
  34. netNum = ui->grossWeight_2->text().toDouble()-ui->pizhong->currentText().toDouble()-ui->tongshu->text().toDouble()*ui->tongzhong->currentText().toDouble();
  35. if(netNum<0){
  36. netNum = 0.00;
  37. }
  38. // ui->netWeight_2->setText(QString::number(netNum));
  39. // ui->tongshu->setText(QString::number(GlobalInfo::this_()->GetScaleData().tongshu));
  40. }
  41. void FixedWeightPackForm::on_pushBack_clicked()
  42. {
  43. if(!packinfo.isNull()){
  44. aputils.insertProductSQL(packinfo);
  45. aputils.doSend(aputils.toJson(packinfo));
  46. }
  47. emit back();
  48. QStringList list;
  49. list << ui->taitou->text() << ui->taiPhone->text();
  50. CacheFile f;
  51. f.writeFile("dingzhongInfo.cache",list.join("[,]").toUtf8());
  52. }
  53. void FixedWeightPackForm::on_addPackList_clicked()
  54. {
  55. if(packinfo.isNull()) return;
  56. if(!packinfo.isNull()&&packinfo->boxes().size()>0){
  57. packinfo->quantity = packinfo->boxes().size();
  58. packinfo->level_id = ui->dengji->currentData().toInt();
  59. packinfo->machine_no = ui->jitai->currentText();
  60. packinfo->carton_type = ui->zhixiang->currentText();
  61. }
  62. //把数据添加到数据库里
  63. aputils.insertProductSQL(packinfo);
  64. //TODO: 缓存箱单数据,页面显示情空
  65. //发送码单 packinfo 数据, 转换为 json数据发送
  66. aputils.doSend(aputils.toJson(packinfo));
  67. //TODO: 初始化码单信息
  68. packinfo.clear();
  69. }
  70. void FixedWeightPackForm::on_pushStart_clicked()
  71. {
  72. _info.customer = ui->taitou->text();
  73. _info.telephone = ui->taiPhone->text();
  74. if(ui->pushStart->isChecked()){
  75. ui->pushStart->setChecked(true);
  76. ui->addBoxList->setDisabled(false);
  77. ui->addPackList->setDisabled(false);
  78. ui->widget_2->setEnabled(false);
  79. ui->pushPiLiang->setDisabled(false);
  80. } else {
  81. init();
  82. }
  83. }
  84. void FixedWeightPackForm::on_addBoxList_clicked()
  85. {
  86. if(packinfo.isNull()){
  87. packinfo.reset(new PackInfo(_info));
  88. packinfo->operator_id = GlobalInfo::this_()->user().userId;
  89. packinfo->packing_time = QDate::currentDate().toString("yy-MM-dd");
  90. packinfo->packing_type = _info.category;
  91. ui->tableWidget->clearContents();
  92. ui->tableWidget->setRowCount(0);
  93. ui->tableWidget->setColumnWidth(0,20);
  94. ui->tableWidget->setColumnWidth(1,20);
  95. ui->tableWidget->setColumnWidth(2,80);
  96. ui->tableWidget->setColumnWidth(3,80);
  97. ui->tableWidget->setColumnWidth(4,80);
  98. ui->tableWidget->setColumnWidth(5,40);
  99. }
  100. auto box = packinfo->addBoxInfo();
  101. box->box_weight = int(ui->pizhong->currentText().toDouble()*1000);
  102. box->tube_number = ui->tongshu->text().toInt();
  103. box->bucket_weight = int(ui->pizhong->currentText().toInt()*ui->tongshu->text().toDouble()*1000);
  104. box->gross_weight = int(ui->grossWeight_2->text().toDouble()*1000);
  105. box->net_weight = int(netNum*1000);
  106. box->Level = ui->dengji->currentText();
  107. box->twist_type = ui->nianxiang->currentText();
  108. box->bucket_color = ui->guanse->currentText();
  109. box->sort = "1";
  110. // box->remark = ui->beizhu->toPlainText();
  111. packinfo->level = ui->dengji->currentText();
  112. packinfo->level_id = ui->dengji->currentData().toInt();
  113. ui->tableWidget->setRowCount(ui->tableWidget->rowCount()+1);
  114. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,0,new QTableWidgetItem(QString::number(ui->tableWidget->rowCount())));
  115. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,1,new QTableWidgetItem(QString::number(box->tube_number)));
  116. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,2,new QTableWidgetItem(getDecimalbit(box->gross_weight / 1000.00)));
  117. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,3,new QTableWidgetItem(getDecimalbit(box->box_weight / 1000.00)));
  118. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,4,new QTableWidgetItem(getDecimalbit(box->net_weight / 1000.00)));
  119. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,5,new QTableWidgetItem(box->caseNumber()));
  120. // 把box数据添加到packinfo的boxes数据表里;
  121. packinfo->addBoxInfoList(box);
  122. //添加数据库
  123. aputils.insertDetailsSQL(box,packinfo->codeSingle());
  124. ui->labelTongZHong->setText(QString::number(packinfo->tube_number()));
  125. ui->labelWight->setText(getDecimalbit(packinfo->gross_weight() / 1000.00));
  126. ui->labelJing->setText(getDecimalbit(packinfo->net_weight() / 1000.00));
  127. //当当前箱数大于等于最大箱数是启动on_addPackList_clicked();
  128. if(packinfo->boxes().size() >= ui->comboBox->currentText().toInt()){
  129. on_addPackList_clicked();
  130. }
  131. }
  132. void FixedWeightPackForm::init()
  133. {
  134. ui->pushStart->setChecked(false);
  135. ui->addBoxList->setDisabled(true);
  136. ui->addPackList->setDisabled(true);
  137. ui->pushPiLiang->setDisabled(true);
  138. ui->widget_2->setEnabled(true);
  139. packConfig.refConfig();
  140. ui->comboBox->clear();
  141. for(int i = 1;i<=20;i++){
  142. ui->comboBox->addItem(QString::number(i));
  143. }
  144. ui->comboBox->setCurrentText("20");
  145. specs.getInfo(0,20);
  146. // on_addPackList_clicked();
  147. }
  148. void FixedWeightPackForm::upconfig(const DaBaoConfig &config)
  149. {
  150. //机台
  151. ui->jitai->clear();
  152. ui->jitai->addItems(config.jitai);
  153. //打包工班次
  154. ui->comboBox_2->clear();
  155. ui->comboBox_2->addItems(config.daBaoGongBanCi);
  156. //皮重
  157. ui->pizhong->clear();
  158. for(int i = 0;i<config.xiangzhong.size();i++){
  159. ui->pizhong->addItem(QString::number(config.xiangzhong.at(i)));
  160. }
  161. //管色
  162. ui->guanse->clear();
  163. ui->guanse->addItems(config.guanse);
  164. //捻向
  165. ui->nianxiang->clear();
  166. ui->nianxiang->addItems(config.nianxiang);
  167. //纸箱
  168. ui->zhixiang->clear();
  169. ui->zhixiang->addItems(config.zhixiang);
  170. //筒重
  171. ui->tongzhong->clear();
  172. for(int i = 0;i<config.tongZhong.size();i++){
  173. ui->tongzhong->addItem(QString::number(config.tongZhong.at(i)));
  174. }
  175. //设置选择打包界面的数据为首个;
  176. ui->pizhong->setCurrentText(QString(_info.box_weight));
  177. ui->guanse->setCurrentText(_info.bucket_color);
  178. ui->zhixiang->setCurrentText(_info.carton_type);
  179. ui->tongzhong->setCurrentText(_info.bucket_weight);
  180. }
  181. void FixedWeightPackForm::upDengjiInfo(const QList<DengJiConfigItem> & dengJis)
  182. {
  183. ui->dengji->clear();
  184. for(int i = 0;i<dengJis.size();i++){
  185. if(!dengJis.at(i).isEnable){
  186. ui->dengji->addItem(dengJis.at(i).value,dengJis.at(i).id);
  187. }
  188. }
  189. }
  190. void FixedWeightPackForm::on_pushPiLiang_clicked()
  191. {
  192. int tsize = 0;
  193. if(!packinfo.isNull()) tsize = packinfo->boxes().size();
  194. auto size = ui->comboBox->currentText().toInt() - tsize;
  195. for(int i = 0; i < size; ++i){
  196. on_addBoxList_clicked();
  197. }
  198. }
  199. //获取品目信息
  200. void FixedWeightPackForm::on_searchButton_clicked()
  201. {
  202. specs.getInfo(0,20);
  203. }
  204. void FixedWeightPackForm::changeSpecs()
  205. {
  206. ui->tableWidget_2->clearContents();
  207. ui->tableWidget_2->setRowCount(0);
  208. for(int i = 0; i < specs.currtInfo.size(); ++i){
  209. auto & v = specs.currtInfo.at(i);
  210. ui->tableWidget_2->insertRow(i);
  211. auto xuanze_btn = new QRadioButton();
  212. connect(xuanze_btn,&QPushButton::clicked,[i,this](){this->xuanze_clicked(i);});
  213. ui->tableWidget_2->setCellWidget(i,0,xuanze_btn);
  214. ui->tableWidget_2->setItem(i,1,new QTableWidgetItem(v.specs));
  215. ui->tableWidget_2->setItem(i,2,new QTableWidgetItem(v.category));
  216. ui->tableWidget_2->setItem(i,3,new QTableWidgetItem(v.batch_no));
  217. ui->tableWidget_2->setItem(i,4,new QTableWidgetItem(v.color));
  218. }
  219. }
  220. void FixedWeightPackForm::xuanze_clicked(int row)
  221. {
  222. }