remotepackconfig.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  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. class RemotePackConfig : public QObject
  81. {
  82. Q_OBJECT
  83. public:
  84. explicit RemotePackConfig(QObject *parent = nullptr);
  85. inline HttpRequest & request() {return _request;}
  86. typedef std::function<void (const QJsonObject & obj)> ParseFun;
  87. signals:
  88. void configUpdate(const DaBaoConfig & config);
  89. void dengJIConfigUp(const QList<DengJiConfigItem> & dengJis);
  90. void configUpdateError(int code,const QString & msg);
  91. public slots:
  92. void refConfig();
  93. private slots:
  94. void result(int code, const QJsonObject & body);
  95. void refDengJiList();
  96. private:
  97. QStringList getConfigStringList(const QJsonObject & obj);
  98. QList<double> getConfigStringDouble(const QJsonObject & data);
  99. QList<int> getConfigStringInt(const QJsonObject & data);
  100. bool getConfigBool(const QJsonObject & data);
  101. int getConfigInt(const QJsonObject & data);
  102. QPair<int,int> daBaoJingDu(const QJsonObject & data);
  103. QPair<int,int> getConfigpAIR(const QJsonObject & data);
  104. QList<DIYPackConfig> getDiys(const QJsonObject & data);
  105. QList<POYPackConfig> getPoys(const QJsonObject & data);
  106. private:
  107. HttpRequest _request;
  108. DaBaoConfig _config;
  109. QList<DengJiConfigItem> dengji;
  110. QMap<QString,ParseFun> parsefUNS;
  111. bool getDdengji;
  112. };
  113. #endif // REMOTEPACKCONFIG_H