| @@ -1,9 +1,13 @@ | |||||
| package com.ffii.tsms.modules.claim.entity | package com.ffii.tsms.modules.claim.entity | ||||
| import com.ffii.core.support.AbstractRepository | import com.ffii.core.support.AbstractRepository | ||||
| import com.ffii.tsms.modules.claim.entity.projections.ClaimSearchInfo | |||||
| import org.springframework.data.jpa.repository.Query | |||||
| import org.springframework.data.repository.query.Param | import org.springframework.data.repository.query.Param | ||||
| interface ClaimRepository : AbstractRepository<Claim, Long> { | interface ClaimRepository : AbstractRepository<Claim, Long> { | ||||
| fun findAllByDeletedFalse(): List<Claim> | fun findAllByDeletedFalse(): List<Claim> | ||||
| fun findAllByCodeContains(@Param("code") code:String): List<Claim> | fun findAllByCodeContains(@Param("code") code:String): List<Claim> | ||||
| // @Query("select c.id, c.created, c.code, sum(cd.amount) as amount, c.type, c.status, c.remark from Claim c left join ClaimDetail cd on cd.claim.id = c.id where c.deleted = false group by c.id") | |||||
| // fun findClaimSearchInfoBy(): List<ClaimSearchInfo> | |||||
| } | } | ||||
| @@ -0,0 +1,14 @@ | |||||
| package com.ffii.tsms.modules.claim.entity.projections | |||||
| import java.math.BigDecimal | |||||
| import java.time.LocalDate | |||||
| interface ClaimSearchInfo { | |||||
| val id: Long? | |||||
| val created: LocalDate? | |||||
| val code: String? | |||||
| val amount: BigDecimal? | |||||
| val type: String? | |||||
| val status: String? | |||||
| val remark: String? | |||||
| } | |||||
| @@ -6,6 +6,7 @@ import com.ffii.tsms.modules.claim.entity.Claim | |||||
| import com.ffii.tsms.modules.claim.entity.ClaimDetail | import com.ffii.tsms.modules.claim.entity.ClaimDetail | ||||
| import com.ffii.tsms.modules.claim.entity.ClaimDetailRepository | import com.ffii.tsms.modules.claim.entity.ClaimDetailRepository | ||||
| import com.ffii.tsms.modules.claim.entity.ClaimRepository | import com.ffii.tsms.modules.claim.entity.ClaimRepository | ||||
| import com.ffii.tsms.modules.claim.entity.projections.ClaimSearchInfo | |||||
| import com.ffii.tsms.modules.claim.web.models.SaveClaimResponse | import com.ffii.tsms.modules.claim.web.models.SaveClaimResponse | ||||
| import com.ffii.tsms.modules.data.entity.StaffRepository | import com.ffii.tsms.modules.data.entity.StaffRepository | ||||
| import com.ffii.tsms.modules.data.service.StaffsService | import com.ffii.tsms.modules.data.service.StaffsService | ||||
| @@ -36,8 +37,20 @@ open class ClaimService( | |||||
| private val userRepository: UserRepository, | private val userRepository: UserRepository, | ||||
| private val staffsService: StaffsService, | private val staffsService: StaffsService, | ||||
| ) : AbstractBaseEntityService<Claim, Long, ClaimRepository>(jdbcDao, claimRepository) { | ) : AbstractBaseEntityService<Claim, Long, ClaimRepository>(jdbcDao, claimRepository) { | ||||
| open fun allClaims(): List<Claim> { | |||||
| return claimRepository.findAllByDeletedFalse() | |||||
| open fun allClaims(): List<Map<String, Any>> { | |||||
| val sql = StringBuilder("select " + | |||||
| "c.id, " + | |||||
| "c.created, " + | |||||
| "c.code, " + | |||||
| "sum(cd.amount) as amount, " + | |||||
| "c.type, " + | |||||
| "c.status, " + | |||||
| "c.remark " + | |||||
| "from claim c " + | |||||
| "left join claim_detail cd on cd.claimId = c.id " + | |||||
| "where c.deleted = false " + | |||||
| "group by c.id") | |||||
| return jdbcDao.queryForList(sql.toString()) | |||||
| } | } | ||||
| open fun allClaimsByCodeContains(code: String): List<Claim> { | open fun allClaimsByCodeContains(code: String): List<Claim> { | ||||
| @@ -2,6 +2,7 @@ package com.ffii.tsms.modules.claim.web | |||||
| import com.ffii.tsms.modules.claim.entity.Claim | import com.ffii.tsms.modules.claim.entity.Claim | ||||
| import com.ffii.tsms.modules.claim.entity.ClaimDetail | import com.ffii.tsms.modules.claim.entity.ClaimDetail | ||||
| import com.ffii.tsms.modules.claim.entity.projections.ClaimSearchInfo | |||||
| import com.ffii.tsms.modules.claim.service.ClaimService | import com.ffii.tsms.modules.claim.service.ClaimService | ||||
| import com.ffii.tsms.modules.claim.web.models.SaveClaimDetailRequest | import com.ffii.tsms.modules.claim.web.models.SaveClaimDetailRequest | ||||
| import com.ffii.tsms.modules.claim.web.models.SaveClaimRequest | import com.ffii.tsms.modules.claim.web.models.SaveClaimRequest | ||||
| @@ -29,7 +30,7 @@ import java.time.LocalDate | |||||
| class ClaimController(private val claimService: ClaimService) { | class ClaimController(private val claimService: ClaimService) { | ||||
| @GetMapping | @GetMapping | ||||
| fun allClaims(): List<Claim> { | |||||
| fun allClaims(): List<Map<String, Any>> { | |||||
| return claimService.allClaims() | return claimService.allClaims() | ||||
| } | } | ||||