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,15 +1,10 @@
package com.ecep.contract.vm;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Objects;
import com.ecep.contract.model.CloudYu;
import com.ecep.contract.model.Company;
import com.ecep.contract.util.MyDateTimePropertyUtils;
import com.ecep.contract.vo.CloudYuVo;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleObjectProperty;
@@ -19,15 +14,15 @@ import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class CloudYuInfoViewModel extends IdentityViewModel<CloudYu> {
/**
public class CloudYuInfoViewModel extends IdentityViewModel<CloudYuVo> {
/**
* 云端Id
*/
private SimpleStringProperty cloudId = new SimpleStringProperty();
/**
* 公司
* 公司ID
*/
private SimpleObjectProperty<Company> company = new SimpleObjectProperty<>();
private SimpleObjectProperty<Integer> company = new SimpleObjectProperty<>();
/**
* 最后更新日期
*/
@@ -47,35 +42,28 @@ public class CloudYuInfoViewModel extends IdentityViewModel<CloudYu> {
private SimpleObjectProperty<LocalDateTime> cloudLatest = new SimpleObjectProperty<>();
@Override
protected void updateFrom(CloudYu info) {
protected void updateFrom(CloudYuVo info) {
super.updateFrom(info);
update_((CloudYu) info);
update_((CloudYuVo) info);
}
private void update_(CloudYu info) {
private void update_(CloudYuVo info) {
vendorCode.set(info.getExceptionMessage());
vendorDevelopDate.set(info.getVendorUpdateDate());
customerDevelopDate.set(info.getCustomerUpdateDate());
if (info.getCloudLatest() != null) {
ZoneId zone = ZoneId.systemDefault();
ZonedDateTime zonedDateTime = info.getCloudLatest().atZone(zone);
LocalDateTime localDateTime = zonedDateTime.toLocalDateTime();
cloudLatest.set(localDateTime);
} else {
cloudLatest.set(null);
}
cloudLatest.set(info.getCloudLatest());
}
@Override
public boolean copyTo(CloudYu info) {
public boolean copyTo(CloudYuVo info) {
boolean modified = super.copyTo(info);
if (copyTo_((CloudYu) info)) {
if (copyTo_((CloudYuVo) info)) {
modified = true;
}
return modified;
}
private boolean copyTo_(CloudYu info) {
private boolean copyTo_(CloudYuVo info) {
boolean modified = false;
if (!Objects.equals(info.getExceptionMessage(), vendorCode.get())) {
info.setExceptionMessage(vendorCode.get());
@@ -90,20 +78,18 @@ public class CloudYuInfoViewModel extends IdentityViewModel<CloudYu> {
modified = true;
}
Instant latest = MyDateTimePropertyUtils.localDateTimeToInstant(cloudLatest);
if (!Objects.equals(info.getCloudLatest(), latest)) {
info.setCloudLatest(latest);
if (!Objects.equals(info.getCloudLatest(), cloudLatest.get())) {
info.setCloudLatest(cloudLatest.get());
modified = true;
}
return modified;
}
public static CloudYuInfoViewModel from(CloudYu cc) {
public static CloudYuInfoViewModel from(CloudYuVo cc) {
CloudYuInfoViewModel model = new CloudYuInfoViewModel();
model.update(cc);
return model;
}
}