From 7cdce51c58e25d2dcd9555f990dedac59441cc56 Mon Sep 17 00:00:00 2001 From: Tankaikai Date: Fri, 28 Feb 2025 15:36:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A4=E7=8F=AD=E8=AE=B0=E5=BD=95=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/HandoverRecordController.java | 46 +++++++++++++++++++ cash-api/pom.xml | 4 ++ cash-common/cash-common-service/pom.xml | 4 ++ .../czg/account/dto/HandoverRecordDTO.java | 12 +++++ .../service/HandoverRecordService.java | 23 ++++++++++ .../czg/account/vo/HandoverProductListVo.java | 19 ++++++++ cash-dependencies/pom.xml | 8 +++- .../impl/HandoverRecordServiceImpl.java | 35 ++++++++++++-- 8 files changed, 147 insertions(+), 4 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 99a7478f..b1197d98 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 @@ -1,12 +1,18 @@ package com.czg.controller.admin; +import com.czg.account.dto.HandoverRecordDTO; import com.czg.account.service.HandoverRecordService; +import com.czg.account.vo.HandoverProductListVo; import com.czg.account.vo.HandoverTotalVo; import com.czg.log.annotation.OperationLog; import com.czg.resp.CzgResult; +import com.mybatisflex.core.paginate.Page; +import com.pig4cloud.plugin.excel.annotation.ResponseExcel; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * 交班 @@ -20,6 +26,45 @@ import org.springframework.web.bind.annotation.*; public class HandoverRecordController { private final HandoverRecordService handoverRecordService; + /** + * 交班记录-分页 + * + * @param beginDate 开始时间 格式:yyyy-MM-dd + * @param endDate 结束时间 格式:yyyy-MM-dd + */ + @GetMapping("page") + @OperationLog("交班记录-分页") + //@SaAdminCheckPermission("handoverRecord:page") + public CzgResult> page(@RequestParam(required = false) String beginDate, @RequestParam(required = false) String endDate) { + Page page = handoverRecordService.getHandoverRecordPage(beginDate, endDate); + return CzgResult.success(page); + } + + /** + * 交班记录-查看 + * + * @param id 交班记录ID + */ + @GetMapping("{id}") + @OperationLog("交班记录-查看") + //@SaAdminCheckPermission("handoverRecord:info") + public CzgResult> info(@PathVariable Long id) { + List data = handoverRecordService.getHandoverProductListById(id); + return CzgResult.success(data); + } + + /** + * 交班记录-导出 + * + * @param id 交班记录ID + */ + @ResponseExcel(name = "交班售出商品明细") + @GetMapping("/export/{id}") + @OperationLog("交班记录-导出") + //@SaAdminCheckPermission("handoverRecord:export") + public List export(@PathVariable Long id) { + return handoverRecordService.getHandoverProductListById(id); + } /** * 收银机-交班数据统计 @@ -34,6 +79,7 @@ public class HandoverRecordController { /** * 收银机-交班/关班 + * * @param isPrint 是否打印交班小票 */ @PostMapping("handover") diff --git a/cash-api/pom.xml b/cash-api/pom.xml index d7510b7f..60cdea5b 100644 --- a/cash-api/pom.xml +++ b/cash-api/pom.xml @@ -52,6 +52,10 @@ cash-common-service ${project.version} + + com.pig4cloud.excel + excel-spring-boot-starter + diff --git a/cash-common/cash-common-service/pom.xml b/cash-common/cash-common-service/pom.xml index 3daebf89..515319fe 100644 --- a/cash-common/cash-common-service/pom.xml +++ b/cash-common/cash-common-service/pom.xml @@ -30,6 +30,10 @@ com.mybatis-flex mybatis-flex-processor + + com.pig4cloud.excel + excel-spring-boot-starter + 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 4334cb50..44897a99 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 @@ -1,5 +1,6 @@ package com.czg.account.dto; +import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; import java.io.Serial; @@ -97,4 +98,15 @@ public class HandoverRecordDTO implements Serializable { */ private Integer orderCount; + /** + * 查询开始日期 yyyy-MM-dd + */ + @JSONField(serialize = false) + private String beginDate; + /** + * 查询结束日期 yyyy-MM-dd + */ + @JSONField(serialize = false) + private String endDate; + } \ 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 e043b8b6..7486a481 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 @@ -1,9 +1,14 @@ package com.czg.account.service; +import com.czg.account.dto.HandoverRecordDTO; import com.czg.account.entity.HandoverRecord; +import com.czg.account.vo.HandoverProductListVo; import com.czg.account.vo.HandoverTotalVo; +import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.service.IService; +import java.util.List; + /** * 交班记录表 * @@ -11,6 +16,24 @@ import com.mybatisflex.core.service.IService; * @since 1.0 2025-02-27 */ public interface HandoverRecordService extends IService { + + /** + * 会员积分分页 + * + * @param beginDate 开始日期 + * @param endDate 结束日期 + * @return 分页结果 + */ + Page getHandoverRecordPage(String beginDate, String endDate); + + /** + * 根据交班记录ID获取商品列表 + * + * @param id 交班记录ID + * @return 商品列表 + */ + List getHandoverProductListById(Long id); + /** * 统计交班数据 * diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/HandoverProductListVo.java b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/HandoverProductListVo.java index 26233c33..f3f3b1c7 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/HandoverProductListVo.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/HandoverProductListVo.java @@ -1,5 +1,10 @@ package com.czg.account.vo; +import cn.idev.excel.annotation.ExcelIgnore; +import cn.idev.excel.annotation.ExcelProperty; +import cn.idev.excel.annotation.write.style.ColumnWidth; +import com.alibaba.fastjson2.annotation.JSONField; +import com.pig4cloud.plugin.excel.annotation.ExcelLine; import lombok.Data; import java.io.Serial; @@ -13,32 +18,46 @@ import java.math.BigDecimal; * @since 2025-02-27 15:34 */ @Data +@ColumnWidth(30) public class HandoverProductListVo implements Serializable { @Serial private static final long serialVersionUID = 1L; + /** + * 导入时候回显行号 + */ + @ExcelLine + @ExcelIgnore + @JSONField(serialize = false) + private Long lineNum; /** * 商品id */ + @ExcelIgnore private Long productId; /** * sku id */ + @ExcelIgnore private Long skuId; /** * 商品名称 */ + @ExcelProperty("商品名称") private String productName; /** * 规格名称 */ + @ExcelProperty("规格") private String skuName; /** * 商品数量 */ + @ExcelProperty("数量") private BigDecimal num; /** * 小计(商品金额) */ + @ExcelProperty("金额") private BigDecimal amount; } diff --git a/cash-dependencies/pom.xml b/cash-dependencies/pom.xml index 541d6f7c..03606b84 100644 --- a/cash-dependencies/pom.xml +++ b/cash-dependencies/pom.xml @@ -233,7 +233,13 @@ spring-data-redis ${spring-data-redis.version} - + + + + com.pig4cloud.excel + excel-spring-boot-starter + 3.4.0 + 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 1502e7d2..4998071a 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 @@ -3,6 +3,7 @@ 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 cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONWriter; import com.czg.account.dto.HandoverRecordDTO; @@ -15,6 +16,7 @@ import com.czg.order.service.OrderInfoRpcService; import com.czg.sa.StpKit; import com.czg.service.account.mapper.HandoverRecordMapper; import com.czg.utils.PageUtil; +import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; import org.apache.dubbo.config.annotation.DubboReference; @@ -39,16 +41,43 @@ public class HandoverRecordServiceImpl extends ServiceImpl getHandoverRecordPage(String beginDate, String endDate) { + HandoverRecordDTO param = new HandoverRecordDTO(); + param.setBeginDate(beginDate); + param.setEndDate(endDate); + QueryWrapper queryWrapper = buildQueryWrapper(param); + 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) { + return List.of(); + } + String productData = data.getProductData(); + if (StrUtil.isBlank(productData)) { + return List.of(); + } + return JSON.parseArray(productData, HandoverProductListVo.class); + } + @Override public HandoverTotalVo totalHandoverData() { Long shopId = StpKit.USER.getShopId(0L);