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 34c1d43b..d93e13af 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 @@ -6,6 +6,7 @@ import com.czg.log.annotation.OperationLog; import com.czg.resp.CzgResult; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -34,4 +35,16 @@ public class HandoverRecordController { return CzgResult.success(data); } + /** + * 收银机-交班/关班 + */ + @PostMapping("handover") + @OperationLog("收银机-交班/关班") + //@SaAdminCheckPermission("handoverRecord:handover") + public CzgResult handover() { + Long id = handoverRecordService.handover(); + // TODO 后续需要发生mq消息给打印机 + return CzgResult.success(); + } + } \ No newline at end of file diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/HandoverRecordService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/HandoverRecordService.java index 63a03000..e043b8b6 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/service/HandoverRecordService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/HandoverRecordService.java @@ -23,4 +23,11 @@ public interface HandoverRecordService extends IService { */ void initHandoverRecord(HandoverRecord entity); + /** + * 交班/关班 + * + * @return 交班记录ID + */ + Long handover(); + } \ No newline at end of file diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/HandoverCategoryListVo.java b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/HandoverCategoryListVo.java new file mode 100644 index 00000000..dc0741be --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/HandoverCategoryListVo.java @@ -0,0 +1,40 @@ +package com.czg.account.vo; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 交班售出商品分类统计 + * + * @author tankaikai + * @since 2025-02-27 15:34 + */ +@Data +public class HandoverCategoryListVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + /** + * 商品分类id + */ + private Long categoryId; + /** + * 商品分类名称 + */ + private String categoryName; + /** + * 分类下商品数量 + */ + private Integer quantity; + /** + * 售出数量合计 + */ + private BigDecimal num; + /** + * 小计(商品金额) + */ + private BigDecimal amount; +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoService.java b/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoService.java index 5bdb3a88..c0e11f07 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoService.java @@ -1,6 +1,7 @@ package com.czg.order.service; import com.alibaba.fastjson2.JSONObject; +import com.czg.account.vo.HandoverCategoryListVo; import com.czg.account.vo.HandoverProductListVo; import com.czg.order.dto.CheckOrderPay; import com.czg.order.dto.OrderInfoAddDTO; @@ -50,6 +51,56 @@ public interface OrderInfoService extends IService { */ 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); + /** * 交班退款统计 * @@ -60,6 +111,16 @@ public interface OrderInfoService extends IService { */ BigDecimal getHandoverRefundAmount(Long shopId, String loginTime, String handoverTime); + /** + * 交班挂账统计 + * + * @param shopId 店铺id + * @param loginTime 上岗时间 + * @param handoverTime 交班时间 + * @return 挂账总额 + */ + BigDecimal getHandoverCreditAmount(Long shopId, String loginTime, String handoverTime); + /** * 交班营业额统计 * @@ -89,4 +150,14 @@ public interface OrderInfoService extends IService { * @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); } 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 ec287250..d656f55e 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,10 +1,14 @@ package com.czg.service.account.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.LocalDateTimeUtil; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONWriter; import com.czg.account.dto.HandoverRecordDTO; import com.czg.account.entity.HandoverRecord; import com.czg.account.service.HandoverRecordService; +import com.czg.account.vo.HandoverCategoryListVo; import com.czg.account.vo.HandoverProductListVo; import com.czg.account.vo.HandoverTotalVo; import com.czg.order.service.OrderInfoService; @@ -15,6 +19,7 @@ import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; 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; @@ -46,7 +51,6 @@ public class HandoverRecordServiceImpl extends ServiceImpl categoryData = orderInfoService.getHandoverCategoryList(shopId, loginTimeStr, handoverTimeStr); + entity.setCategoryData(JSON.toJSONString(categoryData, JSONWriter.Feature.WriteMapNullValue)); + List productData = data.getDetailList(); + entity.setProductData(JSON.toJSONString(productData, JSONWriter.Feature.WriteMapNullValue)); + super.updateById(entity); + return entity.getId(); + } + private BigDecimal sumCashAmount(Long shopId, String loginTime, String handoverTime) { return orderInfoService.getHandoverCashAmount(shopId, loginTime, handoverTime); } diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/mapper/OrderInfoMapper.java b/cash-service/order-service/src/main/java/com/czg/service/order/mapper/OrderInfoMapper.java index e5ccc92a..73ed2d5c 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/mapper/OrderInfoMapper.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/mapper/OrderInfoMapper.java @@ -1,5 +1,6 @@ package com.czg.service.order.mapper; +import com.czg.account.vo.HandoverCategoryListVo; import com.czg.account.vo.HandoverProductListVo; import com.czg.order.entity.OrderInfo; import com.mybatisflex.core.BaseMapper; @@ -25,6 +26,56 @@ public interface OrderInfoMapper extends BaseMapper { */ 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); + /** * 交班退款统计 * @@ -35,6 +86,16 @@ public interface OrderInfoMapper extends BaseMapper { */ BigDecimal getHandoverRefundAmount(Long shopId, String loginTime, String handoverTime); + /** + * 交班挂账统计 + * + * @param shopId 店铺id + * @param loginTime 上岗时间 + * @param handoverTime 交班时间 + * @return 挂账总额 + */ + BigDecimal getHandoverCreditAmount(Long shopId, String loginTime, String handoverTime); + /** * 交班营业额统计 * @@ -65,4 +126,13 @@ public interface OrderInfoMapper extends BaseMapper { */ List getHandoverDetailList(Long shopId, String loginTime, String handoverTime); + /** + * 交班售出商品分类统计 + * + * @param shopId 店铺id + * @param loginTime 上岗时间 + * @param handoverTime 交班时间 + * @return 售出商品分类统计 + */ + List getHandoverCategoryList(Long shopId, String loginTime, String handoverTime); } diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java index 460e1c49..9cefc245 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java @@ -10,6 +10,7 @@ import com.alibaba.fastjson2.JSONObject; import com.czg.account.dto.shopuser.ShopUserMoneyEditDTO; import com.czg.account.entity.*; import com.czg.account.service.*; +import com.czg.account.vo.HandoverCategoryListVo; import com.czg.account.vo.HandoverProductListVo; import com.czg.config.RabbitPublisher; import com.czg.config.RedisCst; @@ -567,6 +568,31 @@ public class OrderInfoServiceImpl extends ServiceImpl getHandoverCategoryList(Long shopId, String loginTime, String handoverTime) { + return super.mapper.getHandoverCategoryList(shopId, loginTime, handoverTime); + } + /** * 初始化订单信息 */ diff --git a/cash-service/order-service/src/main/resources/mapper/OrderInfoMapper.xml b/cash-service/order-service/src/main/resources/mapper/OrderInfoMapper.xml index feb6903d..97765528 100644 --- a/cash-service/order-service/src/main/resources/mapper/OrderInfoMapper.xml +++ b/cash-service/order-service/src/main/resources/mapper/OrderInfoMapper.xml @@ -33,7 +33,7 @@ + + + + + + + +