MSI\derek пре 11 месеци
родитељ
комит
ae3be5a54d
10 измењених фајлова са 113 додато и 106 уклоњено
  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. +9
    -9
      src/main/java/com/ffii/tsms/modules/project/entity/projections/ProjectExpenseSearchInfo.kt
  6. +0
    -21
      src/main/java/com/ffii/tsms/modules/project/service/ExpenseService.kt
  7. +19
    -0
      src/main/java/com/ffii/tsms/modules/project/service/ProjectExpenseService.kt
  8. +0
    -18
      src/main/java/com/ffii/tsms/modules/project/web/ExpenseController.kt
  9. +18
    -0
      src/main/java/com/ffii/tsms/modules/project/web/ProjectExpenseController.kt
  10. +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 Прегледај датотеку

@@ -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 Прегледај датотеку

@@ -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 Прегледај датотеку

@@ -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 Прегледај датотеку

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

src/main/java/com/ffii/tsms/modules/project/entity/projections/ExpenseSearchInfo.kt → src/main/java/com/ffii/tsms/modules/project/entity/projections/ProjectExpenseSearchInfo.kt Прегледај датотеку

@@ -1,10 +1,12 @@
package com.ffii.tsms.modules.project.entity.projections

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

interface ExpenseSearchInfo {
interface ProjectExpenseSearchInfo {
val id: Long
val expenseNo: String

@get:Value("#{target.project.code}")
val projectCode: String
@@ -12,15 +14,13 @@ interface ExpenseSearchInfo {
@get:Value("#{target.project.name}")
val projectName: String

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

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

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

+ 0
- 21
src/main/java/com/ffii/tsms/modules/project/service/ExpenseService.kt Прегледај датотеку

@@ -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 Прегледај датотеку

@@ -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 Прегледај датотеку

@@ -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 Прегледај датотеку

@@ -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 Прегледај датотеку

@@ -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);

Loading…
Откажи
Сачувај