소스 검색

update

tags/Baseline_30082024_BACKEND_UAT
Mac\David 1 년 전
부모
커밋
9b73f43617
2개의 변경된 파일55개의 추가작업 그리고 0개의 파일을 삭제
  1. +41
    -0
      src/main/java/com/ffii/tsms/modules/data/service/DashboardService.kt
  2. +14
    -0
      src/main/java/com/ffii/tsms/modules/data/web/DashboardController.kt

+ 41
- 0
src/main/java/com/ffii/tsms/modules/data/service/DashboardService.kt 파일 보기

@@ -53,4 +53,45 @@ open class DashboardService(
sql.append(" group by c.id, c.name, c.code, c.address, c.district, c.brNo, c.typeId, s.id, s.name, s.code, s.address, s.district, s.brNo, s.typeId");
return jdbcDao.queryForList(sql.toString(), args)
}

fun searchCustomerSubsidiaryProject(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 p.customerSubsidiaryId = :subsidiaryId"
+ " and mp.date >= curdate()"
+ " order by date asc"
+ " limit 1"
+ " ) milestonePayment on 1=1"
+ " where p.customerId = :customerId"
+ " and p.customerSubsidiaryId = :subsidiaryId"
+ " group by p.id, p.code, p.name, te.code, s.name, tg.name, p.totalManhour, milestonePayment.comingPaymentMilestone"
)

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

+ 14
- 0
src/main/java/com/ffii/tsms/modules/data/web/DashboardController.kt 파일 보기

@@ -49,4 +49,18 @@ class DashboardController(
// .build()
// )
}
@GetMapping("/searchCustomerSubsidiaryProject")
fun searchCustomerSubsidiaryProject(request: HttpServletRequest?): List<Map<String, Any>> {
val customerId = request?.getParameter("customerId")
val subsidiaryId = request?.getParameter("subsidiaryId")
val args = mutableMapOf<String, Any>()
if (customerId != null) {
args["customerId"] = customerId
}
if (subsidiaryId != null) {
args["subsidiaryId"] = subsidiaryId
}

return dashboardService.searchCustomerSubsidiaryProject(args)
}
}

불러오는 중...
취소
저장