Bläddra i källkod

[Create table from data dict] create delivery order, item category, job planning log, job order, stock take, suggest pick lot, supervision approval, company

create_edit_user
cyril.tsui 3 månader sedan
förälder
incheckning
451cdbe42b
34 ändrade filer med 956 tillägg och 0 borttagningar
  1. +48
    -0
      src/main/java/com/ffii/fpsms/modules/deliveryOrder/entity/DeliveryOrder.kt
  2. +37
    -0
      src/main/java/com/ffii/fpsms/modules/deliveryOrder/entity/DeliveryOrderLine.kt
  3. +8
    -0
      src/main/java/com/ffii/fpsms/modules/deliveryOrder/entity/DeliveryOrderLineRepository.kt
  4. +8
    -0
      src/main/java/com/ffii/fpsms/modules/deliveryOrder/entity/DeliveryOrderRepository.kt
  5. +65
    -0
      src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrder.kt
  6. +42
    -0
      src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrderMaterial.kt
  7. +8
    -0
      src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrderMaterialRepository.kt
  8. +39
    -0
      src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrderProcess.kt
  9. +38
    -0
      src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrderProcessDetail.kt
  10. +8
    -0
      src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrderProcessDetailRepository.kt
  11. +8
    -0
      src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrderProcessRepository.kt
  12. +8
    -0
      src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrderRepository.kt
  13. +64
    -0
      src/main/java/com/ffii/fpsms/modules/jobPlanningLog/entity/JobPlanningLog.kt
  14. +8
    -0
      src/main/java/com/ffii/fpsms/modules/jobPlanningLog/entity/JobPlanningLogRepository.kt
  15. +50
    -0
      src/main/java/com/ffii/fpsms/modules/master/entity/Company.kt
  16. +8
    -0
      src/main/java/com/ffii/fpsms/modules/master/entity/CompanyRepository.kt
  17. +15
    -0
      src/main/java/com/ffii/fpsms/modules/master/entity/ItemCategory.kt
  18. +8
    -0
      src/main/java/com/ffii/fpsms/modules/master/entity/ItemCategoryRepository.kt
  19. +39
    -0
      src/main/java/com/ffii/fpsms/modules/stock/entity/StockTake.kt
  20. +45
    -0
      src/main/java/com/ffii/fpsms/modules/stock/entity/StockTakeLine.kt
  21. +8
    -0
      src/main/java/com/ffii/fpsms/modules/stock/entity/StockTakeLineRepository.kt
  22. +8
    -0
      src/main/java/com/ffii/fpsms/modules/stock/entity/StockTakeRepository.kt
  23. +8
    -0
      src/main/java/com/ffii/fpsms/modules/stock/entity/SuggestPickLotRepository.kt
  24. +30
    -0
      src/main/java/com/ffii/fpsms/modules/stock/entity/SuggestedPickLot.kt
  25. +43
    -0
      src/main/java/com/ffii/fpsms/modules/stock/entity/SupervisionApprovalLog.kt
  26. +8
    -0
      src/main/java/com/ffii/fpsms/modules/stock/entity/SupervisionApprovalLogRepository.kt
  27. +45
    -0
      src/main/resources/db/changelog/changes/20250527_01_cyril/02_create_delivery_order.sql
  28. +15
    -0
      src/main/resources/db/changelog/changes/20250527_01_cyril/03_create_item_category.sql
  29. +30
    -0
      src/main/resources/db/changelog/changes/20250527_01_cyril/04_create_job_planning_log.sql
  30. +95
    -0
      src/main/resources/db/changelog/changes/20250527_01_cyril/05_create_job_order.sql
  31. +44
    -0
      src/main/resources/db/changelog/changes/20250527_01_cyril/06_create_stock_take.sql
  32. +21
    -0
      src/main/resources/db/changelog/changes/20250527_01_cyril/07_create_suggested_pick_lot.sql
  33. +24
    -0
      src/main/resources/db/changelog/changes/20250527_01_cyril/08_create_supervision_approval_log.sql
  34. +23
    -0
      src/main/resources/db/changelog/changes/20250527_01_cyril/09_create_company.sql

+ 48
- 0
src/main/java/com/ffii/fpsms/modules/deliveryOrder/entity/DeliveryOrder.kt Visa fil

@@ -0,0 +1,48 @@
package com.ffii.fpsms.modules.deliveryOrder.entity

import com.ffii.core.entity.BaseEntity
import com.ffii.fpsms.modules.master.entity.Shop
import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrder
import com.ffii.fpsms.modules.user.entity.User
import jakarta.persistence.*
import jakarta.validation.constraints.NotNull
import jakarta.validation.constraints.Size
import java.time.Instant

@Entity
@Table(name = "delivery_order")
open class DeliveryOrder: BaseEntity<Long>() {
@ManyToOne
@JoinColumn(name = "purchaseOrderId")
open var purchaseOrder: PurchaseOrder? = null

@Size(max = 100)
@NotNull
@Column(name = "code", nullable = false, length = 100)
open var code: String? = null

@Size(max = 100)
@Column(name = "consoCode", length = 100)
open var consoCode: String? = null

@Size(max = 500)
@Column(name = "remarks", length = 500)
open var remarks: String? = null

@NotNull
@Column(name = "targetDate", nullable = false)
open var targetDate: Instant? = null

@ManyToOne
@JoinColumn(name = "shopId")
open var shop: Shop? = null

@Size(max = 30)
@NotNull
@Column(name = "status", nullable = false, length = 30)
open var status: String? = null

@ManyToOne
@JoinColumn(name = "handlerId", referencedColumnName = "id")
open var handler: User? = null
}

