PrinterUtil.java 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. package com.fuint.common.util;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.TypeReference;
  4. import com.fuint.common.vo.printer.*;
  5. import com.fuint.framework.exception.BusinessCheckException;
  6. import org.slf4j.Logger;
  7. import org.slf4j.LoggerFactory;
  8. import java.util.List;
  9. /**
  10. * 云打印相关接口封装类
  11. *
  12. * Created by FSQ
  13. * CopyRight https://www.fuint.cn
  14. */
  15. public class PrinterUtil {
  16. private static String BASE_URL = "https://open.xpyun.net/api/openapi";
  17. private static final Logger logger = LoggerFactory.getLogger(PrinterUtil.class);
  18. /**
  19. * 1.批量添加打印机
  20. * @param restRequest
  21. * @return
  22. */
  23. public static ObjectRestResponse<PrinterResult> addPrinters(AddPrinterRequest restRequest) throws BusinessCheckException {
  24. String url = BASE_URL + "/xprinter/addPrinters";
  25. String jsonRequest = JSON.toJSONString(restRequest);
  26. String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
  27. ObjectRestResponse<PrinterResult> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<PrinterResult>>(){});
  28. logger.info("添加打印机接口参数:{},返回:{}", JSON.toJSONString(restRequest), JSON.toJSONString(result));
  29. if (result != null && result.getData().getSuccess().size() <= 0) {
  30. throw new BusinessCheckException("添加打印机失败,请检查设备编号是否正确!");
  31. }
  32. return result;
  33. }
  34. /**
  35. * 2.设置打印机语音类型
  36. * @param restRequest
  37. * @return
  38. */
  39. public static ObjectRestResponse<Boolean> setPrinterVoiceType(SetVoiceTypeRequest restRequest) {
  40. String url = BASE_URL + "/xprinter/setVoiceType";
  41. String jsonRequest = JSON.toJSONString(restRequest);
  42. String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
  43. ObjectRestResponse<Boolean> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<Boolean>>(){});
  44. return result;
  45. }
  46. /**
  47. * 3.打印小票订单
  48. * @param restRequest
  49. * @return
  50. */
  51. public static ObjectRestResponse<String> print(PrintRequest restRequest) {
  52. String url = BASE_URL + "/xprinter/print";
  53. String jsonRequest = JSON.toJSONString(restRequest);
  54. String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
  55. ObjectRestResponse<String> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<String>>(){});
  56. return result;
  57. }
  58. /**
  59. * 4.打印标签订单
  60. *
  61. * @param restRequest
  62. * @return
  63. */
  64. public static ObjectRestResponse<String> printLabel(PrintRequest restRequest) {
  65. String url = BASE_URL + "/xprinter/printLabel";
  66. String jsonRequest = JSON.toJSONString(restRequest);
  67. String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
  68. ObjectRestResponse<String> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<String>>(){});
  69. return result;
  70. }
  71. /**
  72. * 5.批量删除打印机
  73. *
  74. * @param restRequest
  75. * @return
  76. */
  77. public static ObjectRestResponse<PrinterResult> delPrinters(DelPrinterRequest restRequest) {
  78. String url = BASE_URL + "/xprinter/delPrinters";
  79. String jsonRequest = JSON.toJSONString(restRequest);
  80. String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
  81. ObjectRestResponse<PrinterResult> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<PrinterResult>>(){});
  82. return result;
  83. }
  84. /**
  85. * 6.修改打印机信息
  86. *
  87. * @param restRequest
  88. * @return
  89. */
  90. public static ObjectRestResponse<Boolean> updPrinter(UpdPrinterRequest restRequest) {
  91. String url = BASE_URL + "/xprinter/updPrinter";
  92. String jsonRequest = JSON.toJSONString(restRequest);
  93. String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
  94. ObjectRestResponse<Boolean> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<Boolean>>(){});
  95. return result;
  96. }
  97. /**
  98. * 7.清空待打印队列
  99. *
  100. * @param restRequest
  101. * @return
  102. */
  103. public static ObjectRestResponse<Boolean> delPrinterQueue(PrinterRequest restRequest) {
  104. String url = BASE_URL + "/xprinter/delPrinterQueue";
  105. String jsonRequest = JSON.toJSONString(restRequest);
  106. String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
  107. ObjectRestResponse<Boolean> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<Boolean>>(){});
  108. return result;
  109. }
  110. /**
  111. * 8.查询订单是否打印成功
  112. *
  113. * @param restRequest
  114. * @return
  115. */
  116. public static ObjectRestResponse<Boolean> queryOrderState(QueryOrderStateRequest restRequest) {
  117. String url = BASE_URL + "/xprinter/queryOrderState";
  118. String jsonRequest = JSON.toJSONString(restRequest);
  119. String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
  120. ObjectRestResponse<Boolean> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<Boolean>>(){});
  121. return result;
  122. }
  123. /**
  124. * 9.查询打印机某天的订单统计数
  125. *
  126. * @param restRequest
  127. * @return
  128. */
  129. public static ObjectRestResponse<OrderStatisResult> queryOrderStatis(QueryOrderStatisRequest restRequest) {
  130. String url = BASE_URL + "/xprinter/queryOrderStatis";
  131. String jsonRequest = JSON.toJSONString(restRequest);
  132. String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
  133. ObjectRestResponse<OrderStatisResult> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<OrderStatisResult>>(){});
  134. return result;
  135. }
  136. /**
  137. * 10.查询打印机状态
  138. *
  139. * 0、离线 1、在线正常 2、在线不正常
  140. * 备注:异常一般是无纸,离线的判断是打印机与服务器失去联系超过30秒
  141. * @param restRequest
  142. * @return
  143. */
  144. public static ObjectRestResponse<Integer> queryPrinterStatus(PrinterRequest restRequest) {
  145. String url = BASE_URL + "/xprinter/queryPrinterStatus";
  146. String jsonRequest = JSON.toJSONString(restRequest);
  147. String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
  148. ObjectRestResponse<Integer> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<Integer>>(){});
  149. return result;
  150. }
  151. /**
  152. * 11.批量查询打印机状态
  153. *
  154. * 0、离线 1、在线正常 2、在线不正常
  155. * 备注:异常一般是无纸,离线的判断是打印机与服务器失去联系超过30秒
  156. * @param restRequest
  157. * @return
  158. */
  159. public static ObjectRestResponse<List<Integer>> queryPrintersStatus(PrintersRequest restRequest) {
  160. String url = BASE_URL + "/xprinter/queryPrintersStatus";
  161. String jsonRequest = JSON.toJSONString(restRequest);
  162. String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
  163. ObjectRestResponse<List<Integer>> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<List<Integer>>>(){});
  164. return result;
  165. }
  166. /**
  167. * 12.云喇叭播放语音
  168. *
  169. * @param restRequest
  170. * @return
  171. */
  172. public static ObjectRestResponse<String> playVoice(VoiceRequest restRequest) {
  173. String url = BASE_URL + "/xprinter/playVoice";
  174. String jsonRequest = JSON.toJSONString(restRequest);
  175. String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
  176. ObjectRestResponse<String> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<String>>(){});
  177. return result;
  178. }
  179. /**
  180. * 13.POS指令
  181. *
  182. * @param restRequest
  183. * @return
  184. */
  185. public static ObjectRestResponse<String> pos(PrintRequest restRequest) {
  186. String url = BASE_URL + "/xprinter/pos";
  187. String jsonRequest = JSON.toJSONString(restRequest);
  188. String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
  189. ObjectRestResponse<String> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<String>>(){});
  190. return result;
  191. }
  192. /**
  193. * 14.钱箱控制
  194. *
  195. * @param restRequest
  196. * @return
  197. */
  198. public static ObjectRestResponse<String> controlBox(PrintRequest restRequest) {
  199. String url = BASE_URL + "/xprinter/controlBox";
  200. String jsonRequest = JSON.toJSONString(restRequest);
  201. String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
  202. ObjectRestResponse<String> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<String>>(){});
  203. return result;
  204. }
  205. }