Просмотр исходного кода

Add data entities

tags/Baseline_30082024_BACKEND_UAT
Wayne 1 год назад
Родитель
Сommit
4d5ebfd83e
51 измененных файлов: 1690 добавлений и 17 удалений
  1. +3
    -0
      .gitignore
  2. +21
    -11
      README.md
  3. +6
    -6
      build.gradle
  4. +0
    -0
      gradlew
  5. +158
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/Company.java
  6. +37
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/CompanyHoliday.java
  7. +6
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/CompanyHolidayRepository.java
  8. +6
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/CompanyRepository.java
  9. +101
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/Customer.java
  10. +6
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/CustomerRepository.java
  11. +35
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/CustomerSubsidiary.java
  12. +46
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/Department.java
  13. +6
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/DepartmentRepository.java
  14. +46
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/Grade.java
  15. +6
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/GradeRepository.java
  16. +81
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/InternalRate.java
  17. +46
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/Position.java
  18. +6
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/PositionRepository.java
  19. +81
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/Rate.java
  20. +6
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/RateRepository.java
  21. +59
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/Salary.java
  22. +40
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/SalaryEffective.java
  23. +6
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/SalaryRepository.java
  24. +46
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/Service.java
  25. +35
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/ServiceRate.java
  26. +6
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/ServiceRepository.java
  27. +46
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/Skill.java
  28. +6
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/SkillRepository.java
  29. +257
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/Staff.java
  30. +6
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/StaffRepository.java
  31. +103
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/Subsidiary.java
  32. +6
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/SubsidiaryRepository.java
  33. +46
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/Team.java
  34. +6
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/TeamRepository.java
  35. +26
    -0
      src/main/resources/db/changelog/changes/20240105_01_wayne/01_company.sql
  36. +15
    -0
      src/main/resources/db/changelog/changes/20240105_01_wayne/02_company_holiday.sql
  37. +21
    -0
      src/main/resources/db/changelog/changes/20240105_01_wayne/03_customer.sql
  38. +21
    -0
      src/main/resources/db/changelog/changes/20240105_01_wayne/04_subsidiary.sql
  39. +13
    -0
      src/main/resources/db/changelog/changes/20240105_01_wayne/05_customer_subsidiary.sql
  40. +16
    -0
      src/main/resources/db/changelog/changes/20240105_01_wayne/06_department.sql
  41. +16
    -0
      src/main/resources/db/changelog/changes/20240105_01_wayne/07_grade.sql
  42. +19
    -0
      src/main/resources/db/changelog/changes/20240105_01_wayne/08_internal_rate.sql
  43. +16
    -0
      src/main/resources/db/changelog/changes/20240105_01_wayne/09_position.sql
  44. +19
    -0
      src/main/resources/db/changelog/changes/20240105_01_wayne/10_rate.sql
  45. +11
    -0
      src/main/resources/db/changelog/changes/20240105_01_wayne/11_salary.sql
  46. +11
    -0
      src/main/resources/db/changelog/changes/20240105_01_wayne/12_salary_effective.sql
  47. +16
    -0
      src/main/resources/db/changelog/changes/20240105_01_wayne/13_service.sql
  48. +13
    -0
      src/main/resources/db/changelog/changes/20240105_01_wayne/14_service_rate.sql
  49. +16
    -0
      src/main/resources/db/changelog/changes/20240105_01_wayne/15_skill.sql
  50. +16
    -0
      src/main/resources/db/changelog/changes/20240105_01_wayne/16_team.sql
  51. +54
    -0
      src/main/resources/db/changelog/changes/20240105_01_wayne/17_staff.sql

+ 3
- 0
.gitignore Просмотреть файл

@@ -35,3 +35,6 @@ out/

### VS Code ###
.vscode/

### JPA Buddy ###
.jpb/

+ 21
- 11
README.md Просмотреть файл

@@ -1,11 +1,9 @@
# Backend readme
1. Create a schema named "tsmsdb" in MySQL workbench
2. Put the launch.json file into the .vscode folder
3. Put the settings.json file into the .vscode folder
4. Run and Debug "Launch Local"
# TSMS Backend

