diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderDto.java index ddde43b92..dee26ad8f 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderDto.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderDto.java @@ -14,8 +14,11 @@ public class HardOrderDto extends HardOrderEntity { * 订单部门id极其子部门id */ private Long deptIdIdDeepen; + private List deptIds; + private Boolean isDeepDept = false; + private List userIds; private List userDeptIds; diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardDeptTotalVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardDeptTotalVo.java index 6503c1efa..bc7bb55a8 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardDeptTotalVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardDeptTotalVo.java @@ -12,10 +12,10 @@ public class HardDeptTotalVo { @Schema(description = "部门名") private String deptName; - @Schema(description = "充值金额") + @Schema(description = "批量充值金额") private Long walletPrice = 0L; - @Schema(description = "充值次数") + @Schema(description = "批量充值次数") private Long walletCount = 0L; @Schema(description = "消费金额") 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 475432689..1aade24a8 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 @@ -3,7 +3,6 @@ package com.bsd.pjcloud.hard.controller.order; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.io.resource.ResourceUtil; -import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.excel.EasyExcel; diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderTotalServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderTotalServiceImpl.java index 78adec755..8a8b09be1 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderTotalServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderTotalServiceImpl.java @@ -21,6 +21,7 @@ import com.bsd.pjcloud.hard.api.vo.order.HardOrderSumAndCountVo; import com.bsd.pjcloud.hard.mapper.HardManagerMapper; import com.bsd.pjcloud.hard.mapper.order.HardOrderMapper; import com.bsd.pjcloud.hard.service.HardOrderTotalService; +import com.bsd.pjcloud.wallet.api.constant.WalletBizEnum; import com.bsd.pjcloud.wallet.api.dto.WalletTransactionSumAndCountDto; import com.bsd.pjcloud.wallet.api.feign.RemoteMchService; import com.bsd.pjcloud.wallet.api.feign.RemoteWalletTransactionService; @@ -35,6 +36,7 @@ import org.springframework.validation.annotation.Validated; import java.util.ArrayList; import java.util.List; import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; @Validated @Slf4j @@ -51,6 +53,13 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { @Override public Page pageListSb(Page page, HardOrderDto dto) { + if (ObjectUtil.isNotEmpty(dto.getIsDeepDept()) && dto.getIsDeepDept() && ObjectUtil.isNotEmpty(dto.getDeptId())) { + List deptList = remoteDeptService.getDescendantList(dto.getDeptId()).getData(); + dto.setDeptId(null); + if (ObjectUtil.isNotEmpty(deptList)) { + dto.setDeptIds(deptList.stream().map(SysDept::getDeptId).collect(Collectors.toList())); + } + } Page list = hardOrderMapper.pageListSb(page, dto); if (ObjectUtil.isNotEmpty(list)) { // 商户 @@ -148,10 +157,11 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { item.setDeptName(v.getName()); return item; }).toList(); - // 查询钱包流水 - CompletableFuture> walletFuture = CompletableFuture.supplyAsync(() -> { + // 查询钱包批量充值流水 + CompletableFuture> walletBatchFuture = CompletableFuture.supplyAsync(() -> { WalletTransactionSumAndCountDto walletDto = new WalletTransactionSumAndCountDto(); walletDto.setDeptIds(deptIds); + walletDto.setBizTypes(List.of(WalletBizEnum.BATCH.getCode())); if (ObjectUtil.isNotEmpty(dto.getCreateTimeList())) { walletDto.setCreateTimeList(dto.getCreateTimeList()); } @@ -186,15 +196,15 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { } return hardOrderMapper.sumAndCount(refundDto); }); - CompletableFuture allFutures = CompletableFuture.allOf(walletFuture, payFuture, refundFuture); + CompletableFuture allFutures = CompletableFuture.allOf(walletBatchFuture, payFuture, refundFuture); allFutures.join(); - List walletList = walletFuture.join(); + List walletBatchList = walletBatchFuture.join(); List payList = payFuture.join(); List refundList = refundFuture.join(); // 聚合一下数据 for (HardDeptTotalVo v : resultList) { - if (ObjectUtil.isNotEmpty(walletList)) { - walletList.stream().filter(i -> ObjectUtil.equals(i.getDeptId(), v.getDeptId())).findFirst().ifPresent(i -> { + if (ObjectUtil.isNotEmpty(walletBatchList)) { + walletBatchList.stream().filter(i -> ObjectUtil.equals(i.getDeptId(), v.getDeptId())).findFirst().ifPresent(i -> { v.setWalletPrice(i.getSum()); v.setWalletCount(i.getCount()); }); 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 ecfb453b6..40aee211c 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 @@ -77,6 +77,15 @@ and a.hour_type = #{dto.hourType} + + and a.dept_id = #{dto.deptId} + + + and a.dept_id in + + #{v} + + and a.order_status in diff --git a/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteDeptService.java b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteDeptService.java index 5353eab62..494715601 100644 --- a/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteDeptService.java +++ b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteDeptService.java @@ -48,6 +48,12 @@ public interface RemoteDeptService { @GetMapping("/dept/list") R> getAllDept(@RequestParam("parentDeptId") Long parentDeptId); + /** + * 查询所有部门包括被删除的 + * 被删除的部门名有(被删除)标注 + * + * @return + */ @NoToken @GetMapping("/dept/inner-all-dept") R> getInnerAllDept(); @@ -92,7 +98,7 @@ public interface RemoteDeptService { R> getParentDeptList(@RequestParam("deptId") Long deptId); /** - * 获得指定部门的所有父部门 + * 获得指定部门的所有子部门 * * @param deptId * @return diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysDeptController.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysDeptController.java index 5e9454543..b2729e309 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysDeptController.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysDeptController.java @@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.admin.api.entity.SysDept; import com.bsd.pjcloud.admin.api.vo.DeptExcelVO; +import com.bsd.pjcloud.admin.mapper.SysDeptMapper; import com.bsd.pjcloud.admin.service.SysDeptService; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.excel.annotation.RequestExcel; @@ -61,6 +62,8 @@ public class SysDeptController { private final SysDeptService sysDeptService; + private final SysDeptMapper sysDeptMapper; + /** * 通过ID查询 * @@ -226,6 +229,6 @@ public class SysDeptController { @Inner @GetMapping("/inner-all-dept") public R> getInnerAllDept() { - return R.ok(sysDeptService.list()); + return R.ok(sysDeptMapper.allList()); } } diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/mapper/SysDeptMapper.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/mapper/SysDeptMapper.java index 8ba3b15df..a98cfa300 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/mapper/SysDeptMapper.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/mapper/SysDeptMapper.java @@ -23,6 +23,8 @@ import com.bsd.pjcloud.admin.api.entity.SysDept; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** *

* 部门管理 Mapper 接口 @@ -34,4 +36,5 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface SysDeptMapper extends PjcloudBaseMapper { + List allList(); } diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysDeptMapper.xml b/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysDeptMapper.xml index 621b0e753..3925e0d0f 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysDeptMapper.xml +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysDeptMapper.xml @@ -20,4 +20,44 @@ + + + + + + + + + + + + + + select a.dept_id, + a.name, + a.hard_group_id, + a.sort_order, + a.create_by, + a.update_by, + a.create_time, + a.update_time, + a.del_flag, + a.parent_id, + a.tenant_id + + +