diff --git a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/account/EnergyAccountController.java b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/account/EnergyAccountController.java index 313ec20..59985a2 100644 --- a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/account/EnergyAccountController.java +++ b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/account/EnergyAccountController.java @@ -1,7 +1,9 @@ package cn.iocoder.yudao.module.energy.controller.admin.account; import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.module.energy.controller.admin.account.vo.*; import cn.iocoder.yudao.module.energy.convert.account.EnergyAccountConvert; import cn.iocoder.yudao.module.energy.dal.dataobject.account.EnergyAccountDO; @@ -12,11 +14,13 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.math.BigDecimal; import java.util.List; @@ -39,6 +43,16 @@ public class EnergyAccountController { return success(EnergyAccountConvert.INSTANCE.convertPage(pageResult)); } + @GetMapping("/export-excel") + @Operation(summary = "导出能源账户 Excel") + @PreAuthorize("@ss.hasPermission('energy:account:export')") + public void exportExcel(@Valid EnergyAccountPageReqVO pageReqVO, HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + PageResult pageResult = accountService.getAccountPage(pageReqVO); + List excelList = EnergyAccountConvert.INSTANCE.convertExcelList(pageResult.getList()); + ExcelUtils.write(response, "能源账户.xlsx", "数据", EnergyAccountExcelVO.class, excelList); + } + @GetMapping("/get") @Operation(summary = "获得账户详情") @Parameter(name = "id", description = "编号", required = true) diff --git a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/account/vo/EnergyAccountExcelVO.java b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/account/vo/EnergyAccountExcelVO.java new file mode 100644 index 0000000..a276518 --- /dev/null +++ b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/account/vo/EnergyAccountExcelVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.energy.controller.admin.account.vo; + +import cn.idev.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDate; + +@Data +public class EnergyAccountExcelVO { + + @ExcelProperty("客户名称") + private String customerName; + + @ExcelProperty("当前余额") + private BigDecimal balance; + + @ExcelProperty("累计充值") + private BigDecimal accumulatedRecharge; + + @ExcelProperty("累计消费") + private BigDecimal accumulatedConsume; + + @ExcelProperty("余额预警阈值") + private BigDecimal reminderThreshold; + + @ExcelProperty("账户状态") + private String accountStatusName; + + @ExcelProperty("最后充值日期") + private LocalDate lastRechargeDate; + +} diff --git a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/bill/EnergyBillController.java b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/bill/EnergyBillController.java index 279224e..09fa885 100644 --- a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/bill/EnergyBillController.java +++ b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/bill/EnergyBillController.java @@ -1,7 +1,9 @@ package cn.iocoder.yudao.module.energy.controller.admin.bill; import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.module.energy.controller.admin.bill.vo.*; import cn.iocoder.yudao.module.energy.convert.bill.EnergyBillConvert; import cn.iocoder.yudao.module.energy.dal.dataobject.bill.EnergyBillDO; @@ -10,11 +12,13 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -36,6 +40,16 @@ public class EnergyBillController { return success(EnergyBillConvert.INSTANCE.convertPage(pageResult)); } + @GetMapping("/export-excel") + @Operation(summary = "导出能源账单 Excel") + @PreAuthorize("@ss.hasPermission('energy:bill:export')") + public void exportExcel(@Valid EnergyBillPageReqVO pageReqVO, HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + PageResult pageResult = billService.getBillPage(pageReqVO); + List excelList = EnergyBillConvert.INSTANCE.convertExcelList(pageResult.getList()); + ExcelUtils.write(response, "能源账单.xlsx", "数据", EnergyBillExcelVO.class, excelList); + } + @GetMapping("/get") @Operation(summary = "获得账单详情") @Parameter(name = "id", description = "编号", required = true) diff --git a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/bill/vo/EnergyBillExcelVO.java b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/bill/vo/EnergyBillExcelVO.java new file mode 100644 index 0000000..495d91c --- /dev/null +++ b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/bill/vo/EnergyBillExcelVO.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.energy.controller.admin.bill.vo; + +import cn.idev.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDate; + +@Data +public class EnergyBillExcelVO { + + @ExcelProperty("账单编号") + private String billCode; + + @ExcelProperty("客户名称") + private String customerName; + + @ExcelProperty("加氢站") + private String stationName; + + @ExcelProperty("合作模式") + private String cooperationTypeName; + + @ExcelProperty("账单周期开始") + private LocalDate billPeriodStart; + + @ExcelProperty("账单周期结束") + private LocalDate billPeriodEnd; + + @ExcelProperty("应收金额") + private BigDecimal receivableAmount; + + @ExcelProperty("实收金额") + private BigDecimal actualAmount; + + @ExcelProperty("调整金额") + private BigDecimal adjustmentAmount; + + @ExcelProperty("账单状态") + private String statusName; + + @ExcelProperty("审核状态") + private String auditStatusName; + + @ExcelProperty("付款状态") + private String paymentStatusName; + +} diff --git a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/detail/HydrogenDetailController.java b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/detail/HydrogenDetailController.java index 8d1ef66..af07e6f 100644 --- a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/detail/HydrogenDetailController.java +++ b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/detail/HydrogenDetailController.java @@ -1,7 +1,9 @@ package cn.iocoder.yudao.module.energy.controller.admin.detail; import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.module.energy.controller.admin.detail.vo.*; import cn.iocoder.yudao.module.energy.convert.detail.HydrogenDetailConvert; import cn.iocoder.yudao.module.energy.dal.dataobject.detail.EnergyHydrogenDetailDO; @@ -10,11 +12,13 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -36,6 +40,16 @@ public class HydrogenDetailController { return success(HydrogenDetailConvert.INSTANCE.convertPage(pageResult)); } + @GetMapping("/export-excel") + @Operation(summary = "导出加氢明细 Excel") + @PreAuthorize("@ss.hasPermission('energy:hydrogen-detail:export')") + public void exportExcel(@Valid HydrogenDetailPageReqVO pageReqVO, HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + PageResult pageResult = hydrogenDetailService.getDetailPage(pageReqVO); + List excelList = HydrogenDetailConvert.INSTANCE.convertExcelList(pageResult.getList()); + ExcelUtils.write(response, "加氢明细.xlsx", "数据", HydrogenDetailExcelVO.class, excelList); + } + @GetMapping("/get") @Operation(summary = "获得明细详情") @Parameter(name = "id", description = "编号", required = true) diff --git a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/detail/vo/HydrogenDetailExcelVO.java b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/detail/vo/HydrogenDetailExcelVO.java new file mode 100644 index 0000000..ccb87f3 --- /dev/null +++ b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/detail/vo/HydrogenDetailExcelVO.java @@ -0,0 +1,49 @@ +package cn.iocoder.yudao.module.energy.controller.admin.detail.vo; + +import cn.idev.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; + +@Data +public class HydrogenDetailExcelVO { + + @ExcelProperty("加氢站") + private String stationName; + + @ExcelProperty("客户名称") + private String customerName; + + @ExcelProperty("车牌号") + private String plateNumber; + + @ExcelProperty("加氢日期") + private LocalDate hydrogenDate; + + @ExcelProperty("加氢量(KG)") + private BigDecimal hydrogenQuantity; + + @ExcelProperty("成本单价") + private BigDecimal costPrice; + + @ExcelProperty("成本金额") + private BigDecimal costAmount; + + @ExcelProperty("对客单价") + private BigDecimal customerPrice; + + @ExcelProperty("对客金额") + private BigDecimal customerAmount; + + @ExcelProperty("审核状态") + private String auditStatusName; + + @ExcelProperty("扣款状态") + private String deductionStatusName; + + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/record/HydrogenRecordController.java b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/record/HydrogenRecordController.java index 821b870..58f591b 100644 --- a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/record/HydrogenRecordController.java +++ b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/controller/admin/record/HydrogenRecordController.java @@ -17,6 +17,10 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +import jakarta.servlet.http.HttpServletResponse; +import java.io.IOException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; @@ -75,6 +79,16 @@ public class HydrogenRecordController { return success(HydrogenRecordConvert.INSTANCE.convertPage(pageResult)); } + @GetMapping("/export-excel") + @Operation(summary = "导出加氢记录 Excel") + @PreAuthorize("@ss.hasPermission('energy:hydrogen-record:export')") + public void exportExcel(@Valid HydrogenRecordPageReqVO pageReqVO, HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + PageResult pageResult = hydrogenRecordService.getRecordPage(pageReqVO); + List excelList = HydrogenRecordConvert.INSTANCE.convertExcelList(pageResult.getList()); + ExcelUtils.write(response, "加氢记录.xlsx", "数据", HydrogenRecordExcelVO.class, excelList); + } + @Deprecated // 被 import-preview + import-confirm + import-progress 三步流程替代 @PostMapping("/import") @Operation(summary = "Excel 批量导入") diff --git a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/convert/account/EnergyAccountConvert.java b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/convert/account/EnergyAccountConvert.java index 1c8c39c..0c02c73 100644 --- a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/convert/account/EnergyAccountConvert.java +++ b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/convert/account/EnergyAccountConvert.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.energy.convert.account; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.energy.controller.admin.account.vo.EnergyAccountExcelVO; import cn.iocoder.yudao.module.energy.controller.admin.account.vo.EnergyAccountRespVO; import cn.iocoder.yudao.module.energy.controller.admin.account.vo.EnergyProjectAccountRespVO; import cn.iocoder.yudao.module.energy.dal.dataobject.account.EnergyAccountDO; @@ -8,6 +9,8 @@ import cn.iocoder.yudao.module.energy.dal.dataobject.account.EnergyProjectAccoun import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; +import java.util.List; + @Mapper public interface EnergyAccountConvert { EnergyAccountConvert INSTANCE = Mappers.getMapper(EnergyAccountConvert.class); @@ -15,4 +18,5 @@ public interface EnergyAccountConvert { PageResult convertPage(PageResult page); EnergyProjectAccountRespVO convert(EnergyProjectAccountDO bean); PageResult convertProjectPage(PageResult page); + List convertExcelList(List list); } diff --git a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/convert/bill/EnergyBillConvert.java b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/convert/bill/EnergyBillConvert.java index 5cc0f81..493acc1 100644 --- a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/convert/bill/EnergyBillConvert.java +++ b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/convert/bill/EnergyBillConvert.java @@ -1,14 +1,18 @@ package cn.iocoder.yudao.module.energy.convert.bill; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.energy.controller.admin.bill.vo.EnergyBillExcelVO; import cn.iocoder.yudao.module.energy.controller.admin.bill.vo.EnergyBillRespVO; import cn.iocoder.yudao.module.energy.dal.dataobject.bill.EnergyBillDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; +import java.util.List; + @Mapper public interface EnergyBillConvert { EnergyBillConvert INSTANCE = Mappers.getMapper(EnergyBillConvert.class); EnergyBillRespVO convert(EnergyBillDO bean); PageResult convertPage(PageResult page); + List convertExcelList(List list); } diff --git a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/convert/detail/HydrogenDetailConvert.java b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/convert/detail/HydrogenDetailConvert.java index 780337b..e76dd1e 100644 --- a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/convert/detail/HydrogenDetailConvert.java +++ b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/convert/detail/HydrogenDetailConvert.java @@ -1,14 +1,18 @@ package cn.iocoder.yudao.module.energy.convert.detail; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.energy.controller.admin.detail.vo.HydrogenDetailExcelVO; import cn.iocoder.yudao.module.energy.controller.admin.detail.vo.HydrogenDetailRespVO; import cn.iocoder.yudao.module.energy.dal.dataobject.detail.EnergyHydrogenDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; +import java.util.List; + @Mapper public interface HydrogenDetailConvert { HydrogenDetailConvert INSTANCE = Mappers.getMapper(HydrogenDetailConvert.class); HydrogenDetailRespVO convert(EnergyHydrogenDetailDO bean); PageResult convertPage(PageResult page); + List convertExcelList(List list); } diff --git a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/convert/record/HydrogenRecordConvert.java b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/convert/record/HydrogenRecordConvert.java index b237216..9289fe9 100644 --- a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/convert/record/HydrogenRecordConvert.java +++ b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/convert/record/HydrogenRecordConvert.java @@ -1,16 +1,20 @@ package cn.iocoder.yudao.module.energy.convert.record; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.energy.controller.admin.record.vo.HydrogenRecordExcelVO; import cn.iocoder.yudao.module.energy.controller.admin.record.vo.HydrogenRecordRespVO; import cn.iocoder.yudao.module.energy.controller.admin.record.vo.HydrogenRecordSaveReqVO; import cn.iocoder.yudao.module.energy.dal.dataobject.record.EnergyHydrogenRecordDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; +import java.util.List; + @Mapper public interface HydrogenRecordConvert { HydrogenRecordConvert INSTANCE = Mappers.getMapper(HydrogenRecordConvert.class); EnergyHydrogenRecordDO convert(HydrogenRecordSaveReqVO bean); HydrogenRecordRespVO convert(EnergyHydrogenRecordDO bean); PageResult convertPage(PageResult page); + List convertExcelList(List list); }