重构采购订单模块,包括以下改进: 1. 移除PurchaseOrderItemVo中冗余字段 2. 在ContractCtx中添加调试日志 3. 修改InventoryTabSkinContracts和PurchaseOrderTabSkinBillVoucher中的equals比较逻辑 4. 调整PurchaseOrderVo的税率字段类型并添加锁定标志 5. 修正FXML文件中的控制器路径 6. 优化InventoryStringConverter的toString方法格式 7. 在PurchaseBillVoucherItemService中添加凭证查询条件 8. 改进ContractRepairTasker的进度更新逻辑 9. 修复AbstContractRepairTasker中的子合同同步问题 10. 优化PurchaseOrderTabSkinItems的表格列显示 11. 添加InventoryCatalogStringConverter及相关缓存支持 12. 完善PurchaseBillVoucherService的查询逻辑 13. 增强ContractService的库存查询功能 14. 改进PurchaseOrderItemService的合同项查询逻辑 15. 为InventoryService添加缓存支持 16. 优化ContractTabSkinPurchaseOrders的员工列显示 17. 改进ContractTabSkinItemsV2的数量显示逻辑 18. 重构PurchaseOrderViewModel的数据绑定逻辑
148 lines
5.3 KiB
Java
148 lines
5.3 KiB
Java
package com.ecep.contract.vm;
|
|
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDateTime;
|
|
import java.util.Objects;
|
|
|
|
import com.ecep.contract.vo.PurchaseOrderVo;
|
|
|
|
import javafx.beans.property.*;
|
|
import lombok.Data;
|
|
import lombok.EqualsAndHashCode;
|
|
|
|
@Data
|
|
@EqualsAndHashCode(callSuper = false)
|
|
public class PurchaseOrderViewModel extends IdentityViewModel<PurchaseOrderVo> {
|
|
SimpleIntegerProperty refId = new SimpleIntegerProperty();
|
|
SimpleObjectProperty<Integer> contractId = new SimpleObjectProperty<>();
|
|
SimpleStringProperty code = new SimpleStringProperty();
|
|
SimpleStringProperty vendorCode = new SimpleStringProperty();
|
|
SimpleDoubleProperty totalAmount = new SimpleDoubleProperty();
|
|
SimpleDoubleProperty taxAmount = new SimpleDoubleProperty();
|
|
SimpleFloatProperty taxRate = new SimpleFloatProperty();
|
|
SimpleBooleanProperty taxRateLocked = 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<>();
|
|
SimpleObjectProperty<LocalDateTime> closerDate = new SimpleObjectProperty<>();
|
|
SimpleStringProperty description = new SimpleStringProperty();
|
|
|
|
@Override
|
|
protected void updateFrom(PurchaseOrderVo v) {
|
|
super.updateFrom(v);
|
|
getRefId().set(v.getId());
|
|
if (v.getContractId() != null) {
|
|
getContractId().set(v.getContractId());
|
|
}
|
|
getCode().set(v.getCode());
|
|
getVendorCode().set(v.getVendorCode());
|
|
//
|
|
getTotalAmount().set(v.getTotalAmount() != null ? v.getTotalAmount() : 0.0);
|
|
getTaxAmount().set(v.getTaxAmount() != null ? v.getTaxAmount() : 0.0);
|
|
getTaxRate().set(v.getTaxRate());
|
|
taxRateLocked.set(v.isTaxRateLocked());
|
|
|
|
// 保留原有的员工相关字段设置
|
|
employee.set(v.getEmployeeId());
|
|
maker.set(v.getEmployeeId());
|
|
verifier.set(v.getVerifierId());
|
|
closer.set(v.getCloserId());
|
|
makerDate.set(v.getMakerDate());
|
|
modifyDate.set(v.getModifyDate());
|
|
verifierDate.set(v.getVerifierDate());
|
|
closerDate.set(v.getCloserDate());
|
|
description.set(v.getDescription());
|
|
}
|
|
|
|
@Override
|
|
public boolean copyTo(PurchaseOrderVo v) {
|
|
boolean modified = super.copyTo(v);
|
|
if (!Objects.equals(refId.get(), v.getId())) {
|
|
v.setId(refId.get());
|
|
modified = true;
|
|
}
|
|
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(vendorCode.get(), v.getVendorCode())) {
|
|
v.setVendorCode(vendorCode.get());
|
|
modified = true;
|
|
}
|
|
if (!Objects.equals(totalAmount.get(), v.getTotalAmount())) {
|
|
v.setTotalAmount(totalAmount.get());
|
|
modified = true;
|
|
}
|
|
if (!Objects.equals(taxAmount.get(), v.getTaxAmount())) {
|
|
v.setTaxAmount(taxAmount.get());
|
|
modified = true;
|
|
}
|
|
if (!Objects.equals(taxRate.get(), v.getTaxRate())) {
|
|
v.setTaxRate(taxRate.get());
|
|
modified = true;
|
|
}
|
|
if (!Objects.equals(taxRateLocked.get(), v.isTaxRateLocked())) {
|
|
v.setTaxRateLocked(taxRateLocked.get());
|
|
modified = true;
|
|
}
|
|
|
|
if (!Objects.equals(getEmployee().get(), v.getEmployeeId())) {
|
|
v.setEmployeeId(getEmployee().get());
|
|
modified = true;
|
|
}
|
|
|
|
if (!Objects.equals(getMaker().get(), v.getMakerId())) {
|
|
v.setMakerId(getMaker().get());
|
|
modified = true;
|
|
}
|
|
|
|
if (!Objects.equals(getVerifier().get(), v.getVerifierId())) {
|
|
v.setVerifierId(getVerifier().get());
|
|
modified = true;
|
|
}
|
|
|
|
if (!Objects.equals(getCloser().get(), v.getCloserId())) {
|
|
v.setCloserId(getCloser().get());
|
|
modified = true;
|
|
}
|
|
|
|
|
|
if (!Objects.equals(getMakerDate().get(), v.getMakerDate())) {
|
|
v.setMakerDate(getMakerDate().get());
|
|
modified = true;
|
|
}
|
|
|
|
|
|
if (!Objects.equals(getModifyDate().get(), v.getModifyDate())) {
|
|
v.setModifyDate(getModifyDate().get());
|
|
modified = true;
|
|
}
|
|
|
|
if (!Objects.equals(getCloserDate().get(), v.getCloserDate())) {
|
|
v.setCloserDate(getCloserDate().get());
|
|
modified = true;
|
|
}
|
|
|
|
if (!Objects.equals(description.get(), v.getDescription())) {
|
|
v.setDescription(description.get());
|
|
modified = true;
|
|
}
|
|
return modified;
|
|
}
|
|
|
|
public static PurchaseOrderViewModel from(PurchaseOrderVo order) {
|
|
PurchaseOrderViewModel model = new PurchaseOrderViewModel();
|
|
model.update(order);
|
|
return model;
|
|
}
|
|
}
|