+ 37
- 0
src/main/java/com/ffii/fpsms/modules/deliveryOrder/entity/DeliveryOrderLine.kt Visa fil

@@ -0,0 +1,37 @@
package com.ffii.fpsms.modules.deliveryOrder.entity

import com.ffii.core.entity.BaseEntity
import com.ffii.fpsms.modules.master.entity.Items
import com.ffii.fpsms.modules.master.entity.UomConversion
import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderLine
import jakarta.persistence.*
import jakarta.validation.constraints.NotNull
import jakarta.validation.constraints.Size
import java.math.BigDecimal

@Entity
@Table(name = "delivery_order_line")
open class DeliveryOrderLine: BaseEntity<Long>() {
@ManyToOne
@JoinColumn(name = "purchaseOrderLineId")
open var purchaseOrderLine: PurchaseOrderLine? = null

@NotNull
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "itemId", nullable = false)
open var item: Items? = null

@NotNull
@Column(name = "qty", nullable = false, precision = 14, scale = 2)
open var qty: BigDecimal? = null

@NotNull
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "uomId", nullable = false)
open var uom: UomConversion? = null

@Size(max = 30)
@NotNull
@Column(name = "status", nullable = false, length = 30)
open var status: String? = null
}

+ 8
- 0
src/main/java/com/ffii/fpsms/modules/deliveryOrder/entity/DeliveryOrderLineRepository.kt Visa fil

@@ -0,0 +1,8 @@
package com.ffii.fpsms.modules.deliveryOrder.entity

import com.ffii.core.support.AbstractRepository
import org.springframework.stereotype.Repository

@Repository
interface DeliveryOrderLineRepository : AbstractRepository<DeliveryOrderLine, Long> {
}

+ 8
- 0
src/main/java/com/ffii/fpsms/modules/deliveryOrder/entity/DeliveryOrderRepository.kt Visa fil

@@ -0,0 +1,8 @@
package com.ffii.fpsms.modules.deliveryOrder.entity

import com.ffii.core.support.AbstractRepository
import org.springframework.stereotype.Repository

@Repository
interface DeliveryOrderRepository : AbstractRepository<DeliveryOrder, Long> {
}

+ 65
- 0
src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrder.kt Visa fil

@@ -0,0 +1,65 @@
package com.ffii.fpsms.modules.jobOrder.entity

import com.ffii.core.entity.BaseEntity
import com.ffii.fpsms.modules.jobPlanningLog.entity.JobPlanningLog
import com.ffii.fpsms.modules.master.entity.Bom
import com.ffii.fpsms.modules.user.entity.User
import jakarta.persistence.*
import jakarta.validation.constraints.NotNull
import jakarta.validation.constraints.Size
import java.math.BigDecimal
import java.time.LocalDateTime

@Entity
@Table(name = "job_order")
open class JobOrder: BaseEntity<Long>() {
@Size(max = 100)
@NotNull
@Column(name = "code", nullable = false, length = 100)
open var code: String? = null

@NotNull
@ManyToOne
@JoinColumn(name = "bomId", nullable = false)
open var bom: Bom? = null

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

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

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

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

@Column(name = "reqQty", precision = 14, scale = 2)
open var reqQty: BigDecimal? = null

@Column(name = "actualQty", precision = 14, scale = 2)
open var actualQty: BigDecimal? = null

@Size(max = 100)
@NotNull
@Column(name = "status", nullable = false, length = 100)
open var status: String? = null

@Size(max = 500)
@Column(name = "remarks", length = 500)
open var remarks: String? = null

@Size(max = 20)
@NotNull
@Column(name = "type", nullable = false, length = 20)
open var type: String? = null

@ManyToOne
@JoinColumn(name = "approverId", referencedColumnName = "id")
open var approver: User? = null

@ManyToOne
@JoinColumn(name = "jobPlanningLogId")
open var jobPlanningLog: JobPlanningLog? = null
}

+ 42
- 0
src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrderMaterial.kt Visa fil

@@ -0,0 +1,42 @@
package com.ffii.fpsms.modules.jobOrder.entity

import com.ffii.core.entity.BaseEntity
import com.ffii.fpsms.modules.master.entity.Items
import com.ffii.fpsms.modules.master.entity.UomConversion
import com.ffii.fpsms.modules.stock.entity.InventoryLotLine
import jakarta.persistence.*
import jakarta.validation.constraints.NotNull
import java.math.BigDecimal

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

@NotNull
@ManyToOne
@JoinColumn(name = "jopId", nullable = false)
open var jop: JobOrderProcess? = null

@NotNull
@ManyToOne
@JoinColumn(name = "itemId", nullable = false)
open var item: Items? = null

@NotNull
@Column(name = "qty", nullable = false, precision = 14, scale = 2)
open var qty: BigDecimal? = null

@NotNull
@ManyToOne
@JoinColumn(name = "uomId", nullable = false)
open var uom: UomConversion? = null

@ManyToOne
@JoinColumn(name = "inventoryLotLineId")
open var inventoryLotLine: InventoryLotLine? = null

@NotNull
@ManyToOne
@JoinColumn(name = "joProcessDetailId", nullable = false)
open var joProcessDetail: JobOrderProcessDetail? = null
}

+ 8
- 0
src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrderMaterialRepository.kt Visa fil

@@ -0,0 +1,8 @@
package com.ffii.fpsms.modules.jobOrder.entity

import com.ffii.core.support.AbstractRepository
import org.springframework.stereotype.Repository

