diff --git a/cash-api/order-server/src/main/java/com/czg/mq/PrintMqListener.java b/cash-api/order-server/src/main/java/com/czg/mq/PrintMqListener.java index d9bca20ee..e608e4a3d 100644 --- a/cash-api/order-server/src/main/java/com/czg/mq/PrintMqListener.java +++ b/cash-api/order-server/src/main/java/com/czg/mq/PrintMqListener.java @@ -2,6 +2,7 @@ package com.czg.mq; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.czg.config.RabbitConstants; import com.czg.config.RabbitPublisher; @@ -99,15 +100,23 @@ public class PrintMqListener { Long shopId = jsonObject.getLong("shopId"); String printTypeEnum = jsonObject.getString("printTypeEnum"); JSONObject data2 = jsonObject.getJSONObject("data"); + JSONArray data3 = null; + if (data2 == null) { + data3 = jsonObject.getJSONArray("data"); + } PrinterHandler.PrintTypeEnum typeEnum = PrinterHandler.PrintTypeEnum.valueOf(printTypeEnum); if (typeEnum != PrinterHandler.PrintTypeEnum.HANDOVER) { SysPrintData sysPrintData = new SysPrintData(); sysPrintData.setShopId(shopId); - sysPrintData.setData(data2.toJSONString()); + if (data2 != null) { + sysPrintData.setData(data2.toJSONString()); + } else { + sysPrintData.setData(data3.toJSONString()); + } sysPrintData.setType(typeEnum.toString()); printDataService.save(sysPrintData); rabbitPublisher.sendOtherPrintLocalMsg(shopId, printTypeEnum, sysPrintData.getId()); } - printConfig.otherHandler(shopId, data2, typeEnum); + printConfig.otherHandler(shopId, data2, data3, typeEnum); } } diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/print/PrintConfig.java b/cash-service/order-service/src/main/java/com/czg/service/order/print/PrintConfig.java index e824acecb..1e81d93c2 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/print/PrintConfig.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/print/PrintConfig.java @@ -2,8 +2,8 @@ package com.czg.service.order.print; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.alibaba.fastjson2.TypeReference; import com.czg.account.dto.HandoverRecordDTO; import com.czg.account.entity.PrintMachine; import com.czg.account.entity.ShopInfo; @@ -185,7 +185,7 @@ public class PrintConfig implements ApplicationRunner { * @param data 传递的数据 * @param printTypeEnum IN_STOCK DAY_REPORT PRODUCT_REPORT RECHARGE STOCK_CHECK */ - public void otherHandler(Long shopId, JSONObject data, PrinterHandler.PrintTypeEnum printTypeEnum) { + public void otherHandler(Long shopId, JSONObject data, JSONArray data1, PrinterHandler.PrintTypeEnum printTypeEnum) { if (shopId == null || Objects.isNull(data)) { log.info("otherHandler 打印数据为空, shopId: {}, data: {}", shopId, data); return; @@ -198,32 +198,29 @@ public class PrintConfig implements ApplicationRunner { .stockPrint(machine, shopInfo.getShopName(), JSONObject.parseObject(data.toJSONString(), StockPrintDTO.class))); break; case PrinterHandler.PrintTypeEnum.DAY_REPORT: - List> list = data.to(new TypeReference<>() { - }); for (PrintMachine machine : getPrintMachine(shopId, printTypeEnum)) { PrinterHandler printer = getPrinter(machine.getBrand()); - for (Map map : list) { - printer.dayReportPrint(machine, shopInfo.getShopName(), JSONObject.parseObject(map.get("data").toString(), DayReportPrintDTO.class)); + for (Object obj : data1) { + JSONObject item = (JSONObject) obj; + printer.dayReportPrint(machine, shopInfo.getShopName(), item.getObject("data", DayReportPrintDTO.class)); } } break; case PrinterHandler.PrintTypeEnum.DAY_ORDER: - List> list2 = data.to(new TypeReference<>() { - }); for (PrintMachine machine : getPrintMachine(shopId, printTypeEnum)) { PrinterHandler printer = getPrinter(machine.getBrand()); - for (Map map : list2) { - printer.daySettlePrint(machine, shopInfo.getShopName(), JSONObject.parseObject(map.get("data").toString(), DaySettlePrintDTO.class)); + for (Object obj : data1) { + JSONObject item = (JSONObject) obj; + printer.daySettlePrint(machine, shopInfo.getShopName(), item.getObject("data", DaySettlePrintDTO.class)); } } break; case PrinterHandler.PrintTypeEnum.PRODUCT_REPORT: - List> list3 = data.to(new TypeReference<>() { - }); for (PrintMachine machine : getPrintMachine(shopId, printTypeEnum)) { PrinterHandler printer = getPrinter(machine.getBrand()); - for (Map map : list3) {//ProductReportPrintDTO - printer.productReportPrint(machine, shopInfo.getShopName(), JSONObject.parseObject(map.get("data").toString(), ProductReportPrintDTO.class)); + for (Object obj : data1) { + JSONObject item = (JSONObject) obj; + printer.productReportPrint(machine, shopInfo.getShopName(), item.getObject("data", ProductReportPrintDTO.class)); } } break;