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 69f0b097e..e824acecb 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 @@ -198,27 +198,33 @@ public class PrintConfig implements ApplicationRunner { .stockPrint(machine, shopInfo.getShopName(), JSONObject.parseObject(data.toJSONString(), StockPrintDTO.class))); break; case PrinterHandler.PrintTypeEnum.DAY_REPORT: - Map map1 = data.to(new TypeReference<>() { + List> list = data.to(new TypeReference<>() { }); for (PrintMachine machine : getPrintMachine(shopId, printTypeEnum)) { PrinterHandler printer = getPrinter(machine.getBrand()); - map1.forEach((day, value) -> printer.dayReportPrint(machine, shopInfo.getShopName(), value)); + for (Map map : list) { + printer.dayReportPrint(machine, shopInfo.getShopName(), JSONObject.parseObject(map.get("data").toString(), DayReportPrintDTO.class)); + } } break; case PrinterHandler.PrintTypeEnum.DAY_ORDER: - Map map2 = data.to(new TypeReference<>() { + List> list2 = data.to(new TypeReference<>() { }); for (PrintMachine machine : getPrintMachine(shopId, printTypeEnum)) { PrinterHandler printer = getPrinter(machine.getBrand()); - map2.forEach((day, value) -> printer.daySettlePrint(machine, shopInfo.getShopName(), value)); + for (Map map : list2) { + printer.daySettlePrint(machine, shopInfo.getShopName(), JSONObject.parseObject(map.get("data").toString(), DaySettlePrintDTO.class)); + } } break; case PrinterHandler.PrintTypeEnum.PRODUCT_REPORT: - Map map3 = data.to(new TypeReference<>() { + List> list3 = data.to(new TypeReference<>() { }); for (PrintMachine machine : getPrintMachine(shopId, printTypeEnum)) { PrinterHandler printer = getPrinter(machine.getBrand()); - map3.forEach((day, value) -> printer.productReportPrint(machine, shopInfo.getShopName(), value)); + for (Map map : list3) {//ProductReportPrintDTO + printer.productReportPrint(machine, shopInfo.getShopName(), JSONObject.parseObject(map.get("data").toString(), ProductReportPrintDTO.class)); + } } break; case PrinterHandler.PrintTypeEnum.RECHARGE: diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/print/PrinterImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/print/PrinterImpl.java index 9804e3090..d9b9b91d5 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/print/PrinterImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/print/PrinterImpl.java @@ -653,9 +653,8 @@ public interface PrinterImpl { PrintSignLabel signLabelInfo = getSignLabelInfo(); StringBuilder builder = new StringBuilder(); - // 标题:店铺名称 + 经营日报(居中,和充值/入库单风格统一) builder.append(formatLabel(record.getShopName(), signLabelInfo.center)).append(signLabelInfo.br); - builder.append(formatLabel("经营日报", signLabelInfo.center)).append(signLabelInfo.br).append(signLabelInfo.br); + builder.append(formatLabel("日结单", signLabelInfo.center)).append(signLabelInfo.br).append(signLabelInfo.br); // 基础信息:打印时间、操作人、统计时间 builder.append(formatLabel(StrUtil.format("打印时间: {}", DateUtil.format(LocalDateTime.now(), "yyyy/MM/dd HH:mm:ss")), signLabelInfo.s)).append(signLabelInfo.br); @@ -668,8 +667,8 @@ public interface PrinterImpl { builder.append(formatLabel(LRAlign(" 订单原价总额", bdToStr(turnover.getOriginAmount()), 32), signLabelInfo.s)).append(signLabelInfo.br); builder.append(formatLabel(LRAlign(" 营业额", bdToStr(turnover.getTurnover()), 32), signLabelInfo.s)).append(signLabelInfo.br); builder.append(formatLabel(LRAlign(" 优惠金额", bdToStr(turnover.getDiscountAmount()), 32), signLabelInfo.s)).append(signLabelInfo.br); - builder.append(formatLabel(LRAlign(" 订单数(含退款)", String.valueOf(turnover.getOrderCount()), 32), signLabelInfo.s)).append(signLabelInfo.br); - builder.append(formatLabel(LRAlign(" 退款订单数", String.valueOf(turnover.getRefundOrderCount()), 32), signLabelInfo.s)).append(signLabelInfo.br); + builder.append(formatLabel(LRAlign(" 订单数(含退款)", turnover.getOrderCount() == null ? "0" : String.valueOf(turnover.getOrderCount()), 32), signLabelInfo.s)).append(signLabelInfo.br); + builder.append(formatLabel(LRAlign(" 退款订单数", turnover.getRefundOrderCount() == null ? "0" : String.valueOf(turnover.getRefundOrderCount()), 32), signLabelInfo.s)).append(signLabelInfo.br); builder.append(formatLabel(LRAlign(" 退款金额", bdToStr(turnover.getRefundAmount()), 32), signLabelInfo.s)).append(signLabelInfo.br); builder.append(formatLabel(LRAlign(" 现金收款", bdToStr(turnover.getCash()), 32), signLabelInfo.s)).append(signLabelInfo.br); builder.append(formatLabel(" 备用金", signLabelInfo.s)).append(signLabelInfo.br); @@ -701,7 +700,7 @@ public interface PrinterImpl { builder.append(formatLabel("敏感操作记录", signLabelInfo.bold)).append(signLabelInfo.br); for (DaySettlePrintDTO.OperationRecord operation : operationRecords) { builder.append(formatLabel( - key3(operation.getOperation(), "数量:" + operation.getCount(), "金额" + operation.getAmount(), 8, 14) + key3(operation.getOperation(), "数量:" + operation.getCount(), "金额" + bdToStr(operation.getAmount()), 8, 14) , signLabelInfo.s)).append(signLabelInfo.br); } } diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/FinanceStsServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/FinanceStsServiceImpl.java index cb61ee823..9302dd553 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/FinanceStsServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/FinanceStsServiceImpl.java @@ -111,27 +111,28 @@ public class FinanceStsServiceImpl implements FinanceStsService { @Override public void printDayReport(SaleSummaryCountParam param) { - Map dayReportMap = buildDayReportPrint(param); - if (CollUtil.isEmpty(dayReportMap)) { + List> list = buildDayReportPrint(param); + if (CollUtil.isEmpty(list)) { throw new CzgException("无可打印数据"); } // 打印经营日报 - rabbitPublisher.sendOtherPrintMsg(param.getShopId(), dayReportMap, "DAY_REPORT"); + rabbitPublisher.sendOtherPrintMsg(param.getShopId(), list, "DAY_REPORT"); } @Override public void printDaySettle(SaleSummaryCountParam param) { - Map daySettleMap = buildDaySettlePrint(param); - if (CollUtil.isEmpty(daySettleMap)) { + List> daySettleList = buildDaySettlePrint(param); + if (CollUtil.isEmpty(daySettleList)) { throw new CzgException("无可打印数据"); } // 打印日结单 - rabbitPublisher.sendOtherPrintMsg(param.getShopId(), daySettleMap, "DAY_ORDER"); + rabbitPublisher.sendOtherPrintMsg(param.getShopId(), daySettleList, "DAY_ORDER"); } - private Map buildDayReportPrint(SaleSummaryCountParam param) { - Map dayReportMap = new HashMap<>(); + private List> buildDayReportPrint(SaleSummaryCountParam param) { + List> list = new ArrayList<>(); + Map dayReportMap = new HashMap<>(); if (param.getBeginDate() != null && param.getEndDate() != null) { // 计算相差天数 long days = java.time.temporal.ChronoUnit.DAYS.between(param.getBeginDate(), param.getEndDate()); @@ -206,15 +207,18 @@ public class FinanceStsServiceImpl implements FinanceStsService { discountSts.setOrderDiscount(statisticData.getOrderPriceDiscountAmount()); // 订单改价 dayReportPrintDTO.setDiscountSta(discountSts); // 加入结果集 - dayReportMap.put(localDate.toString(), dayReportPrintDTO); + dayReportMap.put("date", localDate); + dayReportMap.put("data", dayReportPrintDTO); + list.add(dayReportMap); } } - return dayReportMap; + return list; } - private Map buildDaySettlePrint(SaleSummaryCountParam param) { - Map dayReportMap = new HashMap<>(); + private List> buildDaySettlePrint(SaleSummaryCountParam param) { + List> map = new ArrayList<>(); if (param.getBeginDate() != null && param.getEndDate() != null) { + Map dayReportMap = new HashMap<>(); // 计算相差天数 long days = java.time.temporal.ChronoUnit.DAYS.between(param.getBeginDate(), param.getEndDate()); List dateList = LongStream.rangeClosed(0, days) @@ -284,11 +288,13 @@ public class FinanceStsServiceImpl implements FinanceStsService { .setAmount(data.getUnpaidOrderAmount())); printDTO.setOperationRecords(records); - // 加入结果 - dayReportMap.put(localDate.toString(), printDTO); + //加入结果 + dayReportMap.put("date", localDate); + dayReportMap.put("data", printDTO); + map.add(dayReportMap); } } - return dayReportMap; + return map; } diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/ShopProdStatisticServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/ShopProdStatisticServiceImpl.java index 09bff6f81..12423f6c2 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/ShopProdStatisticServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/ShopProdStatisticServiceImpl.java @@ -87,7 +87,7 @@ public class ShopProdStatisticServiceImpl extends ServiceImpl printDTO = new HashMap<>(); + List> list = new ArrayList<>(); // 1. 获取统计数据 Map categoryMap = shopProdCategoryService.getCategoryIdNameMap(param.getShopId()); if (param.getBeginDate() != null && param.getEndDate() != null) { @@ -97,15 +97,20 @@ public class ShopProdStatisticServiceImpl extends ServiceImpl printDTO = new HashMap<>(); SaleSummaryCountParam queryDay = new SaleSummaryCountParam() .setShopId(param.getShopId()) .setBeginDate(localDate) .setEndDate(localDate); ProductReportPrintDTO print = buildProductReportPrint(queryDay, categoryMap); - printDTO.put(localDate.toString(), print); + printDTO.put("date", localDate); + printDTO.put("data", print); + list.add(printDTO); } } - rabbitPublisher.sendOtherPrintMsg(param.getShopId(), printDTO, "PRODUCT_REPORT"); + if (CollUtil.isNotEmpty(list)) { + rabbitPublisher.sendOtherPrintMsg(param.getShopId(), list, "PRODUCT_REPORT"); + } }