@Repository
interface JobOrderMaterialRepository : AbstractRepository<JobOrderMaterial, Long> {
}

+ 39
- 0
src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrderProcess.kt Visa fil

@@ -0,0 +1,39 @@
package com.ffii.fpsms.modules.jobOrder.entity

import com.ffii.core.entity.BaseEntity
import com.ffii.fpsms.modules.master.entity.Process
import jakarta.persistence.*
import jakarta.validation.constraints.NotNull
import jakarta.validation.constraints.Size
import java.time.LocalDateTime

@Entity
@Table(name = "job_order_process")
open class JobOrderProcess : BaseEntity<Long>() {
@NotNull
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "joId", nullable = false)
open var jo: JobOrder? = null

@NotNull
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "processId", nullable = false)
open var process: Process? = null

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

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

@Size(max = 20)
@Column(name = "status", length = 20)
open var status: String? = null

@Column(name = "seqNo")
open var seqNo: Long? = null

@Size(max = 500)
@Column(name = "remarks", length = 500)
open var remarks: String? = null
}

+ 38
- 0
src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrderProcessDetail.kt Visa fil

@@ -0,0 +1,38 @@
package com.ffii.fpsms.modules.jobOrder.entity

import com.ffii.core.entity.BaseEntity
import com.ffii.fpsms.modules.master.entity.Equipment
import com.ffii.fpsms.modules.user.entity.User
import jakarta.persistence.*
import jakarta.validation.constraints.NotNull
import jakarta.validation.constraints.Size
import java.time.LocalDateTime

@Entity
@Table(name = "job_order_process_detail")
open class JobOrderProcessDetail: BaseEntity<Long>() {
@NotNull
@ManyToOne
@JoinColumn(name = "jopId", nullable = false)
open var jop: JobOrderProcess? = null

@NotNull
@ManyToOne
@JoinColumn(name = "equipmentId", nullable = false)
open var equipment: Equipment? = null

@NotNull
@ManyToOne
@JoinColumn(name = "operatorId", nullable = false, referencedColumnName = "id")
open var operator: User? = null

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

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

@Size(max = 500)
@Column(name = "remarks", length = 500)
open var remarks: String? = null
}

+ 8
- 0
src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrderProcessDetailRepository.kt Visa fil

@@ -0,0 +1,8 @@
package com.ffii.fpsms.modules.jobOrder.entity

import com.ffii.core.support.AbstractRepository
import org.springframework.stereotype.Repository

@Repository
interface JobOrderProcessDetailRepository : AbstractRepository<JobOrderProcessDetail, Long> {
}

+ 8
- 0
src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrderProcessRepository.kt Visa fil

@@ -0,0 +1,8 @@
package com.ffii.fpsms.modules.jobOrder.entity

import com.ffii.core.support.AbstractRepository
import org.springframework.stereotype.Repository

@Repository
interface JobOrderProcessRepository : AbstractRepository<JobOrderProcess, Long> {
}

+ 8
- 0
src/main/java/com/ffii/fpsms/modules/jobOrder/entity/JobOrderRepository.kt Visa fil

@@ -0,0 +1,8 @@
package com.ffii.fpsms.modules.jobOrder.entity

import com.ffii.core.support.AbstractRepository
import org.springframework.stereotype.Repository

@Repository
interface JobOrderRepository : AbstractRepository<JobOrder, Long> {
}

+ 64
- 0
src/main/java/com/ffii/fpsms/modules/jobPlanningLog/entity/JobPlanningLog.kt Visa fil

@@ -0,0 +1,64 @@
package com.ffii.fpsms.modules.jobPlanningLog.entity

import com.ffii.core.entity.BaseEntity
import com.ffii.fpsms.modules.master.entity.Bom
import com.ffii.fpsms.modules.user.entity.User
import jakarta.persistence.*
import jakarta.validation.constraints.NotNull
import jakarta.validation.constraints.Size
import java.math.BigDecimal
import java.time.Instant

@Entity
@Table(name = "job_planning_log")
open class JobPlanningLog: BaseEntity<Long>() {
@Size(max = 100)
@NotNull
@Column(name = "code", nullable = false, length = 100)
open var code: String? = null

@NotNull
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "bomId", nullable = false)
open var bom: Bom? = null

@Column(name = "planStart")
open var planStart: Instant? = null

@Column(name = "actualStart")
open var actualStart: Instant? = null

@Column(name = "planEnd")
open var planEnd: Instant? = null

@Column(name = "actualEnd")
open var actualEnd: Instant? = null

@Column(name = "reqQty", precision = 14, scale = 2)
open var reqQty: BigDecimal? = null

@Column(name = "actualQty", precision = 14, scale = 2)
open var actualQty: BigDecimal? = null

@Size(max = 100)
@NotNull
@Column(name = "status", nullable = false, length = 100)
open var status: String? = null

@Size(max = 500)
@Column(name = "remarks", length = 500)
open var remarks: String? = null

@Size(max = 20)
@NotNull
@Column(name = "type", nullable = false, length = 20)
open var type: String? = null

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "approverId", referencedColumnName = "id")
open var approver: User? = null

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "lastLogId")
open var lastLog: JobPlanningLog? = null
}

+ 8
- 0
src/main/java/com/ffii/fpsms/modules/jobPlanningLog/entity/JobPlanningLogRepository.kt Visa fil

@@ -0,0 +1,8 @@
package com.ffii.fpsms.modules.jobPlanningLog.entity

import com.ffii.core.support.AbstractRepository
import org.springframework.stereotype.Repository

