From 178544fe2d52bf48cc149193c04a833a3537e42f Mon Sep 17 00:00:00 2001 From: "pikachu1995@126.com" Date: Wed, 24 Jan 2024 09:48:25 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=AB=AF=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E7=BB=93=E7=AE=97=E5=8D=95=E8=B4=A6=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/serviceimpl/BillServiceImpl.java | 75 +++++++++++++++++-- .../store/BillManagerController.java | 14 ++++ 2 files changed, 81 insertions(+), 8 deletions(-) diff --git a/framework/src/main/java/cn/lili/modules/store/serviceimpl/BillServiceImpl.java b/framework/src/main/java/cn/lili/modules/store/serviceimpl/BillServiceImpl.java index 4d58b471..c05b108c 100644 --- a/framework/src/main/java/cn/lili/modules/store/serviceimpl/BillServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/store/serviceimpl/BillServiceImpl.java @@ -30,6 +30,10 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; @@ -37,9 +41,9 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.net.URLEncoder; -import java.util.Date; -import java.util.List; +import java.util.*; /** * 结算单业务层实现 @@ -217,8 +221,61 @@ public class BillServiceImpl extends ServiceImpl implements Bi @Override public void download(HttpServletResponse response, String id) { + Bill bill = this.getById(id); - ExcelWriter writer = ExcelUtil.getWriterWithSheet("入账订单"); + //创建Excel工作薄对象 + ExcelWriter writer = ExcelUtil.getWriterWithSheet("店铺结算单"); + writer.setSheet("店铺结算单"); + Map map=new LinkedHashMap<>(); + map.put("创建时间",DateUtil.format(bill.getCreateTime(), "yyyy-MM-dd")); + writer.setColumnWidth(0, 15); + map.put("账单号",bill.getSn()); + writer.setColumnWidth(1, 30); + map.put("结算开始时间",DateUtil.format(bill.getStartTime(), "yyyy-MM-dd")); + writer.setColumnWidth(2, 15); + map.put("结算结束时间",DateUtil.format(bill.getEndTime(), "yyyy-MM-dd")); + writer.setColumnWidth(3, 15); + map.put("账单状态",BillStatusEnum.valueOf(bill.getBillStatus()).description()); + map.put("店铺名称",bill.getStoreName()); + writer.setColumnWidth(5, 15); + map.put("平台付款时间",DateUtil.format(bill.getPayTime(), "yyyy-MM-dd")); + writer.setColumnWidth(6, 15); + map.put("银行开户名",bill.getBankAccountName()); + writer.setColumnWidth(7, 15); + map.put("银行账号",bill.getBankAccountNumber()); + writer.setColumnWidth(8, 15); + map.put("开户行",bill.getBankName()); + writer.setColumnWidth(9, 15); + map.put("联行号",bill.getBankCode()); + map.put("订单金额",bill.getOrderPrice()); + map.put("退单金额",bill.getRefundPrice()); + map.put("平台收取服务费",bill.getCommissionPrice()); + writer.setColumnWidth(13, 15); + map.put("退单退回平台服务费",bill.getRefundCommissionPrice()); + writer.setColumnWidth(14, 25); + map.put("分销佣金",bill.getDistributionCommission()); + map.put("退单退还分销佣金",bill.getDistributionRefundCommission()); + writer.setColumnWidth(16, 20); + map.put("平台优惠券补贴",bill.getSiteCouponCommission()); + writer.setColumnWidth(17, 15); + map.put("退单退回平台优惠券补贴",bill.getSiteCouponRefundCommission()); + writer.setColumnWidth(18, 25); + map.put("积分商品补贴",bill.getSiteCouponCommission()); + writer.setColumnWidth(19, 15); + map.put("积分商品补贴",bill.getPointSettlementPrice()); + writer.setColumnWidth(20, 15); + map.put("退单退回积分商品补贴",bill.getPointRefundSettlementPrice()); + writer.setColumnWidth(21, 25); + map.put("砍价商品补贴",bill.getKanjiaSettlementPrice()); + writer.setColumnWidth(22, 15); + map.put("退单退回砍价补贴",bill.getKanjiaRefundSettlementPrice()); + writer.setColumnWidth(23, 25); + map.put("最终结算金额",bill.getBillPrice()); + writer.setColumnWidth(24, 15); + writer.writeRow(map,true); + + + writer.setSheet("入账订单"); writer.addHeaderAlias("createTime", "入账时间"); writer.setColumnWidth(0, 20); @@ -241,7 +298,6 @@ public class BillServiceImpl extends ServiceImpl implements Bi writer.addHeaderAlias("billPrice", "应结金额"); writer.setColumnWidth(11, 20); - List storeFlowList = storeFlowService.getStoreFlowPayDownloadVO(StoreFlowQueryDTO.builder().type(FlowTypeEnum.PAY.name()).bill(bill).build()); writer.write(storeFlowList, true); @@ -256,7 +312,7 @@ public class BillServiceImpl extends ServiceImpl implements Bi writer.setColumnWidth(3, 20); writer.addHeaderAlias("goodsName", "商品名称"); writer.setColumnWidth(4, 70); - writer.addHeaderAlias("num", "销售量"); + writer.addHeaderAlias("num", "退款量"); writer.addHeaderAlias("finalPrice", "退款金额"); writer.addHeaderAlias("commissionPrice", "平台分佣"); writer.addHeaderAlias("siteCouponPrice", "平台优惠券"); @@ -269,23 +325,26 @@ public class BillServiceImpl extends ServiceImpl implements Bi writer.addHeaderAlias("billPrice", "结算金额"); writer.setColumnWidth(12, 20); - List storeFlowRefundDownloadVOList = storeFlowService.getStoreFlowRefundDownloadVO(StoreFlowQueryDTO.builder().type(FlowTypeEnum.REFUND.name()).bill(bill).build()); writer.write(storeFlowRefundDownloadVOList, true); ServletOutputStream out = null; try { + writer.setOnlyAlias(true); + //设置公共属性,列表名称 response.setContentType("application/vnd.ms-excel;charset=utf-8"); - response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(bill.getStoreName() + "-" + bill.getSn(), "UTF8") + ".xls"); + response.setHeader("Content-Disposition", URLEncoder.encode("店铺结算单详情", "UTF8") + ".xls"); out = response.getOutputStream(); writer.flush(out, true); } catch (Exception e) { - log.error("下载结算单错误", e); + log.error("下载列表错误", e); } finally { writer.close(); IoUtil.close(out); } + + } } diff --git a/manager-api/src/main/java/cn/lili/controller/store/BillManagerController.java b/manager-api/src/main/java/cn/lili/controller/store/BillManagerController.java index 4fbe985a..c434744a 100644 --- a/manager-api/src/main/java/cn/lili/controller/store/BillManagerController.java +++ b/manager-api/src/main/java/cn/lili/controller/store/BillManagerController.java @@ -1,6 +1,8 @@ package cn.lili.controller.store; +import cn.lili.common.context.ThreadContextHolder; import cn.lili.common.enums.ResultUtil; +import cn.lili.common.security.OperationalJudgment; import cn.lili.common.vo.PageVO; import cn.lili.common.vo.ResultMessage; import cn.lili.modules.order.order.entity.dos.StoreFlow; @@ -17,6 +19,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.NotNull; /** @@ -66,4 +69,15 @@ public class BillManagerController { return ResultUtil.success(); } + @ApiOperation(value = "下载结算单", produces = "application/octet-stream") + @ApiImplicitParam(name = "id", value = "结算单ID", required = true, paramType = "path", dataType = "String") + @GetMapping(value = "/downLoad/{id}") + public void downLoadDeliverExcel(@PathVariable String id) { + OperationalJudgment.judgment(billService.getById(id)); + HttpServletResponse response = ThreadContextHolder.getHttpResponse(); + billService.download(response, id); + + } + + }