打印问题

This commit is contained in:
gong
2026-03-28 15:21:46 +08:00
parent 250cd58996
commit e4174b41fc
4 changed files with 29 additions and 13 deletions

View File

@@ -4,7 +4,9 @@ import com.czg.order.vo.OrderDetailPrintVo;
import com.mybatisflex.core.BaseMapper;
import com.czg.order.entity.OrderDetail;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import java.time.LocalDateTime;
import java.util.List;
/**
@@ -18,4 +20,10 @@ public interface OrderDetailMapper extends BaseMapper<OrderDetail> {
List<OrderDetailPrintVo> getOrderDetailPrint(Long orderId);
@Update("UPDATE tb_order_detail SET status = #{status}, order_time = #{orderTime} " +
"WHERE order_id = #{orderId} AND status = 'wait-pay'")
int updateStatusByOrderId(@Param("orderId") Long orderId,
@Param("status") String status,
@Param("orderTime") LocalDateTime orderTime);
}

View File

@@ -92,13 +92,23 @@ public class FeiPrinter extends PrinterHandler implements PrinterImpl {
if (StrUtil.isNotBlank(machine.getPrintQty())) {
printerNum = machine.getPrintQty().split("\\^")[1];
}
BigDecimal refundAmount = BigDecimal.ZERO;
for (OrderDetail orderDetail : detailList) {
refundAmount = refundAmount.add(orderDetail.getReturnAmount());
}
PrintInfoDTO printInfoDTO = new PrintInfoDTO().setShopName(shopInfo.getShopName())
.setPrintType("普通打印").setPickupNum(getPickupNum(orderInfo))
.setOrderNo(orderInfo.getOrderNo()).setTradeDate(DateUtil.format(orderInfo.getCreateTime(), "yyyy-MM-dd HH:mm:ss")).setOperator("【POS-1】001").setPayAmount(orderInfo.getPayAmount().toPlainString())
.setOriginalAmount((orderInfo.getOriginAmount().add(orderInfo.getSeatAmount()).add(orderInfo.getPackFee())).toPlainString()).setReturn(isReturn(orderInfo))
.setBalance(balance).setPayType((ObjectUtil.isEmpty(orderInfo.getPayType()) || ObjectUtil.isNull(orderInfo.getPayType()) ? "" : orderInfo.getPayType())).setIntegral("0")
.setOutNumber(orderInfo.getTakeCode()).setPrintTitle("结算单")
.setOrderNo(orderInfo.getOrderNo())
.setTradeDate(DateUtil.format(orderInfo.getCreateTime(), "yyyy-MM-dd HH:mm:ss"))
.setOperator("【POS-1】001").setPayAmount(orderInfo.getPayAmount().toPlainString())
.setOriginalAmount((orderInfo.getOriginAmount().add(orderInfo.getSeatAmount()).add(orderInfo.getPackFee()).subtract(refundAmount)).toPlainString())
.setReturn(isReturn(orderInfo))
.setBalance(balance)
.setPayType((ObjectUtil.isEmpty(orderInfo.getPayType()) || ObjectUtil.isNull(orderInfo.getPayType()) ? "" : orderInfo.getPayType()))
.setIntegral("0")
.setOutNumber(orderInfo.getTakeCode())
.setPrintTitle("结算单")
.setRemark(orderInfo.getRemark())
// 使用累计的总优惠金额,如果为 null 则用原价减去实付计算
.setDiscountAmount(calculateDiscountAmount(orderInfo));

View File

@@ -156,11 +156,16 @@ public class YxyPrinter extends PrinterHandler implements PrinterImpl {
.eq(OrderInfo::getStatus, OrderStatusEnums.DONE.getCode())
.eq(OrderInfo::getShopId, orderInfo.getShopId())
.le(OrderInfo::getCreateTime, orderInfo.getCreateTime()));
BigDecimal refundAmount = BigDecimal.ZERO;
for (OrderDetail orderDetail : detailList) {
refundAmount = refundAmount.add(orderDetail.getReturnAmount());
}
PrintInfoDTO printInfoDTO = new PrintInfoDTO().setShopName(shopInfo.getShopName())
.setPrintType("普通打印").setPickupNum(getPickupNum(orderInfo))
.setOrderNo(orderInfo.getOrderNo()).setTradeDate(DateUtil.format(orderInfo.getCreateTime(), "yyyy-MM-dd HH:mm:ss"))
.setOperator("【POS-1】001").setPayAmount(orderInfo.getPayAmount().toPlainString())
.setOriginalAmount((orderInfo.getOriginAmount().add(orderInfo.getSeatAmount()).add(orderInfo.getPackFee())).toPlainString()).setReturn(isReturn(orderInfo))
.setOriginalAmount((orderInfo.getOriginAmount().add(orderInfo.getSeatAmount()).add(orderInfo.getPackFee()).subtract(refundAmount)).toPlainString())
.setReturn(isReturn(orderInfo))
.setBalance(balance).setPayType((ObjectUtil.isEmpty(orderInfo.getPayType()) || ObjectUtil.isNull(orderInfo.getPayType()) ? "" : orderInfo.getPayType())).setIntegral("0")
.setOutNumber(orderInfo.getTakeCode())
.setPrintTitle(isPre ? "预结算单" : "结算单")

View File

@@ -35,13 +35,6 @@ public class OrderDetailServiceImpl extends ServiceImpl<OrderDetailMapper, Order
@Override
public void updateOrderDetailStatus(Long orderId,String status) {
OrderDetail orderDetail = new OrderDetail();
orderDetail.setStatus(status);
orderDetail.setOrderTime(LocalDateTime.now());
update(orderDetail, QueryWrapper.create()
.eq(OrderDetail::getOrderId,orderId)
.eq(OrderDetail::getStatus,"wait-pay")
);
getMapper().updateStatusByOrderId(orderId, status, LocalDateTime.now());
}
}