@Repository
interface JobPlanningLogRepository : AbstractRepository<JobPlanningLog, Long> {
}

+ 50
- 0
src/main/java/com/ffii/fpsms/modules/master/entity/Company.kt Visa fil

@@ -0,0 +1,50 @@
package com.ffii.fpsms.modules.master.entity

import com.ffii.core.entity.BaseEntity
import jakarta.persistence.Column
import jakarta.persistence.Entity
import jakarta.persistence.Table
import jakarta.validation.constraints.NotNull
import jakarta.validation.constraints.Size

@Entity
@Table(name = "company")
open class Company : BaseEntity<Long>() {
@Size(max = 100)
@NotNull
@Column(name = "code", nullable = false, length = 100)
open var code: String? = null

@Size(max = 100)
@NotNull
@Column(name = "name", nullable = false, length = 100)
open var name: String? = null

@Size(max = 100)
@Column(name = "brNo", length = 100)
open var brNo: String? = null

@Size(max = 100)
@Column(name = "contactNo", length = 100)
open var contactNo: String? = null

@Size(max = 100)
@Column(name = "email", length = 100)
open var email: String? = null

@Size(max = 500)
@Column(name = "addr1", length = 500)
open var addr1: String? = null

@Size(max = 500)
@Column(name = "addr2", length = 500)
open var addr2: String? = null

@Size(max = 500)
@Column(name = "addr3", length = 500)
open var addr3: String? = null

@Size(max = 500)
@Column(name = "addr4", length = 500)
open var addr4: String? = null
}

+ 8
- 0
src/main/java/com/ffii/fpsms/modules/master/entity/CompanyRepository.kt Visa fil

@@ -0,0 +1,8 @@
package com.ffii.fpsms.modules.master.entity

import com.ffii.core.support.AbstractRepository
import org.springframework.stereotype.Repository

@Repository
interface CompanyRepository : AbstractRepository<Company, Long> {
}

+ 15
- 0
src/main/java/com/ffii/fpsms/modules/master/entity/ItemCategory.kt Visa fil

@@ -0,0 +1,15 @@
package com.ffii.fpsms.modules.master.entity

import com.ffii.core.entity.BaseEntity
import jakarta.persistence.*
import jakarta.validation.constraints.NotNull
import jakarta.validation.constraints.Size

@Entity
@Table(name = "item_category")
open class ItemCategory : BaseEntity<Long>() {
@Size(max = 50)
@NotNull
@Column(name = "name", nullable = false, length = 50)
open var name: String? = null
}

+ 8
- 0
src/main/java/com/ffii/fpsms/modules/master/entity/ItemCategoryRepository.kt Visa fil

@@ -0,0 +1,8 @@
package com.ffii.fpsms.modules.master.entity

import com.ffii.core.support.AbstractRepository
import org.springframework.stereotype.Repository

@Repository
interface ItemCategoryRepository : AbstractRepository<ItemCategory, Long> {
}

+ 39
- 0
src/main/java/com/ffii/fpsms/modules/stock/entity/StockTake.kt Visa fil

@@ -0,0 +1,39 @@
package com.ffii.fpsms.modules.stock.entity

import com.ffii.core.entity.BaseEntity
import jakarta.persistence.*
import jakarta.validation.constraints.NotNull
import jakarta.validation.constraints.Size
import java.time.LocalDateTime

@Entity
@Table(name = "stock_take")
open class StockTake: BaseEntity<Long>() {
@Size(max = 50)
@NotNull
@Column(name = "code", nullable = false, length = 50)
open var code: String? = null

@NotNull
@Column(name = "planStart", nullable = false)
open var planStart: LocalDateTime? = null

@NotNull
@Column(name = "planEnd", nullable = false)
open var planEnd: LocalDateTime? = null

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

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

@Size(max = 20)
@NotNull
@Column(name = "status", nullable = false, length = 20)
open var status: String? = null

@Size(max = 500)
@Column(name = "remarks", length = 500)
open var remarks: String? = null
}

+ 45
- 0
src/main/java/com/ffii/fpsms/modules/stock/entity/StockTakeLine.kt Visa fil

@@ -0,0 +1,45 @@
package com.ffii.fpsms.modules.stock.entity

import com.ffii.core.entity.BaseEntity
import com.ffii.fpsms.modules.master.entity.UomConversion
import jakarta.persistence.*
import jakarta.validation.constraints.NotNull
import jakarta.validation.constraints.Size
import java.math.BigDecimal
import java.time.LocalDateTime

@Entity
@Table(name = "stock_take_line")
open class StockTakeLine : BaseEntity<Long>() {
@NotNull
@ManyToOne
@JoinColumn(name = "stockTakeId", nullable = false)
open var stockTake: StockTake? = null

@NotNull
@ManyToOne
@JoinColumn(name = "inventoryLotLineId", nullable = false)
open var inventoryLotLine: InventoryLotLine? = null

@Column(name = "initialQty", precision = 14, scale = 2)
open var initialQty: BigDecimal? = null

@Column(name = "finalQty", precision = 14, scale = 2)
open var finalQty: BigDecimal? = null

@ManyToOne
@JoinColumn(name = "uomId")
open var uom: UomConversion? = null

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

@Size(max = 20)
@NotNull
@Column(name = "status", nullable = false, length = 20)
open var status: String? = null

@Size(max = 500)
@Column(name = "remarks", length = 500)
open var remarks: String? = null
}

+ 8
- 0
src/main/java/com/ffii/fpsms/modules/stock/entity/StockTakeLineRepository.kt Visa fil

