fixedweightpackform.cpp 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325
  1. #include "fixedweightpackform.h"
  2. #include "ui_fixedweightpackform.h"
  3. #include <pqQtlib/utils/pqfileutils.h>
  4. using namespace PQ;
  5. FixedWeightPackForm::FixedWeightPackForm(QWidget *parent) :
  6. QWidget(parent),
  7. ui(new Ui::FixedWeightPackForm)
  8. {
  9. ui->setupUi(this);
  10. QTimer *timer = new QTimer(this);
  11. connect(timer,&QTimer::timeout,this,&FixedWeightPackForm::calcData);
  12. timer->start(500);
  13. connect(glo,&GlobalInfo::dbConfigUpdated,this,&FixedWeightPackForm::upconfig);
  14. connect(glo,&GlobalInfo::dengJiUped,this,&FixedWeightPackForm::upDengjiInfo);
  15. connect(glo,&GlobalInfo::doInited,this,&FixedWeightPackForm::changeSpecs);
  16. auto dt = CacheFile::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. packServer = new PackInfoSeed2Server(Manger);
  25. }
  26. FixedWeightPackForm::~FixedWeightPackForm()
  27. {
  28. delete ui;
  29. }
  30. //从秤中获取毛重、皮重、净重、筒数------每100毫秒一次
  31. void FixedWeightPackForm::calcData()
  32. {
  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. emit back();
  44. QStringList list;
  45. list << ui->taitou->text() << ui->taiPhone->text();
  46. // CacheFile f;
  47. PQ::CacheFile::writeFile("dingzhongInfo.cache",list.join("[,]").toUtf8());
  48. }
  49. void FixedWeightPackForm::on_addPackList_clicked()
  50. {
  51. if(packinfo.isNull()) return;
  52. if(!packinfo.isNull()&&packinfo->boxes().size()>0){
  53. packinfo->quantity = packinfo->boxes().size();
  54. packinfo->level_id = ui->dengji->currentData().toInt();
  55. packinfo->machine_no = ui->jitai->currentText();
  56. packinfo->carton_type = ui->zhixiang->currentText();
  57. packinfo->customer = ui->taitou->text();
  58. packinfo->telephone = ui->taiPhone->text();
  59. }
  60. // qDebug()<<packinfo->boxes().at(0)->tube_number;
  61. packServer->send(packinfo);
  62. GlobalInfo::this_()->packInfoManger()->savePackInfo(packinfo);
  63. // GlobalInfo::this_()->packInfoManger()->setPackInfoSync(packinfo->codeSingle(),packinfo->time(),true);
  64. GlobalInfo::this_()->printerPack(packinfo);
  65. // //把数据添加到数据库里
  66. // aputils.insertProductSQL(packinfo);
  67. // //TODO: 缓存箱单数据,页面显示情空
  68. // //发送码单 packinfo 数据, 转换为 json数据发送
  69. // aputils.doSend(aputils.toJson(packinfo));
  70. //TODO: 初始化码单信息
  71. packinfo.clear();
  72. }
  73. void FixedWeightPackForm::on_pushStart_clicked()
  74. {
  75. // _info.customer = ui->taitou->text();
  76. // _info.telephone = ui->taiPhone->text();
  77. if(ui->pushStart->isChecked()){
  78. ui->pushStart->setChecked(true);
  79. ui->addBoxList->setDisabled(false);
  80. ui->addPackList->setDisabled(false);
  81. ui->widget_2->setEnabled(false);
  82. ui->pushPiLiang->setDisabled(false);
  83. } else {
  84. // init();
  85. }
  86. }
  87. void FixedWeightPackForm::on_addBoxList_clicked()
  88. {
  89. //当当前箱数大于等于最大箱数是启动on_addPackList_clicked();
  90. if(packinfo->boxes().size() >= ui->comboBox->currentText().toInt()){
  91. on_addPackList_clicked();
  92. }
  93. setTableWidget();//检查packinfo isNull
  94. auto box = packinfo->addBoxInfo();
  95. box->box_weight = int(ui->pizhong->currentText().toDouble()*1000);
  96. box->tube_number = ui->tongshu->text().toInt();
  97. box->bucket_weight = int(ui->pizhong->currentText().toInt()*ui->tongshu->text().toDouble()*1000);
  98. box->gross_weight = int(ui->grossWeight_2->text().toDouble()*1000);
  99. box->net_weight = int(netNum*1000);
  100. box->Level = ui->dengji->currentText();
  101. box->twist_type = ui->nianxiang->currentText();
  102. box->bucket_color = ui->guanse->currentText();
  103. box->sort = "1";
  104. // box->remark = ui->beizhu->toPlainText();
  105. packinfo->level = ui->dengji->currentText();
  106. packinfo->level_id = ui->dengji->currentData().toInt();
  107. ui->tableWidget->setRowCount(ui->tableWidget->rowCount()+1);
  108. addTableWidget(box);
  109. // 把box数据添加到packinfo的boxes数据表里;
  110. packinfo->addBoxInfoList(box);
  111. GlobalInfo::this_()->printerBox(box);
  112. //添加数据库
  113. // aputils.insertDetailsSQL(box,packinfo->codeSingle());
  114. ui->labelTongZHong->setText(QString::number(packinfo->tube_number()));
  115. ui->labelWight->setText(getDecimalbit(packinfo->gross_weight() / 1000.00));
  116. ui->labelJing->setText(getDecimalbit(packinfo->net_weight() / 1000.00));
  117. }
  118. //检查packinfo isNull
  119. void FixedWeightPackForm::setTableWidget()
  120. {
  121. if(packinfo.isNull()){
  122. packinfo.reset(new PackInfo(_info));
  123. packinfo->operator_id = GlobalInfo::this_()->user().userId;
  124. packinfo->packing_time = QDate::currentDate().toString("yy-MM-dd");
  125. packinfo->packing_type = _info->category;
  126. ui->tableWidget->clearContents();
  127. ui->tableWidget->setRowCount(0);
  128. ui->tableWidget->setColumnWidth(0,20);
  129. ui->tableWidget->setColumnWidth(1,20);
  130. ui->tableWidget->setColumnWidth(2,80);
  131. ui->tableWidget->setColumnWidth(3,80);
  132. ui->tableWidget->setColumnWidth(4,80);
  133. ui->tableWidget->setColumnWidth(5,40);
  134. }
  135. }
  136. //往tablewidget里添加数据
  137. void FixedWeightPackForm::addTableWidget(QSharedPointer<BoxInfo> box)
  138. {
  139. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,0,new QTableWidgetItem(QString::number(ui->tableWidget->rowCount())));
  140. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,1,new QTableWidgetItem(QString::number(box->tube_number)));
  141. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,2,new QTableWidgetItem(getDecimalbit(box->gross_weight / 1000.00)));
  142. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,3,new QTableWidgetItem(getDecimalbit(box->box_weight / 1000.00)));
  143. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,4,new QTableWidgetItem(getDecimalbit(box->net_weight / 1000.00)));
  144. ui->tableWidget->setItem(ui->tableWidget->rowCount()-1,5,new QTableWidgetItem(box->caseNumber()));
  145. auto btn_1 = new QPushButton("删除");
  146. auto btn_2 = new QPushButton("修改");
  147. auto btn_3 = new QPushButton("补打");
  148. QWidget *tmp_widget = new QWidget();
  149. QHBoxLayout *tmp_layout = new QHBoxLayout(tmp_widget);
  150. tmp_layout->addWidget(btn_1);
  151. tmp_layout->addWidget(btn_2);
  152. tmp_layout->addWidget(btn_3);
  153. tmp_layout->setMargin(0);
  154. int i = ui->tableWidget->rowCount()-1;
  155. connect(btn_1,&QPushButton::clicked,[i,this](){this->del_clicked(i);});
  156. connect(btn_3,&QPushButton::clicked,[i,this](){this->Makeup_clicked(i);});
  157. ui->tableWidget->setCellWidget(ui->tableWidget->rowCount()-1,6,tmp_widget);
  158. }
  159. void FixedWeightPackForm::init()
  160. {
  161. // ui->pushStart->setChecked(false);
  162. // ui->addBoxList->setDisabled(true);
  163. // ui->addPackList->setDisabled(true);
  164. // ui->pushPiLiang->setDisabled(true);
  165. // ui->widget_2->setEnabled(true);
  166. ui->pizhong->setCurrentText(QString(_info->box_weight));
  167. ui->guanse->setCurrentText(_info->bucket_color);
  168. ui->zhixiang->setCurrentText(_info->carton_type);
  169. ui->tongzhong->setCurrentText(_info->bucket_weight);
  170. ui->comboBox->clear();
  171. for(int i = 1;i<=20;i++){
  172. ui->comboBox->addItem(QString::number(i));
  173. }
  174. ui->comboBox->setCurrentText("20");
  175. setTableWidget();
  176. // specs.getInfo(0,20);
  177. // setTableWidget();//检查packinfo isNull
  178. }
  179. void FixedWeightPackForm::upconfig()
  180. {
  181. DaBaoConfig config = glo->dbConfig();
  182. //机台
  183. ui->jitai->clear();
  184. ui->jitai->addItems(config.jitai);
  185. //打包工班次
  186. ui->comboBox_2->clear();
  187. ui->comboBox_2->addItems(config.daBaoGongBanCi);
  188. //皮重
  189. ui->pizhong->clear();
  190. for(int i = 0;i<config.xiangzhong.size();i++){
  191. ui->pizhong->addItem(QString::number(config.xiangzhong.at(i)));
  192. }
  193. //管色
  194. ui->guanse->clear();
  195. ui->guanse->addItems(config.guanse);
  196. //捻向
  197. ui->nianxiang->clear();
  198. ui->nianxiang->addItems(config.nianxiang);
  199. //纸箱
  200. ui->zhixiang->clear();
  201. ui->zhixiang->addItems(config.zhixiang);
  202. //筒重
  203. ui->tongzhong->clear();
  204. for(int i = 0;i<config.tongZhong.size();i++){
  205. ui->tongzhong->addItem(QString::number(config.tongZhong.at(i)));
  206. }
  207. //设置选择打包界面的数据为首个;
  208. // ui->pizhong->setCurrentText(QString(_info->box_weight));
  209. // ui->guanse->setCurrentText(_info->bucket_color);
  210. // ui->zhixiang->setCurrentText(_info->carton_type);
  211. // ui->tongzhong->setCurrentText(_info->bucket_weight);
  212. }
  213. void FixedWeightPackForm::upDengjiInfo()
  214. {
  215. QList<DengJiConfigItem> dengJis = glo->dengJiList();
  216. ui->dengji->clear();
  217. for(int i = 0;i<dengJis.size();i++){
  218. if(!dengJis.at(i).isEnable){
  219. ui->dengji->addItem(dengJis.at(i).value,dengJis.at(i).id);
  220. }
  221. }
  222. }
  223. void FixedWeightPackForm::on_pushPiLiang_clicked()
  224. {
  225. int tsize = 0;
  226. if(!packinfo.isNull()) tsize = packinfo->boxes().size();
  227. auto size = ui->comboBox->currentText().toInt() - tsize;
  228. for(int i = 0; i < size; ++i){
  229. on_addBoxList_clicked();
  230. }
  231. }
  232. //获取品目信息
  233. void FixedWeightPackForm::on_searchButton_clicked()
  234. {
  235. // specs.getInfo(0,20);
  236. }
  237. void FixedWeightPackForm::changeSpecs()
  238. {
  239. ui->tableWidget_2->clearContents();
  240. ui->tableWidget_2->setRowCount(0);
  241. prolist = GlobalInfo::this_()->project().values();
  242. for(int i = 0; i < prolist.size(); ++i){
  243. auto & v = prolist.at(i);
  244. ui->tableWidget_2->insertRow(i);
  245. auto xuanze_btn = new QRadioButton();
  246. QString batchno = prolist.at(i)->batch_no;
  247. connect(xuanze_btn,&QPushButton::clicked,[batchno,this](){this->xuanZe_clicked(batchno);});
  248. ui->tableWidget_2->setCellWidget(i,0,xuanze_btn);
  249. ui->tableWidget_2->setItem(i,1,new QTableWidgetItem(v->specs));
  250. ui->tableWidget_2->setItem(i,2,new QTableWidgetItem(v->category));
  251. ui->tableWidget_2->setItem(i,3,new QTableWidgetItem(v->batch_no));
  252. ui->tableWidget_2->setItem(i,4,new QTableWidgetItem(v->color));
  253. }
  254. }
  255. void FixedWeightPackForm::xuanZe_clicked(QString batchno)
  256. {
  257. // setProInfo(specs.currtInfo.at(row));
  258. // packConfig.refConfig();
  259. // qDebug()<<batchno;
  260. setProInfo(GlobalInfo::this_()->project().value(batchno));
  261. init();
  262. }
  263. void FixedWeightPackForm::del_clicked(int row)
  264. {
  265. qDebug()<<row;
  266. packinfo->delBoxInfoAt(row);
  267. ui->tableWidget->clear();
  268. ui->tableWidget->setRowCount(0);
  269. for(int i = 0;i<packinfo->boxInfoSize();i++){
  270. ui->tableWidget->setRowCount(ui->tableWidget->rowCount()+1);
  271. addTableWidget(packinfo->boxInfoAt(row));
  272. }
  273. }
  274. void FixedWeightPackForm::Makeup_clicked(int row)
  275. {
  276. }