# launch.json
```
## Getting started
1. Create a schema named `tsmsdb` in MySQL workbench
2. Create a `launch.json` file and put it into the `.vscode` folder
```json
{
"version": "0.2.0",
"configurations": [
@@ -28,12 +26,24 @@
]
}
```
# settings.json
You may need to change some settings depending on your development environment
```
3. Create a `settings.json` file and put it into the `.vscode` folder
*(You may need to change some settings depending on your development environment)*
```json
{
"java.configuration.updateBuildConfiguration": "interactive",
"java.jdt.ls.java.home": "C:\\java\\jdk-17.0.8",
"java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx2G -Xms100m -Xlog:disable"
}
```
```

4. Run and Debug "Launch Local"

## Using gradle

This project can also be run using gradle.

### Running the application
After creating the table in MySQL, run
```shell
SPRING_PROFILES_ACTIVE=db-local,ldap-local ./gradlew bootRun
```

+ 6
- 6
build.gradle Просмотреть файл

@@ -22,10 +22,10 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-log4j2'
implementation 'org.springframework.boot:spring-boot-starter-log4j2'
implementation 'org.springframework.security:spring-security-ldap'
implementation 'org.liquibase:liquibase-core'
implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.12.0'
implementation group: 'org.apache.poi', name: 'poi', version: '5.2.3'
implementation group: 'org.apache.poi', name: 'poi-ooxml', version: '5.2.3'
@@ -41,7 +41,7 @@ dependencies {
implementation group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.11.5'

compileOnly group: 'jakarta.servlet', name: 'jakarta.servlet-api', version: '6.0.0'
runtimeOnly 'com.mysql:mysql-connector-j'
runtimeOnly 'com.unboundid:unboundid-ldapsdk:6.0.9'

@@ -50,7 +50,7 @@ dependencies {
}

configurations {
all {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
}
configureEach {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
}
}


+ 158
- 0
src/main/java/com/ffii/tsms/modules/data/entity/Company.java Просмотреть файл

@@ -0,0 +1,158 @@
package com.ffii.tsms.modules.data.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 java.time.LocalTime;

@Entity
@Table(name = "company")
public class Company extends BaseEntity<Long> {
@NotNull
@Column(name = "companyCode", length = 30)
private String companyCode;

@NotNull
@Column(name = "name", length = 150)
private String name;

@Column(name = "brNo", length = 20)
private String brNo;

@Column(name = "contactName", length = 30)
private String contactName;

@Column(name = "phone", length = 20)
private String phone;

@Column(name = "otHourTo")
private LocalTime otHourTo;

@Column(name = "otHourFrom")
private LocalTime otHourFrom;

@Column(name = "normalHourTo")
private LocalTime normalHourTo;

@Column(name = "normalHourFrom")
private LocalTime normalHourFrom;

@Column(name = "currency", length = 20)
private String currency;

@Column(name = "address", length = 500)
private String address;

@Column(name = "district", length = 30)
private String district;

@Column(name = "email")
private String email;

public LocalTime getOtHourTo() {
return otHourTo;
}

public void setOtHourTo(LocalTime otHourTo) {
this.otHourTo = otHourTo;
}

public LocalTime getOtHourFrom() {
return otHourFrom;
}

public void setOtHourFrom(LocalTime otHourFrom) {
this.otHourFrom = otHourFrom;
}

public LocalTime getNormalHourTo() {
return normalHourTo;
}

public void setNormalHourTo(LocalTime normalHourTo) {
this.normalHourTo = normalHourTo;
}

public LocalTime getNormalHourFrom() {
return normalHourFrom;
}

public void setNormalHourFrom(LocalTime normalHourFrom) {
this.normalHourFrom = normalHourFrom;
}

public String getCurrency() {
return currency;
}

public void setCurrency(String currency) {
this.currency = currency;
}

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

public String getDistrict() {
return district;
}

public void setDistrict(String district) {
this.district = district;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getPhone() {
return phone;
}

public void setPhone(String phone) {
this.phone = phone;
}

public String getContactName() {
return contactName;
}

public void setContactName(String contactName) {
this.contactName = contactName;
}

public String getBrNo() {
return brNo;
}

public void setBrNo(String brNo) {
this.brNo = brNo;
}

public String getCompanyCode() {
return companyCode;
}

public void setCompanyCode(String companyCode) {
this.companyCode = companyCode;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

+ 37
- 0
src/main/java/com/ffii/tsms/modules/data/entity/CompanyHoliday.java Просмотреть файл

@@ -0,0 +1,37 @@
package com.ffii.tsms.modules.data.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 java.time.LocalDate;

@Entity
@Table(name = "company_holiday")
public class CompanyHoliday extends BaseEntity<Long> {
@NotNull
@Column(name = "date")
private LocalDate date;

@NotNull
@Column(name = "name", length = 150)
private String name;

public LocalDate getDate() {
return date;
}

public void setDate(LocalDate date) {
this.date = date;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

+ 6
- 0
src/main/java/com/ffii/tsms/modules/data/entity/CompanyHolidayRepository.java Просмотреть файл

@@ -0,0 +1,6 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.support.AbstractRepository;

public interface CompanyHolidayRepository extends AbstractRepository<CompanyHoliday, Long> {
}

+ 6
- 0
src/main/java/com/ffii/tsms/modules/data/entity/CompanyRepository.java Просмотреть файл

@@ -0,0 +1,6 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.support.AbstractRepository;

public interface CompanyRepository extends AbstractRepository<Company, Long> {
}

+ 101
- 0
src/main/java/com/ffii/tsms/modules/data/entity/Customer.java Просмотреть файл

@@ -0,0 +1,101 @@
package com.ffii.tsms.modules.data.entity;

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

@Entity
@Table(name = "customer")
public class Customer extends BaseEntity<Long> {
@NotNull
@Column(name = "name", length = 150)
private String name;

@NotNull
@Column(name = "code", length = 30)
private String code;

@Column(name = "address", length = 500)
private String address;

@Column(name = "district", length = 30)
private String district;

@Column(name = "email")
private String email;

@Column(name = "phone", length = 20)
private String phone;

@Column(name = "contactName", length = 30)
private String contactName;

@Column(name = "brNo", length = 20)
private String brNo;

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

public String getDistrict() {
return district;
}

public void setDistrict(String district) {
this.district = district;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getPhone() {
return phone;
}

public void setPhone(String phone) {
this.phone = phone;
}

public String getContactName() {
return contactName;
}

public void setContactName(String contactName) {
this.contactName = contactName;
}

public String getBrNo() {
return brNo;
}

public void setBrNo(String brNo) {
this.brNo = brNo;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}
}

+ 6
- 0
src/main/java/com/ffii/tsms/modules/data/entity/CustomerRepository.java Просмотреть файл

@@ -0,0 +1,6 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.support.AbstractRepository;

public interface CustomerRepository extends AbstractRepository<Customer, Long> {
}

+ 35
- 0
src/main/java/com/ffii/tsms/modules/data/entity/CustomerSubsidiary.java Просмотреть файл

@@ -0,0 +1,35 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.entity.IdEntity;
import jakarta.persistence.Entity;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;

@Entity
@Table(name = "customer_subsidiary")
public class CustomerSubsidiary extends IdEntity<Long> {
@ManyToOne
@JoinColumn(name = "customerId")
private Customer customer;

@ManyToOne
@JoinColumn(name = "subsidiaryId")
private Subsidiary subsidiary;

public Subsidiary getSubsidiary() {
return subsidiary;
}

public void setSubsidiary(Subsidiary subsidiary) {
this.subsidiary = subsidiary;
}

public Customer getCustomer() {
return customer;
}

public void setCustomerId(Customer customer) {
this.customer = customer;
}
}

+ 46
- 0
src/main/java/com/ffii/tsms/modules/data/entity/Department.java Просмотреть файл

@@ -0,0 +1,46 @@
package com.ffii.tsms.modules.data.entity;

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

@Entity
@Table(name = "department")
public class Department extends BaseEntity<Long> {
@Column(name = "description", length = 1500)
private String description;

@NotNull
@Column(name = "name", length = 150)
private String name;

@NotNull
@Column(name = "code", length = 30)
private String code;

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}
}

+ 6
- 0
src/main/java/com/ffii/tsms/modules/data/entity/DepartmentRepository.java Просмотреть файл

@@ -0,0 +1,6 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.support.AbstractRepository;

public interface DepartmentRepository extends AbstractRepository<Department, Long> {
}

+ 46
- 0
src/main/java/com/ffii/tsms/modules/data/entity/Grade.java Просмотреть файл

@@ -0,0 +1,46 @@
package com.ffii.tsms.modules.data.entity;

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

@Entity
@Table(name = "grade")
public class Grade extends BaseEntity<Long> {
@Column(name = "description", length = 1500)
private String description;

@NotNull
@Column(name = "name", length = 150)
private String name;

@NotNull
@Column(name = "code", length = 30)
private String code;

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}
}

+ 6
- 0
src/main/java/com/ffii/tsms/modules/data/entity/GradeRepository.java Просмотреть файл

@@ -0,0 +1,6 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.support.AbstractRepository;

public interface GradeRepository extends AbstractRepository<Grade, Long> {
}

+ 81
- 0
src/main/java/com/ffii/tsms/modules/data/entity/InternalRate.java Просмотреть файл

@@ -0,0 +1,81 @@
package com.ffii.tsms.modules.data.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 java.time.LocalDate;

@Entity
@Table(name = "internal_rate")
public class InternalRate extends BaseEntity<Long> {
@NotNull
@Column(name = "name", length = 150)
private String name;

@NotNull
@Column(name = "code", length = 30)
private String code;

@Column(name = "effectFrom")
private LocalDate effectFrom;

@Column(name = "effectTo")
private LocalDate effectTo;

@Column(name = "normalRate")
private Double normalRate;

@Column(name = "otRate")
private Double otRate;

public Double getOtRate() {
return otRate;
}

public void setOtRate(Double otRate) {
this.otRate = otRate;
}

public Double getNormalRate() {
return normalRate;
}

public void setNormalRate(Double normalRate) {
this.normalRate = normalRate;
}

public LocalDate getEffectTo() {
return effectTo;
}

public void setEffectTo(LocalDate effectTo) {
this.effectTo = effectTo;
}

public LocalDate getEffectFrom() {
return effectFrom;
}

public void setEffectFrom(LocalDate effectFrom) {
this.effectFrom = effectFrom;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}
}

+ 46
- 0
src/main/java/com/ffii/tsms/modules/data/entity/Position.java Просмотреть файл

@@ -0,0 +1,46 @@
package com.ffii.tsms.modules.data.entity;

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

@Entity
@Table(name = "position")
public class Position extends BaseEntity<Long> {
@Column(name = "description", length = 1500)
private String description;

@NotNull
@Column(name = "name", length = 150)
private String name;

@NotNull
@Column(name = "code", length = 30)
private String code;

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}
}

+ 6
- 0
src/main/java/com/ffii/tsms/modules/data/entity/PositionRepository.java Просмотреть файл

@@ -0,0 +1,6 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.support.AbstractRepository;

public interface PositionRepository extends AbstractRepository<Position, Long> {
}

+ 81
- 0
src/main/java/com/ffii/tsms/modules/data/entity/Rate.java Просмотреть файл

@@ -0,0 +1,81 @@
package com.ffii.tsms.modules.data.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 java.time.LocalDate;

@Entity
@Table(name = "rate")
public class Rate extends BaseEntity<Long> {
@NotNull
@Column(name = "name", length = 150)
private String name;

@NotNull
@Column(name = "code", length = 30)
private String code;

@Column(name = "effectFrom")
private LocalDate effectFrom;

@Column(name = "effectTo")
private LocalDate effectTo;

@Column(name = "normalRate")
private Double normalRate;

@Column(name = "otRate")
private Double otRate;

public Double getOtRate() {
return otRate;
}

public void setOtRate(Double otRate) {
this.otRate = otRate;
}

public Double getNormalRate() {
return normalRate;
}

public void setNormalRate(Double normalRate) {
this.normalRate = normalRate;
}

public LocalDate getEffectTo() {
return effectTo;
}

public void setEffectTo(LocalDate effectTo) {
this.effectTo = effectTo;
}

public LocalDate getEffectFrom() {
return effectFrom;
}

public void setEffectFrom(LocalDate effectFrom) {
this.effectFrom = effectFrom;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}
}

+ 6
- 0
src/main/java/com/ffii/tsms/modules/data/entity/RateRepository.java Просмотреть файл

@@ -0,0 +1,6 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.support.AbstractRepository;

public interface RateRepository extends AbstractRepository<Rate, Long> {
}

+ 59
- 0
src/main/java/com/ffii/tsms/modules/data/entity/Salary.java Просмотреть файл

@@ -0,0 +1,59 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.entity.IdEntity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import jakarta.validation.constraints.NotNull;

@Entity
@Table(name = "salary")
public class Salary extends IdEntity<Long> {
@NotNull
@Column(name = "salaryPoint")
private Integer salaryPoint;

@NotNull
@Column(name = "lowerLimit")
private Integer lowerLimit;

@NotNull
@Column(name = "upperLimit")
private Integer upperLimit;

@NotNull
@Column(name = "increment")
private Integer increment;

public Integer getIncrement() {
return increment;
}

public void setIncrement(Integer increment) {
this.increment = increment;
}

public Integer getLowerLimit() {
return lowerLimit;
}

public void setLowerLimit(Integer lowerLimit) {
this.lowerLimit = lowerLimit;
}

public Integer getUpperLimit() {
return upperLimit;
}

public void setUpperLimit(Integer upperLimit) {
this.upperLimit = upperLimit;
}

public void setSalaryPoint(Integer salaryPoint) {
this.salaryPoint = salaryPoint;
}

public Integer getSalaryPoint() {
return salaryPoint;
}
}

+ 40
- 0
src/main/java/com/ffii/tsms/modules/data/entity/SalaryEffective.java Просмотреть файл

@@ -0,0 +1,40 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.entity.IdEntity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.validation.constraints.NotNull;

import java.time.LocalDate;

@Entity
@Table(name = "salary_effective")
public class SalaryEffective extends IdEntity<Long> {
@NotNull
@Column(name = "date")
private LocalDate date;

public LocalDate getDate() {
return date;
}

public void setDate(LocalDate date) {
this.date = date;
}

@ManyToOne
@JoinColumn(name = "salaryId")
@NotNull
private Salary salary;

public Salary getSalary() {
return salary;
}

public void setSalary(Salary salary) {
this.salary = salary;
}
}

+ 6
- 0
src/main/java/com/ffii/tsms/modules/data/entity/SalaryRepository.java Просмотреть файл

@@ -0,0 +1,6 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.support.AbstractRepository;

public interface SalaryRepository extends AbstractRepository<Salary, Long> {
}

+ 46
- 0
src/main/java/com/ffii/tsms/modules/data/entity/Service.java Просмотреть файл

@@ -0,0 +1,46 @@
package com.ffii.tsms.modules.data.entity;

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

@Entity
@Table(name = "service")
public class Service extends BaseEntity<Long> {
@Column(name = "name", length = 150)
private String name;

@NotNull
@Column(name = "type", length = 30)
private String type;

@NotNull
@Column(name = "code", length = 30)
private String code;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getType() {
return type;
}

public void setType(String type) {
this.type = type;
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}
}

+ 35
- 0
src/main/java/com/ffii/tsms/modules/data/entity/ServiceRate.java Просмотреть файл

@@ -0,0 +1,35 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.entity.IdEntity;
import jakarta.persistence.Entity;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;

@Entity
@Table(name = "service_rate")
public class ServiceRate extends IdEntity<Long> {
@ManyToOne
@JoinColumn(name = "rateId")
private Rate rate;

@ManyToOne
@JoinColumn(name = "serviceId")
private Service service;

public Rate getRate() {
return rate;
}

public void setRate(Rate rate) {
this.rate = rate;
}

public Service getService() {
return service;
}

public void setService(Service service) {
this.service = service;
}
}

+ 6
- 0
src/main/java/com/ffii/tsms/modules/data/entity/ServiceRepository.java Просмотреть файл

@@ -0,0 +1,6 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.support.AbstractRepository;

public interface ServiceRepository extends AbstractRepository<Service, Long> {
}

+ 46
- 0
src/main/java/com/ffii/tsms/modules/data/entity/Skill.java Просмотреть файл

@@ -0,0 +1,46 @@
package com.ffii.tsms.modules.data.entity;

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

@Entity
@Table(name = "skill")
public class Skill extends BaseEntity<Long> {
@Column(name = "description", length = 1500)
private String description;

@NotNull
@Column(name = "name", length = 150)
private String name;

@NotNull
@Column(name = "code", length = 30)
private String code;

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}
}

+ 6
- 0
src/main/java/com/ffii/tsms/modules/data/entity/SkillRepository.java Просмотреть файл

@@ -0,0 +1,6 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.support.AbstractRepository;

public interface SkillRepository extends AbstractRepository<Skill, Long> {
}

+ 257
- 0
src/main/java/com/ffii/tsms/modules/data/entity/Staff.java Просмотреть файл

@@ -0,0 +1,257 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.entity.BaseEntity;
import com.ffii.tsms.modules.user.entity.User;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;

import java.time.LocalDate;

@Entity
@Table(name = "staff")
public class Staff extends BaseEntity<Long> {
@NotNull
@OneToOne
@JoinColumn(name = "userId", unique = true)
private User user;

@Column(name = "joinDate")
private LocalDate joinDate;

@NotNull
@Column(name = "name", length = 150)
private String name;

@NotNull
@Column(name = "staffId", length = 30)
private String staffId;

@ManyToOne
@JoinColumn(name = "currentPosition")
private Position currentPosition;

@ManyToOne
@JoinColumn(name = "joinPosition")
private Position joinPosition;

@NotNull
@ManyToOne
@JoinColumn(name = "companyId")
private Company company;

@ManyToOne
@JoinColumn(name = "gradeId")
private Grade grade;

@ManyToOne
@JoinColumn(name = "teamId")
private Team team;

@ManyToOne
@JoinColumn(name = "skillSetId")
private Skill skill;

@NotNull
@ManyToOne
@JoinColumn(name = "salaryEffId")
private SalaryEffective salaryEffective;

@ManyToOne
@JoinColumn(name = "departmentId")
private Department department;

@Column(name = "phone2", length = 20)
private String phone2;

@Column(name = "phone1", length = 20)
private String phone1;

@Column(name = "email")
private String email;

@Column(name = "emergContactName", length = 150)
private String emergContactName;

@Column(name = "emergContactPhone", length = 20)
private String emergContactPhone;

@Column(name = "employType", length = 30)
private String employType;

@Column(name = "departDate")
private LocalDate departDate;

@Column(name = "departReason", length = 500)
private String departReason;

@Column(name = "remark", length = 1500)
private String remark;

public String getRemark() {
return remark;
}

public void setRemark(String remark) {
this.remark = remark;
}

public String getDepartReason() {
return departReason;
}

public void setDepartReason(String departReason) {
this.departReason = departReason;
}

public LocalDate getDepartDate() {
return departDate;
}

public void setDepartDate(LocalDate departDate) {
this.departDate = departDate;
}

public String getEmployType() {
return employType;
}

public void setEmployType(String employType) {
this.employType = employType;
}

public String getEmergContactPhone() {
return emergContactPhone;
}

public void setEmergContactPhone(String emergContactPhone) {
this.emergContactPhone = emergContactPhone;
}

public String getEmergContactName() {
return emergContactName;
}

public void setEmergContactName(String emergContactName) {
this.emergContactName = emergContactName;
}

public String getPhone2() {
return phone2;
}

public void setPhone2(String phone2) {
this.phone2 = phone2;
}

public String getPhone1() {
return phone1;
}

public void setPhone1(String phone1) {
this.phone1 = phone1;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public SalaryEffective getSalaryEffective() {
return salaryEffective;
}

public void setSalaryEffective(SalaryEffective salaryEffective) {
this.salaryEffective = salaryEffective;
}

public Skill getSkill() {
return skill;
}

public void setSkill(Skill skill) {
this.skill = skill;
}

public Company getCompany() {
return company;
}

public void setCompany(Company company) {
this.company = company;
}

public Grade getGrade() {
return grade;
}

public void setGrade(Grade grade) {
this.grade = grade;
}

public Team getTeam() {
return team;
}

public void setTeam(Team team) {
this.team = team;
}

public Department getDepartment() {
return department;
}

public void setDepartment(Department department) {
this.department = department;
}

public Position getCurrentPosition() {
return currentPosition;
}

public void setCurrentPosition(Position currentPosition) {
this.currentPosition = currentPosition;
}

public Position getJoinPosition() {
return joinPosition;
}

public void setJoinPosition(Position joinPosition) {
this.joinPosition = joinPosition;
}

public LocalDate getJoinDate() {
return joinDate;
}

public void setJoinDate(LocalDate joinDate) {
this.joinDate = joinDate;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getStaffId() {
return staffId;
}

public void setStaffId(String staffId) {
this.staffId = staffId;
}

public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}
}

+ 6
- 0
src/main/java/com/ffii/tsms/modules/data/entity/StaffRepository.java Просмотреть файл

@@ -0,0 +1,6 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.support.AbstractRepository;

public interface StaffRepository extends AbstractRepository<Staff, Long> {
}

+ 103
- 0
src/main/java/com/ffii/tsms/modules/data/entity/Subsidiary.java Просмотреть файл

@@ -0,0 +1,103 @@
package com.ffii.tsms.modules.data.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 java.time.LocalTime;

@Entity
@Table(name = "subsidiary")
public class Subsidiary extends BaseEntity<Long> {
@NotNull
@Column(name = "code", length = 30)
private String code;

@NotNull
@Column(name = "name", length = 150)
private String name;

@Column(name = "brNo", length = 20)
private String brNo;

@Column(name = "contactName", length = 30)
private String contactName;

@Column(name = "phone", length = 20)
private String phone;

@Column(name = "address", length = 500)
private String address;

@Column(name = "district", length = 30)
private String district;

@Column(name = "email")
private String email;

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

public String getDistrict() {
return district;
}

public void setDistrict(String district) {
this.district = district;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getPhone() {
return phone;
}

public void setPhone(String phone) {
this.phone = phone;
}

public String getContactName() {
return contactName;
}

public void setContactName(String contactName) {
this.contactName = contactName;
}

public String getBrNo() {
return brNo;
}

public void setBrNo(String brNo) {
this.brNo = brNo;
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

+ 6
- 0
src/main/java/com/ffii/tsms/modules/data/entity/SubsidiaryRepository.java Просмотреть файл

@@ -0,0 +1,6 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.support.AbstractRepository;

public interface SubsidiaryRepository extends AbstractRepository<Subsidiary, Long> {
}

+ 46
- 0
src/main/java/com/ffii/tsms/modules/data/entity/Team.java Просмотреть файл

@@ -0,0 +1,46 @@
package com.ffii.tsms.modules.data.entity;

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

@Entity
@Table(name = "team")
public class Team extends BaseEntity<Long> {
@Column(name = "description", length = 1500)
private String description;

@NotNull
@Column(name = "name", length = 150)
private String name;

@NotNull
@Column(name = "code", length = 30)
private String code;

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}
}

+ 6
- 0
src/main/java/com/ffii/tsms/modules/data/entity/TeamRepository.java Просмотреть файл

@@ -0,0 +1,6 @@
package com.ffii.tsms.modules.data.entity;

import com.ffii.core.support.AbstractRepository;

public interface TeamRepository extends AbstractRepository<Team, Long> {
}

+ 26
- 0
src/main/resources/db/changelog/changes/20240105_01_wayne/01_company.sql Просмотреть файл

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

-- changeset wayne:company
CREATE TABLE company (
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',
companyCode VARCHAR(30) NOT NULL,
name VARCHAR(150) NOT NULL,
brNo VARCHAR(20) NULL,
contactName VARCHAR(30) NULL,
phone VARCHAR(20) NULL,
otHourTo time NULL,
otHourFrom time NULL,
normalHourTo time NULL,
normalHourFrom time NULL,
currency VARCHAR(20) NULL,
address VARCHAR(500) NULL,
district VARCHAR(30) NULL,
email VARCHAR(255) NULL,
CONSTRAINT pk_company PRIMARY KEY (id)
);

+ 15
- 0
src/main/resources/db/changelog/changes/20240105_01_wayne/02_company_holiday.sql Просмотреть файл

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

-- changeset wayne:company_holiday
CREATE TABLE company_holiday (
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',
date date NOT NULL,
name VARCHAR(150) NOT NULL,
CONSTRAINT pk_company_holiday PRIMARY KEY (id)
);

+ 21
- 0
src/main/resources/db/changelog/changes/20240105_01_wayne/03_customer.sql Просмотреть файл

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

-- changeset wayne:customer
CREATE TABLE customer (
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',
name VARCHAR(150) NOT NULL,
code VARCHAR(30) NOT NULL,
address VARCHAR(500) NULL,
district VARCHAR(30) NULL,
email VARCHAR(255) NULL,
phone VARCHAR(20) NULL,
contactName VARCHAR(30) NULL,
brNo VARCHAR(20) NULL,
CONSTRAINT pk_customer PRIMARY KEY (id)
);

+ 21
- 0
src/main/resources/db/changelog/changes/20240105_01_wayne/04_subsidiary.sql Просмотреть файл

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

-- changeset wayne:subsidiary
CREATE TABLE subsidiary (
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',
code VARCHAR(30) NOT NULL,
name VARCHAR(150) NOT NULL,
brNo VARCHAR(20) NULL,
contactName VARCHAR(30) NULL,
phone VARCHAR(20) NULL,
address VARCHAR(500) NULL,
district VARCHAR(30) NULL,
email VARCHAR(255) NULL,
CONSTRAINT pk_subsidiary PRIMARY KEY (id)
);

+ 13
- 0
src/main/resources/db/changelog/changes/20240105_01_wayne/05_customer_subsidiary.sql Просмотреть файл

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

-- changeset wayne:customer_subsidiary
CREATE TABLE customer_subsidiary (
id INT NOT NULL AUTO_INCREMENT,
customerId INT NULL,
subsidiaryId INT NULL,
CONSTRAINT pk_customer_subsidiary PRIMARY KEY (id)
);

ALTER TABLE customer_subsidiary ADD CONSTRAINT FK_CUSTOMER_SUBSIDIARY_ON_CUSTOMERID FOREIGN KEY (customerId) REFERENCES customer (id);

ALTER TABLE customer_subsidiary ADD CONSTRAINT FK_CUSTOMER_SUBSIDIARY_ON_SUBSIDIARYID FOREIGN KEY (subsidiaryId) REFERENCES subsidiary (id);

+ 16
- 0
src/main/resources/db/changelog/changes/20240105_01_wayne/06_department.sql Просмотреть файл

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

-- changeset wayne:department
CREATE TABLE department (
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',
`description` VARCHAR(1500) NULL,
name VARCHAR(150) NOT NULL,
code VARCHAR(30) NOT NULL,
CONSTRAINT pk_department PRIMARY KEY (id)
);

+ 16
- 0
src/main/resources/db/changelog/changes/20240105_01_wayne/07_grade.sql Просмотреть файл

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

-- changeset wayne:grade
CREATE TABLE grade (
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',
`description` VARCHAR(1500) NULL,
name VARCHAR(150) NOT NULL,
code VARCHAR(30) NOT NULL,
CONSTRAINT pk_grade PRIMARY KEY (id)
);

+ 19
- 0
src/main/resources/db/changelog/changes/20240105_01_wayne/08_internal_rate.sql Просмотреть файл

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

-- changeset wayne:internal_rate
CREATE TABLE internal_rate (
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',
name VARCHAR(150) NOT NULL,
code VARCHAR(30) NOT NULL,
effectFrom date NULL,
effectTo date NULL,
normalRate DOUBLE NULL,
otRate DOUBLE NULL,
CONSTRAINT pk_internal_rate PRIMARY KEY (id)
);

+ 16
- 0
src/main/resources/db/changelog/changes/20240105_01_wayne/09_position.sql Просмотреть файл

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

-- changeset wayne:position
CREATE TABLE position (
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',
`description` VARCHAR(1500) NULL,
name VARCHAR(150) NOT NULL,
code VARCHAR(30) NOT NULL,
CONSTRAINT pk_position PRIMARY KEY (id)
);

+ 19
- 0
src/main/resources/db/changelog/changes/20240105_01_wayne/10_rate.sql Просмотреть файл

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

-- changeset wayne:rate
CREATE TABLE rate (
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',
name VARCHAR(150) NOT NULL,
code VARCHAR(30) NOT NULL,
effectFrom date NULL,
effectTo date NULL,
normalRate DOUBLE NULL,
otRate DOUBLE NULL,
CONSTRAINT pk_rate PRIMARY KEY (id)
);

+ 11
- 0
src/main/resources/db/changelog/changes/20240105_01_wayne/11_salary.sql Просмотреть файл

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

-- changeset wayne:salary
CREATE TABLE salary (
id INT NOT NULL AUTO_INCREMENT,
salaryPoint INT NOT NULL,
lowerLimit INT NOT NULL,
upperLimit INT NOT NULL,
increment INT NOT NULL,
CONSTRAINT pk_salary PRIMARY KEY (id)
);

+ 11
- 0
src/main/resources/db/changelog/changes/20240105_01_wayne/12_salary_effective.sql Просмотреть файл

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

-- changeset wayne:salary_effective
CREATE TABLE salary_effective (
id INT NOT NULL AUTO_INCREMENT,
date date NOT NULL,
salaryId INT NOT NULL,
CONSTRAINT pk_salary_effective PRIMARY KEY (id)
);

ALTER TABLE salary_effective ADD CONSTRAINT FK_SALARY_EFFECTIVE_ON_SALARYID FOREIGN KEY (salaryId) REFERENCES salary (id);

+ 16
- 0
src/main/resources/db/changelog/changes/20240105_01_wayne/13_service.sql Просмотреть файл

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

-- changeset wayne:service
CREATE TABLE service (
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',
name VARCHAR(150) NULL,
type VARCHAR(30) NOT NULL,
code VARCHAR(30) NOT NULL,
CONSTRAINT pk_service PRIMARY KEY (id)
);

+ 13
- 0
src/main/resources/db/changelog/changes/20240105_01_wayne/14_service_rate.sql Просмотреть файл

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

-- changeset wayne:service_rate
CREATE TABLE service_rate (
id INT NOT NULL AUTO_INCREMENT,
rateId INT NULL,
serviceId INT NULL,
CONSTRAINT pk_service_rate PRIMARY KEY (id)
);

ALTER TABLE service_rate ADD CONSTRAINT FK_SERVICE_RATE_ON_RATEID FOREIGN KEY (rateId) REFERENCES rate (id);

ALTER TABLE service_rate ADD CONSTRAINT FK_SERVICE_RATE_ON_SERVICEID FOREIGN KEY (serviceId) REFERENCES service (id);

+ 16
- 0
src/main/resources/db/changelog/changes/20240105_01_wayne/15_skill.sql Просмотреть файл

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

-- changeset wayne:skill
CREATE TABLE skill (
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',
`description` VARCHAR(1500) NULL,
name VARCHAR(150) NOT NULL,
code VARCHAR(30) NOT NULL,
CONSTRAINT pk_skill PRIMARY KEY (id)
);

+ 16
- 0
src/main/resources/db/changelog/changes/20240105_01_wayne/16_team.sql Просмотреть файл

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

-- changeset wayne:team
CREATE TABLE team (
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',
`description` VARCHAR(1500) NULL,
name VARCHAR(150) NOT NULL,
code VARCHAR(30) NOT NULL,
CONSTRAINT pk_team PRIMARY KEY (id)
);

+ 54
- 0
src/main/resources/db/changelog/changes/20240105_01_wayne/17_staff.sql Просмотреть файл

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

-- changeset wayne:staff
CREATE TABLE staff (
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',
userId INT NOT NULL,
joinDate date NULL,
name VARCHAR(150) NOT NULL,
staffId VARCHAR(30) NOT NULL,
currentPosition INT NULL,
joinPosition INT NULL,
companyId INT NOT NULL,
gradeId INT NULL,
teamId INT NULL,
skillSetId INT NULL,
salaryEffId INT NOT NULL,
departmentId INT NULL,
phone2 VARCHAR(20) NULL,
phone1 VARCHAR(20) NULL,
email VARCHAR(255) NULL,
emergContactName VARCHAR(150) NULL,
emergContactPhone VARCHAR(20) NULL,
employType VARCHAR(30) NULL,
departDate date NULL,
departReason VARCHAR(500) NULL,
remark VARCHAR(1500) NULL,
CONSTRAINT pk_staff PRIMARY KEY (id)
);

ALTER TABLE staff ADD CONSTRAINT uc_staff_userid UNIQUE (userId);

ALTER TABLE staff ADD CONSTRAINT FK_STAFF_ON_COMPANYID FOREIGN KEY (companyId) REFERENCES company (id);

ALTER TABLE staff ADD CONSTRAINT FK_STAFF_ON_CURRENTPOSITION FOREIGN KEY (currentPosition) REFERENCES position (id);

ALTER TABLE staff ADD CONSTRAINT FK_STAFF_ON_DEPARTMENTID FOREIGN KEY (departmentId) REFERENCES department (id);

ALTER TABLE staff ADD CONSTRAINT FK_STAFF_ON_GRADEID FOREIGN KEY (gradeId) REFERENCES grade (id);

ALTER TABLE staff ADD CONSTRAINT FK_STAFF_ON_JOINPOSITION FOREIGN KEY (joinPosition) REFERENCES position (id);

ALTER TABLE staff ADD CONSTRAINT FK_STAFF_ON_SALARYEFFID FOREIGN KEY (salaryEffId) REFERENCES salary_effective (id);

ALTER TABLE staff ADD CONSTRAINT FK_STAFF_ON_SKILLSETID FOREIGN KEY (skillSetId) REFERENCES skill (id);

ALTER TABLE staff ADD CONSTRAINT FK_STAFF_ON_TEAMID FOREIGN KEY (teamId) REFERENCES team (id);

ALTER TABLE staff ADD CONSTRAINT FK_STAFF_ON_USERID FOREIGN KEY (userId) REFERENCES user (id);

Загрузка…
Отмена
Сохранить