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

Merge branch 'master' of https://git.2fi-solutions.com/davidhui/TSMS-backend

tags/Baseline_30082024_BACKEND_UAT
MSI\2Fi пре 1 година
родитељ
комит
aa37606038
4 измењених фајлова са 64 додато и 15 уклоњено
  1. +55
    -10
      src/main/java/com/ffii/tsms/modules/data/service/DashboardService.kt
  2. +7
    -1
      src/main/java/com/ffii/tsms/modules/data/web/DashboardController.kt
  3. +1
    -1
      src/main/java/com/ffii/tsms/modules/project/entity/ProjectRepository.kt
  4. +1
    -3
      src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt

+ 55
- 10
src/main/java/com/ffii/tsms/modules/data/service/DashboardService.kt Прегледај датотеку

@@ -23,6 +23,9 @@ open class DashboardService(

fun CustomerSubsidiary(args: Map<String, Any>): List<Map<String, Any>> {
val sql = StringBuilder("select"
+ " row_number()OVER ("
+ " ORDER BY c.id"
+ " ) as id,"
+ " c.id as customerId,"
+ " c.name as customerName,"
+ " c.code as customerCode,"
@@ -30,18 +33,17 @@ open class DashboardService(
+ " c.district as cutomerDistrict,"
+ " c.brNo as customerBrNo,"
+ " c.typeId as customerTypeId,"
+ " s.id as subsidiaryId,"
+ " s.name as subsidiaryName,"
+ " s.code as subsidiaryCode,"
+ " s.address as subsidiaryAddress,"
+ " s.district as subsidiaryDistrict,"
+ " s.brNo as subsidiaryBrNo,"
+ " s.typeId as subsidiaryTypeId,"
+ " coalesce (s.id,'-') as subsidiaryId,"
+ " coalesce (s.name,'-') as subsidiaryName,"
+ " coalesce (s.code,'-') as subsidiaryCode,"
+ " coalesce (s.address,'-') as subsidiaryAddress,"
+ " coalesce (s.district,'-') as subsidiaryDistrict,"
+ " coalesce (s.brNo,'-') as subsidiaryBrNo,"
+ " coalesce (s.typeId,'-') as subsidiaryTypeId,"
+ " count(p.id) as projectNo"
+ " from customer c"
+ " left join customer_subsidiary cs on c.id = cs.customerId"
+ " left join subsidiary s on cs.subsidiaryId = s.id"
+ " left join project p on cs.customerId = p.customerId and cs.subsidiaryId = p.customerSubsidiaryId "
+ " left join project p on c.id = p.customerId"
+ " left join subsidiary s on p.customerSubsidiaryId = s.id"
+ " where c.deleted = 0"
)
if (args != null) {
@@ -94,4 +96,47 @@ open class DashboardService(

return jdbcDao.queryForList(sql.toString(), args)
}

fun searchCustomerNonSubsidiaryProject(args: Map<String, Any>): List<Map<String, Any>> {
val sql = StringBuilder("select"
+ " p.id as id,"
+ " p.id as projectId,"
+ " p.code as projectCode,"
+ " p.name as projectName,"
+ " te.code as team,"
+ " s.name as teamLead,"
+ " tg.name as expectedStage,"
+ " p.totalManhour as budgetedManhour,"
+ " sum(t.normalConsumed) + sum(t.otConsumed) as spentManhour,"
+ " p.totalManhour - sum(t.normalConsumed) - sum(t.otConsumed) as remainedManhour,"
+ " coalesce (round(((sum(t.normalConsumed) - sum(t.otConsumed))/p.totalManhour)*100,2),0) as manhourConsumptionPercentage,"
+ " DATE_FORMAT(milestonePayment.comingPaymentMilestone, '%Y-%m-%d') as comingPaymentMilestone"
+ " from project p"
+ " left join project_task pt on p.id = pt.project_id"
+ " left join timesheet t on pt.id = t.projectTaskId"
+ " left join team te on p.teamLead = te.teamLead"
+ " left join staff s on te.teamLead = s.id"
+ " left join milestone m on p.id = m.projectId and curdate() >= m.startDate and curdate() <= m.endDate"
+ " left join task_group tg on m.taskGroupId = tg.id"
+ " left join ("
+ " select"
+ " mp.date as comingPaymentMilestone"
+ " from project p"
+ " left join milestone m on p.id = m.projectId"
+ " left join milestone_payment mp on m.id = mp.milestoneId"
+ " where p.customerId = :customerId"
+ " and isNull(p.customerSubsidiaryId)"
+ " and mp.date >= curdate()"
+ " order by date asc"
+ " limit 1"
+ " ) milestonePayment on 1=1"
+ " where p.customerId = :customerId"
+ " and isNull(p.customerSubsidiaryId)"
+ " group by p.id, p.code, p.name, te.code, s.name, tg.name, p.totalManhour, milestonePayment.comingPaymentMilestone"
)

return jdbcDao.queryForList(sql.toString(), args)
}
}



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

@@ -54,6 +54,7 @@ class DashboardController(
val customerId = request?.getParameter("customerId")
val subsidiaryId = request?.getParameter("subsidiaryId")
val args = mutableMapOf<String, Any>()
var result: List<Map<String, Any>> = emptyList()
if (customerId != null) {
args["customerId"] = customerId
}
@@ -61,6 +62,11 @@ class DashboardController(
args["subsidiaryId"] = subsidiaryId
}

return dashboardService.searchCustomerSubsidiaryProject(args)
if (customerId != null && subsidiaryId != null) {
result = dashboardService.searchCustomerSubsidiaryProject(args)
} else if (customerId != null && subsidiaryId == null){
result = dashboardService.searchCustomerNonSubsidiaryProject(args)
}
return result
}
}

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

@@ -15,5 +15,5 @@ interface ProjectRepository : AbstractRepository<Project, Long> {

fun findInvoiceInfoSearchInfoById(id: Long): List<InvoiceInfoSearchInfo>

fun findFirstByIsClpProjectAndIdNotOrderByIdDesc(isClpProject: Boolean, id: Serializable?): Project?
fun findFirstByIsClpProjectAndIdIsNotOrderByIdDesc(isClpProject: Boolean, id: Serializable?): Project?
}

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

@@ -131,7 +131,7 @@ open class ProjectsService(
val checkIsClpProject = isClpProject != null && isClpProject
val prefix = if (checkIsClpProject) "C" else "M"

val latestProjectCode = projectRepository.findFirstByIsClpProjectAndIdNotOrderByIdDesc(checkIsClpProject, project.id)
val latestProjectCode = projectRepository.findFirstByIsClpProjectAndIdIsNotOrderByIdDesc(checkIsClpProject, project.id ?: -1)

if (latestProjectCode != null) {
val lastFix = latestProjectCode.code!!.split("-")[1] //C-0001 -> 0001
@@ -169,8 +169,6 @@ open class ProjectsService(
project.apply {
name = request.projectName
description = request.projectDescription
println(this.code)
println(this.code.isNullOrEmpty())
code = if (this.code.isNullOrEmpty()) createProjectCode(request.isClpProject, project) else this.code
expectedTotalFee = request.expectedProjectFee
totalManhour = request.totalManhour


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