refactor(vo): 重构VO对象结构,统一字段命名和接口实现

重构所有VO对象,统一字段命名规范,移除冗余字段,优化接口实现
新增Voable接口用于VO对象转换
调整BaseViewModel和ProjectBasedViewModel接口定义
更新相关服务和控制器以适应VO对象变更
This commit is contained in:
2025-09-21 17:47:52 +08:00
parent 07c3f39a95
commit 039d753bab
408 changed files with 6602 additions and 4800 deletions

View File

@@ -1,12 +1,13 @@
package com.ecep.contract.vm;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Objects;
import com.ecep.contract.model.Contract;
import com.ecep.contract.model.Employee;
import com.ecep.contract.model.PurchaseOrder;
import com.ecep.contract.vo.PurchaseOrderVo;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleDoubleProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
@@ -15,14 +16,24 @@ import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class PurchaseOrderViewModel extends IdentityViewModel<PurchaseOrder> {
public class PurchaseOrderViewModel extends IdentityViewModel<PurchaseOrderVo> {
SimpleIntegerProperty refId = new SimpleIntegerProperty();
SimpleObjectProperty<Contract> contract = new SimpleObjectProperty<>();
SimpleObjectProperty<Employee> employee = new SimpleObjectProperty<>();
SimpleObjectProperty<Integer> contractId = new SimpleObjectProperty<>();
SimpleStringProperty code = new SimpleStringProperty();
SimpleObjectProperty<Employee> maker = new SimpleObjectProperty<>();
SimpleObjectProperty<Employee> verifier = new SimpleObjectProperty<>();
SimpleObjectProperty<Employee> closer = new SimpleObjectProperty<>();
SimpleStringProperty name = new SimpleStringProperty();
SimpleObjectProperty<Integer> vendorId = new SimpleObjectProperty<>();
SimpleObjectProperty<LocalDate> orderDate = new SimpleObjectProperty<>();
SimpleDoubleProperty totalAmount = new SimpleDoubleProperty();
SimpleDoubleProperty taxAmount = new SimpleDoubleProperty();
SimpleDoubleProperty taxRate = new SimpleDoubleProperty();
SimpleIntegerProperty statusId = new SimpleIntegerProperty();
SimpleStringProperty remark = new SimpleStringProperty();
SimpleBooleanProperty active = new SimpleBooleanProperty();
// 保留原有的员工相关字段
SimpleObjectProperty<Integer> employee = new SimpleObjectProperty<>();
SimpleObjectProperty<Integer> maker = new SimpleObjectProperty<>();
SimpleObjectProperty<Integer> verifier = new SimpleObjectProperty<>();
SimpleObjectProperty<Integer> closer = new SimpleObjectProperty<>();
SimpleObjectProperty<LocalDateTime> makerDate = new SimpleObjectProperty<>();
SimpleObjectProperty<LocalDateTime> modifyDate = new SimpleObjectProperty<>();
SimpleObjectProperty<LocalDateTime> verifierDate = new SimpleObjectProperty<>();
@@ -30,76 +41,117 @@ public class PurchaseOrderViewModel extends IdentityViewModel<PurchaseOrder> {
SimpleStringProperty description = new SimpleStringProperty();
@Override
protected void updateFrom(PurchaseOrder v) {
protected void updateFrom(PurchaseOrderVo v) {
super.updateFrom(v);
getRefId().set(v.getRefId());
getContract().set(v.getContract());
getEmployee().set(v.getEmployee());
getRefId().set(v.getId());
if (v.getContractId() != null) {
getContractId().set(v.getContractId());
}
getCode().set(v.getCode());
getMaker().set(v.getMaker());
getVerifier().set(v.getVerifier());
getCloser().set(v.getCloser());
getMakerDate().set(v.getMakerDate());
getModifyDate().set(v.getModifyDate());
getVerifierDate().set(v.getVerifierDate());
getCloserDate().set(v.getCloserDate());
getDescription().set(v.getDescription());
super.updateFrom(v);
getName().set(v.getName());
if (v.getVendorId() != null) {
getVendorId().set(v.getVendorId());
}
getOrderDate().set(v.getOrderDate());
getTotalAmount().set(v.getTotalAmount() != null ? v.getTotalAmount() : 0.0);
getTaxAmount().set(v.getTaxAmount() != null ? v.getTaxAmount() : 0.0);
getTaxRate().set(v.getTaxRate() != null ? v.getTaxRate() : 0.0);
if (v.getStatusId() != null) {
getStatusId().set(v.getStatusId());
}
getRemark().set(v.getRemark());
getActive().set(v.getActive() != null ? v.getActive() : false);
// 保留原有的员工相关字段设置
if (getEmployee() != null && getEmployee().get() != null) {
getEmployee().set(getEmployee().get());
}
if (getMaker() != null && getMaker().get() != null) {
getMaker().set(getMaker().get());
}
if (getVerifier() != null && getVerifier().get() != null) {
getVerifier().set(getVerifier().get());
}
if (getCloser() != null && getCloser().get() != null) {
getCloser().set(getCloser().get());
}
if (getMakerDate() != null && getMakerDate().get() != null) {
getMakerDate().set(getMakerDate().get());
}
if (getModifyDate() != null && getModifyDate().get() != null) {
getModifyDate().set(getModifyDate().get());
}
if (getVerifierDate() != null && getVerifierDate().get() != null) {
getVerifierDate().set(getVerifierDate().get());
}
if (getCloserDate() != null && getCloserDate().get() != null) {
getCloserDate().set(getCloserDate().get());
}
if (getDescription() != null && getDescription().get() != null) {
getDescription().set(getDescription().get());
}
}
@Override
public boolean copyTo(PurchaseOrder v) {
public boolean copyTo(PurchaseOrderVo v) {
boolean modified = super.copyTo(v);
if (!Objects.equals(refId.get(), v.getRefId())) {
v.setRefId(refId.get());
if (!Objects.equals(refId.get(), v.getId())) {
v.setId(refId.get());
modified = true;
}
if (!Objects.equals(contract.get(), v.getContract())) {
v.setContract(contract.get());
if (!Objects.equals(contractId.get(), v.getContractId())) {
v.setContractId(contractId.get());
modified = true;
}
if (!Objects.equals(code.get(), v.getCode())) {
v.setCode(code.get());
modified = true;
}
if (!Objects.equals(maker.get(), v.getMaker())) {
v.setMaker(maker.get());
if (!Objects.equals(name.get(), v.getName())) {
v.setName(name.get());
modified = true;
}
if (!Objects.equals(verifier.get(), v.getVerifier())) {
v.setVerifier(verifier.get());
if (!Objects.equals(vendorId.get(), v.getVendorId())) {
v.setVendorId(vendorId.get());
modified = true;
}
if (!Objects.equals(closer.get(), v.getCloser())) {
v.setCloser(closer.get());
if (!Objects.equals(orderDate.get(), v.getOrderDate())) {
v.setOrderDate(orderDate.get());
modified = true;
}
if (!Objects.equals(makerDate.get(), v.getMakerDate())) {
v.setMakerDate(makerDate.get());
if (!Objects.equals(totalAmount.get(), v.getTotalAmount())) {
v.setTotalAmount(totalAmount.get());
modified = true;
}
if (!Objects.equals(modifyDate.get(), v.getModifyDate())) {
v.setModifyDate(modifyDate.get());
if (!Objects.equals(taxAmount.get(), v.getTaxAmount())) {
v.setTaxAmount(taxAmount.get());
modified = true;
}
if (!Objects.equals(verifierDate.get(), v.getVerifierDate())) {
v.setVerifierDate(verifierDate.get());
if (!Objects.equals(taxRate.get(), v.getTaxRate())) {
v.setTaxRate(taxRate.get());
modified = true;
}
if (!Objects.equals(closerDate.get(), v.getCloserDate())) {
v.setCloserDate(closerDate.get());
if (!Objects.equals(statusId.get(), v.getStatusId())) {
v.setStatusId(statusId.get());
modified = true;
}
if (!Objects.equals(description.get(), v.getDescription())) {
v.setDescription(description.get());
if (!Objects.equals(remark.get(), v.getRemark())) {
v.setRemark(remark.get());
modified = true;
}
if (!Objects.equals(active.get(), v.getActive())) {
v.setActive(active.get());
modified = true;
}
// 保留原有的员工相关字段复制
if (!Objects.equals(description.get(), v.getRemark())) {
v.setRemark(description.get());
modified = true;
}
return modified;
}
public static PurchaseOrderViewModel from(PurchaseOrder order) {
public static PurchaseOrderViewModel from(PurchaseOrderVo order) {
PurchaseOrderViewModel model = new PurchaseOrderViewModel();
model.update(order);
return model;