MSI\2Fi 11 maanden geleden
bovenliggende
commit
951963cbea
11 gewijzigde bestanden met toevoegingen van 133 en 123 verwijderingen
  1. +0
    -50
      src/main/java/com/ffii/tsms/modules/project/entity/Expense.kt
  2. +0
    -8
      src/main/java/com/ffii/tsms/modules/project/entity/ExpenseRepository.kt
  3. +37
    -0
      src/main/java/com/ffii/tsms/modules/project/entity/ProjectExpense.kt
  4. +8
    -0
      src/main/java/com/ffii/tsms/modules/project/entity/ProjectExpenseRepository.kt
  5. +0
    -26
      src/main/java/com/ffii/tsms/modules/project/entity/projections/ExpenseSearchInfo.kt
  6. +29
    -0
      src/main/java/com/ffii/tsms/modules/project/entity/projections/ProjectExpenseSearchInfo.kt
  7. +0
    -21
      src/main/java/com/ffii/tsms/modules/project/service/ExpenseService.kt
  8. +19
    -0
      src/main/java/com/ffii/tsms/modules/project/service/ProjectExpenseService.kt
  9. +0
    -18
      src/main/java/com/ffii/tsms/modules/project/web/ExpenseController.kt
  10. +18
    -0
      src/main/java/com/ffii/tsms/modules/project/web/ProjectExpenseController.kt
  11. +22
    -0
      src/main/resources/db/changelog/changes/20240912_01_derek/01_projectExpense.sql

+ 0
- 50
src/main/java/com/ffii/tsms/modules/project/entity/Expense.kt Bestand weergeven

@@ -1,50 +0,0 @@
package com.ffii.tsms.modules.project.entity

import com.ffii.core.entity.BaseEntity
import com.ffii.tsms.modules.data.entity.Staff
import jakarta.persistence.*
import jakarta.validation.constraints.NotNull
import java.time.LocalDateTime

@Entity
@Table(name = "expense")
open class Expense : BaseEntity<Long>(){

@NotNull
@OneToOne
@JoinColumn(name = "projectId")
open var project: Project? = null

@NotNull
@OneToOne
@JoinColumn(name = "staffId")
open var staff: Staff? = null

@NotNull
@Column(name = "description", length = 255)
open var description: String? = null

@NotNull
@Column(name = "amount")
open var amount: Double? = null

@Column(name = "supporting")
open var supporting: Int? = null

@NotNull
@Column(name = "decision")
open var decision: Int? = null

@Column(name = "approvedAmount")
open var approvedAmount: Double? = null

@Column(name = "verifiedDatetime")
open var verifiedDatetime: LocalDateTime? = null

@Column(name = "verifiedBy")
open var verifiedBy: Int? = null

@Column(name = "remark", length = 1500)
open var remark: String? = null

}

+ 0
- 8
src/main/java/com/ffii/tsms/modules/project/entity/ExpenseRepository.kt Bestand weergeven

@@ -1,8 +0,0 @@
package com.ffii.tsms.modules.project.entity

import com.ffii.core.support.AbstractRepository
import com.ffii.tsms.modules.project.entity.projections.ExpenseSearchInfo

interface ExpenseRepository : AbstractRepository<Expense, Long> {
fun findExpenseSearchInfoByDeletedFalse(): List<ExpenseSearchInfo>
}

+ 37
- 0
src/main/java/com/ffii/tsms/modules/project/entity/ProjectExpense.kt Bestand weergeven

@@ -0,0 +1,37 @@
package com.ffii.tsms.modules.project.entity

import com.ffii.core.entity.BaseEntity
import com.ffii.tsms.modules.data.entity.Team
import jakarta.persistence.*
import jakarta.validation.constraints.NotNull
import java.time.LocalDate

@Entity
@Table(name = "project_expense")
open class ProjectExpense : BaseEntity<Long>(){

// @NotNull
@Column(name = "expenseNo", length = 45)
open var expenseNo: String? = null

@NotNull
@Column(name = "issueDate")
open var issueDate: LocalDate? = null

@Column(name = "receiptDate")
open var receiptDate: LocalDate? = null

@NotNull
@Column(name = "amount")
open var amount: Double? = null

@NotNull
@OneToOne
@JoinColumn(name = "projectId")
open var project: Project? = null

@NotNull
@OneToOne
@JoinColumn(name = "teamId")
open var team: Team? = null
}

+ 8
- 0
src/main/java/com/ffii/tsms/modules/project/entity/ProjectExpenseRepository.kt Bestand weergeven

@@ -0,0 +1,8 @@
package com.ffii.tsms.modules.project.entity

import com.ffii.core.support.AbstractRepository
import com.ffii.tsms.modules.project.entity.projections.ProjectExpenseSearchInfo

interface ProjectExpenseRepository : AbstractRepository<ProjectExpense, Long> {
fun findExpenseSearchInfoByDeletedFalse(): List<ProjectExpenseSearchInfo>
}

+ 0
- 26
src/main/java/com/ffii/tsms/modules/project/entity/projections/ExpenseSearchInfo.kt Bestand weergeven

@@ -1,26 +0,0 @@
package com.ffii.tsms.modules.project.entity.projections

import org.springframework.beans.factory.annotation.Value
import java.time.LocalDateTime

interface ExpenseSearchInfo {
val id: Long

@get:Value("#{target.project.code}")
val projectCode: String

@get:Value("#{target.project.name}")
val projectName: String

@get:Value("#{target.staff.staffId}")
val staffCode: String

@get:Value("#{target.staff.name}")
val staffName: String

val description: String
val amount: Double
val approvedAmount: Double?
val verifiedDatetime: LocalDateTime
val remark: String
}

