Преглед изворни кода

update

tags/Baseline_30082024_BACKEND_UAT
cyril.tsui пре 1 година
родитељ
комит
8be66a31ef
2 измењених фајлова са 102 додато и 34 уклоњено
  1. +1
    -1
      src/main/java/com/ffii/tsms/modules/data/web/SkillController.kt
  2. +101
    -33
      src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt

+ 1
- 1
src/main/java/com/ffii/tsms/modules/data/web/SkillController.kt Прегледај датотеку

@@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.*
open class SkillController(private val skillService: SkillService) {

@PostMapping("/save")
@PreAuthorize("hasAuthority('MAINTAIN_MASTERDATA')")
// @PreAuthorize("hasAuthority('MAINTAIN_MASTERDATA')")
open fun saveSkill(@Valid @RequestBody newSkill: NewSkillRequest): Skill {
return skillService.saveOrUpdate(newSkill)
}


+ 101
- 33
src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt Прегледај датотеку

@@ -111,7 +111,8 @@ open class ProjectsService(
code = project.code!!,
name = project.name!!,
status = project.status,
tasks = projectTaskRepository.findAllByProject(project).mapNotNull { pt -> pt.task }.sortedBy { it.taskGroup?.id },
tasks = projectTaskRepository.findAllByProject(project).mapNotNull { pt -> pt.task }
.sortedBy { it.taskGroup?.id },
milestones = milestoneRepository.findAllByProject(project)
.filter { milestone -> milestone.taskGroup?.id != null }
.associateBy { milestone -> milestone.taskGroup!!.id!! }.mapValues { (_, milestone) ->
@@ -202,9 +203,9 @@ open class ProjectsService(
actualStart = request.projectActualStart
actualEnd = request.projectActualEnd
status = if (this.status == "Deleted" || this.deleted == true) "Deleted"
else if (this.actualStart != null && this.actualEnd != null) "Completed"
else if (this.actualStart != null) "On-going"
else request.projectStatus ?: "Pending To Start"
else if (this.actualStart != null && this.actualEnd != null) "Completed"
else if (this.actualStart != null) "On-going"
else request.projectStatus ?: "Pending To Start"
isClpProject = request.isClpProject
this.mainProject = mainProject

@@ -303,7 +304,8 @@ open class ProjectsService(
val savedProject = projectRepository.saveAndFlush(project)

val milestonesToDelete = milestoneRepository.findAllByProject(project).subtract(milestones.toSet())
val tasksToDelete = projectTaskRepository.findAllByProject(project).subtract(tasksToSave.toSet())
val mapTasksToSave = tasksToSave.map { it.task!!.id }
val tasksToDelete = projectTaskRepository.findAllByProject(project).filter { !mapTasksToSave.contains(it.task!!.id) }
val gradeAllocationsToDelete =
gradeAllocationRepository.findByProject(project).subtract(gradeAllocations.toSet())
milestoneRepository.deleteAll(milestonesToDelete)
@@ -489,21 +491,22 @@ open class ProjectsService(
logger.info("---------client-------")
logger.info(customerRepository.findByName(row.getCell(5).stringCellValue.trim()))
val tempClient = customerRepository.findByName(row.getCell(5).stringCellValue.trim())
val currentClient = if (tempClient.isPresent) tempClient.orElseThrow() else customerService.saveCustomer(
SaveCustomerRequest(
code = customerService.createClientCode(),
name = ExcelUtils.getStringValue(row.getCell(5)),
typeId = ExcelUtils.getIntValue(row.getCell(6)).toLong(),
deleteSubsidiaryIds = mutableListOf(),
deleteContactIds = mutableListOf(),
addSubsidiaryIds = mutableListOf(),
addContacts = mutableListOf(),
address = null,
brNo = null,
id = null,
district = null,
)
).customer
val currentClient =
if (tempClient.isPresent) tempClient.orElseThrow() else customerService.saveCustomer(
SaveCustomerRequest(
code = customerService.createClientCode(),
name = ExcelUtils.getStringValue(row.getCell(5)),
typeId = ExcelUtils.getIntValue(row.getCell(6)).toLong(),
deleteSubsidiaryIds = mutableListOf(),
deleteContactIds = mutableListOf(),
addSubsidiaryIds = mutableListOf(),
addContacts = mutableListOf(),
address = null,
brNo = null,
id = null,
district = null,
)
).customer
val clientId = currentClient.id!!

logger.info("customer: $clientId")
@@ -521,14 +524,20 @@ open class ProjectsService(

logger.info("splitProjectCode: " + splitProjectCode[1].split(')')[0])
projectCode =
splitMainProjectCode[0] + '-' + String.format("%04d", splitMainProjectCode[1].toInt()) + '-' + String.format("%03d", splitProjectCode[1].split(')')[0].toInt())
splitMainProjectCode[0] + '-' + String.format(
"%04d",
splitMainProjectCode[1].toInt()
) + '-' + String.format("%03d", splitProjectCode[1].split(')')[0].toInt())

val mainProject =
projectRepository.findByCode(splitProjectCode[0]) ?: projectRepository.saveAndFlush(
Project().apply {
name = row.getCell(1).stringCellValue
description = row.getCell(1).stringCellValue
code = splitMainProjectCode[0] + '-' + String.format("%04d", splitMainProjectCode[1].toInt())
code = splitMainProjectCode[0] + '-' + String.format(
"%04d",
splitMainProjectCode[1].toInt()
)
status = "Completed"
projectCategory = projectCategoryRepository.findById(1).orElseThrow()
customer = currentClient
@@ -541,7 +550,8 @@ open class ProjectsService(
projectCode = splitProjectCode[0] + '-' + String.format("%04d", splitProjectCode[1].toInt())
}

val projectId = projectRepository.findByCode(projectCode)?.id
val project = projectRepository.findByCode(projectCode)
val projectId = project?.id
logger.info("projectCode :$projectCode")

// process subsidiary
@@ -627,9 +637,45 @@ open class ProjectsService(
// get task template - TW-Full QS - stage 5
logger.info("---------task template-------")
val taskTemplate = taskTemplateRepository.findById(3).orElseThrow()
val tasks = taskTemplate.tasks.groupBy { it.taskGroup!!.id }
val groups = taskTemplate.groupAllocations.associateBy(
keySelector = { it.taskGroup!!.id!! },
valueTransform = { it.percentage!! }
)
val projectTasks = if (project != null) projectTaskRepository.findAllByProject(project) else mutableListOf()
var groupedProjectTasks = mapOf<Long, List<Long>>()
if (projectTasks.isNotEmpty()) {
groupedProjectTasks = projectTasks.groupBy {
it.task!!.taskGroup!!.id!!
}.mapValues { (_, projectTask) ->
projectTask.map { it.task!!.id!! }
}
}
val taskGroups = mutableMapOf<Long, TaskGroupAllocation>()
groups.entries.forEach{ (key, value) ->
var taskIds = tasks[key]!!.map { it.id!! }
if (groupedProjectTasks.isNotEmpty() && !groupedProjectTasks[key].isNullOrEmpty()) {
taskIds = (taskIds + groupedProjectTasks[key]!!).distinct()
}
if (key == 5L) {
taskGroups[key] = TaskGroupAllocation(taskIds.plus(41).distinct(), value)
logger.info("taskGroups[${key}]: ${taskGroups[key]}")
} else {
taskGroups[key] = TaskGroupAllocation(taskIds, value)
logger.info("taskGroups[${key}]: ${taskGroups[key]}")
}
}

logger.info("---------Import-------")
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
val startDate = ExcelUtils.getDateValue(
row.getCell(2),
DateTimeFormatter.ofPattern("MM/dd/yyyy")
).format(formatter)
val endDate = ExcelUtils.getDateValue(
row.getCell(3),
DateTimeFormatter.ofPattern("MM/dd/yyyy")
).format(formatter)
saveProject(
NewProjectRequest(
projectCode = projectCode,
@@ -669,18 +715,40 @@ open class ProjectsService(
),
projectActualEnd = null,
taskTemplateId = taskTemplate.id,
taskGroups = mapOf(Pair(5, TaskGroupAllocation(mutableListOf(41), 100.0))),
taskGroups = taskGroups,
milestones = mapOf(
Pair(
1, com.ffii.tsms.modules.project.web.models.Milestone(
startDate = startDate,
endDate = endDate,
payments = mutableListOf()
)
),
Pair(
2, com.ffii.tsms.modules.project.web.models.Milestone(
startDate = startDate,
endDate = endDate,
payments = mutableListOf()
)
),
Pair(
3, com.ffii.tsms.modules.project.web.models.Milestone(
startDate = startDate,
endDate = endDate,
payments = mutableListOf()
)
),
Pair(
4, com.ffii.tsms.modules.project.web.models.Milestone(
startDate = startDate,
endDate = endDate,
payments = mutableListOf()
)
),
Pair(
5, com.ffii.tsms.modules.project.web.models.Milestone(
startDate = ExcelUtils.getDateValue(
row.getCell(2),
DateTimeFormatter.ofPattern("MM/dd/yyyy")
).format(formatter),
endDate = ExcelUtils.getDateValue(
row.getCell(3),
DateTimeFormatter.ofPattern("MM/dd/yyyy")
).format(formatter),
startDate = startDate,
endDate = endDate,
payments = mutableListOf(
PaymentInputs(
-1, "Manhour Import", ExcelUtils.getDateValue(
@@ -690,7 +758,7 @@ open class ProjectsService(
)
)
)
)
),
))
)
}


Loading…
Откажи
Сачувај