Merge remote-tracking branch 'origin/test' into test

This commit is contained in:
张松 2024-12-19 09:50:48 +08:00
commit 5557b2b360
5 changed files with 81 additions and 12 deletions

View File

@ -2,6 +2,7 @@ package com.chaozhanggui.system.cashierservice.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data; import lombok.Data;
import org.springframework.data.annotation.Transient;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -59,6 +60,9 @@ public class TbOrderDetail implements Serializable {
private BigDecimal canReturnAmount; private BigDecimal canReturnAmount;
private BigDecimal returnAmount; private BigDecimal returnAmount;
private Integer isPrint; private Integer isPrint;
@Transient
@TableField(exist = false)
private Integer isGift;
private BigDecimal discountSaleAmount; private BigDecimal discountSaleAmount;
private String discountSaleNote; private String discountSaleNote;

View File

@ -11,11 +11,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.chaozhanggui.system.cashierservice.dao.TbOrderDetailMapper; import com.chaozhanggui.system.cashierservice.dao.TbOrderDetailMapper;
import com.chaozhanggui.system.cashierservice.dao.TbOrderInfoMapper; import com.chaozhanggui.system.cashierservice.dao.TbOrderInfoMapper;
import com.chaozhanggui.system.cashierservice.dao.TbShopInfoMapper; import com.chaozhanggui.system.cashierservice.dao.TbShopInfoMapper;
import com.chaozhanggui.system.cashierservice.entity.TbOrderDetail; import com.chaozhanggui.system.cashierservice.entity.*;
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.entity.dto.CallNumPrintDTO;
import com.chaozhanggui.system.cashierservice.mybatis.MPCashierCartMapper;
import com.chaozhanggui.system.cashierservice.mybatis.MPOrderDetailMapper; import com.chaozhanggui.system.cashierservice.mybatis.MPOrderDetailMapper;
import com.chaozhanggui.system.cashierservice.mybatis.MpPrintMachineMapper; import com.chaozhanggui.system.cashierservice.mybatis.MpPrintMachineMapper;
import com.chaozhanggui.system.cashierservice.rabbit.print.PrinterHandler; import com.chaozhanggui.system.cashierservice.rabbit.print.PrinterHandler;
@ -37,15 +35,17 @@ public class PrintConsumer {
private final TbShopInfoMapper tbShopInfoMapper; private final TbShopInfoMapper tbShopInfoMapper;
private final TbOrderDetailMapper tbOrderDetailMapper; private final TbOrderDetailMapper tbOrderDetailMapper;
private final MPOrderDetailMapper mpOrderDetailMapper; private final MPOrderDetailMapper mpOrderDetailMapper;
private final MPCashierCartMapper mpCashierCartMapper;
private final MpPrintMachineMapper mpPrintMachineMapper; private final MpPrintMachineMapper mpPrintMachineMapper;
private final PrinterHandler printerHandler; private final PrinterHandler printerHandler;
public PrintConsumer(TbOrderInfoMapper tbOrderInfoMapper, TbShopInfoMapper tbShopInfoMapper, TbOrderDetailMapper tbOrderDetailMapper, MPOrderDetailMapper mpOrderDetailMapper, MpPrintMachineMapper mpPrintMachineMapper, PrinterHandler printerHandler) { public PrintConsumer(TbOrderInfoMapper tbOrderInfoMapper, TbShopInfoMapper tbShopInfoMapper, TbOrderDetailMapper tbOrderDetailMapper, MPOrderDetailMapper mpOrderDetailMapper, MPCashierCartMapper mpCashierCartMapper, MpPrintMachineMapper mpPrintMachineMapper, PrinterHandler printerHandler) {
this.tbOrderInfoMapper = tbOrderInfoMapper; this.tbOrderInfoMapper = tbOrderInfoMapper;
this.tbShopInfoMapper = tbShopInfoMapper; this.tbShopInfoMapper = tbShopInfoMapper;
this.tbOrderDetailMapper = tbOrderDetailMapper; this.tbOrderDetailMapper = tbOrderDetailMapper;
this.mpOrderDetailMapper = mpOrderDetailMapper; this.mpOrderDetailMapper = mpOrderDetailMapper;
this.mpCashierCartMapper = mpCashierCartMapper;
this.mpPrintMachineMapper = mpPrintMachineMapper; this.mpPrintMachineMapper = mpPrintMachineMapper;
this.printerHandler = printerHandler; this.printerHandler = printerHandler;
} }
@ -72,18 +72,24 @@ public class PrintConsumer {
for (Object orderDetail : orderDetailIds) { for (Object orderDetail : orderDetailIds) {
orderDetails.add(JSONObject.parseObject(orderDetail.toString(), TbOrderDetail.class)); orderDetails.add(JSONObject.parseObject(orderDetail.toString(), TbOrderDetail.class));
} }
if(CollUtil.isEmpty(orderDetails)){ if (CollUtil.isEmpty(orderDetails)) {
return; return;
} }
List<Integer> ids = orderDetails.stream().map(TbOrderDetail::getId).collect(Collectors.toList()); List<Integer> ids = orderDetails.stream().map(TbOrderDetail::getId).collect(Collectors.toList());
List<TbOrderDetail> detailList = mpOrderDetailMapper.selectList(Wrappers.<TbOrderDetail>lambdaQuery().in(TbOrderDetail::getId, ids)); List<TbOrderDetail> detailList = mpOrderDetailMapper.selectList(Wrappers.<TbOrderDetail>lambdaQuery().in(TbOrderDetail::getId, ids));
if(CollUtil.isEmpty(detailList)){ if (CollUtil.isEmpty(detailList)) {
return; return;
} }
Map<Integer, Integer> isPrintMap = detailList.stream().collect(Collectors.toMap(TbOrderDetail::getId, TbOrderDetail::getIsPrint)); Map<Integer, Integer> isPrintMap = detailList.stream().collect(Collectors.toMap(TbOrderDetail::getId, TbOrderDetail::getIsPrint));
for (TbOrderDetail detail : orderDetails) { for (TbOrderDetail detail : orderDetails) {
detail.setIsPrint(isPrintMap.get(detail.getId())); detail.setIsPrint(isPrintMap.get(detail.getId()));
} }
List<TbCashierCart> cartList = mpCashierCartMapper.selectList(Wrappers.<TbCashierCart>lambdaQuery().eq(TbCashierCart::getOrderId, orderInfo.getId()));
Map<Integer, String> map = cartList.stream().collect(Collectors.toMap(TbCashierCart::getId, TbCashierCart::getIsGift));
orderDetails.parallelStream().forEach(item->{
int isGift = "true".equals(map.get(item.getCartId())) ? 1 : 0;
item.setIsGift(isGift);
});
if (orderDetails.isEmpty()) { if (orderDetails.isEmpty()) {
return; return;
} }
@ -127,6 +133,12 @@ public class PrintConsumer {
getPrintMachine(shopInfo.getId(), "cash", "normal", null).forEach(machine -> { getPrintMachine(shopInfo.getId(), "cash", "normal", null).forEach(machine -> {
List<TbOrderDetail> tbOrderDetails = tbOrderDetailMapper.selectAllByOrderId(orderInfo.getId()); List<TbOrderDetail> tbOrderDetails = tbOrderDetailMapper.selectAllByOrderId(orderInfo.getId());
List<TbCashierCart> cartList = mpCashierCartMapper.selectList(Wrappers.<TbCashierCart>lambdaQuery().eq(TbCashierCart::getOrderId, orderInfo.getId()));
Map<Integer, String> map = cartList.stream().collect(Collectors.toMap(TbCashierCart::getId, TbCashierCart::getIsGift));
tbOrderDetails.parallelStream().forEach(item->{
int isGift = "true".equals(map.get(item.getCartId())) ? 1 : 0;
item.setIsGift(isGift);
});
printerHandler.handleRequest(machine, isReturn, orderInfo, tbOrderDetails, null); printerHandler.handleRequest(machine, isReturn, orderInfo, tbOrderDetails, null);
// printPlaceTicket(isReturn, machine, orderInfo, shopInfo); // printPlaceTicket(isReturn, machine, orderInfo, shopInfo);
}); });

View File

@ -243,6 +243,9 @@ public class PrintMechineConsumer {
if (it.getIsMember() == 1) { if (it.getIsMember() == 1) {
unitPrice = it.getMemberPrice(); unitPrice = it.getMemberPrice();
} }
if (it.getIsGift() == 1) {
unitPrice = BigDecimal.ZERO;
}
BigDecimal subTotal = NumberUtil.mul(it.getNum(), unitPrice.subtract(NumberUtil.null2Zero(it.getDiscountSaleAmount()))); BigDecimal subTotal = NumberUtil.mul(it.getNum(), unitPrice.subtract(NumberUtil.null2Zero(it.getDiscountSaleAmount())));
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), subTotal.toPlainString(), remark, it.getProGroupInfo()); OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), subTotal.toPlainString(), remark, it.getProGroupInfo());
detailList.add(detail); detailList.add(detail);
@ -324,6 +327,10 @@ public class PrintMechineConsumer {
c.getId().toString().equals(categoryId) c.getId().toString().equals(categoryId)
).count(); ).count();
} }
Integer isGift = ObjectUtil.defaultIfNull(it.getIsGift(), 0);
if (isGift == 1) {
it.setProductName("【赠】" + it.getProductName());
}
log.info("获取当前类别是否未打印类别:{}", count); log.info("获取当前类别是否未打印类别:{}", count);
if (count > 0) { if (count > 0) {
// 统计已打数量 // 统计已打数量
@ -545,6 +552,10 @@ public class PrintMechineConsumer {
c.getId().toString().equals(categoryId) c.getId().toString().equals(categoryId)
).count(); ).count();
} }
Integer isGift = ObjectUtil.defaultIfNull(it.getIsGift(), 0);
if (isGift == 1) {
it.setProductName("【赠】" + it.getProductName());
}
String classifyPrint = tbPrintMachineWithBLOBs.getClassifyPrint(); String classifyPrint = tbPrintMachineWithBLOBs.getClassifyPrint();
// 如果是部分打印并且所属分类不在设置的列表中则不打印 // 如果是部分打印并且所属分类不在设置的列表中则不打印
if ("1".equals(classifyPrint) && count == 0) { if ("1".equals(classifyPrint) && count == 0) {
@ -603,6 +614,9 @@ public class PrintMechineConsumer {
if (it.getIsMember() == 1) { if (it.getIsMember() == 1) {
unitPrice = it.getMemberPrice(); unitPrice = it.getMemberPrice();
} }
if (it.getIsGift() == 1) {
unitPrice = BigDecimal.ZERO;
}
BigDecimal subTotal = NumberUtil.mul(it.getNum(), unitPrice.subtract(NumberUtil.null2Zero(it.getDiscountSaleAmount()))); BigDecimal subTotal = NumberUtil.mul(it.getNum(), unitPrice.subtract(NumberUtil.null2Zero(it.getDiscountSaleAmount())));
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), subTotal.toPlainString(), remark, it.getProGroupInfo()); OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), subTotal.toPlainString(), remark, it.getProGroupInfo());
detailList.add(detail); detailList.add(detail);
@ -671,6 +685,9 @@ public class PrintMechineConsumer {
if (it.getIsMember() == 1) { if (it.getIsMember() == 1) {
unitPrice = it.getMemberPrice(); unitPrice = it.getMemberPrice();
} }
if ("true".equals(it.getIsGift())) {
unitPrice = BigDecimal.ZERO;
}
BigDecimal subTotal = NumberUtil.mul(it.getNumber(), unitPrice.subtract(NumberUtil.null2Zero(it.getDiscountSaleAmount()))); BigDecimal subTotal = NumberUtil.mul(it.getNumber(), unitPrice.subtract(NumberUtil.null2Zero(it.getDiscountSaleAmount())));
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getName(), it.getNumber().toString(), subTotal.toPlainString(), remark, it.getProGroupInfo()); OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getName(), it.getNumber().toString(), subTotal.toPlainString(), remark, it.getProGroupInfo());
detailList.add(detail); detailList.add(detail);

