autopackform.cpp 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. #include "autopackform.h"
  2. #include "ui_autopackform.h"
  3. #include "globalinfo.h"
  4. AutoPackForm::AutoPackForm(QWidget *parent) :
  5. QWidget(parent),
  6. ui(new Ui::AutoPackForm)
  7. {
  8. ui->setupUi(this);
  9. }
  10. AutoPackForm::~AutoPackForm()
  11. {
  12. delete ui;
  13. }
  14. void AutoPackForm::on_pushBack_clicked()
  15. {
  16. doSend(packinfo);
  17. emit back();
  18. }
  19. void AutoPackForm::init()
  20. {
  21. // TODO: 页面进入初始化
  22. ui->pushStart->setChecked(false);
  23. ui->widget->setEnabled(true);
  24. packConfig.refConfig();
  25. connect(&packConfig,&RemotePackConfig::configUpdate,this,&AutoPackForm::upconfig);
  26. connect(&packConfig,&RemotePackConfig::dengJIConfigUp,this,&AutoPackForm::upDengjiInfo);
  27. connect(&_request,&HttpRequest::result,this,&AutoPackForm::httpResult);
  28. ui->comboBox->clear();
  29. for(int i = 0;i<20;i++){
  30. ui->comboBox->addItem(QString::number(i));
  31. }
  32. on_addPackList_clicked();
  33. }
  34. void AutoPackForm::on_addPackList_clicked()
  35. {
  36. //TODO: 缓存箱单数据,页面显示情空
  37. doSend(packinfo);
  38. //TODO: 初始化码单信息
  39. packinfo.reset(new PackInfo(_info));
  40. packinfo->operator_id = GlobalInfo::this_()->user().userId;
  41. }
  42. void AutoPackForm::upconfig(const DaBaoConfig &config)
  43. {
  44. // TODO:打包配置更新
  45. //机台
  46. ui->jitai->clear();
  47. ui->jitai->addItems(config.jitai);
  48. //打包工班次
  49. ui->comboBox_2->clear();
  50. ui->comboBox_2->addItems(config.daBaoGongBanCi);
  51. //皮重
  52. ui->pizhong->clear();
  53. for(int i = 0;i<config.xiangzhong.size();i++){
  54. ui->pizhong->addItem(QString::number(config.xiangzhong.at(i)));
  55. }
  56. //管色
  57. ui->guanse->clear();
  58. ui->guanse->addItems(config.guanse);
  59. //捻向
  60. ui->nianxiang->clear();
  61. ui->nianxiang->addItems(config.nianxiang);
  62. //纸箱
  63. ui->zhixiang->clear();
  64. ui->zhixiang->addItems(config.zhixiang);
  65. //筒重
  66. ui->tongzhong->clear();
  67. for(int i = 0;i<config.tongZhong.size();i++){
  68. ui->tongzhong->addItem(QString::number(config.tongZhong.at(i)));
  69. }
  70. }
  71. void AutoPackForm::upDengjiInfo(const QList<DengJiConfigItem> & dengJis)
  72. {
  73. // TODO: 等级信息更新
  74. ui->dengji->clear();
  75. for(int i = 0;i<dengJis.size();i++){
  76. if(!dengJis.at(i).isEnable){
  77. ui->dengji->addItem(dengJis.at(i).value,dengJis.at(i).id);
  78. }
  79. }
  80. }
  81. void AutoPackForm::on_pushStart_clicked()
  82. {
  83. if(ui->pushStart->isChecked()){
  84. ui->pushStart->setChecked(true);
  85. ui->widget->setEnabled(false);
  86. ui->handleRead->setEnabled(true);
  87. } else {
  88. init();
  89. }
  90. }
  91. void AutoPackForm::doSend(QSharedPointer<PackInfo> &info)
  92. {
  93. if(info.isNull()) return;
  94. //TODO:发送码单 packinfo 数据, 转换为 json数据发送
  95. QJsonObject json = this->toJson(info);
  96. _request.setUserToken(QString::number(GlobalInfo::this_()->user().accountId),GlobalInfo::this_()->user().acessToken);
  97. // _request.post("http://doc.vanlai.net:3001/web/#/1?page_id=64",json);
  98. } // http://doc.vanlai.net:3001/web/#/1?page_id=64
  99. void AutoPackForm::on_addBoxList_clicked()
  100. {
  101. if(packinfo.isNull()) return;
  102. auto box = packinfo->addBoxInfo();
  103. //TODO: 添加箱单 数据
  104. box->box_weight = ui->pizhong->currentText().toInt();
  105. box->tube_number = ui->tongshu->text().toInt();
  106. box->bucket_weight = ui->pizhong->currentText().toInt()*ui->tongshu->text().toInt();
  107. box->gross_weight = ui->grossWeight_2->text().toInt();
  108. box->box_weight = ui->netWeight_2->text().toInt();
  109. box->remark = ui->beizhu->toPlainText();
  110. packinfo->level = ui->dengji->currentText();
  111. packinfo->level_id = ui->dengji->currentData().toInt();
  112. packinfo->addBoxInfoList(box);
  113. insertDetailsSQL(box,packinfo->codeSingle());
  114. //TODO: 缓存数据,显示数据
  115. // emit djmbbox(djmb.printBoxInfo(box->caseNumber(),box));
  116. // qDebug()<<packinfo->boxes().size();
  117. // doSend(packinfo);
  118. }
  119. void AutoPackForm::httpResult(int emitcode, const QJsonObject body)
  120. {
  121. qDebug()<<emitcode;
  122. qDebug()<<body;
  123. database.changeState(packinfo->codeSingle());
  124. }
  125. void AutoPackForm::insertDetailsSQL(QSharedPointer<BoxInfo> boxes,QString codeSingle)
  126. {
  127. detailsData.code_single = codeSingle;
  128. detailsData.case_number = boxes->caseNumber();
  129. detailsData.box_weight = boxes->box_weight;
  130. detailsData.tube_number = boxes->tube_number;
  131. detailsData.bucket_weight = boxes->bucket_weight;
  132. detailsData.gross_weight = boxes->gross_weight;
  133. detailsData.net_weight = boxes->net_weight;
  134. detailsData.sort = boxes->sort;
  135. detailsData.remark = boxes->remark;
  136. if(database.insertDetails(detailsData)){
  137. qDebug()<<"数据库添加失败";
  138. return;
  139. }
  140. qDebug()<<"数据库添加成功";
  141. }
  142. void AutoPackForm::insertProductSQL(QSharedPointer<PackInfo> packes)
  143. {
  144. productData.goods_id = _info.goods_id;
  145. productData.code_single = packes->codeSingle();
  146. productData.quantity = packes->quantity;
  147. productData.level_id = packes->level_id;
  148. productData.tube_number = packes->tube_number();
  149. productData.gross_weight = packes->gross_weight();
  150. productData.net_weight = packes->net_weight();
  151. productData.machine_no = QString::number(packes->machine_no);
  152. productData.packing_time = QString::number(packes->packing_time);
  153. productData.packing_type = QString::number(packes->packing_type);
  154. productData.carton_type = packes->carton_type;
  155. productData.operator_id = packes->operator_id;
  156. productData.remark = packes->remark;
  157. if(database.insertProduct(productData)){
  158. qDebug()<<"数据库添加失败";
  159. return;
  160. }
  161. qDebug()<<"数据库添加失败";
  162. }
  163. //将打包数据转换为json数据
  164. QJsonObject AutoPackForm::toJson(QSharedPointer<PackInfo> &info)
  165. {
  166. QJsonObject json;
  167. QJsonObject detailsjson;
  168. QJsonArray jsonarray;
  169. // for(int i = 0;i<info->boxes().size();i++){
  170. // detailsjson.insert("case_number",info->boxes().at(i)->caseNumber());
  171. // detailsjson.insert("box_weight",info->boxes().at(i)->box_weight);
  172. // detailsjson.insert("tube_number",info->boxes().at(i)->tube_number);
  173. // detailsjson.insert("bucket_weight",info->boxes().at(i)->bucket_weight);
  174. // detailsjson.insert("gross_weight",info->boxes().at(i)->gross_weight);
  175. // detailsjson.insert("net_weight",info->boxes().at(i)->net_weight);
  176. // detailsjson.insert("box_weight",info->boxes().at(i)->box_weight);
  177. // detailsjson.insert("sort",info->boxes().at(i)->sort);
  178. // detailsjson.insert("remark",info->boxes().at(i)->remark);
  179. // jsonarray.append(detailsjson);
  180. // }
  181. // json.insert("goods_id",_info.goods_id);
  182. // json.insert("code_single",info->codeSingle());
  183. // json.insert("quantity",info->quantity);
  184. // json.insert("level_id",info->level_id);
  185. // json.insert("tube_number",info->tube_number());
  186. // json.insert("gross_weight",info->gross_weight());
  187. // json.insert("net_weight",info->net_weight());
  188. // json.insert("machine_no",info->machine_no);
  189. // json.insert("packing_time",info->packing_time);
  190. // json.insert("packing_type",info->packing_type);
  191. // json.insert("carton_type",info->carton_type);
  192. // json.insert("operator",info->operator_id);
  193. // json.insert("details",jsonarray);
  194. // json.insert("remark",info->remark);
  195. for(int i = 0;i<1;i++){
  196. detailsjson.insert("case_number","11234123");
  197. detailsjson.insert("box_weight","123");
  198. detailsjson.insert("tube_number","12");
  199. detailsjson.insert("bucket_weight","23");
  200. detailsjson.insert("gross_weight","412");
  201. detailsjson.insert("net_weight","312");
  202. detailsjson.insert("box_weight","12");
  203. detailsjson.insert("sort","32");
  204. detailsjson.insert("remark","23");
  205. jsonarray.append(detailsjson);
  206. }
  207. json.insert("goods_id","115");
  208. json.insert("code_single","232");
  209. json.insert("quantity","23");
  210. json.insert("level_id","412");
  211. json.insert("tube_number","134");
  212. json.insert("gross_weight","1234");
  213. json.insert("net_weight","1242");
  214. json.insert("machine_no","2341");
  215. json.insert("packing_time","134");
  216. json.insert("packing_type","1234");
  217. json.insert("carton_type","1234");
  218. json.insert("operator","1001");
  219. json.insert("details",jsonarray);
  220. json.insert("remark","1");
  221. return json;
  222. }