@@ -0,0 +1,8 @@
package com.ffii.fpsms.modules.stock.entity

import com.ffii.core.support.AbstractRepository
import org.springframework.stereotype.Repository

@Repository
interface StockTakeLineRepository : AbstractRepository<StockTakeLine, Long> {
}

+ 8
- 0
src/main/java/com/ffii/fpsms/modules/stock/entity/StockTakeRepository.kt Visa fil

@@ -0,0 +1,8 @@
package com.ffii.fpsms.modules.stock.entity

import com.ffii.core.support.AbstractRepository
import org.springframework.stereotype.Repository

@Repository
interface StockTakeRepository : AbstractRepository<StockTake, Long> {
}

+ 8
- 0
src/main/java/com/ffii/fpsms/modules/stock/entity/SuggestPickLotRepository.kt Visa fil

@@ -0,0 +1,8 @@
package com.ffii.fpsms.modules.stock.entity

import com.ffii.core.support.AbstractRepository
import org.springframework.stereotype.Repository

@Repository
interface SuggestPickLotRepository : AbstractRepository<SuggestedPickLot, Long> {
}

+ 30
- 0
src/main/java/com/ffii/fpsms/modules/stock/entity/SuggestedPickLot.kt Visa fil

@@ -0,0 +1,30 @@
package com.ffii.fpsms.modules.stock.entity

import com.ffii.core.entity.BaseEntity
import com.ffii.fpsms.modules.master.entity.Warehouse
import jakarta.persistence.*
import jakarta.validation.constraints.NotNull
import jakarta.validation.constraints.Size

@Entity
@Table(name = "suggested_pick_lot")
open class SuggestedPickLot: BaseEntity<Long>() {
@Size(max = 100)
@NotNull
@Column(name = "type", nullable = false, length = 100)
open var type: String? = null

@ManyToOne
@JoinColumn(name = "stockOutLineId")
open var stockOutLine: StockOutLine? = null

@NotNull
@ManyToOne
@JoinColumn(name = "suggestedLotId", nullable = false)
open var suggestedLot: InventoryLot? = null

@NotNull
@ManyToOne
@JoinColumn(name = "suggestedLocId", nullable = false)
open var suggestedLoc: Warehouse? = null
}

+ 43
- 0
src/main/java/com/ffii/fpsms/modules/stock/entity/SupervisionApprovalLog.kt Visa fil

@@ -0,0 +1,43 @@
package com.ffii.fpsms.modules.stock.entity

import com.ffii.core.entity.BaseEntity
import com.ffii.fpsms.modules.user.entity.User
import jakarta.persistence.*
import jakarta.validation.constraints.NotNull
import jakarta.validation.constraints.Size
import java.time.LocalDateTime

@Entity
@Table(name = "supervision_approval_log")
open class SupervisionApprovalLog : BaseEntity<Long>() {
@NotNull
@ManyToOne
@JoinColumn(name = "personInCharge", nullable = false, referencedColumnName = "id")
open var personInCharge: User? = null

@Size(max = 100)
@NotNull
@Column(name = "type", nullable = false, length = 100)
open var type: String? = null

@ManyToOne
@JoinColumn(name = "stockInLineId")
open var stockInLine: StockInLine? = null

@ManyToOne
@JoinColumn(name = "stockOutLineId")
open var stockOutLine: StockOutLine? = null

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

@Size(max = 100)
@NotNull
@Column(name = "status", nullable = false, length = 100)
open var status: String? = null

@Size(max = 500)
@NotNull
@Column(name = "reason", nullable = false, length = 500)
open var reason: String? = null
}

+ 8
- 0
src/main/java/com/ffii/fpsms/modules/stock/entity/SupervisionApprovalLogRepository.kt Visa fil

@@ -0,0 +1,8 @@
package com.ffii.fpsms.modules.stock.entity

import com.ffii.core.support.AbstractRepository
import org.springframework.stereotype.Repository

@Repository
interface SupervisionApprovalLogRepository : AbstractRepository<SupervisionApprovalLog, Long> {
}

+ 45
- 0
src/main/resources/db/changelog/changes/20250527_01_cyril/02_create_delivery_order.sql Visa fil

@@ -0,0 +1,45 @@
-- liquibase formatted sql
-- changeset cyril:delivery order

CREATE TABLE `delivery_order`
(
`id` INT NOT NULL AUTO_INCREMENT,
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`createdBy` VARCHAR(30) NULL DEFAULT NULL,
`version` INT NOT NULL DEFAULT '0',
`modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modifiedBy` VARCHAR(30) NULL DEFAULT NULL,
`deleted` TINYINT(1) NOT NULL DEFAULT '0',
`purchaseOrderId` INT NULL,
`code` varchar(100) NOT NULL,
`consoCode` varchar(100) NULL,
`remarks` varchar(500) NULL,
`targetDate` DATETIME NOT NULL,
`shopId` INT NULL,
`status` VARCHAR(30) NOT NULL DEFAULT 'pending',
`handlerId` INT NULL,
CONSTRAINT pk_delivery_order PRIMARY KEY (id),
CONSTRAINT `FK_DELIVERY_ORDER_ON_PURCHASEORDERID` FOREIGN KEY (`purchaseOrderId`) REFERENCES `purchase_order` (`id`),
CONSTRAINT `FK_DELIVERY_ORDER_ON_SHOPID` FOREIGN KEY (`shopId`) REFERENCES `shop` (`id`),
CONSTRAINT `FK_DELIVERY_ORDER_ON_HANDLERID` FOREIGN KEY (`handlerId`) REFERENCES `user` (`id`)
);

