From 43b50b04b0b99ed54f6cf199fe544ead579b3313 Mon Sep 17 00:00:00 2001 From: "cyril.tsui" Date: Wed, 22 Jan 2025 17:49:19 +0800 Subject: [PATCH] can create project now if the project code is used and the project is deleted --- .../ffii/tsms/modules/project/entity/ProjectRepository.kt | 2 ++ .../ffii/tsms/modules/project/service/ProjectsService.kt | 6 +++--- .../tsms/modules/timesheet/service/TimesheetsService.kt | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/ffii/tsms/modules/project/entity/ProjectRepository.kt b/src/main/java/com/ffii/tsms/modules/project/entity/ProjectRepository.kt index 7a55c60..e0b5634 100644 --- a/src/main/java/com/ffii/tsms/modules/project/entity/ProjectRepository.kt +++ b/src/main/java/com/ffii/tsms/modules/project/entity/ProjectRepository.kt @@ -38,6 +38,8 @@ interface ProjectRepository : AbstractRepository { fun findByCode(code: String): Project? + fun findByCodeAndDeletedIsFalse(code: String): Project? + @Query("SELECT p.id FROM Project p WHERE substring_index(substring_index(p.code, '-', 2), '-', -1) like concat('%', substring_index(substring_index(?1, '-', 2), '-', -1), '%')") fun checkMainProjectByCodeLike(code: String): List? diff --git a/src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt b/src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt index e1665c2..09bb101 100644 --- a/src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt +++ b/src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt @@ -210,7 +210,7 @@ open class ProjectsService( // if (request.projectCode != null && request.mainProjectId == null) projectRepository.checkMainProjectByCodeLike(request.projectCode) else null val duplicateProject = - if (request.projectCode != null) projectRepository.findByCode(request.projectCode) else null + if (request.projectCode != null) projectRepository.findByCodeAndDeletedIsFalse(request.projectCode) else null //check duplicate project // if (!duplicateProject.isNullOrEmpty() && !duplicateProject.contains(request.projectId)) { @@ -597,7 +597,7 @@ open class ProjectsService( mainProjectCode + '-' + String.format("%03d", splitProjectCode[1].split(')')[0].toInt()) val mainProject = - projectRepository.findByCode(mainProjectCode) ?: projectRepository.saveAndFlush( + projectRepository.findByCodeAndDeletedIsFalse(mainProjectCode) ?: projectRepository.saveAndFlush( Project().apply { name = row.getCell(1).stringCellValue description = row.getCell(1).stringCellValue @@ -617,7 +617,7 @@ open class ProjectsService( projectCode = splitProjectCode[0] + '-' + String.format("%04d", splitProjectCode[1].toInt()) } - val project = projectRepository.findByCode(projectCode) + val project = projectRepository.findByCodeAndDeletedIsFalse(projectCode) val projectId = project?.id logger.info("projectCode :$projectCode") diff --git a/src/main/java/com/ffii/tsms/modules/timesheet/service/TimesheetsService.kt b/src/main/java/com/ffii/tsms/modules/timesheet/service/TimesheetsService.kt index cd2ca3c..5573028 100644 --- a/src/main/java/com/ffii/tsms/modules/timesheet/service/TimesheetsService.kt +++ b/src/main/java/com/ffii/tsms/modules/timesheet/service/TimesheetsService.kt @@ -240,7 +240,7 @@ open class TimesheetsService( } logger.info("Project Code: $projectCode") - val project = projectRepository.findByCode(projectCode) + val project = projectRepository.findByCodeAndDeletedIsFalse(projectCode) // process project task logger.info("---------project task-------")