From 7b948b514a3768f6d6667d106595c2f84c9f8c23 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 7 Apr 2026 16:02:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A4=E7=8F=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/HandoverRecordController.java | 61 +++---- .../czg/account/dto/HandoverRecordDTO.java | 74 ++++---- .../czg/account/entity/HandoverRecord.java | 75 +++++--- .../com/czg/account/vo/HandoverTotalVo.java | 49 +++++- .../order/service/OrderInfoRpcService.java | 162 +++++------------- .../impl/HandoverRecordServiceImpl.java | 91 ++++------ .../market/mapper/OrderInfoMapper.java | 148 ++++++---------- .../main/resources/mapper/OrderInfoMapper.xml | 92 +--------- .../czg/service/order/print/PrinterImpl.java | 22 +-- .../service/impl/OrderInfoRpcServiceImpl.java | 68 ++------ 10 files changed, 309 insertions(+), 533 deletions(-) diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/HandoverRecordController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/HandoverRecordController.java index f5313e297..be6615d29 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/admin/HandoverRecordController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/HandoverRecordController.java @@ -7,7 +7,6 @@ import com.czg.account.service.HandoverRecordService; import com.czg.account.vo.HandoverProductListVo; import com.czg.account.vo.HandoverTotalVo; import com.czg.annotation.SaAdminCheckPermission; -import com.czg.constants.SystemConstants; import com.czg.excel.ExcelExportUtil; import com.czg.log.annotation.OperationLog; import com.czg.resp.CzgResult; @@ -38,7 +37,6 @@ public class HandoverRecordController { * @param endDate 结束时间 格式:yyyy-MM-dd */ @GetMapping("page") - @OperationLog("交班记录-分页") @SaAdminCheckPermission(parentName = "交班记录", value = "handoverRecord:page", name = "交班记录-分页") public CzgResult> page(@RequestParam(required = false) String beginDate, @RequestParam(required = false) String endDate) { Page page = handoverRecordService.getHandoverRecordPage(beginDate, endDate); @@ -46,20 +44,33 @@ public class HandoverRecordController { } /** - * 交班记录-查看 + * 交班记录-详情 + * + * @param id 交班记录ID + */ + @GetMapping("/detail/{id}") + @SaAdminCheckPermission(parentName = "交班记录", value = "handoverRecord:detail", name = "交班记录-详情") + public CzgResult detail(@PathVariable Long id) { + HandoverRecord entity = handoverRecordService.getById(id); + HandoverRecordDTO data = BeanUtil.copyProperties(entity, HandoverRecordDTO.class); + return CzgResult.success(data); + } + + + /** + * 交班记录-商品详情 * * @param id 交班记录ID */ @GetMapping("{id}") - @OperationLog("交班记录-查看") - @SaAdminCheckPermission(parentName = "交班记录", value = "handoverRecord:info", name = "交班记录-查看") + @SaAdminCheckPermission(parentName = "交班记录", value = "handoverRecord:detail", name = "交班记录-详情") public CzgResult> info(@PathVariable Long id) { List data = handoverRecordService.getHandoverProductListById(id); return CzgResult.success(data); } /** - * 交班记录-导出 + * 交班记录-商品详情导出 * * @param id 交班记录ID */ @@ -71,13 +82,13 @@ public class HandoverRecordController { ExcelExportUtil.exportToResponse(list, HandoverProductListVo.class, "交班售出商品明细", response); } + /** - * 收银机-交班数据统计 + * 收银机-实时交班数据 */ @GetMapping("total") - @OperationLog("收银机-交班数据统计") - @SaAdminCheckPermission(parentName = "交班记录", value = "handoverRecord:total", name = "收银机-交班数据统计") - public CzgResult total() { + @SaAdminCheckPermission(parentName = "交班记录", value = "handoverRecord:realTime", name = "收银机-实时交班数据") + public CzgResult realTime() { HandoverTotalVo data = handoverRecordService.totalHandoverData(); return CzgResult.success(data); } @@ -92,35 +103,7 @@ public class HandoverRecordController { @SaAdminCheckPermission(parentName = "交班记录", value = "handoverRecord:handover", name = "收银机-交班/关班") public CzgResult handover(@RequestParam Integer isPrint) { Long id = handoverRecordService.handover(); + handoverRecordService.printHandoverReceipt(id, isPrint); return CzgResult.success(id); } - - /** - * 收银机-交班/关班-网络打印机打印交班小票 - * - * @param id 交班记录id - */ - @PostMapping("/network/print/{id}") - @OperationLog("收银机-交班/关班-网络打印机打印交班小票") - @SaAdminCheckPermission(parentName = "交班记录", value = "handoverRecord:networkPrint", name = "收银机-交班/关班-网络打印机打印交班小票") - public CzgResult handover(@PathVariable Long id) { - handoverRecordService.printHandoverReceipt(id, SystemConstants.OneZero.ONE); - return CzgResult.success(); - } - - - /** - * 交班记录-详情 - * - * @param id 交班记录ID - */ - @GetMapping("/detail/{id}") - @OperationLog("交班记录-详情") - @SaAdminCheckPermission(parentName = "交班记录", value = "handoverRecord:detail", name = "交班记录-详情") - public CzgResult detail(@PathVariable Long id) { - HandoverRecord entity = handoverRecordService.getById(id); - HandoverRecordDTO data = BeanUtil.copyProperties(entity, HandoverRecordDTO.class); - return CzgResult.success(data); - } - } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/HandoverRecordDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/HandoverRecordDTO.java index 9e571d8f4..2d0bd029a 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/HandoverRecordDTO.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/HandoverRecordDTO.java @@ -53,30 +53,60 @@ public class HandoverRecordDTO implements Serializable { * 员工姓名 */ private String staffName; + /** - * 当班总收入 + * 营业额 */ - private BigDecimal handAmount; + private BigDecimal turnover; + /** - * 现金收入 + * 现金收款 cash_pay */ - private BigDecimal cashAmount; + private BigDecimal cash; /** - * 微信收入 + * 微信支付金额 wechat_mini */ - private BigDecimal wechatAmount; + private BigDecimal wechat; + /** - * 支付宝收入 + * 支付宝支付金额 alipay_mini */ - private BigDecimal alipayAmount; + private BigDecimal alipay; + /** - * 会员支付 + * 二维码收款 main_scan */ - private BigDecimal vipPay; + private BigDecimal selfScan; /** - * 会员充值 + * 扫码收款 back_scan */ - private BigDecimal vipRecharge; + private BigDecimal barScan; + + /** + * 充值 + */ + private BigDecimal recharge; + + /** + * 挂账 credit_pay + */ + private BigDecimal owed; + + /** + * 余额支付 vip_pay + */ + private BigDecimal balance; + + + /** + * 退款金额 + */ + private BigDecimal refundAmount; + /** + * 退菜数量 + */ + private Integer returnDishCount; + /** * 分类数据 json */ @@ -87,18 +117,7 @@ public class HandoverRecordDTO implements Serializable { */ @JSONField(serialize = false) private String productData; - /** - * 快捷收款金额 - */ - private BigDecimal quickInAmount; - /** - * 退款金额 - */ - private BigDecimal refundAmount; - /** - * 挂账金额 - */ - private BigDecimal creditAmount; + /** * 订单数量 */ @@ -124,11 +143,4 @@ public class HandoverRecordDTO implements Serializable { */ private List productDataList; - public List getCategoryDataList() { - return JSON.parseArray(categoryData, HandoverCategoryListVo.class); - } - - public List getProductDataList() { - return JSON.parseArray(productData, HandoverProductListVo.class); - } } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/HandoverRecord.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/HandoverRecord.java index 1c48d04d4..54a7080ea 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/HandoverRecord.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/HandoverRecord.java @@ -53,30 +53,65 @@ public class HandoverRecord implements Serializable { * 员工姓名 */ private String staffName; + /** - * 当班总收入 + * 营业额 */ - private BigDecimal handAmount; + private BigDecimal turnover; + /** - * 现金收入 + * 现金收款 cash_pay */ - private BigDecimal cashAmount; + private BigDecimal cash; /** - * 微信收入 + * 微信支付金额 wechat_mini */ - private BigDecimal wechatAmount; + private BigDecimal wechat; + /** - * 支付宝收入 + * 支付宝支付金额 alipay_mini */ - private BigDecimal alipayAmount; + private BigDecimal alipay; + /** - * 会员支付 + * 二维码收款 main_scan */ - private BigDecimal vipPay; + private BigDecimal selfScan; /** - * 会员充值 + * 扫码收款 back_scan */ - private BigDecimal vipRecharge; + private BigDecimal barScan; + + /** + * 挂账 credit_pay + */ + private BigDecimal owed; + + /** + * 余额支付 vip_pay + */ + private BigDecimal balance; + + /** + * 充值 + */ + private BigDecimal recharge; + + /** + * 退款金额 + */ + private BigDecimal refundAmount; + /** + * 退菜数量 + */ + private Integer returnDishCount; + + + + /** + * 订单数量 + */ + private Integer orderCount; /** * 分类数据 json */ @@ -85,20 +120,4 @@ public class HandoverRecord implements Serializable { * 商品数据 json */ private String productData; - /** - * 快捷收款金额 - */ - private BigDecimal quickInAmount; - /** - * 退款金额 - */ - private BigDecimal refundAmount; - /** - * 挂账金额 - */ - private BigDecimal creditAmount; - /** - * 订单数量 - */ - private Integer orderCount; } \ No newline at end of file diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/HandoverTotalVo.java b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/HandoverTotalVo.java index f9eb9f3d1..b0858d2d3 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/HandoverTotalVo.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/HandoverTotalVo.java @@ -55,17 +55,58 @@ public class HandoverTotalVo implements Serializable { @JSONField(format = "yyyy-MM-dd HH:mm:ss") private LocalDateTime handoverTime; /** - * 现金支付 + * 营业额 */ - private BigDecimal cashAmount; + private BigDecimal turnover; + + /** + * 现金收款 cash_pay + */ + private BigDecimal cash; + /** + * 微信支付金额 wechat_mini + */ + private BigDecimal wechat; + + /** + * 支付宝支付金额 alipay_mini + */ + private BigDecimal alipay; + + /** + * 二维码收款 main_scan + */ + private BigDecimal selfScan; + /** + * 扫码收款 back_scan + */ + private BigDecimal barScan; + + /** + * 充值 + */ + private BigDecimal recharge; + + /** + * 挂账 credit_pay + */ + private BigDecimal owed; + + /** + * 余额支付 vip_pay + */ + private BigDecimal balance; + + /** * 退款金额 */ private BigDecimal refundAmount; /** - * 当班总收入(营业额) + * 退菜数量 */ - private BigDecimal handAmount; + private Integer returnDishCount; + /** * 订单数量 */ diff --git a/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoRpcService.java b/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoRpcService.java index d857b3f37..dc553c76c 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoRpcService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoRpcService.java @@ -1,10 +1,10 @@ package com.czg.order.service; import com.alibaba.fastjson2.JSONObject; +import com.czg.account.entity.HandoverRecord; import com.czg.account.vo.HandoverCategoryListVo; import com.czg.account.vo.HandoverProductListVo; -import java.math.BigDecimal; import java.util.List; /** @@ -15,126 +15,6 @@ import java.util.List; */ public interface OrderInfoRpcService { - /** - * 交班现金支付统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return 现金支付总额 - */ - BigDecimal getHandoverCashAmount(Long shopId, String loginTime, String handoverTime); - - /** - * 交班微信支付统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return 现金支付总额 - */ - BigDecimal getHandoverWechatAmount(Long shopId, String loginTime, String handoverTime); - - /** - * 交班支付宝支付统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return 支付宝支付总额 - */ - BigDecimal getHandoverAlipayAmount(Long shopId, String loginTime, String handoverTime); - - /** - * 交班VIP支付统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return VIP支付总额 - */ - BigDecimal getHandoverVipPayAmount(Long shopId, String loginTime, String handoverTime); - - /** - * 交班VIP充值统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return VIP充值总额 - */ - BigDecimal getHandoverVipChargeAmount(Long shopId, String loginTime, String handoverTime); - - /** - * 交班快捷支付统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return 快捷支付总额 - */ - BigDecimal getHandoverQuickPayAmount(Long shopId, String loginTime, String handoverTime); - - /** - * 交班退款统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return 退款总额 - */ - BigDecimal getHandoverRefundAmount(Long shopId, String loginTime, String handoverTime); - - /** - * 交班挂账统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return 挂账总额 - */ - BigDecimal getHandoverCreditAmount(Long shopId, String loginTime, String handoverTime); - - /** - * 交班营业额统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return 营业额 - */ - BigDecimal getHandoverTotalAmount(Long shopId, String loginTime, String handoverTime); - - /** - * 交班订单数统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return 交班订单数 - */ - int getHandoverOrderNum(Long shopId, String loginTime, String handoverTime); - - /** - * 交班售出商品明细 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return 交班售出商品明细 - */ - List getHandoverDetailList(Long shopId, String loginTime, String handoverTime); - - /** - * 交班售出商品分类统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return 售出商品分类统计 - */ - List getHandoverCategoryList(Long shopId, String loginTime, String handoverTime); - /** * 订单支付成功回调 扣减商品库存及耗材库存 * @@ -162,4 +42,44 @@ public interface OrderInfoRpcService { * @param handoverRecordId 交班记录id */ void sendHandoverReceiptPrintMsgToMq(Long handoverRecordId); + + /** + * 交班售出商品明细 + * + * @param shopId 店铺id + * @param loginTime 上岗时间 + * @param handoverTime 交班时间 + * @return 交班售出商品明细 + */ + List getHandoverDetailList(Long shopId, String loginTime, String handoverTime); + + /** + * 交班售出商品分类统计 + * + * @param shopId 店铺id + * @param loginTime 上岗时间 + * @param handoverTime 交班时间 + * @return 售出商品分类统计 + */ + List getHandoverCategoryList(Long shopId, String loginTime, String handoverTime); + + +//----------------------------------------------------------------------------------------> + + /** + * 支付金额统计 + * 营业额为 订单收款额度 不包括充值 + */ + HandoverRecord getOnlinePayTypeDate(Long shopId, String loginTime, String handoverTime); + + /** + * 订单退菜数量 + */ + int countReturnDish(Long shopId, String loginTime, String handoverTime); + + /** + * 会员充值金额 退款金额 + */ + HandoverRecord countShopUserFlow(Long shopId, String loginTime, String handoverTime); + } diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/HandoverRecordServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/HandoverRecordServiceImpl.java index f5cdde483..77e0dbf3e 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/HandoverRecordServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/HandoverRecordServiceImpl.java @@ -1,8 +1,10 @@ package com.czg.service.account.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONWriter; @@ -13,6 +15,7 @@ import com.czg.account.vo.HandoverCategoryListVo; import com.czg.account.vo.HandoverProductListVo; import com.czg.account.vo.HandoverTotalVo; import com.czg.constants.SystemConstants; +import com.czg.exception.CzgException; import com.czg.order.service.OrderInfoRpcService; import com.czg.sa.StpKit; import com.czg.service.account.mapper.HandoverRecordMapper; @@ -24,7 +27,6 @@ import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; @@ -40,53 +42,40 @@ public class HandoverRecordServiceImpl extends ServiceImpl getHandoverRecordPage(String beginDate, String endDate) { HandoverRecordDTO param = new HandoverRecordDTO(); param.setBeginDate(beginDate); param.setEndDate(endDate); - QueryWrapper queryWrapper = buildQueryWrapper(param); + QueryWrapper queryWrapper = query().eq(HandoverRecord::getShopId, StpKit.USER.getShopId()); + if (StrUtil.isNotEmpty(param.getBeginDate())) { + queryWrapper.ge(HandoverRecord::getHandoverTime, param.getBeginDate() + " 00:00:00"); + } + if (StrUtil.isNotEmpty(param.getEndDate())) { + queryWrapper.le(HandoverRecord::getHandoverTime, param.getEndDate() + " 23:59:59"); + } return super.pageAs(PageUtil.buildPage(), queryWrapper, HandoverRecordDTO.class); } @Override public List getHandoverProductListById(Long id) { - Long shopId = StpKit.USER.getShopId(0L); - HandoverRecord data = super.getOne(query().eq(HandoverRecord::getId, id).eq(HandoverRecord::getShopId, shopId)); - if (data == null) { + Long shopId = StpKit.USER.getShopId(); + HandoverRecord data = getOne(query().eq(HandoverRecord::getId, id).eq(HandoverRecord::getShopId, shopId)); + if (data == null || data.getProductData() == null) { return List.of(); } - String productData = data.getProductData(); - if (StrUtil.isBlank(productData)) { - return List.of(); - } - return JSON.parseArray(productData, HandoverProductListVo.class); + return JSON.parseArray(data.getProductData(), HandoverProductListVo.class); } @Override public HandoverTotalVo totalHandoverData() { - Long shopId = StpKit.USER.getShopId(0L); + Long shopId = StpKit.USER.getShopId(); LocalDateTime handoverTime = LocalDateTime.now(); HandoverRecord record = super.getOne(query().eq(HandoverRecord::getShopId, shopId).isNull(HandoverRecord::getHandoverTime)); HandoverTotalVo data = new HandoverTotalVo(); if (record == null) { - return data; + throw new CzgException("未处在当班状态"); } data.setId(record.getId()); data.setShopId(record.getShopId()); @@ -98,11 +87,19 @@ public class HandoverRecordServiceImpl extends ServiceImpl categoryData = orderInfoRpcService.getHandoverCategoryList(shopId, loginTimeStr, handoverTimeStr); entity.setCategoryData(JSON.toJSONString(categoryData, JSONWriter.Feature.WriteMapNullValue)); List productData = data.getDetailList(); @@ -146,24 +137,4 @@ public class HandoverRecordServiceImpl extends ServiceImpl getDetailList(Long shopId, String loginTime, String handoverTime) { - return orderInfoRpcService.getHandoverDetailList(shopId, loginTime, handoverTime); - } } \ No newline at end of file diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/OrderInfoMapper.java b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/OrderInfoMapper.java index b6226003e..dc05c4abb 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/OrderInfoMapper.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/OrderInfoMapper.java @@ -1,10 +1,12 @@ package com.czg.service.market.mapper; +import com.czg.account.entity.HandoverRecord; import com.czg.account.vo.HandoverCategoryListVo; import com.czg.account.vo.HandoverProductListVo; import com.czg.order.entity.OrderInfo; import com.mybatisflex.core.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.math.BigDecimal; import java.util.List; @@ -16,105 +18,6 @@ import java.util.List; * @since 2025-02-13 */ public interface OrderInfoMapper extends BaseMapper { - /** - * 交班现金支付统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return 现金支付总额 - */ - BigDecimal getHandoverCashAmount(Long shopId, String loginTime, String handoverTime); - - /** - * 交班微信支付统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return 现金支付总额 - */ - BigDecimal getHandoverWechatAmount(Long shopId, String loginTime, String handoverTime); - - /** - * 交班支付宝支付统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return 支付宝支付总额 - */ - BigDecimal getHandoverAlipayAmount(Long shopId, String loginTime, String handoverTime); - - /** - * 交班VIP支付统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return VIP支付总额 - */ - BigDecimal getHandoverVipPayAmount(Long shopId, String loginTime, String handoverTime); - - /** - * 交班VIP充值统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return VIP充值总额 - */ - BigDecimal getHandoverVipChargeAmount(Long shopId, String loginTime, String handoverTime); - - /** - * 交班快捷支付统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return 快捷支付总额 - */ - BigDecimal getHandoverQuickPayAmount(Long shopId, String loginTime, String handoverTime); - - /** - * 交班退款统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return 退款总额 - */ - BigDecimal getHandoverRefundAmount(Long shopId, String loginTime, String handoverTime); - - /** - * 交班挂账统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return 挂账总额 - */ - BigDecimal getHandoverCreditAmount(Long shopId, String loginTime, String handoverTime); - - /** - * 交班营业额统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return 营业额 - */ - BigDecimal getHandoverTotalAmount(Long shopId, String loginTime, String handoverTime); - - /** - * 交班订单数统计 - * - * @param shopId 店铺id - * @param loginTime 上岗时间 - * @param handoverTime 交班时间 - * @return 交班订单数 - */ - int getHandoverOrderNum(Long shopId, String loginTime, String handoverTime); /** * 交班售出商品明细 @@ -140,4 +43,49 @@ public interface OrderInfoMapper extends BaseMapper { int updatePayOrderId(@Param("orderId") Long orderId, @Param("paymentId") Long paymentId, @Param("payType") String payType, @Param("remark") String remark); - } + + /** + * 订单支付方式统计 当日实时数据 + */ + @Select("SELECT" + + " SUM(tb_order_info.pay_amount) AS turnover," + + " SUM(CASE WHEN pay_type = 'main_scan' THEN pay_amount ELSE 0 END) AS selfScan," + + " SUM(CASE WHEN pay_type = 'back_scan' THEN pay_amount ELSE 0 END) AS barScan," + + " SUM(CASE WHEN pay_type = 'wechat_mini' THEN pay_amount ELSE 0 END) AS wechat," + + " SUM(CASE WHEN pay_type = 'alipay_mini' THEN pay_amount ELSE 0 END) AS alipay," + + " SUM(CASE WHEN pay_type = 'vip_pay' THEN pay_amount ELSE 0 END) AS balance," + + " SUM(CASE WHEN pay_type = 'cash_pay' THEN pay_amount ELSE 0 END) AS cash," + + " SUM(CASE WHEN pay_type = 'credit_pay' THEN pay_amount ELSE 0 END) AS owed," + + + " IFNULL(SUM(refund_amount), 0) as refundAmount," + + " count(1) as orderCount " + + " FROM" + + " tb_order_info " + + " WHERE" + + " shop_id = #{shopId} " + + "and create_time >= #{loginTime} and create_time <= #{handoverTime} " + + "and paid_time is not null ") + HandoverRecord getOnlinePayTypeDate(Long shopId, String loginTime, String handoverTime); + + /** + * 订单退菜数量 + */ + @Select("SELECT" + + " SUM(o.return_num) AS returnDishCount " + + " FROM" + + " tb_order_info left join tb_order_detail o on tb_order_info.id = o.order_id" + + " WHERE" + + " tb_order_info.shop_id = #{shopId} " + + "and tb_order_info.create_time >= #{loginTime} and tb_order_info.create_time <= #{handoverTime} " + + "and tb_order_info.paid_time is not null ") + int countReturnDish(Long shopId, String loginTime, String handoverTime); + + @Select("SELECT " + + " SUM(CASE WHEN biz_code IN ('cashIn', 'wechatIn', 'alipayIn', 'adminIn') THEN amount ELSE 0 END) AS recharge," + + " SUM(CASE WHEN biz_code IN ('rechargeRefund', 'rechargeCashRefund') THEN amount ELSE 0 END) AS refundAmount " + + "FROM `tb_shop_user_flow` " + + " WHERE" + + " shop_id = #{shopId} " + + "and create_time >= #{loginTime} and create_time <= #{handoverTime} ") + HandoverRecord countShopUserFlow(Long shopId, String loginTime, String handoverTime); +} diff --git a/cash-service/market-service/src/main/resources/mapper/OrderInfoMapper.xml b/cash-service/market-service/src/main/resources/mapper/OrderInfoMapper.xml index cd64258a1..acc922373 100644 --- a/cash-service/market-service/src/main/resources/mapper/OrderInfoMapper.xml +++ b/cash-service/market-service/src/main/resources/mapper/OrderInfoMapper.xml @@ -45,39 +45,7 @@ where id = #{orderId}; - - - - + - - - - - + - 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 f818f836a..87d44baa0 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 @@ -189,23 +189,23 @@ public interface PrinterImpl { .append(signLabelInfo.br) .append(signLabelInfo.br) - .append(getFormatLabel("当班营业总额: " + handoverRecord.getHandAmount(), signLabelInfo.s)).append(signLabelInfo.br) + .append(getFormatLabel("当班营业总额: " + handoverRecord.getTurnover(), signLabelInfo.s)).append(signLabelInfo.br) .append(getFormatLabel("实际收款的支付方式", signLabelInfo.s)).append(signLabelInfo.br) - .append(getFormatLabel(leftRightAlign(" 现金:", handoverRecord.getCashAmount().toPlainString(), 32), signLabelInfo.s)).append(signLabelInfo.br) - .append(getFormatLabel(leftRightAlign(" 微信:", handoverRecord.getWechatAmount().toPlainString(), 32), signLabelInfo.s)).append(signLabelInfo.br) - .append(getFormatLabel(leftRightAlign(" 支付宝:", handoverRecord.getAlipayAmount().toPlainString(), 32), signLabelInfo.s)).append(signLabelInfo.br) - .append(getFormatLabel(leftRightAlign(" 二维码收款:", "", 32), signLabelInfo.s)).append(signLabelInfo.br) - .append(getFormatLabel(leftRightAlign(" 扫码收款:", "", 32), signLabelInfo.s)).append(signLabelInfo.br) - .append(getFormatLabel(leftRightAlign(" 充值:", handoverRecord.getVipRecharge().toPlainString(), 32), signLabelInfo.s)).append(signLabelInfo.br) + .append(getFormatLabel(leftRightAlign(" 现金:", handoverRecord.getCash().toPlainString(), 32), signLabelInfo.s)).append(signLabelInfo.br) + .append(getFormatLabel(leftRightAlign(" 微信:", handoverRecord.getWechat().toPlainString(), 32), signLabelInfo.s)).append(signLabelInfo.br) + .append(getFormatLabel(leftRightAlign(" 支付宝:", handoverRecord.getAlipay().toPlainString(), 32), signLabelInfo.s)).append(signLabelInfo.br) + .append(getFormatLabel(leftRightAlign(" 二维码收款:", handoverRecord.getSelfScan().toPlainString(), 32), signLabelInfo.s)).append(signLabelInfo.br) + .append(getFormatLabel(leftRightAlign(" 扫码收款:", handoverRecord.getBarScan().toPlainString(), 32), signLabelInfo.s)).append(signLabelInfo.br) + .append(getFormatLabel(leftRightAlign(" 充值:", handoverRecord.getRecharge().toPlainString(), 32), signLabelInfo.s)).append(signLabelInfo.br) .append(getFormatLabel("非实际收款的支付方式", signLabelInfo.s)).append(signLabelInfo.br) - .append(getFormatLabel(leftRightAlign(" 挂账:", handoverRecord.getCreditAmount().toPlainString(), 32), signLabelInfo.s)).append(signLabelInfo.br) - .append(getFormatLabel(leftRightAlign(" 余额:", handoverRecord.getVipPay().toPlainString(), 32), signLabelInfo.s)).append(signLabelInfo.br) + .append(getFormatLabel(leftRightAlign(" 挂账:", handoverRecord.getOwed().toPlainString(), 32), signLabelInfo.s)).append(signLabelInfo.br) + .append(getFormatLabel(leftRightAlign(" 余额:", handoverRecord.getBalance().toPlainString(), 32), signLabelInfo.s)).append(signLabelInfo.br) .append(getFormatLabel("--------------------------------", signLabelInfo.s)).append(signLabelInfo.br) .append(getFormatLabel("退菜/退款", signLabelInfo.s)).append(signLabelInfo.br) .append(getFormatLabel(leftRightAlign(" 退款金额:", handoverRecord.getRefundAmount().toPlainString(), 32), signLabelInfo.s)).append(signLabelInfo.br) - .append(getFormatLabel(leftRightAlign(" 退菜数量:", "", 32), signLabelInfo.s)).append(signLabelInfo.br) + .append(getFormatLabel(leftRightAlign(" 退菜数量:", handoverRecord.getReturnDishCount().toString(), 32), signLabelInfo.s)).append(signLabelInfo.br) .append(getFormatLabel("--------------------------------", signLabelInfo.s)).append(signLabelInfo.br) - .append(getFormatLabel(leftRightAlign("订单(数量/订单总额)", handoverRecord.getOrderCount() + "/" + handoverRecord.getHandAmount(), 32), signLabelInfo.s)).append(signLabelInfo.br) + .append(getFormatLabel(leftRightAlign("订单(数量/订单总额)", handoverRecord.getOrderCount() + "/" + handoverRecord.getTurnover(), 32), signLabelInfo.s)).append(signLabelInfo.br) .append(getFormatLabel("----------- 销售数据 -----------", signLabelInfo.s)).append(signLabelInfo.br) .append(getFormatLabel(formatItemLine("商品分类", "数量", "总计", 14, 8), signLabelInfo.s)) .append(signLabelInfo.br); diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoRpcServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoRpcServiceImpl.java index 968faa6a0..33bfa6911 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoRpcServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoRpcServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.NumberUtil; import com.alibaba.fastjson2.JSONObject; +import com.czg.account.entity.HandoverRecord; import com.czg.account.vo.HandoverCategoryListVo; import com.czg.account.vo.HandoverProductListVo; import com.czg.config.RabbitPublisher; @@ -12,8 +13,8 @@ import com.czg.order.entity.OrderDetail; import com.czg.order.entity.OrderInfo; import com.czg.order.service.OrderInfoRpcService; import com.czg.product.service.ProductRpcService; -import com.czg.service.order.mapper.OrderDetailMapper; import com.czg.service.market.mapper.OrderInfoMapper; +import com.czg.service.order.mapper.OrderDetailMapper; import com.mybatisflex.core.query.QueryWrapper; import io.seata.spring.annotation.GlobalTransactional; import jakarta.annotation.Resource; @@ -47,55 +48,6 @@ public class OrderInfoRpcServiceImpl implements OrderInfoRpcService { @Resource private RabbitPublisher rabbitPublisher; - @Override - public BigDecimal getHandoverWechatAmount(Long shopId, String loginTime, String handoverTime) { - return orderInfoMapper.getHandoverWechatAmount(shopId, loginTime, handoverTime); - } - - @Override - public BigDecimal getHandoverAlipayAmount(Long shopId, String loginTime, String handoverTime) { - return orderInfoMapper.getHandoverAlipayAmount(shopId, loginTime, handoverTime); - } - - @Override - public BigDecimal getHandoverVipPayAmount(Long shopId, String loginTime, String handoverTime) { - return orderInfoMapper.getHandoverVipPayAmount(shopId, loginTime, handoverTime); - } - - @Override - public BigDecimal getHandoverVipChargeAmount(Long shopId, String loginTime, String handoverTime) { - return orderInfoMapper.getHandoverVipChargeAmount(shopId, loginTime, handoverTime); - } - - @Override - public BigDecimal getHandoverQuickPayAmount(Long shopId, String loginTime, String handoverTime) { - return orderInfoMapper.getHandoverQuickPayAmount(shopId, loginTime, handoverTime); - } - - @Override - public BigDecimal getHandoverCashAmount(Long shopId, String loginTime, String handoverTime) { - return orderInfoMapper.getHandoverCashAmount(shopId, loginTime, handoverTime); - } - - @Override - public BigDecimal getHandoverRefundAmount(Long shopId, String loginTime, String handoverTime) { - return orderInfoMapper.getHandoverRefundAmount(shopId, loginTime, handoverTime); - } - - @Override - public BigDecimal getHandoverCreditAmount(Long shopId, String loginTime, String handoverTime) { - return orderInfoMapper.getHandoverCreditAmount(shopId, loginTime, handoverTime); - } - - @Override - public BigDecimal getHandoverTotalAmount(Long shopId, String loginTime, String handoverTime) { - return orderInfoMapper.getHandoverTotalAmount(shopId, loginTime, handoverTime); - } - - @Override - public int getHandoverOrderNum(Long shopId, String loginTime, String handoverTime) { - return orderInfoMapper.getHandoverOrderNum(shopId, loginTime, handoverTime); - } @Override public List getHandoverDetailList(Long shopId, String loginTime, String handoverTime) { @@ -107,6 +59,22 @@ public class OrderInfoRpcServiceImpl implements OrderInfoRpcService { return orderInfoMapper.getHandoverCategoryList(shopId, loginTime, handoverTime); } + @Override + public HandoverRecord getOnlinePayTypeDate(Long shopId, String loginTime, String handoverTime) { + return orderInfoMapper.getOnlinePayTypeDate(shopId, loginTime, handoverTime); + } + + @Override + public int countReturnDish(Long shopId, String loginTime, String handoverTime) { + return orderInfoMapper.countReturnDish(shopId, loginTime, handoverTime); + } + + @Override + public HandoverRecord countShopUserFlow(Long shopId, String loginTime, String handoverTime) { + return orderInfoMapper.countShopUserFlow(shopId, loginTime, handoverTime); + } + + @Override @GlobalTransactional public void paySuccessCallback(Long orderId) {