CREATE TABLE `delivery_order_line`
(
`id` INT NOT NULL AUTO_INCREMENT,
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`createdBy` VARCHAR(30) NULL DEFAULT NULL,
`version` INT NOT NULL DEFAULT '0',
`modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modifiedBy` VARCHAR(30) NULL DEFAULT NULL,
`deleted` TINYINT(1) NOT NULL DEFAULT '0',
`purchaseOrderLineId` INT NULL,
`itemId` INT NOT NULL,
`qty` DECIMAL(14, 2) NOT NULL,
`uomId` INT NOT NULL,
`status` VARCHAR(30) NOT NULL DEFAULT 'pending',
CONSTRAINT pk_delivery_order_line PRIMARY KEY (id),
CONSTRAINT `FK_DELIVERY_ORDER_LINE_ON_PURCHASEORDERLINEID` FOREIGN KEY (`purchaseOrderLineId`) REFERENCES `purchase_order_line` (`id`),
CONSTRAINT `FK_DELIVERY_ORDER_LINE_ON_ITEMID` FOREIGN KEY (`itemId`) REFERENCES `items` (`id`),
CONSTRAINT `FK_DELIVERY_ORDER_LINE_ON_UOMID` FOREIGN KEY (`uomId`) REFERENCES `uom_conversion` (`id`)
);

+ 15
- 0
src/main/resources/db/changelog/changes/20250527_01_cyril/03_create_item_category.sql Visa fil

@@ -0,0 +1,15 @@
-- liquibase formatted sql
-- changeset cyril:item category

CREATE TABLE `item_category`
(
`id` INT NOT NULL AUTO_INCREMENT,
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`createdBy` VARCHAR(30) NULL DEFAULT NULL,
`version` INT NOT NULL DEFAULT '0',
`modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modifiedBy` VARCHAR(30) NULL DEFAULT NULL,
`deleted` TINYINT(1) NOT NULL DEFAULT '0',
`name` VARCHAR(50) NOT NULL,
CONSTRAINT pk_item_category PRIMARY KEY (id)
);

+ 30
- 0
src/main/resources/db/changelog/changes/20250527_01_cyril/04_create_job_planning_log.sql Visa fil

@@ -0,0 +1,30 @@
-- liquibase formatted sql
-- changeset cyril:job planning log

CREATE TABLE `job_planning_log`
(
`id` INT NOT NULL AUTO_INCREMENT,
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`createdBy` VARCHAR(30) NULL DEFAULT NULL,
`version` INT NOT NULL DEFAULT '0',
`modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modifiedBy` VARCHAR(30) NULL DEFAULT NULL,
`deleted` TINYINT(1) NOT NULL DEFAULT '0',
`code` VARCHAR(100) NOT NULL,
`bomId` INT NOT NULL,
`planStart` DATETIME NULL,
`actualStart` DATETIME NULL,
`planEnd` DATETIME NULL,
`actualEnd` DATETIME NULL,
`reqQty` DECIMAL(14, 2) NULL,
`actualQty` DECIMAL(14, 2) NULL,
`status` VARCHAR(100) NOT NULL default 'planning',
`remarks` VARCHAR(500) NULL,
`type` VARCHAR(20) NOT NULL default 'rough',
`approverId` INT NULL,
`lastLogId` INT NULL,
CONSTRAINT pk_job_planning_log PRIMARY KEY (id),
CONSTRAINT `FK_JOB_PLANNING_LOG_ON_BOMID` FOREIGN KEY (`bomId`) REFERENCES `bom` (`id`),
CONSTRAINT `FK_JOB_PLANNING_LOG_ON_APPROVERID` FOREIGN KEY (`approverId`) REFERENCES `user` (`id`),
CONSTRAINT `FK_JOB_PLANNING_LOG_ON_LASTLOGID` FOREIGN KEY (`lastLogId`) REFERENCES `job_planning_log` (`id`)
);

+ 95
- 0
src/main/resources/db/changelog/changes/20250527_01_cyril/05_create_job_order.sql Visa fil

@@ -0,0 +1,95 @@
-- liquibase formatted sql
-- changeset cyril:job order

CREATE TABLE `job_order`
(
`id` INT NOT NULL AUTO_INCREMENT,
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`createdBy` VARCHAR(30) NULL DEFAULT NULL,
`version` INT NOT NULL DEFAULT '0',
`modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modifiedBy` VARCHAR(30) NULL DEFAULT NULL,
`deleted` TINYINT(1) NOT NULL DEFAULT '0',
`code` VARCHAR(100) NOT NULL,
`bomId` INT NOT NULL,
`planStart` DATETIME NULL,
`actualStart` DATETIME NULL,
`planEnd` DATETIME NULL,
`actualEnd` DATETIME NULL,
`reqQty` DECIMAL(14, 2) NULL,
`actualQty` DECIMAL(14, 2) NULL,
`status` VARCHAR(100) NOT NULL default 'planning',
`remarks` VARCHAR(500) NULL,
`type` VARCHAR(20) NOT NULL default 'rough',
`approverId` INT NULL,
`jobPlanningLogId` INt NULL,
CONSTRAINT pk_job_order PRIMARY KEY (id),
CONSTRAINT `FK_JOB_ORDER_ON_BOMID` FOREIGN KEY (`bomId`) REFERENCES `bom` (`id`),
CONSTRAINT `FK_JOB_ORDER_ON_APPROVERID` FOREIGN KEY (`approverId`) REFERENCES `user` (`id`),
CONSTRAINT `FK_JOB_ORDER_ON_JOBPLANNINGLOGID` FOREIGN KEY (`jobPlanningLogId`) REFERENCES `job_planning_log` (`id`)
);

