Browse Source

Edit Company

tags/Baseline_30082024_BACKEND_UAT
MSI\2Fi 1 year ago
parent
commit
01634fa17b
4 changed files with 52 additions and 16 deletions
  1. +4
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/CompanyRepository.java
  2. +32
    -16
      src/main/java/com/ffii/tsms/modules/data/service/CompanyService.kt
  3. +15
    -0
      src/main/java/com/ffii/tsms/modules/data/web/CompanyController.kt
  4. +1
    -0
      src/main/java/com/ffii/tsms/modules/data/web/models/NewCompanyRequest.kt

+ 4
- 0
src/main/java/com/ffii/tsms/modules/data/entity/CompanyRepository.java View File

@@ -2,9 +2,13 @@ package com.ffii.tsms.modules.data.entity;


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


import java.util.List; import java.util.List;
import java.util.Optional;


public interface CompanyRepository extends AbstractRepository<Company, Long> { public interface CompanyRepository extends AbstractRepository<Company, Long> {
List<CompanySearchInfo> findCompanySearchInfoBy(); List<CompanySearchInfo> findCompanySearchInfoBy();

Optional<Company> findCompanyByIdAndDeletedFalse(Long companyId);
} }

+ 32
- 16
src/main/java/com/ffii/tsms/modules/data/service/CompanyService.kt View File

@@ -4,10 +4,13 @@ import com.ffii.core.support.AbstractBaseEntityService
import com.ffii.core.support.JdbcDao import com.ffii.core.support.JdbcDao
import com.ffii.tsms.modules.data.entity.Company import com.ffii.tsms.modules.data.entity.Company
import com.ffii.tsms.modules.data.entity.CompanyRepository import com.ffii.tsms.modules.data.entity.CompanyRepository
import com.ffii.tsms.modules.data.entity.Department
import com.ffii.tsms.modules.data.entity.Position import com.ffii.tsms.modules.data.entity.Position
import com.ffii.tsms.modules.data.entity.projections.CompanySearchInfo import com.ffii.tsms.modules.data.entity.projections.CompanySearchInfo
import com.ffii.tsms.modules.data.entity.projections.DepartmentSearchInfo
import com.ffii.tsms.modules.data.web.models.NewCompanyRequest import com.ffii.tsms.modules.data.web.models.NewCompanyRequest
import com.ffii.tsms.modules.data.web.models.NewPositionRequest import com.ffii.tsms.modules.data.web.models.NewPositionRequest
import org.springframework.beans.BeanUtils
import org.springframework.stereotype.Service import org.springframework.stereotype.Service
@Service @Service
open class CompanyService( open class CompanyService(
@@ -18,23 +21,36 @@ open class CompanyService(
return companyRepository.findCompanySearchInfoBy() return companyRepository.findCompanySearchInfoBy()
} }


open fun getCompanyDetails(companyId: Long): Company? {
val company = companyRepository.findCompanyByIdAndDeletedFalse(companyId).orElseThrow()

return company
}

open fun saveCompany(request: NewCompanyRequest): Company { open fun saveCompany(request: NewCompanyRequest): Company {
val company =
Company().apply {
name = request.companyName
companyCode = request.companyCode
brNo = request.brNo
contactName = request.contactName
phone = request.phone
email = request.email
normalHourTo = request.normalHourTo
normalHourFrom = request.normalHourFrom
otHourTo = request.otHourTo
otHourFrom = request.otHourFrom
address = request.address
district = request.district
currency = request.currency
}
var company = Company()

if (request.id != null && request.id > 0) {
company = companyRepository.findById(request.id).orElseThrow()

BeanUtils.copyProperties(request, company)
company.name = request.companyName

}else{
company.name = request.companyName
company.companyCode = request.companyCode
company.brNo = request.brNo
company.contactName = request.contactName
company.phone = request.phone
company.email = request.email
company.normalHourTo = request.normalHourTo
company.normalHourFrom = request.normalHourFrom
company.otHourTo = request.otHourTo
company.otHourFrom = request.otHourFrom
company.address = request.address
company.district = request.district
company.currency = request.currency
}


return companyRepository.save(company) return companyRepository.save(company)
} }


+ 15
- 0
src/main/java/com/ffii/tsms/modules/data/web/CompanyController.kt View File

@@ -1,13 +1,16 @@
package com.ffii.tsms.modules.data.web.models package com.ffii.tsms.modules.data.web.models


import com.ffii.core.exception.NotFoundException
import com.ffii.core.response.RecordsRes import com.ffii.core.response.RecordsRes
import com.ffii.core.utils.CriteriaArgsBuilder import com.ffii.core.utils.CriteriaArgsBuilder
import com.ffii.tsms.modules.data.entity.Company import com.ffii.tsms.modules.data.entity.Company
import com.ffii.tsms.modules.data.entity.Position import com.ffii.tsms.modules.data.entity.Position
import com.ffii.tsms.modules.data.entity.projections.CompanySearchInfo import com.ffii.tsms.modules.data.entity.projections.CompanySearchInfo
import com.ffii.tsms.modules.data.entity.projections.DepartmentSearchInfo
import com.ffii.tsms.modules.data.service.CompanyService import com.ffii.tsms.modules.data.service.CompanyService
import jakarta.servlet.http.HttpServletRequest import jakarta.servlet.http.HttpServletRequest
import jakarta.validation.Valid import jakarta.validation.Valid
import org.springframework.http.HttpStatus
import org.springframework.web.bind.ServletRequestBindingException import org.springframework.web.bind.ServletRequestBindingException
import org.springframework.web.bind.annotation.* import org.springframework.web.bind.annotation.*


@@ -24,11 +27,23 @@ class CompanyController(private val companyService: CompanyService) {
// return companyService.allCompanys() // return companyService.allCompanys()
// } // }


@GetMapping("/companyDetails/{id}")
fun departmentDetails(@PathVariable id: Long): Company {
return companyService.getCompanyDetails(id) ?: throw NotFoundException()
}

@PostMapping("/new") @PostMapping("/new")
fun saveCompany(@Valid @RequestBody newCompany: NewCompanyRequest): Company { fun saveCompany(@Valid @RequestBody newCompany: NewCompanyRequest): Company {

return companyService.saveCompany(newCompany) return companyService.saveCompany(newCompany)
} }


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

@GetMapping("/combo") @GetMapping("/combo")
@Throws(ServletRequestBindingException::class) @Throws(ServletRequestBindingException::class)
fun combo(request: HttpServletRequest?): RecordsRes<Map<String, Any>> { fun combo(request: HttpServletRequest?): RecordsRes<Map<String, Any>> {


+ 1
- 0
src/main/java/com/ffii/tsms/modules/data/web/models/NewCompanyRequest.kt View File

@@ -4,6 +4,7 @@ import jakarta.validation.constraints.NotBlank
import java.time.LocalTime import java.time.LocalTime


data class NewCompanyRequest ( data class NewCompanyRequest (
val id: Long?,
@field: NotBlank(message = "Company code cannot be empty") @field: NotBlank(message = "Company code cannot be empty")
val companyCode: String, val companyCode: String,
@field:NotBlank(message = "Company name cannot be empty") @field:NotBlank(message = "Company name cannot be empty")


Loading…
Cancel
Save