remotepackconfig.h 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  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. QStringList pinZhong;//品种
  37. int xiangHaoXianShiGuiZe;//箱号显示规则
  38. int daBaoRiQiXianShiFangShi;//打包日期时间显示方式
  39. bool daBaoRuku;//打包即入库
  40. //打包配置
  41. bool ziDongDushu; //自动读数开启
  42. bool buDingZhongDaBaoXianzhi;//不定重打包筒数限制开启
  43. bool dingZhongDaBaoXianZhiKaiQi;//定重打包筒数限制开启
  44. bool jiTaiBangDingMaDan; //机台绑定码单
  45. bool morenTongZhongGUDing ;// 默认筒重固定
  46. bool morenXiandhiMaoZhong;//默认显示毛重
  47. bool morenDaYinRuKuMadan;//默认打印入库码单
  48. bool morenBudingZhongMaoZhongXianZhi;//默认不定重毛重限制
  49. bool daBaoZhuangLeiXingGuiZeKaiQi;//大包装类型规则开启
  50. bool daBaoZhuangMaoZhongXianZhiKaiQi;//大包装毛重限制开启
  51. bool pingBanZiDongTongBuShuJu;// 平板自动同步数据
  52. bool ziDongDaBaoKaiQi;//自动打包开启
  53. int chengZhongJIngDu;//称重精度
  54. int chengZhongJingDuMode; // 0 四舍五入,1 二舍三入,2 一舍二入
  55. QPair<int,int> buDingZhongTongShuFanWei;//不定重筒数范围
  56. QPair<int,int> dingZhongTongShuFanwei;//定重筒数范围
  57. int morenRuKuMaDanFenShu;//默认入库码单份数
  58. QPair<int,int> buDingZhongXianZhiFanWei;//不定重毛重限制范围
  59. int daBaoZhuangDaYinXiangDanFenShu;//默认大包装打印箱单份数
  60. int daBaoZhuangMaoZhongFanWei;//大包装毛重范围
  61. int ziDongDaBaoXiangZhongFanWei;//自动打包箱重范围
  62. int zidongDaBaoMaoZhongFanWei;//自动打包毛重范围
  63. //出库配置
  64. bool morenDaYinHuaMaDan;//默认打印划码单
  65. bool morenXiaoShouXianShiJinE;//默认销售单显示金额
  66. bool morenDayinXiaoShouMinXidan;//默认打印销售明细单
  67. bool morenDaYinXIaoShouDan;//默认打印销售单
  68. bool morenXianShiQianKuan;//默认销售单显示欠款
  69. bool xiaoShouEJingDu;//销售额精度
  70. //DIY配置
  71. QList<DIYPackConfig> diys;
  72. //POY配置
  73. QList<POYPackConfig> poys;
  74. };
  75. struct DengJiConfigItem
  76. {
  77. int id;
  78. QString value;
  79. bool isEnable;
  80. };
  81. struct WarehouseConfig
  82. {
  83. int warehouse_id;
  84. QString serial_number;
  85. QString name;
  86. int factory_id;
  87. QString factory_name;
  88. QString remark;
  89. int is_disable;
  90. int create_time;
  91. int modified_time;
  92. };
  93. class RemotePackConfig : public QObject
  94. {
  95. Q_OBJECT
  96. public:
  97. explicit RemotePackConfig(QObject *parent = nullptr);
  98. inline HttpRequest & request() {return _request;}
  99. typedef std::function<void (const QJsonObject & obj)> ParseFun;
  100. signals:
  101. void configUpdate(const DaBaoConfig & config);
  102. void dengJIConfigUp(const QList<DengJiConfigItem> & dengJis);
  103. void wareConfigUp(const QList<WarehouseConfig> & ware);
  104. void configUpdateError(int code,const QString & msg);
  105. public slots:
  106. void refConfig();
  107. void refWarehouse();
  108. private slots:
  109. void result(int code, const QJsonObject & body);
  110. void WareResult(int code,const QJsonObject & body);
  111. void refDengJiList();
  112. private:
  113. QStringList getConfigStringList(const QJsonObject & obj);
  114. QList<double> getConfigStringDouble(const QJsonObject & data);
  115. QList<int> getConfigStringInt(const QJsonObject & data);
  116. bool getConfigBool(const QJsonObject & data);
  117. int getConfigInt(const QJsonObject & data);
  118. QPair<int,int> daBaoJingDu(const QJsonObject & data);
  119. QPair<int,int> getConfigpAIR(const QJsonObject & data);
  120. QList<DIYPackConfig> getDiys(const QJsonObject & data);
  121. QList<POYPackConfig> getPoys(const QJsonObject & data);
  122. private:
  123. HttpRequest _request;
  124. HttpRequest _WareRequest;
  125. DaBaoConfig _config;
  126. QList<DengJiConfigItem> dengji;
  127. QList<WarehouseConfig> Warehouse;
  128. QMap<QString,ParseFun> parsefUNS;
  129. bool getDdengji;
  130. };
  131. #endif // REMOTEPACKCONFIG_H