diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletExportCzTotalPerson.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletExportCzTotalPerson.java new file mode 100644 index 000000000..5b2ceb3aa --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletExportCzTotalPerson.java @@ -0,0 +1,29 @@ +package com.bsd.pjcloud.wallet.api.vo; + +import lombok.Data; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +@Data +public class WalletExportCzTotalPerson { + + private Long lineNumber; + + private String mchName; + + private String deptName; + + private String name; + + private String phone; + + private Long price; + + private String priceStr; + + private LocalDateTime createTime; + + private String createTimeStr; + +} diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTransactionController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTransactionController.java index 5c874cd5f..3b37287be 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTransactionController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTransactionController.java @@ -130,6 +130,20 @@ public class WalletTransactionController { walletTransactionService.exportCzTotal(response, dto, null); } + @Operation(summary = "后台充值统计按照个人(导出)", description = "后台充值统计按照个人(导出)") + @PostMapping("/export-cz-total-person") + public void exportCzTotalPerson(HttpServletResponse response, @RequestBody WalletTransactionDto dto) { + dto.setBizTypes(WalletBizEnum.getTopUpCodes()); + dto.setType(WalletTransactionDto.TYPE_INCOME); + if (ObjectUtil.isNotEmpty(dto.getPrice())) { + dto.setPrice(dto.getPrice() * 100); + } + if (ObjectUtil.isNotEmpty(dto.getPriceList())) { + dto.setPriceList(dto.getPriceList().stream().map(item -> item * 100).toList()); + } + walletTransactionService.exportCzTotalPerson(response, dto, null); + } + @Operation(summary = "后台充值统计", description = "后台充值统计") @PostMapping("/page-cz-dept-total") public R> listDeptCzTotal(@RequestBody WalletTransactionDto dto) { diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletTransactionMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletTransactionMapper.java index 81453e7b8..a2fe5e7a2 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletTransactionMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletTransactionMapper.java @@ -12,6 +12,7 @@ import com.bsd.pjcloud.wallet.api.dto.WalletTransactionSumAndCountDto; import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity; import com.bsd.pjcloud.wallet.api.entity.WalletTransactionEntity; import com.bsd.pjcloud.wallet.api.entity.WalletTypeEntity; +import com.bsd.pjcloud.wallet.api.vo.WalletExportCzTotalPerson; import com.bsd.pjcloud.wallet.api.vo.WalletTransactionSumAndCountVo; import com.bsd.pjcloud.wallet.api.vo.WalletTypeCountVo; import com.bsd.pjcloud.wallet.api.vo.WalletTypeTotalVo; @@ -94,4 +95,6 @@ public interface WalletTransactionMapper extends PjcloudBaseMapper sumAndCount(@Param("dto") WalletTransactionSumAndCountDto dto); + + List exportCzTotalPerson(); } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletTransactionService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletTransactionService.java index 939bc09b8..99eeb0657 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletTransactionService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletTransactionService.java @@ -73,4 +73,9 @@ public interface WalletTransactionService extends IService list = baseMapper.exportCzTotalPerson(); + + WriteSheet writeSheet = EasyExcel.writerSheet().build(); + FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); + Map map = new HashMap(); + Long lineNumber = 1L; + BigDecimal priceTotal = BigDecimal.ZERO; + if (ObjectUtil.isNotEmpty(list)) { + for (WalletExportCzTotalPerson v : list) { + v.setLineNumber(lineNumber); + lineNumber++; + if (ObjectUtil.isNotEmpty(v.getPrice())) { + priceTotal = priceTotal.add(BigDecimal.valueOf(v.getPrice())); + v.setPriceStr(BigDecimal.valueOf(v.getPrice()).divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); + } + if (ObjectUtil.isNotEmpty(v.getCreateTime())) { + v.setCreateTimeStr(LocalDateTimeUtil.format(v.getCreateTime(), DatePattern.NORM_DATETIME_PATTERN)); + } + } + map.put("priceTotal", priceTotal.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); + } + excelWriter.fill(map, writeSheet); + excelWriter.fill(new ArrayList<>(list), fillConfig, writeSheet); + } catch (IOException e) { + e.printStackTrace(); + log.error("|{}|后台充值统计(导出),dto:|{}|,fileName:|{}|,error:|{}|", TAG, JSON.toJSONString(dto), fileName, e.getMessage()); + } + } + private void disposeList(List list, WalletTransactionDto dto) { if (ObjectUtil.isNotEmpty(list)) { // 用户 diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/file/个人充值统计800、1600、2400.xlsx b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/file/个人充值统计800、1600、2400.xlsx new file mode 100644 index 000000000..9a169a9d6 Binary files /dev/null and b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/file/个人充值统计800、1600、2400.xlsx differ diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletTransactionMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletTransactionMapper.xml index 507660478..8fba8ca13 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletTransactionMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletTransactionMapper.xml @@ -265,4 +265,20 @@ group by a.dept_id + + \ No newline at end of file