autopackutils.cpp 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. #include "autopackutils.h"
  2. /**
  3. * @brief AutoPackForm工具类
  4. */
  5. AutoPackUtils::AutoPackUtils()
  6. {
  7. connect(&_request,&HttpRequest::result,this,&AutoPackUtils::httpResult);
  8. }
  9. /**
  10. * @brief 把打包数据存入本地数据库后,上传服务器打包数据
  11. * @param info
  12. */
  13. void AutoPackUtils::doSend(QSharedPointer<PackInfo> &info)
  14. {
  15. if(info.isNull()) return;
  16. //把数据添加到数据库里
  17. insertProductSQL(info);
  18. //TODO:发送码单 packinfo 数据, 转换为 json数据发送
  19. QJsonObject json = toJson(info);
  20. _request.setUserToken(QString::number(GlobalInfo::this_()->user().accountId),GlobalInfo::this_()->user().acessToken);
  21. // qDebug()<<QString::number(GlobalInfo::this_()->user().accountId);
  22. // qDebug()<<GlobalInfo::this_()->user().acessToken;
  23. // _request.post(GlobalInfo::this_()->config().autoPackUrl,json);
  24. // qDebug()<<json;
  25. } // http://doc.vanlai.net:3001/web/#/1?page_id=64
  26. void AutoPackUtils::httpResult(int emitcode, const QJsonObject body)
  27. {
  28. qDebug()<<emitcode;
  29. qDebug()<<body;
  30. if(emitcode==200&&body["product_id"].toInt()!=0){
  31. database.changeState(codeSingle);
  32. }
  33. }
  34. //把BoxInfo数据添加到deetails数据库里;
  35. void AutoPackUtils::insertDetailsSQL(QSharedPointer<BoxInfo> boxes,QString codeSingle)
  36. {
  37. // qDebug()<<boxes->caseNumber();
  38. detailsData.code_single = codeSingle;
  39. detailsData.case_number = boxes->caseNumber();
  40. detailsData.box_weight = boxes->box_weight;
  41. detailsData.tube_number = boxes->tube_number;
  42. detailsData.bucket_weight = boxes->bucket_weight;
  43. detailsData.gross_weight = boxes->gross_weight;
  44. detailsData.net_weight = boxes->net_weight;
  45. detailsData.sort = boxes->sort;
  46. detailsData.remark = boxes->remark;
  47. if(database.insertDetails(detailsData)){
  48. qDebug()<<"details数据库添加成功";
  49. return;
  50. }
  51. qDebug()<<"details数据库添加失败";
  52. }
  53. //把PackInfo添加到product数据库里;
  54. void AutoPackUtils::insertProductSQL(QSharedPointer<PackInfo> packes)
  55. {
  56. //保存码单,上传服务器成功后,以codeSingle为条件更改同步字段;
  57. this->codeSingle = packes->codeSingle();
  58. productData.goods_id = packes->goodsID();
  59. productData.code_single = packes->codeSingle();
  60. productData.quantity = packes->quantity;
  61. productData.batch_no = packes->info().batch_no;
  62. productData.category = packes->info().category;
  63. productData.level_id = packes->level_id;
  64. productData.tube_number = packes->tube_number();
  65. productData.gross_weight = packes->gross_weight();
  66. productData.net_weight = packes->net_weight();
  67. productData.machine_no = packes->machine_no;
  68. productData.packing_time = packes->packing_time;
  69. productData.packing_type = packes->packing_type;
  70. productData.carton_type = packes->carton_type;
  71. productData.operator_id = packes->operator_id;
  72. productData.remark = packes->remark;
  73. if(database.insertProduct(productData)){
  74. qDebug()<<"product数据库添加成功";
  75. return;
  76. }
  77. qDebug()<<"product数据库添加失败";
  78. }
  79. //将打包数据转换为json数据
  80. QJsonObject AutoPackUtils::toJson(QSharedPointer<PackInfo> &info)
  81. {
  82. QJsonObject json;
  83. QJsonObject detailsjson;
  84. QJsonArray jsonarray;
  85. for(int i = 0;i<info->boxes().size();i++){
  86. detailsjson.insert("case_number",info->boxes().at(i)->caseNumber());
  87. detailsjson.insert("box_weight",info->boxes().at(i)->box_weight);
  88. detailsjson.insert("tube_number",info->boxes().at(i)->tube_number);
  89. detailsjson.insert("bucket_weight",info->boxes().at(i)->bucket_weight);
  90. detailsjson.insert("gross_weight",info->boxes().at(i)->gross_weight);
  91. detailsjson.insert("net_weight",info->boxes().at(i)->net_weight);
  92. detailsjson.insert("box_weight",info->boxes().at(i)->box_weight);
  93. detailsjson.insert("sort",info->boxes().at(i)->sort);
  94. detailsjson.insert("remark",info->boxes().at(i)->remark);
  95. jsonarray.append(detailsjson);
  96. }
  97. json.insert("goods_id",info->goodsID());
  98. json.insert("code_single",info->codeSingle());
  99. json.insert("quantity",info->quantity);
  100. json.insert("level_id",info->level_id);
  101. json.insert("tube_number",info->tube_number());
  102. json.insert("gross_weight",info->gross_weight());
  103. json.insert("net_weight",info->net_weight());
  104. json.insert("machine_no",info->machine_no);
  105. json.insert("packing_time",info->packing_time);
  106. json.insert("packing_type",info->packing_type);
  107. json.insert("carton_type",info->carton_type);
  108. json.insert("operator",info->operator_id);
  109. json.insert("details",jsonarray);
  110. json.insert("remark",info->remark);
  111. return json;
  112. }