View File

@ -88,7 +88,7 @@ public abstract class PrinterHandler {
log.info("开始打印退单菜品,商品名:{}", item.getProductName()); log.info("开始打印退单菜品,商品名:{}", item.getProductName());
Integer isWaitCall = ObjectUtil.defaultIfNull(item.getIsWaitCall(), 0); Integer isWaitCall = ObjectUtil.defaultIfNull(item.getIsWaitCall(), 0);
if (isWaitCall == 1) { if (isWaitCall == 1) {
if (!item.getProductName().startsWith("【等叫】")) { if (!item.getProductName().contains("【等叫】")) {
item.setProductName("【等叫】" + item.getProductName()); item.setProductName("【等叫】" + item.getProductName());
} }
} }
@ -97,10 +97,14 @@ public abstract class PrinterHandler {
if (isTemporary == 1) { if (isTemporary == 1) {
item.setProductId(0); item.setProductId(0);
item.setProductSkuId(0); item.setProductSkuId(0);
if (!item.getProductName().startsWith("【临】")) { if (!item.getProductName().contains("【临】")) {
item.setProductName("【临】" + item.getProductName()); item.setProductName("【临】" + item.getProductName());
} }
} }
Integer isGift = ObjectUtil.defaultIfNull(item.getIsGift(), 0);
if (isGift == 1 && !item.getProductName().contains("【赠】")) {
item.setProductName("【赠】" + item.getProductName());
}
// 台位费不打印 // 台位费不打印
if (item.getProductId().equals(-999)) { if (item.getProductId().equals(-999)) {
log.info("台位费商品,不打印"); log.info("台位费商品,不打印");
@ -131,9 +135,9 @@ public abstract class PrinterHandler {
} }
String classifyPrint = machine.getClassifyPrint(); String classifyPrint = machine.getClassifyPrint();
// 如果是部分打印并且所属分类不在设置的列表中则不打印 // 如果是部分打印并且所属分类不在设置的列表中则不打印
if("1".equals(classifyPrint) && count == 0) { if ("1".equals(classifyPrint) && count == 0) {
}else{ } else {
String remark = StrUtil.isNotBlank(sku.getSpecSnap()) ? sku.getSpecSnap() : ""; String remark = StrUtil.isNotBlank(sku.getSpecSnap()) ? sku.getSpecSnap() : "";
item.setRemark(remark); item.setRemark(remark);
if (isReturn) { if (isReturn) {
@ -170,10 +174,17 @@ public abstract class PrinterHandler {
if (isTemporary == 1) { if (isTemporary == 1) {
it.setProductName("【临】" + it.getProductName()); it.setProductName("【临】" + it.getProductName());
} }
Integer isGift = ObjectUtil.defaultIfNull(it.getIsGift(), 0);
if (isGift == 1) {
it.setProductName("【赠】" + it.getProductName());
}
BigDecimal unitPrice = it.getPrice(); BigDecimal unitPrice = it.getPrice();
if(it.getIsMember() == 1){ if (it.getIsMember() == 1) {
unitPrice = it.getMemberPrice(); unitPrice = it.getMemberPrice();
} }
if (it.getIsGift() == 1) {
unitPrice = BigDecimal.ZERO;
}
BigDecimal subTotal = NumberUtil.mul(it.getNum(), unitPrice.subtract(NumberUtil.null2Zero(it.getDiscountSaleAmount()))); BigDecimal subTotal = NumberUtil.mul(it.getNum(), unitPrice.subtract(NumberUtil.null2Zero(it.getDiscountSaleAmount())));
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), subTotal.toPlainString(), remark, it.getProGroupInfo()); OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), subTotal.toPlainString(), remark, it.getProGroupInfo());
detailList.add(detail); detailList.add(detail);
@ -227,4 +238,17 @@ public abstract class PrinterHandler {
Utils.checkValueUnReturn(printerBrand, "打印机品牌未赋值"); Utils.checkValueUnReturn(printerBrand, "打印机品牌未赋值");
return printerBrand.equals(currentBrand) && "network".equals(connectType); return printerBrand.equals(currentBrand) && "network".equals(connectType);
} }
public static void main(String[] args) {
String a = "1【赠1】1【临1】1【等叫1】1";
if (!a.contains("【赠】")) {
System.out.println("不包含");
}
if (a.indexOf("【临】") != -1) {
System.out.println("包含");
}
if (a.indexOf("【等叫】") != -1) {
System.out.println("包含");
}
}
} }

View File

@ -281,6 +281,9 @@ public class CloudPrinterService {
if (it.getIsMember() == 1) { if (it.getIsMember() == 1) {
unitPrice = it.getMemberPrice(); unitPrice = it.getMemberPrice();
} }
if (it.getIsGift() == 1) {
unitPrice = BigDecimal.ZERO;
}
BigDecimal subTotal = NumberUtil.mul(it.getNum(), unitPrice.subtract(NumberUtil.null2Zero(it.getDiscountSaleAmount()))); BigDecimal subTotal = NumberUtil.mul(it.getNum(), unitPrice.subtract(NumberUtil.null2Zero(it.getDiscountSaleAmount())));
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), subTotal.toPlainString(), remark, it.getProGroupInfo()); OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), subTotal.toPlainString(), remark, it.getProGroupInfo());
detailList.add(detail); detailList.add(detail);
@ -355,6 +358,9 @@ public class CloudPrinterService {
if (it.getIsMember() == 1) { if (it.getIsMember() == 1) {
unitPrice = it.getMemberPrice(); unitPrice = it.getMemberPrice();
} }
if ("true".equals(it.getIsGift())) {
unitPrice = BigDecimal.ZERO;
}
BigDecimal subTotal = NumberUtil.mul(it.getNumber(), unitPrice.subtract(NumberUtil.null2Zero(it.getDiscountSaleAmount()))); BigDecimal subTotal = NumberUtil.mul(it.getNumber(), unitPrice.subtract(NumberUtil.null2Zero(it.getDiscountSaleAmount())));
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getName(), it.getNumber().toString(), subTotal.toPlainString(), remark, it.getProGroupInfo()); OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getName(), it.getNumber().toString(), subTotal.toPlainString(), remark, it.getProGroupInfo());
detailList.add(detail); detailList.add(detail);
@ -428,6 +434,9 @@ public class CloudPrinterService {
if (it.getIsMember() == 1) { if (it.getIsMember() == 1) {
unitPrice = it.getMemberPrice(); unitPrice = it.getMemberPrice();
} }
if (it.getIsGift() == 1) {
unitPrice = BigDecimal.ZERO;
}
BigDecimal subTotal = NumberUtil.mul(it.getNum(), unitPrice.subtract(NumberUtil.null2Zero(it.getDiscountSaleAmount()))); BigDecimal subTotal = NumberUtil.mul(it.getNum(), unitPrice.subtract(NumberUtil.null2Zero(it.getDiscountSaleAmount())));
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), subTotal.toPlainString(), remark, it.getProGroupInfo()); OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), subTotal.toPlainString(), remark, it.getProGroupInfo());
detailList.add(detail); detailList.add(detail);
@ -484,6 +493,9 @@ public class CloudPrinterService {
if (it.getIsMember() == 1) { if (it.getIsMember() == 1) {
unitPrice = it.getMemberPrice(); unitPrice = it.getMemberPrice();
} }
if ("true".equals(it.getIsGift())) {
unitPrice = BigDecimal.ZERO;
}
BigDecimal subTotal = NumberUtil.mul(it.getNumber(), unitPrice.subtract(NumberUtil.null2Zero(it.getDiscountSaleAmount()))); BigDecimal subTotal = NumberUtil.mul(it.getNumber(), unitPrice.subtract(NumberUtil.null2Zero(it.getDiscountSaleAmount())));
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getName(), it.getNumber().toString(), subTotal.toPlainString(), remark, it.getProGroupInfo()); OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getName(), it.getNumber().toString(), subTotal.toPlainString(), remark, it.getProGroupInfo());
detailList.add(detail); detailList.add(detail);