uncertainweightpackform.cpp 9.0 KB

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