From 6efb85055c637e7440aa99124b4c6a1f939d8aab Mon Sep 17 00:00:00 2001 From: "MSI\\derek" Date: Mon, 6 May 2024 18:15:22 +0800 Subject: [PATCH 1/3] update --- .../tsms/modules/user/req/UpdateUserReq.java | 18 ++++++++--------- .../modules/user/service/GroupService.java | 20 +++++++++++++++++++ .../modules/user/service/UserService.java | 18 ++++++----------- .../modules/user/web/GroupController.java | 8 ++++++++ 4 files changed, 43 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/ffii/tsms/modules/user/req/UpdateUserReq.java b/src/main/java/com/ffii/tsms/modules/user/req/UpdateUserReq.java index 531eba6..87838be 100644 --- a/src/main/java/com/ffii/tsms/modules/user/req/UpdateUserReq.java +++ b/src/main/java/com/ffii/tsms/modules/user/req/UpdateUserReq.java @@ -27,8 +27,8 @@ public class UpdateUserReq { @NotBlank @Email private String email; - @NotBlank - private String department; +// @NotBlank +// private String department; // @NotNull private List addGroupIds; @@ -140,12 +140,12 @@ public class UpdateUserReq { this.email = email; } - public String getDepartment() { - return department; - } - - public void setDepartment(String department) { - this.department = department; - } +// public String getDepartment() { +// return department; +// } +// +// public void setDepartment(String department) { +// this.department = department; +// } } diff --git a/src/main/java/com/ffii/tsms/modules/user/service/GroupService.java b/src/main/java/com/ffii/tsms/modules/user/service/GroupService.java index f7cc523..2d5a694 100644 --- a/src/main/java/com/ffii/tsms/modules/user/service/GroupService.java +++ b/src/main/java/com/ffii/tsms/modules/user/service/GroupService.java @@ -173,4 +173,24 @@ public class GroupService extends AbstractBaseEntityService> listGroupAuth(Map args) { + + StringBuilder sql = new StringBuilder("SELECT" + + " a.id, " + + " a.module," + + " a.authority," + + " a.name," + + " a.description, "); +// if (args.containsKey("userId")) +// sql.append(" EXISTS(SELECT 1 FROM group_authority WHERE authority = a.authority AND groupId = :groupId) AS v"); +// else + sql.append(" 0 AS v"); + sql.append(" FROM authority a" + + " ORDER BY a.module, a.name"); + + return jdbcDao.queryForList(sql.toString(), args); + } + } diff --git a/src/main/java/com/ffii/tsms/modules/user/service/UserService.java b/src/main/java/com/ffii/tsms/modules/user/service/UserService.java index 2ad8ff5..5416a46 100644 --- a/src/main/java/com/ffii/tsms/modules/user/service/UserService.java +++ b/src/main/java/com/ffii/tsms/modules/user/service/UserService.java @@ -3,15 +3,12 @@ package com.ffii.tsms.modules.user.service; import java.io.UnsupportedEncodingException; import java.util.LinkedHashSet; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.Date; -import java.util.stream.Collectors; import com.ffii.tsms.modules.common.service.AuditLogService; -import org.apache.commons.lang3.LocaleUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -41,8 +38,6 @@ import jakarta.persistence.Table; import com.ffii.core.utils.JsonUtils; import com.ffii.tsms.modules.common.SecurityUtils; -import jakarta.mail.internet.InternetAddress; - @Service public class UserService extends AbstractBaseEntityService { private static final String USER_AUTH_SQL = "SELECT a.authority" @@ -91,9 +86,9 @@ public class UserService extends AbstractBaseEntityService softDelete(User user) { + public void softDelete(User user) { - // =====GET OLD AUDIT LOG=====// + // =====GET OLD AUDIT LOG=====// String tableName = user.getClass().getAnnotation(Table.class).name(); StringBuilder sql = new StringBuilder("SELECT * FROM " + tableName + " WHERE id = :id"); String oldValueJson = null; @@ -124,8 +119,6 @@ public class UserService extends AbstractBaseEntityService> authComboJson(HttpServletRequest request) throws ServletRequestBindingException { + System.out.println(request); + return new RecordsRes<>(groupService.listGroupAuth( + CriteriaArgsBuilder.withRequest(request) + .build())); + } + } From 44fba1ac6641b682186dff46e2447ac250a036f8 Mon Sep 17 00:00:00 2001 From: "MSI\\2Fi" Date: Tue, 7 May 2024 11:46:09 +0800 Subject: [PATCH 2/3] Edit Department adn Edit Position --- .../data/entity/DepartmentRepository.java | 6 +++- .../modules/data/service/DepartmentService.kt | 29 ++++++++++++++----- .../modules/data/service/PositionService.kt | 20 +++++++++---- .../modules/data/web/DepartmentController.kt | 14 +++++++++ .../modules/data/web/PositionController.kt | 7 +++++ .../data/web/models/NewDepartmentRequest.kt | 5 ++-- .../data/web/models/NewPositionRequest.kt | 6 ++-- 7 files changed, 68 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/ffii/tsms/modules/data/entity/DepartmentRepository.java b/src/main/java/com/ffii/tsms/modules/data/entity/DepartmentRepository.java index 7fb5f2e..7dd9233 100644 --- a/src/main/java/com/ffii/tsms/modules/data/entity/DepartmentRepository.java +++ b/src/main/java/com/ffii/tsms/modules/data/entity/DepartmentRepository.java @@ -4,7 +4,11 @@ import com.ffii.core.support.AbstractRepository; import com.ffii.tsms.modules.data.entity.projections.DepartmentSearchInfo; import java.util.List; +import java.util.Optional; public interface DepartmentRepository extends AbstractRepository { - List findDepartmentSearchInfoBy(); + List findDepartmentSearchInfoByAndDeletedFalse(); + + Optional findDepartmentSearchInfoById(Long departmentId); + } \ No newline at end of file diff --git a/src/main/java/com/ffii/tsms/modules/data/service/DepartmentService.kt b/src/main/java/com/ffii/tsms/modules/data/service/DepartmentService.kt index 373f9c4..17142c9 100644 --- a/src/main/java/com/ffii/tsms/modules/data/service/DepartmentService.kt +++ b/src/main/java/com/ffii/tsms/modules/data/service/DepartmentService.kt @@ -6,7 +6,10 @@ import com.ffii.tsms.modules.data.entity.Department import com.ffii.tsms.modules.data.entity.DepartmentRepository import com.ffii.tsms.modules.data.entity.projections.DepartmentSearchInfo import com.ffii.tsms.modules.data.web.models.NewDepartmentRequest +import com.ffii.tsms.modules.project.web.models.EditProjectDetails +import org.springframework.beans.BeanUtils import org.springframework.stereotype.Service +import kotlin.jvm.optionals.getOrNull @Service open class DepartmentService( @@ -14,20 +17,32 @@ open class DepartmentService( private val jdbcDao: JdbcDao, ) : AbstractBaseEntityService(jdbcDao, departmentRepository) { open fun allDepartments(): List{ - return departmentRepository.findDepartmentSearchInfoBy() + return departmentRepository.findDepartmentSearchInfoByAndDeletedFalse() } open fun saveDepartment(request: NewDepartmentRequest): Department { - val department = - Department().apply { - name = request.departmentName - code = request.departmentCode - description = request.description - } + var department = Department() + + if (request.id != null && request.id > 0) { + department = departmentRepository.findById(request.id).orElseThrow() + + BeanUtils.copyProperties(request, department) + + }else{ + department.name = request.name + department.code = request.code + department.description = request.description + } return departmentRepository.save(department) } + open fun getDepartmentDetails(departmentId: Long): DepartmentSearchInfo? { + val department = departmentRepository.findDepartmentSearchInfoById(departmentId).orElseThrow() + + return department + } + open fun combo(args: Map): List> { val sql = StringBuilder("select" + " d.id as id," diff --git a/src/main/java/com/ffii/tsms/modules/data/service/PositionService.kt b/src/main/java/com/ffii/tsms/modules/data/service/PositionService.kt index 3907970..a0e4555 100644 --- a/src/main/java/com/ffii/tsms/modules/data/service/PositionService.kt +++ b/src/main/java/com/ffii/tsms/modules/data/service/PositionService.kt @@ -12,6 +12,7 @@ import com.ffii.tsms.modules.data.entity.projections.DepartmentSearchInfo import com.ffii.tsms.modules.data.entity.projections.PositionSearchInfo import com.ffii.tsms.modules.data.web.models.NewDepartmentRequest import com.ffii.tsms.modules.data.web.models.NewPositionRequest +import org.springframework.beans.BeanUtils import org.springframework.stereotype.Service @Service open class PositionService( @@ -27,12 +28,19 @@ open class PositionService( } open fun savePosition(request: NewPositionRequest): Position { - val position = - Position().apply { - name = request.positionName - code = request.positionCode - description = request.description - } + + var position = Position() + + if (request.id != null && request.id > 0 ){ + position = positionRepository.findById(request.id).orElseThrow() + + BeanUtils.copyProperties(request, position) + + }else{ + position.name = request.name + position.code = request.code + position.description = request.description + } return positionRepository.save(position) } diff --git a/src/main/java/com/ffii/tsms/modules/data/web/DepartmentController.kt b/src/main/java/com/ffii/tsms/modules/data/web/DepartmentController.kt index 89f33ef..e9dd030 100644 --- a/src/main/java/com/ffii/tsms/modules/data/web/DepartmentController.kt +++ b/src/main/java/com/ffii/tsms/modules/data/web/DepartmentController.kt @@ -1,5 +1,6 @@ package com.ffii.tsms.modules.data.web +import com.ffii.core.exception.NotFoundException import com.ffii.core.response.RecordsRes import com.ffii.core.utils.CriteriaArgsBuilder import com.ffii.tsms.modules.data.entity.Department @@ -7,9 +8,11 @@ import com.ffii.tsms.modules.data.entity.projections.DepartmentSearchInfo import com.ffii.tsms.modules.data.service.DepartmentService import com.ffii.tsms.modules.data.web.models.NewDepartmentRequest import com.ffii.tsms.modules.project.entity.Project +import com.ffii.tsms.modules.project.web.models.EditProjectDetails import com.ffii.tsms.modules.project.web.models.NewProjectRequest import jakarta.servlet.http.HttpServletRequest import jakarta.validation.Valid +import org.springframework.http.HttpStatus import org.springframework.web.bind.ServletRequestBindingException import org.springframework.web.bind.annotation.* @@ -22,11 +25,22 @@ class DepartmentController(private val departmentService: DepartmentService return departmentService.allDepartments() } + @GetMapping("/departmentDetails/{id}") + fun departmentDetails(@PathVariable id: Long): DepartmentSearchInfo { + return departmentService.getDepartmentDetails(id) ?: throw NotFoundException() + } + @PostMapping("/new") fun saveProject(@Valid @RequestBody newDepartment: NewDepartmentRequest): Department { return departmentService.saveDepartment(newDepartment) } + @DeleteMapping("/{id}") + @ResponseStatus(HttpStatus.NO_CONTENT) + fun deleteDepartment(@PathVariable id: Long) { + departmentService.markDelete(id) + } + @GetMapping("/combo") @Throws(ServletRequestBindingException::class) fun combo(request: HttpServletRequest?): RecordsRes> { diff --git a/src/main/java/com/ffii/tsms/modules/data/web/PositionController.kt b/src/main/java/com/ffii/tsms/modules/data/web/PositionController.kt index 67aca56..dfb674d 100644 --- a/src/main/java/com/ffii/tsms/modules/data/web/PositionController.kt +++ b/src/main/java/com/ffii/tsms/modules/data/web/PositionController.kt @@ -14,6 +14,7 @@ import com.ffii.tsms.modules.project.entity.Project import com.ffii.tsms.modules.project.web.models.NewProjectRequest import jakarta.servlet.http.HttpServletRequest import jakarta.validation.Valid +import org.springframework.http.HttpStatus import org.springframework.web.bind.ServletRequestBindingException import org.springframework.web.bind.annotation.* @@ -36,6 +37,12 @@ class PositionController(private val positionService: PositionService return positionService.savePosition(newPosition) } + @DeleteMapping("/{id}") + @ResponseStatus(HttpStatus.NO_CONTENT) + fun deletePosition(@PathVariable id: Long) { + positionService.markDelete(id) + } + @GetMapping("/combo") @Throws(ServletRequestBindingException::class) fun combo(request: HttpServletRequest?): RecordsRes> { diff --git a/src/main/java/com/ffii/tsms/modules/data/web/models/NewDepartmentRequest.kt b/src/main/java/com/ffii/tsms/modules/data/web/models/NewDepartmentRequest.kt index eb43676..87ee7c2 100644 --- a/src/main/java/com/ffii/tsms/modules/data/web/models/NewDepartmentRequest.kt +++ b/src/main/java/com/ffii/tsms/modules/data/web/models/NewDepartmentRequest.kt @@ -3,10 +3,11 @@ package com.ffii.tsms.modules.data.web.models import jakarta.validation.constraints.NotBlank data class NewDepartmentRequest ( + val id: Long?, @field: NotBlank(message = "Department code cannot be empty") - val departmentCode: String, + val code: String, @field:NotBlank(message = "Department name cannot be empty") - val departmentName: String, + val name: String, val description: String ) diff --git a/src/main/java/com/ffii/tsms/modules/data/web/models/NewPositionRequest.kt b/src/main/java/com/ffii/tsms/modules/data/web/models/NewPositionRequest.kt index c0f177d..b41d13a 100644 --- a/src/main/java/com/ffii/tsms/modules/data/web/models/NewPositionRequest.kt +++ b/src/main/java/com/ffii/tsms/modules/data/web/models/NewPositionRequest.kt @@ -4,12 +4,12 @@ import jakarta.validation.constraints.NotBlank data class NewPositionRequest ( - val id: Long, + val id: Long?, @field: NotBlank(message = "Position code cannot be empty") - val positionCode: String, + val code: String, @field:NotBlank(message = "Position name cannot be empty") - val positionName: String, + val name: String, val description: String ) From f183b9fc17bcddc9162761e2e8f8ed5816528684 Mon Sep 17 00:00:00 2001 From: "MSI\\derek" Date: Tue, 7 May 2024 16:09:22 +0800 Subject: [PATCH 3/3] update user group --- .../tsms/modules/user/service/GroupService.java | 7 +++---- .../tsms/modules/user/service/pojo/UserRecord.java | 8 ++++++++ .../ffii/tsms/modules/user/web/GroupController.java | 13 ++++++++----- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/ffii/tsms/modules/user/service/GroupService.java b/src/main/java/com/ffii/tsms/modules/user/service/GroupService.java index 2d5a694..7112da3 100644 --- a/src/main/java/com/ffii/tsms/modules/user/service/GroupService.java +++ b/src/main/java/com/ffii/tsms/modules/user/service/GroupService.java @@ -183,14 +183,13 @@ public class GroupService extends AbstractBaseEntityService> authComboJson(HttpServletRequest request) throws ServletRequestBindingException { + @GetMapping("/auth/combo/{id}") + public RecordsRes> authComboJson(HttpServletRequest request, @PathVariable("id") int id) throws ServletRequestBindingException { System.out.println(request); - return new RecordsRes<>(groupService.listGroupAuth( - CriteriaArgsBuilder.withRequest(request) - .build())); + Map args = new HashMap<>(); + if (id != 0) + args.put("groupId", id); + + return new RecordsRes<>(groupService.listGroupAuth(args)); } }