CREATE TABLE `job_order_process`
(
`id` INT NOT NULL AUTO_INCREMENT,
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`createdBy` VARCHAR(30) NULL DEFAULT NULL,
`version` INT NOT NULL DEFAULT '0',
`modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modifiedBy` VARCHAR(30) NULL DEFAULT NULL,
`deleted` TINYINT(1) NOT NULL DEFAULT '0',
`joId` INT NOT NULL,
`processId` INT NOT NULL,
`startTime` DATETIME NULL,
`endTime` DATETIME NULL,
`status` VARCHAR(20) NULL,
`seqNo` INT NULL,
`remarks` VARCHAR(500) NULL,
CONSTRAINT pk_job_order_process PRIMARY KEY (id),
CONSTRAINT `FK_JOB_ORDER_PROCESS_ON_JOID` FOREIGN KEY (`joId`) REFERENCES `job_order` (`id`),
CONSTRAINT `FK_JOB_ORDER_PROCESS_ON_PROCESSID` FOREIGN KEY (`processId`) REFERENCES `process` (`id`)
);

CREATE TABLE `job_order_process_detail`
(
`id` INT NOT NULL AUTO_INCREMENT,
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`createdBy` VARCHAR(30) NULL DEFAULT NULL,
`version` INT NOT NULL DEFAULT '0',
`modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modifiedBy` VARCHAR(30) NULL DEFAULT NULL,
`deleted` TINYINT(1) NOT NULL DEFAULT '0',
`jopId` INT NOT NULL,
`equipmentId` INT NOT NULL,
`operatorId` INT NOT NULL,
`operatingStart` DATETIME NULL,
`operatingEnd` DATETIME NULL,
`remarks` VARCHAR(500) NULL,
CONSTRAINT pk_job_order_process_detail PRIMARY KEY (id),
CONSTRAINT `FK_JOB_ORDER_PROCESS_DETAIL_ON_JOPID` FOREIGN KEY (`jopId`) REFERENCES `job_order_process` (`id`),
CONSTRAINT `FK_JOB_ORDER_PROCESS_DETAIL_ON_EQUIPMENTID` FOREIGN KEY (`equipmentId`) REFERENCES `equipment` (`id`),
CONSTRAINT `FK_JOB_ORDER_PROCESS_DETAIL_ON_OPERATORID` FOREIGN KEY (`operatorId`) REFERENCES `user` (`id`)
);

CREATE TABLE `job_order_material`
(
`id` INT NOT NULL AUTO_INCREMENT,
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`createdBy` VARCHAR(30) NULL DEFAULT NULL,
`version` INT NOT NULL DEFAULT '0',
`modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modifiedBy` VARCHAR(30) NULL DEFAULT NULL,
`deleted` TINYINT(1) NOT NULL DEFAULT '0',
`jopId` INT NOT NULL,
`itemId` INT NOT NULL,
`qty` DECIMAL(14, 2) NOT NULL,
`uomId` INT NOT NULL,
`inventoryLotLineId` INT NULL,
`joProcessDetailId` INT NOT NULL,
CONSTRAINT pk_job_order_material PRIMARY KEY (id),
CONSTRAINT `FK_JOB_ORDER_MATERIAL_ON_JOPID` FOREIGN KEY (`jopId`) REFERENCES `job_order_process` (`id`),
CONSTRAINT `FK_JOB_ORDER_MATERIAL_ON_ITEMID` FOREIGN KEY (`itemId`) REFERENCES `items` (`id`),
CONSTRAINT `FK_JOB_ORDER_MATERIAL_ON_UOMID` FOREIGN KEY (`uomId`) REFERENCES `uom_conversion` (`id`),
CONSTRAINT `FK_JOB_ORDER_MATERIAL_ON_LOTLINEID` FOREIGN KEY (`inventoryLotLineId`) REFERENCES `inventory_lot_line` (`id`),
CONSTRAINT `FK_JOB_ORDER_MATERIAL_ON_JOPROCESSDETAILID` FOREIGN KEY (`joProcessDetailId`) REFERENCES `job_order_process_detail` (`id`)
);

+ 44
- 0
src/main/resources/db/changelog/changes/20250527_01_cyril/06_create_stock_take.sql Visa fil

@@ -0,0 +1,44 @@
-- liquibase formatted sql
-- changeset cyril:stock take

CREATE TABLE `stock_take`
(
`id` INT NOT NULL AUTO_INCREMENT,
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`createdBy` VARCHAR(30) NULL DEFAULT NULL,
`version` INT NOT NULL DEFAULT '0',
`modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modifiedBy` VARCHAR(30) NULL DEFAULT NULL,
`deleted` TINYINT(1) NOT NULL DEFAULT '0',
`code` VARCHAR(50) NOT NULL,
`planStart` DATETIME NOT NULL,
`planEnd` DATETIME NOT NULL,
`actualStart` DATETIME NULL,
`actualEnd` DATETIME NULL,
`status` VARCHAR(20) NOT NULL DEFAULT 'pending',
`remarks` VARCHAR(500) NULL,
CONSTRAINT pk_stock_take PRIMARY KEY (id)
);

