123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- package com.fuint.common.util;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.TypeReference;
- import com.fuint.common.vo.printer.*;
- import com.fuint.framework.exception.BusinessCheckException;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import java.util.List;
- /**
- * 云打印相关接口封装类
- *
- * Created by FSQ
- * CopyRight https://www.fuint.cn
- */
- public class PrinterUtil {
- private static String BASE_URL = "https://open.xpyun.net/api/openapi";
- private static final Logger logger = LoggerFactory.getLogger(PrinterUtil.class);
-
- /**
- * 1.批量添加打印机
- * @param restRequest
- * @return
- */
- public static ObjectRestResponse<PrinterResult> addPrinters(AddPrinterRequest restRequest) throws BusinessCheckException {
- String url = BASE_URL + "/xprinter/addPrinters";
- String jsonRequest = JSON.toJSONString(restRequest);
- String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
- ObjectRestResponse<PrinterResult> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<PrinterResult>>(){});
- logger.info("添加打印机接口参数:{},返回:{}", JSON.toJSONString(restRequest), JSON.toJSONString(result));
- if (result != null && result.getData().getSuccess().size() <= 0) {
- throw new BusinessCheckException("添加打印机失败,请检查设备编号是否正确!");
- }
- return result;
- }
- /**
- * 2.设置打印机语音类型
- * @param restRequest
- * @return
- */
- public static ObjectRestResponse<Boolean> setPrinterVoiceType(SetVoiceTypeRequest restRequest) {
- String url = BASE_URL + "/xprinter/setVoiceType";
- String jsonRequest = JSON.toJSONString(restRequest);
- String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
- ObjectRestResponse<Boolean> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<Boolean>>(){});
- return result;
- }
- /**
- * 3.打印小票订单
- * @param restRequest
- * @return
- */
- public static ObjectRestResponse<String> print(PrintRequest restRequest) {
- String url = BASE_URL + "/xprinter/print";
- String jsonRequest = JSON.toJSONString(restRequest);
- String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
- ObjectRestResponse<String> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<String>>(){});
- return result;
- }
- /**
- * 4.打印标签订单
- *
- * @param restRequest
- * @return
- */
- public static ObjectRestResponse<String> printLabel(PrintRequest restRequest) {
- String url = BASE_URL + "/xprinter/printLabel";
- String jsonRequest = JSON.toJSONString(restRequest);
- String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
- ObjectRestResponse<String> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<String>>(){});
- return result;
- }
- /**
- * 5.批量删除打印机
- *
- * @param restRequest
- * @return
- */
- public static ObjectRestResponse<PrinterResult> delPrinters(DelPrinterRequest restRequest) {
- String url = BASE_URL + "/xprinter/delPrinters";
- String jsonRequest = JSON.toJSONString(restRequest);
- String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
- ObjectRestResponse<PrinterResult> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<PrinterResult>>(){});
- return result;
- }
- /**
- * 6.修改打印机信息
- *
- * @param restRequest
- * @return
- */
- public static ObjectRestResponse<Boolean> updPrinter(UpdPrinterRequest restRequest) {
- String url = BASE_URL + "/xprinter/updPrinter";
- String jsonRequest = JSON.toJSONString(restRequest);
- String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
- ObjectRestResponse<Boolean> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<Boolean>>(){});
- return result;
- }
- /**
- * 7.清空待打印队列
- *
- * @param restRequest
- * @return
- */
- public static ObjectRestResponse<Boolean> delPrinterQueue(PrinterRequest restRequest) {
- String url = BASE_URL + "/xprinter/delPrinterQueue";
- String jsonRequest = JSON.toJSONString(restRequest);
- String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
- ObjectRestResponse<Boolean> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<Boolean>>(){});
- return result;
- }
- /**
- * 8.查询订单是否打印成功
- *
- * @param restRequest
- * @return
- */
- public static ObjectRestResponse<Boolean> queryOrderState(QueryOrderStateRequest restRequest) {
- String url = BASE_URL + "/xprinter/queryOrderState";
- String jsonRequest = JSON.toJSONString(restRequest);
- String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
- ObjectRestResponse<Boolean> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<Boolean>>(){});
- return result;
- }
- /**
- * 9.查询打印机某天的订单统计数
- *
- * @param restRequest
- * @return
- */
- public static ObjectRestResponse<OrderStatisResult> queryOrderStatis(QueryOrderStatisRequest restRequest) {
- String url = BASE_URL + "/xprinter/queryOrderStatis";
- String jsonRequest = JSON.toJSONString(restRequest);
- String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
- ObjectRestResponse<OrderStatisResult> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<OrderStatisResult>>(){});
- return result;
- }
- /**
- * 10.查询打印机状态
- *
- * 0、离线 1、在线正常 2、在线不正常
- * 备注:异常一般是无纸,离线的判断是打印机与服务器失去联系超过30秒
- * @param restRequest
- * @return
- */
- public static ObjectRestResponse<Integer> queryPrinterStatus(PrinterRequest restRequest) {
- String url = BASE_URL + "/xprinter/queryPrinterStatus";
- String jsonRequest = JSON.toJSONString(restRequest);
- String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
- ObjectRestResponse<Integer> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<Integer>>(){});
- return result;
- }
- /**
- * 11.批量查询打印机状态
- *
- * 0、离线 1、在线正常 2、在线不正常
- * 备注:异常一般是无纸,离线的判断是打印机与服务器失去联系超过30秒
- * @param restRequest
- * @return
- */
- public static ObjectRestResponse<List<Integer>> queryPrintersStatus(PrintersRequest restRequest) {
- String url = BASE_URL + "/xprinter/queryPrintersStatus";
- String jsonRequest = JSON.toJSONString(restRequest);
- String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
- ObjectRestResponse<List<Integer>> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<List<Integer>>>(){});
- return result;
- }
- /**
- * 12.云喇叭播放语音
- *
- * @param restRequest
- * @return
- */
- public static ObjectRestResponse<String> playVoice(VoiceRequest restRequest) {
- String url = BASE_URL + "/xprinter/playVoice";
- String jsonRequest = JSON.toJSONString(restRequest);
- String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
- ObjectRestResponse<String> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<String>>(){});
- return result;
- }
- /**
- * 13.POS指令
- *
- * @param restRequest
- * @return
- */
- public static ObjectRestResponse<String> pos(PrintRequest restRequest) {
- String url = BASE_URL + "/xprinter/pos";
- String jsonRequest = JSON.toJSONString(restRequest);
- String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
- ObjectRestResponse<String> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<String>>(){});
- return result;
- }
- /**
- * 14.钱箱控制
- *
- * @param restRequest
- * @return
- */
- public static ObjectRestResponse<String> controlBox(PrintRequest restRequest) {
- String url = BASE_URL + "/xprinter/controlBox";
- String jsonRequest = JSON.toJSONString(restRequest);
- String resp = HttpClientUtil.doPostJSON(url, jsonRequest);
- ObjectRestResponse<String> result = JSON.parseObject(resp, new TypeReference<ObjectRestResponse<String>>(){});
- return result;
- }
- }
|