remotepackconfig.h 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. #ifndef REMOTEPACKCONFIG_H
  2. #define REMOTEPACKCONFIG_H
  3. #include <QObject>
  4. #include "httprequest.h"
  5. #include <QJsonArray>
  6. #include <QPair>
  7. #include <functional>
  8. struct DIYPackConfig
  9. {
  10. int type;//包装类型
  11. int danDianXiaXian;//單点下限
  12. int danDianShangXian;//單点上限
  13. int jingZhongShangXian;//净重上限
  14. int jingZhongXiaXian;//净重下限
  15. };
  16. struct POYPackConfig
  17. {
  18. int type;//包装类型
  19. int jingZhongShangXian;//净重上限
  20. int jingZhongXiaXian;//净重下限
  21. };
  22. struct DaBaoConfig
  23. {
  24. //基础配置
  25. QStringList jitai;//机台
  26. QStringList dangchegongbanci;//挡车工班次
  27. QStringList daBaoGongBanCi;//打包工班次
  28. QList<double> xiangzhong;//箱重
  29. QList<double> tongZhong;// 桶重
  30. QStringList guanse;//管色
  31. QStringList nianxiang;//捻向
  32. QStringList zhixiang;//纸箱
  33. QList<int> mashu;//码数
  34. QStringList cheZhong;//车重
  35. QStringList gangHao;//缸号
  36. int xiangHaoXianShiGuiZe;//箱号显示规则
  37. int daBaoRiQiXianShiFangShi;//打包日期时间显示方式
  38. bool daBaoRuku;//打包即入库
  39. //打包配置
  40. bool ziDongDushu; //自动读数开启
  41. bool buDingZhongDaBaoXianzhi;//不定重打包筒数限制开启
  42. bool dingZhongDaBaoXianZhiKaiQi;//定重打包筒数限制开启
  43. bool jiTaiBangDingMaDan; //机台绑定码单
  44. bool morenTongZhongGUDing ;// 默认筒重固定
  45. bool morenXiandhiMaoZhong;//默认显示毛重
  46. bool morenDaYinRuKuMadan;//默认打印入库码单
  47. bool morenBudingZhongMaoZhongXianZhi;//默认不定重毛重限制
  48. bool daBaoZhuangLeiXingGuiZeKaiQi;//大包装类型规则开启
  49. bool daBaoZhuangMaoZhongXianZhiKaiQi;//大包装毛重限制开启
  50. bool pingBanZiDongTongBuShuJu;// 平板自动同步数据
  51. bool ziDongDaBaoKaiQi;//自动打包开启
  52. int chengZhongJIngDu;//称重精度
  53. int chengZhongJingDuMode; // 0 四舍五入,1 二舍三入,2 一舍二入
  54. QPair<int,int> buDingZhongTongShuFanWei;//不定重筒数范围
  55. QPair<int,int> dingZhongTongShuFanwei;//定重筒数范围
  56. int morenRuKuMaDanFenShu;//默认入库码单份数
  57. QPair<int,int> buDingZhongXianZhiFanWei;//不定重毛重限制范围
  58. int daBaoZhuangDaYinXiangDanFenShu;//默认大包装打印箱单份数
  59. int daBaoZhuangMaoZhongFanWei;//大包装毛重范围
  60. int ziDongDaBaoXiangZhongFanWei;//自动打包箱重范围
  61. int zidongDaBaoMaoZhongFanWei;//自动打包毛重范围
  62. //出库配置
  63. bool morenDaYinHuaMaDan;//默认打印划码单
  64. bool morenXiaoShouXianShiJinE;//默认销售单显示金额
  65. bool morenDayinXiaoShouMinXidan;//默认打印销售明细单
  66. bool morenDaYinXIaoShouDan;//默认打印销售单
  67. bool morenXianShiQianKuan;//默认销售单显示欠款
  68. bool xiaoShouEJingDu;//销售额精度
  69. //DIY配置
  70. QList<DIYPackConfig> diys;
  71. //POY配置
  72. QList<POYPackConfig> poys;
  73. };
  74. struct DengJiConfigItem
  75. {
  76. int id;
  77. QString value;
  78. bool isEnable;
  79. };
  80. struct WarehouseConfig
  81. {
  82. int warehouse_id;
  83. QString serial_number;
  84. QString name;
  85. int factory_id;
  86. QString factory_name;
  87. QString remark;
  88. int is_disable;
  89. int create_time;
  90. int modified_time;
  91. };
  92. class RemotePackConfig : public QObject
  93. {
  94. Q_OBJECT
  95. public:
  96. explicit RemotePackConfig(QObject *parent = nullptr);
  97. inline HttpRequest & request() {return _request;}
  98. typedef std::function<void (const QJsonObject & obj)> ParseFun;
  99. signals:
  100. void configUpdate(const DaBaoConfig & config);
  101. void dengJIConfigUp(const QList<DengJiConfigItem> & dengJis);
  102. void wareConfigUp(const QList<WarehouseConfig> & ware);
  103. void configUpdateError(int code,const QString & msg);
  104. public slots:
  105. void refConfig();
  106. void refWarehouse();
  107. private slots:
  108. void result(int code, const QJsonObject & body);
  109. void WareResult(int code,const QJsonObject & body);
  110. void refDengJiList();
  111. private:
  112. QStringList getConfigStringList(const QJsonObject & obj);
  113. QList<double> getConfigStringDouble(const QJsonObject & data);
  114. QList<int> getConfigStringInt(const QJsonObject & data);
  115. bool getConfigBool(const QJsonObject & data);
  116. int getConfigInt(const QJsonObject & data);
  117. QPair<int,int> daBaoJingDu(const QJsonObject & data);
  118. QPair<int,int> getConfigpAIR(const QJsonObject & data);
  119. QList<DIYPackConfig> getDiys(const QJsonObject & data);
  120. QList<POYPackConfig> getPoys(const QJsonObject & data);
  121. private:
  122. HttpRequest _request;
  123. HttpRequest _WareRequest;
  124. DaBaoConfig _config;
  125. QList<DengJiConfigItem> dengji;
  126. QList<WarehouseConfig> Warehouse;
  127. QMap<QString,ParseFun> parsefUNS;
  128. bool getDdengji;
  129. };
  130. #endif // REMOTEPACKCONFIG_H