From 33d411650b2f118cb1727563e1f92c79dc345b77 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 31 Jul 2025 17:13:15 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=E5=8F=91=E7=A5=A8=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E3=80=81=E8=AE=A2=E5=8D=95=E5=8F=91=E7=A5=A8=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/constant/TaskCheckStatusEnum.java | 6 ++ .../controller/order/HardOrderController.java | 4 +- .../mapper/order/HardOrderMapper.xml | 3 + .../WalletRechargeInvoiceStatusEnum.java | 4 +- .../vo/recharge/WalletRechargeInvoiceVo.java | 38 ++++++++- .../WalletRechargeInvoiceController.java | 8 +- .../recharge/WalletRechargeInvoiceMapper.java | 7 ++ .../service/WalletRechargeInvoiceService.java | 12 +++ .../WalletRechargeInvoiceServiceImpl.java | 78 +++++++++++++++++++ .../recharge/WalletRechargeInvoiceMapper.xml | 21 +++-- 10 files changed, 167 insertions(+), 14 deletions(-) diff --git a/pjcloud-flow/pjcloud-flow-task/pjcloud-flow-task-api/src/main/java/com/bsd/pjcloud/flow/task/constant/TaskCheckStatusEnum.java b/pjcloud-flow/pjcloud-flow-task/pjcloud-flow-task-api/src/main/java/com/bsd/pjcloud/flow/task/constant/TaskCheckStatusEnum.java index 90914e694..adf8c9e91 100644 --- a/pjcloud-flow/pjcloud-flow-task/pjcloud-flow-task-api/src/main/java/com/bsd/pjcloud/flow/task/constant/TaskCheckStatusEnum.java +++ b/pjcloud-flow/pjcloud-flow-task/pjcloud-flow-task-api/src/main/java/com/bsd/pjcloud/flow/task/constant/TaskCheckStatusEnum.java @@ -26,4 +26,10 @@ public enum TaskCheckStatusEnum { .findFirst().get(); } + public static TaskCheckStatusEnum codeOf(String code) { + return Arrays.stream(TaskCheckStatusEnum.values()) + .filter(v -> ObjectUtil.equal(v.getCode(), code)) + .findFirst().get(); + } + } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java index 3c35a300f..3332e6c5d 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java @@ -218,9 +218,9 @@ public class HardOrderController { } @Operation(summary = "分页复杂查询", description = "分页复杂查询") - @GetMapping("/page-join") + @PostMapping("/page-join") @PreAuthorize("@pms.hasPermission('hard_hardwareOrder_view')") - public R pageJoin(@ParameterObject Page page, @ParameterObject HardOrderDto dto) { + public R pageJoin(@ParameterObject Page page, @RequestBody HardOrderDto dto) { DataScope dataScope = DataScope.of().func(DataScopeFuncEnum.ALL); dataScope.setScopeDeptName("merchant_dept_id"); PjcloudUser user = SecurityUtils.getUser(); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardOrderMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardOrderMapper.xml index 58e3972f6..613d4c93d 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardOrderMapper.xml +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardOrderMapper.xml @@ -100,6 +100,9 @@ and a.dept_id = #{dto.deptId} + + and a.user_dept_id = #{dto.userDeptId} + and a.merchant_id = #{dto.merchantId} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/WalletRechargeInvoiceStatusEnum.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/WalletRechargeInvoiceStatusEnum.java index 89fc939ed..145a9e782 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/WalletRechargeInvoiceStatusEnum.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/WalletRechargeInvoiceStatusEnum.java @@ -15,8 +15,8 @@ public enum WalletRechargeInvoiceStatusEnum { UNBIND("1", "未绑定充值"), BINDED("2", "已绑定充值"), - UNCHECKED("3", "未审核"), - CHECKED("4", "审核成功"), + UNCHECKED("3", "充值审批-未审核"), + CHECKED("4", "充值审批-审核成功"), FINANCE_CANCELLATION("5", "财务管理员作废"), DEPT_CANCELLATION("6", "部门管理员作废"), ; diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/recharge/WalletRechargeInvoiceVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/recharge/WalletRechargeInvoiceVo.java index 8db67ff71..f2ceb99e4 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/recharge/WalletRechargeInvoiceVo.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/recharge/WalletRechargeInvoiceVo.java @@ -1,6 +1,7 @@ package com.bsd.pjcloud.wallet.api.vo.recharge; import com.bsd.pjcloud.wallet.api.entity.recharge.WalletRechargeInvoiceEntity; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @Data @@ -8,7 +9,42 @@ public class WalletRechargeInvoiceVo extends WalletRechargeInvoiceEntity { private String totalPriceCnStr; - private Boolean isCheckUser; + /** + * 解析后的发票审核状体啊 + */ + private String parseProcessStatus; + + /** + * 解析后的发票状态 + */ + private String paseStatus; + + /** + * 解析后的发票日期 + */ + private String parseTime; + + /** + * 解析后的申请时间 + */ + private String parseApplyTime; + + /** + * 解析后的审核时间 + */ + private String parseProcessTime; + + /** + * 解析后的人民币(元) + */ + private Long paseTotalPrice; + + /** + * 导出相关 + */ + @Schema(description = "列号") + private Long lineNumber; + } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeInvoiceController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeInvoiceController.java index 37c5cbc50..1ee2d8f0e 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeInvoiceController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeInvoiceController.java @@ -13,11 +13,13 @@ import com.bsd.pjcloud.common.security.annotation.Inner; import com.bsd.pjcloud.common.security.service.PjcloudUser; import com.bsd.pjcloud.common.security.util.SecurityUtils; import com.bsd.pjcloud.flow.task.dto.ProcessNodeRecordAssignUserParamDto; +import com.bsd.pjcloud.wallet.api.dto.WalletManageBalanceDto; import com.bsd.pjcloud.wallet.api.dto.recharge.WalletRechargeBindInvoiceDto; import com.bsd.pjcloud.wallet.api.dto.recharge.WalletRechargeInvoiceApplyDto; import com.bsd.pjcloud.wallet.api.entity.recharge.WalletRechargeInvoiceEntity; import com.bsd.pjcloud.wallet.api.vo.recharge.WalletRechargeInvoiceVo; import com.bsd.pjcloud.wallet.service.WalletRechargeInvoiceService; +import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import org.springframework.security.access.prepost.PreAuthorize; import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; @@ -132,9 +134,9 @@ public class WalletRechargeInvoiceController { } @ResponseExcel - @GetMapping("/export") + @PostMapping("/export") @PreAuthorize("@pms.hasPermission('wallet_walletRechargeInvoice_export')") - public List export(WalletRechargeInvoiceEntity walletRechargeInvoice, Long[] ids) { - return walletRechargeInvoiceService.list(Wrappers.lambdaQuery(walletRechargeInvoice).in(ArrayUtil.isNotEmpty(ids), WalletRechargeInvoiceEntity::getId, ids)); + public void export(HttpServletResponse response, @ParameterObject Page page, @RequestBody WalletRechargeBindInvoiceDto dto) { + walletRechargeInvoiceService.export(response, page, dto, DataScope.of()); } } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/recharge/WalletRechargeInvoiceMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/recharge/WalletRechargeInvoiceMapper.java index 0c4011aec..f9805eabc 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/recharge/WalletRechargeInvoiceMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/recharge/WalletRechargeInvoiceMapper.java @@ -9,6 +9,8 @@ import com.bsd.pjcloud.wallet.api.vo.recharge.WalletRechargeInvoiceVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + @Mapper public interface WalletRechargeInvoiceMapper extends PjcloudBaseMapper { @@ -22,6 +24,11 @@ public interface WalletRechargeInvoiceMapper extends PjcloudBaseMapper scopePageList(Page page, @Param("dto") WalletRechargeBindInvoiceDto dto, DataScope dataScope); + /** + * 列表权限查询 + */ + List scopeList(@Param("dto") WalletRechargeBindInvoiceDto dto, DataScope dataScope); + /** * 查询详情 */ diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeInvoiceService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeInvoiceService.java index 43b5155ae..67e7797ed 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeInvoiceService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeInvoiceService.java @@ -9,9 +9,11 @@ import com.bsd.pjcloud.wallet.api.dto.recharge.WalletRechargeBindInvoiceDto; import com.bsd.pjcloud.wallet.api.dto.recharge.WalletRechargeInvoiceApplyDto; import com.bsd.pjcloud.wallet.api.entity.recharge.WalletRechargeInvoiceEntity; import com.bsd.pjcloud.wallet.api.vo.recharge.WalletRechargeInvoiceVo; +import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import java.util.ArrayList; +import java.util.List; public interface WalletRechargeInvoiceService extends IService { @@ -25,6 +27,11 @@ public interface WalletRechargeInvoiceService extends IService scopePageList(Page page, WalletRechargeBindInvoiceDto dto, DataScope dataScope); + /** + * 列表查询 + */ + List scopeList(WalletRechargeBindInvoiceDto dto, DataScope dataScope); + /** * 查询详情 */ @@ -74,4 +81,9 @@ public interface WalletRechargeInvoiceService extends IService scopeList(WalletRechargeBindInvoiceDto dto, DataScope dataScope) { + List pageList = baseMapper.scopeList(dto, dataScope); + disposeList(pageList, dto); + return pageList; + } + + /** * 查询详情 */ @@ -448,6 +466,66 @@ public class WalletRechargeInvoiceServiceImpl extends ServiceImpl list = scopeList(dto, dataScope); + try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(ResourceUtil.getStream("file/充值扣款发票申请.xlsx")).build()) { + WriteSheet writeSheet = EasyExcel.writerSheet().build(); + FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); + Map map = new HashMap(); + if (ObjectUtil.isNotEmpty(dto.getCreateTimeList())) { + map.put("timeSpan", " 到 "); + map.put("startTime", LocalDateTimeUtil.format(dto.getCreateTimeList()[0], DatePattern.NORM_DATETIME_PATTERN)); + map.put("endTime", LocalDateTimeUtil.format(dto.getCreateTimeList()[1], DatePattern.NORM_DATETIME_PATTERN)); + } + if (ObjectUtil.isNotEmpty(list)) { + Long lineNumber = 1L; + BigDecimal balanceSum = BigDecimal.ZERO; + for (WalletRechargeInvoiceVo v : list) { + v.setLineNumber(lineNumber); + lineNumber++; + // 发票申请日期 + if (ObjectUtil.isNotEmpty(v.getTime())) { + v.setParseTime(LocalDateTimeUtil.format(v.getTime(), DatePattern.NORM_DATETIME_PATTERN)); + } + // 申请时间 + if (ObjectUtil.isNotEmpty(v.getApplyTime())) { + v.setParseApplyTime(LocalDateTimeUtil.format(v.getApplyTime(), DatePattern.NORM_DATETIME_PATTERN)); + } + // 审核时间 + if (ObjectUtil.isNotEmpty(v.getProcessTime())) { + v.setParseProcessTime(LocalDateTimeUtil.format(v.getProcessTime(), DatePattern.NORM_DATETIME_PATTERN)); + } + + // 发票状态 + if (ObjectUtil.isNotEmpty(v.getStatus())) { + WalletRechargeInvoiceStatusEnum statusEnum = WalletRechargeInvoiceStatusEnum.codeOf(v.getStatus()); + if (ObjectUtil.isNotEmpty(statusEnum)) v.setPaseStatus(statusEnum.getDesc()); + } + // 发票审核状态 + if (ObjectUtil.isNotEmpty(v.getProcessStatus())) { + TaskCheckStatusEnum statusEnum = TaskCheckStatusEnum.codeOf(v.getProcessStatus()); + if (ObjectUtil.isNotEmpty(statusEnum)) v.setParseProcessStatus(statusEnum.getDesc()); + } + // 合计人民币 + if (ObjectUtil.isNotEmpty(v.getTotalPrice())) { + balanceSum = balanceSum.add(BigDecimal.valueOf(v.getTotalPrice())); + v.setPaseTotalPrice(BigDecimal.valueOf(v.getTotalPrice()).divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).longValue()); + } + } + map.put("computeTotalPrice", balanceSum.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).longValue()); + } + excelWriter.fill(map, writeSheet); + excelWriter.fill(list, fillConfig, writeSheet); + } catch (Exception e) { + e.printStackTrace(); + log.error("|{}|导出失败,error:|{}|", TAG, e.getMessage()); + } + } + private void disposeList(List list, WalletRechargeBindInvoiceDto dto) { if (ObjectUtil.isEmpty(list)) return; // 审批流程 diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/recharge/WalletRechargeInvoiceMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/recharge/WalletRechargeInvoiceMapper.xml index 029f31bf1..26e89012c 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/recharge/WalletRechargeInvoiceMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/recharge/WalletRechargeInvoiceMapper.xml @@ -64,12 +64,7 @@ - - - + SELECT COUNT(0) + FROM wallet_recharge_invoice + + + + + + \ No newline at end of file From 7356a11c8a9128d99977b80ac6b7b2c178d403f7 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 31 Jul 2025 17:44:09 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=E4=BA=A4=E6=98=93=E4=BA=BA=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pjcloud/hard/api/vo/order/HardCanteenProductTotalVo.java | 3 +++ .../src/main/resources/mapper/order/HardCarMapper.xml | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardCanteenProductTotalVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardCanteenProductTotalVo.java index 106582980..4d82b1eaf 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardCanteenProductTotalVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardCanteenProductTotalVo.java @@ -14,6 +14,9 @@ public class HardCanteenProductTotalVo { @Schema(description = "用餐时间段(早中晚)") private String hourType; + @Schema(description = "购买人次") + private Long payUserCount; + @Schema(description = "食品总数量") private Long payCount; diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardCarMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardCarMapper.xml index 3d0169def..a72c59064 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardCarMapper.xml +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardCarMapper.xml @@ -54,7 +54,8 @@ o.hour_type, COUNT(0) as timeCount, SUM(a.product_count) as payCount, - SUM(a.total_price) as totalPrice + SUM(a.total_price) as totalPrice, + count(distinct o.user_id) as payUserCount from hard_car a inner join hard_parent_car p on a.parent_car_id = p.id and p.del_flag = '0' inner join hard_order o on o.parent_car_id = p.id and o.del_flag = '0' and o.hour_type is not null