package com.ecep.contract.vm; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Objects; import com.ecep.contract.vo.CloudYuVo; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = false) public class CloudYuInfoViewModel extends IdentityViewModel { /** * 公司ID */ private SimpleObjectProperty company = new SimpleObjectProperty<>(); /** * 最后更新日期 */ private SimpleObjectProperty latestUpdate = new SimpleObjectProperty<>(); private SimpleStringProperty exceptionMessage = new SimpleStringProperty(); private SimpleObjectProperty vendorUpdateDate = new SimpleObjectProperty<>(); private SimpleObjectProperty customerUpdateDate = new SimpleObjectProperty<>(); private SimpleObjectProperty cloudLatest = new SimpleObjectProperty<>(); /** * 是否激活 */ private SimpleBooleanProperty active = new SimpleBooleanProperty(); /** * Version */ private SimpleIntegerProperty version = new SimpleIntegerProperty(); @Override protected void updateFrom(CloudYuVo info) { super.updateFrom(info); company.set(info.getCompanyId()); exceptionMessage.set(info.getExceptionMessage()); vendorUpdateDate.set(info.getVendorUpdateDate()); customerUpdateDate.set(info.getCustomerUpdateDate()); cloudLatest.set(info.getCloudLatest()); latestUpdate.set(info.getLatestUpdate()); active.set(info.isActive()); version.set(info.getVersion()); } @Override public boolean copyTo(CloudYuVo info) { boolean modified = super.copyTo(info); if (copyTo_((CloudYuVo) info)) { modified = true; } return modified; } private boolean copyTo_(CloudYuVo info) { boolean modified = false; if (!Objects.equals(info.getCompanyId(), company.get())) { info.setCompanyId(company.get()); modified = true; } if (!Objects.equals(info.getExceptionMessage(), exceptionMessage.get())) { info.setExceptionMessage(exceptionMessage.get()); modified = true; } if (!Objects.equals(info.getVendorUpdateDate(), vendorUpdateDate.get())) { info.setVendorUpdateDate(vendorUpdateDate.get()); modified = true; } if (!Objects.equals(info.getCustomerUpdateDate(), customerUpdateDate.get())) { info.setCustomerUpdateDate(customerUpdateDate.get()); modified = true; } if (!Objects.equals(info.getCloudLatest(), cloudLatest.get())) { info.setCloudLatest(cloudLatest.get()); modified = true; } if (!Objects.equals(info.getLatestUpdate(), latestUpdate.get())) { info.setLatestUpdate(latestUpdate.get()); modified = true; } if (!Objects.equals(info.isActive(), active.get())) { info.setActive(active.get()); modified = true; } if (!Objects.equals(info.getVersion(), version.get())) { info.setVersion(version.get()); modified = true; } return modified; } public static CloudYuInfoViewModel from(CloudYuVo cc) { CloudYuInfoViewModel model = new CloudYuInfoViewModel(); model.update(cc); return model; } }