feat: 添加VendorGroupRequireFileTypeVo及相关服务功能

refactor: 重构多个服务类和方法,优化代码结构
fix: 修复PermissionVo中code字段更名为key的问题
docs: 更新create_vo.md文档,添加新创建的VO记录
perf: 优化WebSocketClientService中的session关闭逻辑
style: 清理无用导入和注释,统一代码格式
This commit is contained in:
2025-09-21 23:08:34 +08:00
parent 039d753bab
commit 35b33d401b
94 changed files with 1260 additions and 810 deletions

View File

@@ -5,6 +5,7 @@ import java.util.Objects;
import com.ecep.contract.vo.ContractBidVendorVo;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -13,8 +14,11 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = false)
public class ContractBidVendorViewModel extends IdentityViewModel<ContractBidVendorVo> {
private SimpleIntegerProperty contractId = new SimpleIntegerProperty();
private SimpleIntegerProperty companyId = new SimpleIntegerProperty();
private SimpleIntegerProperty quotationSheetFileId = new SimpleIntegerProperty();
private SimpleObjectProperty<Integer> companyId = new SimpleObjectProperty<>();
/**
* 报价单文件ID, ContractFile
*/
private SimpleObjectProperty<Integer> quotationSheetFileId = new SimpleObjectProperty<>();
private SimpleStringProperty quotationSheetFileName = new SimpleStringProperty();
public static ContractBidVendorViewModel from(ContractBidVendorVo v) {

View File

@@ -6,6 +6,7 @@ import java.util.Objects;
import com.ecep.contract.model.Contract;
import com.ecep.contract.model.ContractPayPlan;
import com.ecep.contract.vo.ContractPayPlanVo;
import javafx.beans.property.SimpleDoubleProperty;
import javafx.beans.property.SimpleFloatProperty;
@@ -16,11 +17,11 @@ import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class ContractPayPlanViewModel extends IdentityViewModel<ContractPayPlan> {
public class ContractPayPlanViewModel extends IdentityViewModel<ContractPayPlanVo> {
/**
* 关联的合同对象
* 关联的合同对象, Contract
*/
SimpleObjectProperty<Contract> contract = new SimpleObjectProperty<>();
SimpleObjectProperty<Integer> contract = new SimpleObjectProperty<>();
/**
* 关联的用友系统中的数据ID
*/
@@ -34,9 +35,9 @@ public class ContractPayPlanViewModel extends IdentityViewModel<ContractPayPlan>
SimpleObjectProperty<LocalDateTime> updateDate = new SimpleObjectProperty<>();
@Override
protected void updateFrom(ContractPayPlan v) {
protected void updateFrom(ContractPayPlanVo v) {
super.updateFrom(v);
getContract().set(v.getContract());
getContract().set(v.getContractId());
getRefId().set(v.getRefId());
getPayDate().set(v.getPayDate());
getPayRatio().set(v.getPayRatio());
@@ -46,10 +47,10 @@ public class ContractPayPlanViewModel extends IdentityViewModel<ContractPayPlan>
}
@Override
public boolean copyTo(ContractPayPlan v) {
public boolean copyTo(ContractPayPlanVo v) {
boolean modified = super.copyTo(v);
if (!Objects.equals(contract.get(), v.getContract())) {
v.setContract(contract.get());
if (!Objects.equals(contract.get(), v.getContractId())) {
v.setContractId(contract.get());
modified = true;
}
if (!Objects.equals(refId.get(), v.getRefId())) {

View File

@@ -6,6 +6,7 @@ import com.ecep.contract.SpringApp;
import com.ecep.contract.controller.CurrentEmployeeInitialedEvent;
import com.ecep.contract.model.EmployeeRole;
import com.ecep.contract.service.EmployeeService;
import com.ecep.contract.vo.EmployeeRoleVo;
import com.ecep.contract.vo.EmployeeVo;
import javafx.application.Platform;
import javafx.beans.property.SimpleListProperty;
@@ -40,7 +41,7 @@ public class CurrentEmployee extends EmployeeViewModel {
/**
* 角色
*/
private SimpleListProperty<EmployeeRole> roles = new SimpleListProperty<>(FXCollections.observableArrayList());
private SimpleListProperty<EmployeeRoleVo> roles = new SimpleListProperty<>(FXCollections.observableArrayList());
private DateTimeFormatter dateFormatter = DateTimeFormatter
.ofPattern(MyDateTimeUtils.DEFAULT_DATE_FORMAT_PATTERN);
@@ -61,7 +62,7 @@ public class CurrentEmployee extends EmployeeViewModel {
* 是否系统管理员
*/
public boolean isSystemAdministrator() {
return roles.stream().anyMatch(EmployeeRole::isSystemAdministrator);
return roles.stream().anyMatch(EmployeeRoleVo::isSystemAdministrator);
}
/**
@@ -74,7 +75,7 @@ public class CurrentEmployee extends EmployeeViewModel {
/**
* 角色属性
*/
public SimpleListProperty<EmployeeRole> rolesProperty() {
public SimpleListProperty<EmployeeRoleVo> rolesProperty() {
return roles;
}
@@ -141,7 +142,7 @@ public class CurrentEmployee extends EmployeeViewModel {
// issue #1 sss 2020-07-05
EmployeeService employeeService = SpringApp.getBean(EmployeeService.class);
EmployeeVo employee = employeeService.findById(getId().get());
List<EmployeeRole> roles = employeeService.getRolesByEmployeeId(getId().get());
List<EmployeeRoleVo> roles = employeeService.getRolesByEmployeeId(getId().get());
Platform.runLater(() -> {
update(employee);
rolesProperty().setAll(roles);

View File

@@ -1,6 +1,6 @@
package com.ecep.contract.vm;
import com.ecep.contract.model.CustomerCatalog;
import com.ecep.contract.vo.CustomerCatalogVo;
import javafx.beans.property.SimpleStringProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -9,13 +9,24 @@ import java.util.Objects;
@Data
@EqualsAndHashCode(callSuper = false)
public class CustomerCatalogViewModel extends IdentityViewModel<CustomerCatalog> {
public class CustomerCatalogViewModel extends IdentityViewModel<CustomerCatalogVo> {
private SimpleStringProperty code = new SimpleStringProperty();
private SimpleStringProperty name = new SimpleStringProperty();
private SimpleStringProperty description = new SimpleStringProperty();
/**
* 创建CustomerCatalogViewModel实例
* @param v CustomerCatalogVo对象
* @return CustomerCatalogViewModel实例
*/
public static CustomerCatalogViewModel from(CustomerCatalogVo v) {
CustomerCatalogViewModel vm = new CustomerCatalogViewModel();
vm.update(v);
return vm;
}
@Override
protected void updateFrom(CustomerCatalog v) {
protected void updateFrom(CustomerCatalogVo v) {
super.updateFrom(v);
code.set(v.getCode());
name.set(v.getName());
@@ -23,7 +34,7 @@ public class CustomerCatalogViewModel extends IdentityViewModel<CustomerCatalog>
}
@Override
public boolean copyTo(CustomerCatalog v) {
public boolean copyTo(CustomerCatalogVo v) {
boolean ret = super.copyTo(v);
if (!Objects.equals(code.get(), v.getCode())) {
v.setCode(code.get());

View File

@@ -3,7 +3,6 @@ package com.ecep.contract.vm;
import java.time.LocalDate;
import java.util.Objects;
import com.ecep.contract.model.Company;
import com.ecep.contract.vo.InvoiceVo;
import javafx.beans.property.SimpleIntegerProperty;

View File

@@ -2,8 +2,7 @@ package com.ecep.contract.vm;
import java.util.Objects;
import com.ecep.contract.model.Function;
import com.ecep.contract.model.Permission;
import com.ecep.contract.vo.PermissionVo;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
@@ -12,34 +11,34 @@ import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class PermissionViewModel extends IdentityViewModel<Permission> {
public class PermissionViewModel extends IdentityViewModel<PermissionVo> {
private SimpleStringProperty name = new SimpleStringProperty();
private SimpleObjectProperty<Function> function = new SimpleObjectProperty<>();
private SimpleStringProperty key = new SimpleStringProperty();
private SimpleObjectProperty<Integer> function = new SimpleObjectProperty<>();
public static PermissionViewModel from(Permission v) {
public static PermissionViewModel from(PermissionVo v) {
PermissionViewModel model = new PermissionViewModel();
model.update(v);
return model;
}
@Override
protected void updateFrom(Permission v) {
protected void updateFrom(PermissionVo v) {
super.updateFrom(v);
getName().set(v.getName());
getFunction().set(v.getFunction());
getFunction().set(v.getFunctionId());
getKey().set(v.getKey());
}
@Override
public boolean copyTo(Permission v) {
public boolean copyTo(PermissionVo v) {
boolean modified = super.copyTo(v);
if (!Objects.equals(name.get(), v.getName())) {
v.setName(name.get());
modified = true;
}
if (!Objects.equals(function.get(), v.getFunction())) {
v.setFunction(function.get());
if (!Objects.equals(function.get(), v.getFunctionId())) {
v.setFunctionId(function.get());
modified = true;
}
if (!Objects.equals(key.get(), v.getKey())) {

View File

@@ -3,41 +3,57 @@ package com.ecep.contract.vm;
import java.util.Objects;
import com.ecep.contract.ContractFileType;
import com.ecep.contract.model.VendorGroup;
import com.ecep.contract.model.VendorGroupRequireFileType;
import com.ecep.contract.vo.VendorGroupRequireFileTypeVo;
import javafx.beans.property.SimpleObjectProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
* 供应商组要求的文件类型视图模型
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class VendorGroupRequireFileTypeViewModel extends IdentityViewModel<VendorGroupRequireFileType> {
private SimpleObjectProperty<VendorGroup> group = new SimpleObjectProperty<>();
public class VendorGroupRequireFileTypeViewModel extends IdentityViewModel<VendorGroupRequireFileTypeVo> {
private SimpleObjectProperty<Integer> groupId = new SimpleObjectProperty<>();
private SimpleObjectProperty<ContractFileType> fileType = new SimpleObjectProperty<>();
private SimpleObjectProperty<ContractFileType.Frequency> frequency = new SimpleObjectProperty<>();
@Override
protected void updateFrom(VendorGroupRequireFileType v) {
super.updateFrom(v);
getGroup().set(v.getGroup());
getFileType().set(v.getFileType());
/**
* 创建VendorGroupRequireFileTypeViewModel实例
*
* @param v VendorGroupRequireFileTypeVo对象
* @return VendorGroupRequireFileTypeViewModel实例
*/
public static VendorGroupRequireFileTypeViewModel from(VendorGroupRequireFileTypeVo v) {
VendorGroupRequireFileTypeViewModel vm = new VendorGroupRequireFileTypeViewModel();
vm.update(v);
return vm;
}
@Override
public boolean copyTo(VendorGroupRequireFileType v) {
protected void updateFrom(VendorGroupRequireFileTypeVo v) {
super.updateFrom(v);
getGroupId().set(v.getGroupId());
getFileType().set(v.getFileType());
getFrequency().set(v.getFrequency());
}
@Override
public boolean copyTo(VendorGroupRequireFileTypeVo v) {
boolean modified = super.copyTo(v);
if (!Objects.equals(getGroup().get(), v.getGroup())) {
v.setGroup(getGroup().get());
if (!Objects.equals(getGroupId().get(), v.getGroupId())) {
v.setGroupId(getGroupId().get());
modified = true;
}
if (!Objects.equals(getFileType().get(), v.getFileType())) {
v.setFileType(getFileType().get());
modified = true;
}
if (!Objects.equals(getFrequency().get(), v.getFrequency())) {
v.setFrequency(getFrequency().get());
modified = true;
}
return modified;
}
}