@@ -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() | ||||
} | } | ||||