feat: 实现文件类型枚举的本地化支持

新增文件类型枚举的本地化功能,包括供应商、项目、公司、合同和客户文件类型。添加了相关的SQL表结构、Repository、Service、ViewModel和StringConverter实现。同时更新了文档说明如何创建和使用枚举类型的本地化功能。

修改了客户文件类型的相关代码,统一使用CustomerFileTypeLocalVo替代原有的CompanyCustomerFileTypeLocal,优化了代码结构和一致性。添加了文件类型枚举的缓存支持,提高了性能。

更新了create_enum.md文档,详细说明了文件类型枚举本地化的实现方式和相关组件清单。
This commit is contained in:
2025-09-23 22:34:59 +08:00
parent 4b8c1d4038
commit 57fbae90c5
27 changed files with 633 additions and 42 deletions

View File

@@ -0,0 +1,24 @@
package com.ecep.contract.converter;
import com.ecep.contract.Desktop;
import com.ecep.contract.service.CompanyFileTypeService;
import com.ecep.contract.vo.CompanyFileTypeLocalVo;
import javafx.util.StringConverter;
public class CompanyFileTypeStringConverter extends StringConverter<CompanyFileTypeLocalVo> {
private final CompanyFileTypeService service;
public CompanyFileTypeStringConverter(CompanyFileTypeService service) {
this.service = service;
}
@Override
public String toString(CompanyFileTypeLocalVo object) {
return object.getValue();
}
@Override
public CompanyFileTypeLocalVo fromString(String string) {
return service.findByLocaleAndValue(Desktop.instance.getActiveEmployee().localeProperty().get(), string);
}
}

View File

@@ -0,0 +1,24 @@
package com.ecep.contract.converter;
import com.ecep.contract.Desktop;
import com.ecep.contract.service.ContractFileTypeService;
import com.ecep.contract.vo.ContractFileTypeLocalVo;
import javafx.util.StringConverter;
public class ContractFileTypeStringConverter extends StringConverter<ContractFileTypeLocalVo> {
private final ContractFileTypeService service;
public ContractFileTypeStringConverter(ContractFileTypeService service) {
this.service = service;
}
@Override
public String toString(ContractFileTypeLocalVo object) {
return object.getValue();
}
@Override
public ContractFileTypeLocalVo fromString(String string) {
return service.findByLocaleAndValue(Desktop.instance.getActiveEmployee().localeProperty().get(), string);
}
}

View File

@@ -0,0 +1,28 @@
package com.ecep.contract.converter;
import com.ecep.contract.Desktop;
import com.ecep.contract.service.CompanyCustomerFileTypeService;
import com.ecep.contract.vo.CustomerFileTypeLocalVo;
import javafx.util.StringConverter;
/**
* 客户文件类型字符串转换器
*/
public class CustomerFileTypeStringConverter extends StringConverter<CustomerFileTypeLocalVo> {
private final CompanyCustomerFileTypeService service;
public CustomerFileTypeStringConverter(CompanyCustomerFileTypeService service) {
this.service = service;
}
@Override
public String toString(CustomerFileTypeLocalVo object) {
return object.getValue();
}
@Override
public CustomerFileTypeLocalVo fromString(String string) {
return service.findByLocaleAndValue(Desktop.instance.getActiveEmployee().localeProperty().get(), string);
}
}

View File

@@ -0,0 +1,25 @@
package com.ecep.contract.converter;
import com.ecep.contract.Desktop;
import com.ecep.contract.service.ProjectFileTypeService;
import com.ecep.contract.vo.ProjectFileTypeLocalVo;
import javafx.util.StringConverter;
public class ProjectFileTypeStringConverter extends StringConverter<ProjectFileTypeLocalVo> {
private final ProjectFileTypeService service;
public ProjectFileTypeStringConverter(ProjectFileTypeService service) {
this.service = service;
}
@Override
public String toString(ProjectFileTypeLocalVo object) {
return object.getValue();
}
@Override
public ProjectFileTypeLocalVo fromString(String string) {
return service.findByLocaleAndValue(Desktop.instance.getActiveEmployee().localeProperty().get(), string);
}
}

View File

@@ -0,0 +1,24 @@
package com.ecep.contract.converter;
import com.ecep.contract.Desktop;
import com.ecep.contract.service.VendorFileTypeService;
import com.ecep.contract.vo.VendorFileTypeLocalVo;
import javafx.util.StringConverter;
public class VendorFileTypeStringConverter extends StringConverter<VendorFileTypeLocalVo> {
private final VendorFileTypeService service;
public VendorFileTypeStringConverter(VendorFileTypeService service) {
this.service = service;
}
@Override
public String toString(VendorFileTypeLocalVo object) {
return object.getValue();
}
@Override
public VendorFileTypeLocalVo fromString(String string) {
return service.findByLocaleAndValue(Desktop.instance.getActiveEmployee().localeProperty().get(), string);
}
}