ソースを参照

Company Holiday

tags/Baseline_30082024_BACKEND_UAT
MSI\2Fi 1年前
コミット
fbaf46b19a
5個のファイルの変更116行の追加0行の削除
  1. +5
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/CompanyHolidayRepository.java
  2. +15
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/projections/CompanyHolidayInfo.java
  3. +44
    -0
      src/main/java/com/ffii/tsms/modules/data/service/CompanyHolidayService.kt
  4. +38
    -0
      src/main/java/com/ffii/tsms/modules/data/web/CompanyHolidayController.kt
  5. +14
    -0
      src/main/java/com/ffii/tsms/modules/data/web/models/NewCompanyHolidayRequest.kt

+ 5
- 0
src/main/java/com/ffii/tsms/modules/data/entity/CompanyHolidayRepository.java ファイルの表示

@@ -1,6 +1,11 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.support.AbstractRepository;
import com.ffii.tsms.modules.data.entity.projections.CompanyHolidayInfo;
import com.ffii.tsms.modules.data.entity.projections.CompanySearchInfo;

import java.util.List;

public interface CompanyHolidayRepository extends AbstractRepository<CompanyHoliday, Long> {
List<CompanyHolidayInfo> findCompanyHolidayInfoByAndDeletedFalse();
}

+ 15
- 0
src/main/java/com/ffii/tsms/modules/data/entity/projections/CompanyHolidayInfo.java ファイルの表示

@@ -0,0 +1,15 @@
package com.ffii.tsms.modules.data.entity.projections;

import java.time.LocalDate;

/**
* Projection for {@link com.ffii.tsms.modules.data.entity.Company}
*/
public interface CompanyHolidayInfo {

Long getId();

String getName();

LocalDate getDate();
}

+ 44
- 0
src/main/java/com/ffii/tsms/modules/data/service/CompanyHolidayService.kt ファイルの表示

@@ -0,0 +1,44 @@
package com.ffii.tsms.modules.data.service

import com.ffii.core.support.AbstractBaseEntityService
import com.ffii.core.support.JdbcDao
import com.ffii.tsms.modules.data.entity.Company
import com.ffii.tsms.modules.data.entity.CompanyHoliday
import com.ffii.tsms.modules.data.entity.CompanyHolidayRepository
import com.ffii.tsms.modules.data.entity.CompanyRepository
import com.ffii.tsms.modules.data.entity.Position
import com.ffii.tsms.modules.data.entity.projections.CompanyHolidayInfo
import com.ffii.tsms.modules.data.entity.projections.CompanySearchInfo
import com.ffii.tsms.modules.data.web.models.NewCompanyHolidayRequest
import com.ffii.tsms.modules.data.web.models.NewCompanyRequest
import com.ffii.tsms.modules.data.web.models.NewPositionRequest
import org.springframework.beans.BeanUtils
import org.springframework.stereotype.Service
@Service
open class CompanyHolidayService(
private val companyHolidayRepository: CompanyHolidayRepository,
private val jdbcDao: JdbcDao,
) : AbstractBaseEntityService<CompanyHoliday, Long, CompanyHolidayRepository>(jdbcDao, companyHolidayRepository) {
open fun allCompanyHolidays(): List<CompanyHolidayInfo>{
return companyHolidayRepository.findCompanyHolidayInfoByAndDeletedFalse()
}

open fun saveCompanyHoliday(request: NewCompanyHolidayRequest): CompanyHoliday {
// println("------------------------ Date ----------------------")
// println(request.date)
var companyHoliday = CompanyHoliday()

if (request.id != null && request.id > 0) {
companyHoliday = companyHolidayRepository.findById(request.id).orElseThrow()

BeanUtils.copyProperties(request, companyHoliday)

}else{
companyHoliday.name = request.name
companyHoliday.date = request.date
}

return companyHolidayRepository.save(companyHoliday)
}

}

+ 38
- 0
src/main/java/com/ffii/tsms/modules/data/web/CompanyHolidayController.kt ファイルの表示

@@ -0,0 +1,38 @@
package com.ffii.tsms.modules.data.web.models

import com.ffii.core.response.RecordsRes
import com.ffii.core.utils.CriteriaArgsBuilder
import com.ffii.tsms.modules.data.entity.Company
import com.ffii.tsms.modules.data.entity.CompanyHoliday
import com.ffii.tsms.modules.data.entity.Position
import com.ffii.tsms.modules.data.entity.projections.CompanyHolidayInfo
import com.ffii.tsms.modules.data.entity.projections.CompanySearchInfo
import com.ffii.tsms.modules.data.service.CompanyHolidayService
import com.ffii.tsms.modules.data.service.CompanyService
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.*


@RestController
@RequestMapping("/company-holidays")
class CompanyHolidayController(private val companyHolidayService: CompanyHolidayService) {
@GetMapping
fun allCompanyHolidays(): List<CompanyHolidayInfo>{
return companyHolidayService.allCompanyHolidays()
}

@PostMapping("/new")
fun saveCompanyHoliday(@Valid @RequestBody newCompanyHoliday: NewCompanyHolidayRequest): CompanyHoliday {
return companyHolidayService.saveCompanyHoliday(newCompanyHoliday)
}

@DeleteMapping("/{id}")
@ResponseStatus(HttpStatus.NO_CONTENT)
fun deleteHoliday(@PathVariable id: Long) {
companyHolidayService.markDelete(id)
}

}

+ 14
- 0
src/main/java/com/ffii/tsms/modules/data/web/models/NewCompanyHolidayRequest.kt ファイルの表示

@@ -0,0 +1,14 @@
package com.ffii.tsms.modules.data.web.models

import jakarta.validation.constraints.NotBlank
import jakarta.validation.constraints.NotNull
import java.time.LocalDate
import java.time.LocalTime

data class NewCompanyHolidayRequest (
val id: Long?,
@field: NotBlank(message = "Company Holiday Name cannot be empty")
val name: String,
@field:NotNull(message = "Company Holiday Date cannot be empty")
val date: LocalDate,
)

読み込み中…
キャンセル
保存