| @@ -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 | |||
| } | |||
| @@ -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 | |||
| } | |||
| @@ -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> { | |||
| } | |||
| @@ -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> { | |||
| } | |||
| @@ -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 | |||
| } | |||
| @@ -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 | |||
| } | |||
| @@ -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> { | |||
| } | |||
| @@ -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 | |||
| } | |||
| @@ -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 | |||
| } | |||
| @@ -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> { | |||
| } | |||
| @@ -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> { | |||
| } | |||
| @@ -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> { | |||
| } | |||
| @@ -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 | |||
| } | |||
| @@ -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> { | |||
| } | |||
| @@ -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 | |||
| } | |||
| @@ -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> { | |||
| } | |||
| @@ -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 | |||
| } | |||
| @@ -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> { | |||
| } | |||
| @@ -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 | |||
| } | |||
| @@ -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 | |||
| } | |||
| @@ -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> { | |||
| } | |||
| @@ -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> { | |||
| } | |||
| @@ -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> { | |||
| } | |||
| @@ -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 | |||
| } | |||
| @@ -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 | |||
| } | |||
| @@ -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> { | |||
| } | |||
| @@ -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`) | |||
| ); | |||
| @@ -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) | |||
| ); | |||
| @@ -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`) | |||
| ); | |||
| @@ -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`) | |||
| ); | |||
| @@ -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`) | |||
| ); | |||
| @@ -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`) | |||
| ); | |||
| @@ -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`) | |||
| ); | |||
| @@ -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) | |||
| ); | |||