From 022050346d66dfb3a402567c90499762c87574af Mon Sep 17 00:00:00 2001 From: "cyril.tsui" Date: Thu, 21 Aug 2025 18:31:27 +0800 Subject: [PATCH] add escalation user list --- .../modules/user/entity/UserRepository.java | 3 +++ .../user/entity/projections/UserCombo.java | 19 +++++++++++++++++++ .../modules/user/service/UserService.java | 5 +++++ .../modules/user/web/UserController.java | 6 ++++++ 4 files changed, 33 insertions(+) create mode 100644 src/main/java/com/ffii/fpsms/modules/user/entity/projections/UserCombo.java diff --git a/src/main/java/com/ffii/fpsms/modules/user/entity/UserRepository.java b/src/main/java/com/ffii/fpsms/modules/user/entity/UserRepository.java index 79ae635..597ce7e 100644 --- a/src/main/java/com/ffii/fpsms/modules/user/entity/UserRepository.java +++ b/src/main/java/com/ffii/fpsms/modules/user/entity/UserRepository.java @@ -3,6 +3,7 @@ package com.ffii.fpsms.modules.user.entity; import java.util.List; import java.util.Optional; +import com.ffii.fpsms.modules.user.entity.projections.UserCombo; import org.springframework.data.repository.query.Param; import com.ffii.core.support.AbstractRepository; @@ -12,4 +13,6 @@ public interface UserRepository extends AbstractRepository { List findByName(@Param("name") String name); Optional findByUsernameAndDeletedFalse(String username); + + List findUserComboByTitleNotNullAndDepartmentNotNull(); } diff --git a/src/main/java/com/ffii/fpsms/modules/user/entity/projections/UserCombo.java b/src/main/java/com/ffii/fpsms/modules/user/entity/projections/UserCombo.java new file mode 100644 index 0000000..1d117c0 --- /dev/null +++ b/src/main/java/com/ffii/fpsms/modules/user/entity/projections/UserCombo.java @@ -0,0 +1,19 @@ +package com.ffii.fpsms.modules.user.entity.projections; + +import org.springframework.beans.factory.annotation.Value; + +public interface UserCombo { + Long getId(); + + @Value("#{target.id}") + Long getValue(); + + @Value("#{target.department} - #{target.title} - #{target.name}") + String getLabel(); + + String getName(); + + String getDepartment(); + + String getTitle(); +} diff --git a/src/main/java/com/ffii/fpsms/modules/user/service/UserService.java b/src/main/java/com/ffii/fpsms/modules/user/service/UserService.java index 7b4aa87..e316b4a 100644 --- a/src/main/java/com/ffii/fpsms/modules/user/service/UserService.java +++ b/src/main/java/com/ffii/fpsms/modules/user/service/UserService.java @@ -8,6 +8,7 @@ import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; +import com.ffii.fpsms.modules.user.entity.projections.UserCombo; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -269,4 +270,8 @@ public class UserService extends AbstractBaseEntityService getEscalationCombo() { + return userRepository.findUserComboByTitleNotNullAndDepartmentNotNull(); + } } diff --git a/src/main/java/com/ffii/fpsms/modules/user/web/UserController.java b/src/main/java/com/ffii/fpsms/modules/user/web/UserController.java index 6aa3656..8fc4b50 100644 --- a/src/main/java/com/ffii/fpsms/modules/user/web/UserController.java +++ b/src/main/java/com/ffii/fpsms/modules/user/web/UserController.java @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import com.ffii.fpsms.modules.user.entity.projections.UserCombo; import com.ffii.fpsms.modules.user.service.pojo.UserRecord; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -72,6 +73,11 @@ public class UserController{ return ResponseEntity.ok(userService.search(req)); } + @GetMapping("/escalation-combo") + public ResponseEntity> escalationCombo() { + return ResponseEntity.ok(userService.getEscalationCombo()); + } + @GetMapping("/name-list") public ResponseEntity>> namelist() { SearchUserReq req = new SearchUserReq();