diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintConsumer.java b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintConsumer.java index 313d3a4..50b93e2 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintConsumer.java @@ -1,11 +1,13 @@ package com.chaozhanggui.system.cashierservice.rabbit; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.chaozhanggui.system.cashierservice.dao.TbOrderDetailMapper; import com.chaozhanggui.system.cashierservice.dao.TbOrderInfoMapper; import com.chaozhanggui.system.cashierservice.dao.TbShopInfoMapper; @@ -14,6 +16,7 @@ import com.chaozhanggui.system.cashierservice.entity.TbOrderInfo; import com.chaozhanggui.system.cashierservice.entity.TbPrintMachine; import com.chaozhanggui.system.cashierservice.entity.TbShopInfo; import com.chaozhanggui.system.cashierservice.entity.dto.CallNumPrintDTO; +import com.chaozhanggui.system.cashierservice.mybatis.MPOrderDetailMapper; import com.chaozhanggui.system.cashierservice.mybatis.MpPrintMachineMapper; import com.chaozhanggui.system.cashierservice.rabbit.print.PrinterHandler; import com.chaozhanggui.system.cashierservice.util.Utils; @@ -24,6 +27,8 @@ import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Slf4j @Component @@ -31,14 +36,16 @@ public class PrintConsumer { private final TbOrderInfoMapper tbOrderInfoMapper; private final TbShopInfoMapper tbShopInfoMapper; private final TbOrderDetailMapper tbOrderDetailMapper; + private final MPOrderDetailMapper mpOrderDetailMapper; private final MpPrintMachineMapper mpPrintMachineMapper; private final PrinterHandler printerHandler; - public PrintConsumer(TbOrderInfoMapper tbOrderInfoMapper, TbShopInfoMapper tbShopInfoMapper, TbOrderDetailMapper tbOrderDetailMapper, MpPrintMachineMapper mpPrintMachineMapper, PrinterHandler printerHandler) { + public PrintConsumer(TbOrderInfoMapper tbOrderInfoMapper, TbShopInfoMapper tbShopInfoMapper, TbOrderDetailMapper tbOrderDetailMapper, MPOrderDetailMapper mpOrderDetailMapper, MpPrintMachineMapper mpPrintMachineMapper, PrinterHandler printerHandler) { this.tbOrderInfoMapper = tbOrderInfoMapper; this.tbShopInfoMapper = tbShopInfoMapper; this.tbOrderDetailMapper = tbOrderDetailMapper; + this.mpOrderDetailMapper = mpOrderDetailMapper; this.mpPrintMachineMapper = mpPrintMachineMapper; this.printerHandler = printerHandler; } @@ -65,10 +72,21 @@ public class PrintConsumer { for (Object orderDetail : orderDetailIds) { orderDetails.add(JSONObject.parseObject(orderDetail.toString(), TbOrderDetail.class)); } + if(CollUtil.isEmpty(orderDetails)){ + return; + } + List ids = orderDetails.stream().map(TbOrderDetail::getId).collect(Collectors.toList()); + List detailList = mpOrderDetailMapper.selectList(Wrappers.lambdaQuery().in(TbOrderDetail::getId, ids)); + if(CollUtil.isEmpty(detailList)){ + return; + } + Map isPrintMap = detailList.stream().collect(Collectors.toMap(TbOrderDetail::getId, TbOrderDetail::getIsPrint)); + for (TbOrderDetail detail : orderDetails) { + detail.setIsPrint(isPrintMap.get(detail.getId())); + } if (orderDetails.isEmpty()) { return; } - // 菜品票 getPrintMachine(Integer.valueOf(orderInfo.getShopId()), "cash", "one", null).forEach(machine -> { log.info("打印机信息: {}", machine);