autopackutils.cpp 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  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(QJsonObject json)
  14. {
  15. if(GlobalInfo::this_()->isNoLine){
  16. return;
  17. }
  18. if(json.isEmpty()) return;
  19. //保存码单,上传服务器成功后,以codeSingle为条件更改同步字段;
  20. this->codeSingle = json["code_single"].toString();
  21. // qDebug()<<codeSingle;
  22. _request.setUserToken(QString::number(GlobalInfo::this_()->user().accountId),GlobalInfo::this_()->user().acessToken);
  23. // qDebug()<<QString::number(GlobalInfo::this_()->user().accountId);
  24. // qDebug()<<GlobalInfo::this_()->user().acessToken;
  25. _request.post(GlobalInfo::this_()->config().baseUrl+"/v1/product/pending",json);
  26. }
  27. void AutoPackUtils::httpResult(int emitcode, const QJsonObject body)
  28. {
  29. qDebug()<<emitcode;
  30. qDebug()<<body;
  31. if(emitcode==200&&body["message"].toString() == ""){
  32. if(database.changeState(codeSingle)){
  33. qDebug()<<"同步成功";
  34. return;
  35. }
  36. qDebug()<<"同步失败";
  37. }
  38. }
  39. //把BoxInfo数据添加到deetails数据库里;
  40. void AutoPackUtils::insertDetailsSQL(QSharedPointer<BoxInfo> boxes,QString codeSingle)
  41. {
  42. // qDebug()<<boxes->caseNumber();
  43. djmb.printBoxInfo(codeSingle,boxes);
  44. detailsData.code_single = codeSingle;
  45. detailsData.case_number = boxes->caseNumber();
  46. detailsData.box_weight = boxes->box_weight;
  47. detailsData.tube_number = boxes->tube_number;
  48. detailsData.bucket_weight = boxes->bucket_weight;
  49. detailsData.gross_weight = boxes->gross_weight;
  50. detailsData.net_weight = boxes->net_weight;
  51. detailsData.sort = boxes->sort;
  52. detailsData.remark = boxes->remark;
  53. if(database.insertDetails(detailsData)){
  54. qDebug()<<"details数据库添加成功";
  55. return;
  56. }
  57. qDebug()<<"details数据库添加失败";
  58. }
  59. //把PackInfo添加到product数据库里;
  60. void AutoPackUtils::insertProductSQL(QSharedPointer<PackInfo> packes)
  61. {
  62. if(packes.isNull()) return;
  63. if(packes->boxes().isEmpty()) return;
  64. djmb.printPackInfo(packes->codeSingle(),packes);
  65. productData.goods_id = packes->goodsID();
  66. productData.code_single = packes->codeSingle();
  67. productData.quantity = packes->quantity;
  68. productData.batch_no = packes->info().batch_no;
  69. productData.category = packes->info().category;
  70. productData.level_id = packes->level_id;
  71. productData.tube_number = packes->tube_number();
  72. productData.gross_weight = packes->gross_weight();
  73. productData.net_weight = packes->net_weight();
  74. productData.machine_no = packes->machine_no;
  75. productData.packing_time = packes->packing_time;
  76. productData.packing_type = packes->packing_type;
  77. productData.carton_type = packes->carton_type;
  78. productData.operator_id = packes->operator_id;
  79. productData.specs = packes->info().specs;
  80. productData.denier = packes->info().denier;
  81. productData.dtex = packes->info().dtex;
  82. productData.fiber = packes->info().fiber;
  83. productData.remark = packes->remark;
  84. if(database.insertProduct(productData)){
  85. qDebug()<<"product数据库添加成功";
  86. return;
  87. }
  88. qDebug()<<"product数据库添加失败";
  89. }
  90. //将打包数据转换为json数据
  91. QJsonObject AutoPackUtils::toJson(QSharedPointer<PackInfo> &info)
  92. {
  93. QJsonObject json;
  94. json.empty();
  95. if(info.isNull()) return json;
  96. if(info->boxes().isEmpty()) return json;
  97. QJsonObject detailsjson;
  98. QJsonArray jsonarray;
  99. for(int i = 0;i<info->boxes().size();i++){
  100. detailsjson.insert("case_number",info->boxes().at(i)->caseNumber());
  101. detailsjson.insert("box_weight",info->boxes().at(i)->box_weight);
  102. detailsjson.insert("tube_number",info->boxes().at(i)->tube_number);
  103. detailsjson.insert("bucket_weight",info->boxes().at(i)->bucket_weight);
  104. detailsjson.insert("gross_weight",info->boxes().at(i)->gross_weight);
  105. detailsjson.insert("net_weight",info->boxes().at(i)->net_weight);
  106. detailsjson.insert("box_weight",info->boxes().at(i)->box_weight);
  107. detailsjson.insert("sort",info->boxes().at(i)->sort);
  108. detailsjson.insert("remark",info->boxes().at(i)->remark);
  109. jsonarray.append(detailsjson);
  110. }
  111. json.insert("goods_id",info->goodsID());
  112. json.insert("code_single",info->codeSingle());
  113. json.insert("quantity",info->quantity);
  114. json.insert("level_id",info->level_id);
  115. json.insert("tube_number",info->tube_number());
  116. json.insert("gross_weight",info->gross_weight());
  117. json.insert("net_weight",info->net_weight());
  118. json.insert("machine_no",info->machine_no);
  119. json.insert("packing_time",info->packing_time);
  120. json.insert("packing_type",info->packing_type);
  121. json.insert("carton_type",info->carton_type);
  122. json.insert("operator",info->operator_id);
  123. json.insert("details",jsonarray);
  124. json.insert("remark",info->remark);
  125. return json;
  126. }
  127. QJsonObject AutoPackUtils::toJsonMap(QMap<QString,QString> product,QList<QMap<QString,QString>> details)
  128. {
  129. // qDebug()<<"自动打包测试";
  130. // qDebug()<<details.at(0).value("code_single");
  131. QJsonObject json;
  132. QJsonObject detailsjson;
  133. QJsonArray jsonarray;
  134. if(product.isEmpty()){
  135. qDebug()<<"product数据为空";
  136. return json;
  137. }
  138. if(details.isEmpty()){
  139. qDebug()<<"details数据为空";
  140. return json;
  141. }
  142. for(int i = 0;i<details.length();i++){
  143. detailsjson.insert("case_number",details.at(i).value("case_number"));
  144. detailsjson.insert("box_weight",details.at(i).value("box_weight"));
  145. detailsjson.insert("tube_number",details.at(i).value("tube_number"));
  146. detailsjson.insert("bucket_weight",details.at(i).value("bucket_weight"));
  147. detailsjson.insert("gross_weight",details.at(i).value("gross_weight"));
  148. detailsjson.insert("net_weight",details.at(i).value("net_weight"));
  149. detailsjson.insert("box_weight",details.at(i).value("box_weight"));
  150. detailsjson.insert("sort",details.at(i).value("sort"));
  151. detailsjson.insert("remark",details.at(i).value("remark"));
  152. jsonarray.append(detailsjson);
  153. }
  154. json.insert("goods_id",product.value("goods_id"));
  155. json.insert("code_single",product.value("code_single"));
  156. json.insert("quantity",product.value("quantity"));
  157. json.insert("level_id",product.value("level_id"));
  158. json.insert("tube_number",product.value("tube_number"));
  159. json.insert("gross_weight",product.value("gross_weight"));
  160. json.insert("net_weight",product.value("net_weight"));
  161. json.insert("machine_no",product.value("machine_no"));
  162. json.insert("packing_time",product.value("packing_time"));
  163. json.insert("packing_type",product.value("packing_type"));
  164. json.insert("carton_type",product.value("carton_type"));
  165. json.insert("operator",product.value("operator_id"));
  166. json.insert("details",jsonarray);
  167. json.insert("remark",product.value("remark"));
  168. return json;
  169. }