diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletFreezeDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletFreezeDto.java index bd14e0adc..dc7b04ea1 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletFreezeDto.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletFreezeDto.java @@ -14,4 +14,6 @@ public class WalletFreezeDto extends WalletFreezeEntity { private List userIds; + private Boolean isFindCheckUser = false; + } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletFreezeVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletFreezeVo.java index aedb922e6..45d3b4d40 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletFreezeVo.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletFreezeVo.java @@ -29,4 +29,9 @@ public class WalletFreezeVo extends WalletFreezeEntity implements BaseUserInterf private Long walletTypeId; private String cardNumber; + + /** + * 当前用户是否为审批用户 + */ + private Boolean isCheckUser = false; } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletFreezeController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletFreezeController.java index 1cea25205..f3f2c08c5 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletFreezeController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletFreezeController.java @@ -78,6 +78,7 @@ public class WalletFreezeController { @GetMapping("/page-join") @PreAuthorize("@pms.hasPermission('wallet_walletFreeze_view')") public R getWalletFreezePage(@ParameterObject Page page, @ParameterObject WalletFreezeDto dto) { + dto.setIsFindCheckUser(true); return R.ok(walletFreezeService.scopePageList(page, dto)); } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTypeController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTypeController.java index fcd6c2f27..7fb58ad6c 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTypeController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTypeController.java @@ -52,6 +52,7 @@ public class WalletTypeController { @GetMapping("/select") public R> walletList(@ParameterObject Page page, @ParameterObject WalletTypeDto dto) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(ObjectUtil.isNotEmpty(dto.getUniqueCode()), WalletTypeEntity::getUniqueCode, dto.getUniqueCode()); wrapper.orderByDesc(WalletTypeEntity::getCreateTime); wrapper.notIn(ObjectUtil.isNotEmpty(dto.getNotWalletTypeIds()), WalletTypeEntity::getId, dto.getNotWalletTypeIds()); return R.ok(walletTypeService.page(page, wrapper)); diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletFreezeServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletFreezeServiceImpl.java index b58b9750a..ae2576e2c 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletFreezeServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletFreezeServiceImpl.java @@ -19,10 +19,11 @@ import com.bsd.pjcloud.common.core.util.CollectionUtils; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.security.service.PjcloudUser; +import com.bsd.pjcloud.common.security.util.SecurityUtils; import com.bsd.pjcloud.flow.task.api.feign.RemoteFlowEngineService; -import com.bsd.pjcloud.flow.task.constant.NodeStatusEnum; import com.bsd.pjcloud.flow.task.constant.TaskCheckStatusEnum; import com.bsd.pjcloud.flow.task.dto.ProcessNodeRecordAssignUserParamDto; +import com.bsd.pjcloud.flow.task.dto.TaskDto; import com.bsd.pjcloud.flow.task.dto.TaskParamDto; import com.bsd.pjcloud.wallet.api.constant.WalleCardStatusEnum; import com.bsd.pjcloud.wallet.api.dto.WalletFreezeDto; @@ -71,24 +72,7 @@ public class WalletFreezeServiceImpl extends ServiceImpl pageJoin(Page page, WalletFreezeDto dto) { Page list = baseMapper.pageJoin(page, dto); - if (ObjectUtil.isNotEmpty(list.getRecords())) { - // 用户 - List userIds = list.getRecords().stream().map(WalletFreezeVo::getUserId).distinct().toList(); - if (ObjectUtil.isNotEmpty(userIds)) { - R> userList = userService.getUserById(new ArrayList<>(userIds)); - if (ObjectUtil.isNotEmpty(userList.getData())) { - DataUtil.convertUserList(page.getRecords(), CollectionUtils.convertMap(userList.getData(), SysUser::getUserId)); - } - } - // 部门 - List deptIds = list.getRecords().stream().map(WalletFreezeVo::getDeptId).distinct().toList(); - if (ObjectUtil.isNotEmpty(deptIds)) { - R> deptList = deptService.getDeptByDeptIds(deptIds); - if (ObjectUtil.isNotEmpty(deptList.getData())) { - DataUtil.convertDeptList(page.getRecords(), deptList.getData()); - } - } - } + disposeList(list.getRecords(), dto); return list; } @@ -97,24 +81,7 @@ public class WalletFreezeServiceImpl extends ServiceImpl list = baseMapper.scopePageList(page, dto, dataScope); - if (ObjectUtil.isNotEmpty(list.getRecords())) { - // 用户 - List userIds = list.getRecords().stream().map(WalletFreezeVo::getUserId).distinct().toList(); - if (ObjectUtil.isNotEmpty(userIds)) { - R> userList = userService.getUserById(new ArrayList<>(userIds)); - if (ObjectUtil.isNotEmpty(userList.getData())) { - DataUtil.convertUserList(page.getRecords(), CollectionUtils.convertMap(userList.getData(), SysUser::getUserId)); - } - } - // 部门 - List deptIds = list.getRecords().stream().map(WalletFreezeVo::getDeptId).distinct().toList(); - if (ObjectUtil.isNotEmpty(deptIds)) { - R> deptList = deptService.getDeptByDeptIds(deptIds); - if (ObjectUtil.isNotEmpty(deptList.getData())) { - DataUtil.convertDeptList(page.getRecords(), deptList.getData()); - } - } - } + disposeList(list.getRecords(), dto); return list; } @@ -221,11 +188,48 @@ public class WalletFreezeServiceImpl extends ServiceImpl() .eq(WalletFreezeEntity::getUserId, walletId) - .eq(WalletFreezeEntity::getProcessStatus, NodeStatusEnum.JXZ.getCode()) + .eq(WalletFreezeEntity::getProcessStatus, TaskCheckStatusEnum.PADDING.getCode()) ); return count > 0; } + private void disposeList(List list, WalletFreezeDto dto) { + if (ObjectUtil.isEmpty(list)) return; + // 用户 + List userIds = list.stream().map(WalletFreezeVo::getUserId).distinct().toList(); + if (ObjectUtil.isNotEmpty(userIds)) { + R> userList = userService.getUserById(new ArrayList<>(userIds)); + if (ObjectUtil.isNotEmpty(userList.getData())) { + DataUtil.convertUserList(list, CollectionUtils.convertMap(userList.getData(), SysUser::getUserId)); + } + } + // 部门 + List deptIds = list.stream().map(WalletFreezeVo::getDeptId).distinct().toList(); + if (ObjectUtil.isNotEmpty(deptIds)) { + R> deptList = deptService.getDeptByDeptIds(deptIds); + if (ObjectUtil.isNotEmpty(deptList.getData())) { + DataUtil.convertDeptList(list, deptList.getData()); + } + } + // 审批 + if (dto.getIsFindCheckUser()) { + List processInstanceIds = list.stream().map(WalletFreezeVo::getProcessId).filter(ObjectUtil::isNotEmpty).distinct().toList(); + if (ObjectUtil.isNotEmpty(processInstanceIds)) { + List taskList = flowUtil.queryProcessInstanceList(SecurityUtils.getUser().getId().toString(), processInstanceIds); + if (ObjectUtil.isNotEmpty(taskList)) { + Map taskMap = CollectionUtils.convertMap(taskList, TaskDto::getProcessInstanceId); + CollectionUtils.convertList(list, v -> { + TaskDto task = taskMap.get(v.getProcessId()); + if (ObjectUtil.isNotEmpty(task)) { + v.setIsCheckUser(true); + } + return v; + }); + } + } + } + } + private WalletFreezeServiceImpl getSelf() { return SpringUtil.getBean(getClass()); } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletFreezeMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletFreezeMapper.xml index be0938e8b..dd6fc22fd 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletFreezeMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletFreezeMapper.xml @@ -59,5 +59,6 @@ and w.card_number like concat('%', #{dto.cardNumber}, '%') + order by a.create_time desc,a.id desc \ No newline at end of file