+ 29
- 0
src/main/java/com/ffii/tsms/modules/project/entity/projections/ProjectExpenseSearchInfo.kt Bestand weergeven

@@ -0,0 +1,29 @@
package com.ffii.tsms.modules.project.entity.projections

import org.springframework.beans.factory.annotation.Value
import java.time.LocalDate
import java.time.LocalDateTime

interface ProjectExpenseSearchInfo {
val id: Long
val expenseNo: String

@get:Value("#{target.project.code}")
val projectCode: String

@get:Value("#{target.project.name}")
val projectName: String

@get:Value("#{target.team.id}")
val teamId: Long

@get:Value("#{target.team.name}")
val teamName: String

@get:Value("#{target.team.code}")
val teamCode: String

val amount: Double
val issueDate: LocalDate
val receiptDate: LocalDate?
}

+ 0
- 21
src/main/java/com/ffii/tsms/modules/project/service/ExpenseService.kt Bestand weergeven

@@ -1,21 +0,0 @@
package com.ffii.tsms.modules.project.service

import com.ffii.core.support.AbstractIdEntityService
import com.ffii.core.support.JdbcDao
import com.ffii.tsms.modules.project.entity.Expense
import com.ffii.tsms.modules.project.entity.ExpenseRepository
import com.ffii.tsms.modules.project.entity.Invoice
import com.ffii.tsms.modules.project.entity.InvoiceRepository
import com.ffii.tsms.modules.project.entity.projections.ExpenseSearchInfo
import org.springframework.stereotype.Service

@Service
open class ExpenseService(
private val expenseRepository: ExpenseRepository,
private val jdbcDao: JdbcDao,
) : AbstractIdEntityService<Expense, Long, ExpenseRepository>(jdbcDao, expenseRepository){
open fun findExpenseSearchInfo(): List<ExpenseSearchInfo> {
return expenseRepository.findExpenseSearchInfoByDeletedFalse()
}

}

+ 19
- 0
src/main/java/com/ffii/tsms/modules/project/service/ProjectExpenseService.kt Bestand weergeven

@@ -0,0 +1,19 @@
package com.ffii.tsms.modules.project.service

import com.ffii.core.support.AbstractIdEntityService
import com.ffii.core.support.JdbcDao
import com.ffii.tsms.modules.project.entity.ProjectExpense
import com.ffii.tsms.modules.project.entity.ProjectExpenseRepository
import com.ffii.tsms.modules.project.entity.projections.ProjectExpenseSearchInfo
import org.springframework.stereotype.Service

@Service
open class ProjectExpenseService(
private val projectExpenseRepository: ProjectExpenseRepository,
private val jdbcDao: JdbcDao,
) : AbstractIdEntityService<ProjectExpense, Long, ProjectExpenseRepository>(jdbcDao, projectExpenseRepository){
open fun findProjectExpenseSearchInfo(): List<ProjectExpenseSearchInfo> {
return projectExpenseRepository.findExpenseSearchInfoByDeletedFalse()
}

}

+ 0
- 18
src/main/java/com/ffii/tsms/modules/project/web/ExpenseController.kt Bestand weergeven

@@ -1,18 +0,0 @@
package com.ffii.tsms.modules.project.web

import com.ffii.tsms.modules.project.entity.projections.ExpenseSearchInfo
import com.ffii.tsms.modules.project.service.ExpenseService
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController

@RestController
@RequestMapping("/expense")
class ExpenseController(
private val expenseService: ExpenseService,
) {
@GetMapping
fun allExpense(): List<ExpenseSearchInfo> {
return expenseService.findExpenseSearchInfo()
}
}

+ 18
- 0
src/main/java/com/ffii/tsms/modules/project/web/ProjectExpenseController.kt Bestand weergeven

@@ -0,0 +1,18 @@
package com.ffii.tsms.modules.project.web

import com.ffii.tsms.modules.project.entity.projections.ProjectExpenseSearchInfo
import com.ffii.tsms.modules.project.service.ProjectExpenseService
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController

@RestController
@RequestMapping("/project-expense")
class ProjectExpenseController(
private val projectExpenseService: ProjectExpenseService,
) {
@GetMapping
fun allProjectExpense(): List<ProjectExpenseSearchInfo> {
return projectExpenseService.findProjectExpenseSearchInfo()
}
}

+ 22
- 0
src/main/resources/db/changelog/changes/20240912_01_derek/01_projectExpense.sql Bestand weergeven

@@ -0,0 +1,22 @@
-- liquibase formatted sql

-- changeset derek:project_expense
CREATE TABLE project_expense (
id INT NOT NULL AUTO_INCREMENT,
version INT NOT NULL DEFAULT '0',
created datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
createdBy VARCHAR(30) NULL,
modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
modifiedBy VARCHAR(30) NULL,
deleted TINYINT(1) NOT NULL DEFAULT '0',
expenseNo VARCHAR(150) NULL,
issueDate DATE NOT NULL,
receiptDate date NULL,
amount DECIMAL(16,2) NOT NULL,
projectId INT NOT NULL,
teamId INT NOT NULL,
CONSTRAINT pk_project_expense PRIMARY KEY (id)
);

ALTER TABLE project_expense ADD CONSTRAINT FK_PROJECT_EXPENSE_ON_PROJECTID FOREIGN KEY (projectId) REFERENCES project (id);
ALTER TABLE project_expense ADD CONSTRAINT FK_PROJECT_EXPENSE_ON_TEAMID FOREIGN KEY (teamId) REFERENCES team (id);

Laden…
Annuleren
Opslaan