CREATE TABLE `stock_take_line`
(
`id` INT NOT NULL AUTO_INCREMENT,
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`createdBy` VARCHAR(30) NULL DEFAULT NULL,
`version` INT NOT NULL DEFAULT '0',
`modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modifiedBy` VARCHAR(30) NULL DEFAULT NULL,
`deleted` TINYINT(1) NOT NULL DEFAULT '0',
`stockTakeId` INT NOT NULL,
`inventoryLotLineId` INT NOT NULL,
`initialQty` DECIMAL(14, 2) NULL,
`finalQty` DECIMAL(14, 2) NULL,
`uomId` INT NULL,
`completeDate` DATETIME NULL,
`status` VARCHAR(20) NOT NULL DEFAULT 'pending',
`remarks` VARCHAR(500) NULL,
CONSTRAINT pk_stock_take_line PRIMARY KEY (id),
CONSTRAINT `FK_STOCK_TAKE_LINE_ON_STOCKTAKEID` FOREIGN KEY (`stockTakeId`) REFERENCES `stock_take` (`id`),
CONSTRAINT `FK_STOCK_TAKE_LINE_ON_INVENTORYLOTLINEID` FOREIGN KEY (`inventoryLotLineId`) REFERENCES `inventory_lot_line` (`id`),
CONSTRAINT `FK_STOCK_TAKE_LINE_ON_UOMID` FOREIGN KEY (`uomId`) REFERENCES `uom_conversion` (`id`)
);

+ 21
- 0
src/main/resources/db/changelog/changes/20250527_01_cyril/07_create_suggested_pick_lot.sql Visa fil

@@ -0,0 +1,21 @@
-- liquibase formatted sql
-- changeset cyril:suggested pick lot

CREATE TABLE `suggested_pick_lot`
(
`id` INT NOT NULL AUTO_INCREMENT,
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`createdBy` VARCHAR(30) NULL DEFAULT NULL,
`version` INT NOT NULL DEFAULT '0',
`modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modifiedBy` VARCHAR(30) NULL DEFAULT NULL,
`deleted` TINYINT(1) NOT NULL DEFAULT '0',
`type` VARCHAR(100) NOT NULL,
`stockOutLineId` INT NULL,
`suggestedLotId` INT NOT NULL,
`suggestedLocId` INT NOT NULL,
CONSTRAINT pk_suggested_pick_lot PRIMARY KEY (id),
CONSTRAINT `FK_SUGGESTED_PICK_LOT_ON_STOCKOUTLINEID` FOREIGN KEY (`stockOutLineId`) REFERENCES `stock_out_line` (`id`),
CONSTRAINT `FK_SUGGESTED_PICK_LOT_ON_SUGGESTEDLOTID` FOREIGN KEY (`suggestedLotId`) REFERENCES `inventory_lot` (`id`),
CONSTRAINT `FK_SUGGESTED_PICK_LOT_ON_SUGGESTEDLOCID` FOREIGN KEY (`suggestedLocId`) REFERENCES `warehouse` (`id`)
);

+ 24
- 0
src/main/resources/db/changelog/changes/20250527_01_cyril/08_create_supervision_approval_log.sql Visa fil

@@ -0,0 +1,24 @@
-- liquibase formatted sql
-- changeset cyril:supervision approval log

CREATE TABLE `supervision_approval_log`
(
`id` INT NOT NULL AUTO_INCREMENT,
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`createdBy` VARCHAR(30) NULL DEFAULT NULL,
`version` INT NOT NULL DEFAULT '0',
`modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modifiedBy` VARCHAR(30) NULL DEFAULT NULL,
`deleted` TINYINT(1) NOT NULL DEFAULT '0',
`personInCharge` INT NOT NULL,
`type` VARCHAR(100) NOT NULL,
`stockInLineId` INT NULL,
`stockOutLineId` INT NULL,
`recordDate` DATETIME NULL,
`status` VARCHAR(100) NOT NULL,
`reason` VARCHAR(500) NOT NULL,
CONSTRAINT pk_supervision_approval_log PRIMARY KEY (id),
CONSTRAINT `FK_SUPERVISION_APPROVAL_LOG_ON_PERSONINCHARGE` FOREIGN KEY (`personInCharge`) REFERENCES `user` (`id`),
CONSTRAINT `FK_SUPERVISION_APPROVAL_LOG_ON_STOCKINLINEID` FOREIGN KEY (`stockInLineId`) REFERENCES `stock_in_line` (`id`),
CONSTRAINT `FK_SUPERVISION_APPROVAL_LOG_ON_STOCKOUTLINEID` FOREIGN KEY (`stockOutLineId`) REFERENCES `stock_out_line` (`id`)
);

+ 23
- 0
src/main/resources/db/changelog/changes/20250527_01_cyril/09_create_company.sql Visa fil

@@ -0,0 +1,23 @@
-- liquibase formatted sql
-- changeset cyril:company

CREATE TABLE `company`
(
`id` INT NOT NULL AUTO_INCREMENT,
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`createdBy` VARCHAR(30) NULL DEFAULT NULL,
`version` INT NOT NULL DEFAULT '0',
`modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modifiedBy` VARCHAR(30) NULL DEFAULT NULL,
`deleted` TINYINT(1) NOT NULL DEFAULT '0',
`code` VARCHAR(100) NOT NULL,
`name` VARCHAR(100) NOT NULL,
`brNo` VARCHAR(100) NULL,
`contactNo` VARCHAR(100) NULL,
`email` VARCHAR(100) NULL,
`addr1` VARCHAR(500) NULL,
`addr2` VARCHAR(500) NULL,
`addr3` VARCHAR(500) NULL,
`addr4` VARCHAR(500) NULL,
CONSTRAINT pk_company PRIMARY KEY (id)
);

Laddar…
Avbryt
Spara