拆分模块
This commit is contained in:
45
client/src/main/java/com/ecep/contract/vm/BankViewModel.java
Normal file
45
client/src/main/java/com/ecep/contract/vm/BankViewModel.java
Normal file
@@ -0,0 +1,45 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Bank;
|
||||
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BankViewModel extends IdentityViewModel<Bank> {
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
|
||||
|
||||
public static BankViewModel from(Bank v) {
|
||||
BankViewModel vm = new BankViewModel();
|
||||
vm.update(v);
|
||||
return vm;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void updateFrom(Bank v) {
|
||||
super.updateFrom(v);
|
||||
getCode().set(v.getCode());
|
||||
getName().set(v.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(Bank v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(getCode().get(), v.getCode())) {
|
||||
v.setCode(getCode().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getName().get(), v.getName())) {
|
||||
v.setName(getName().get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
101
client/src/main/java/com/ecep/contract/vm/BaseViewModel.java
Normal file
101
client/src/main/java/com/ecep/contract/vm/BaseViewModel.java
Normal file
@@ -0,0 +1,101 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import javafx.application.Platform;
|
||||
import javafx.beans.InvalidationListener;
|
||||
import javafx.beans.Observable;
|
||||
import javafx.beans.property.Property;
|
||||
import javafx.beans.property.SimpleBooleanProperty;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
|
||||
import java.beans.PropertyDescriptor;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
@Data
|
||||
public class BaseViewModel<T> {
|
||||
private SimpleBooleanProperty changed = new SimpleBooleanProperty(false);
|
||||
@Setter(AccessLevel.PROTECTED)
|
||||
@Getter(AccessLevel.PROTECTED)
|
||||
private boolean skipChanged = false;
|
||||
private InvalidationListener changedListener = observable -> {
|
||||
// System.out.println("observable = " + observable);
|
||||
if (skipChanged) {
|
||||
return;
|
||||
}
|
||||
changed.set(true);
|
||||
};
|
||||
|
||||
public boolean isChanged() {
|
||||
return changed.get();
|
||||
}
|
||||
|
||||
public void setChanged(boolean changed) {
|
||||
this.changed.set(changed);
|
||||
}
|
||||
|
||||
public void bindListener() {
|
||||
for (PropertyDescriptor descriptor : BeanUtils.getPropertyDescriptors(getClass())) {
|
||||
String name = descriptor.getName();
|
||||
if (name.equals("changed")) {
|
||||
continue;
|
||||
}
|
||||
Class<?> propertyType = descriptor.getPropertyType();
|
||||
if (Property.class.isAssignableFrom(propertyType)) {
|
||||
try {
|
||||
Property<?> observable = (Property<?>) descriptor.getReadMethod().invoke(this);
|
||||
observable.addListener(changedListener);
|
||||
} catch (IllegalAccessException | InvocationTargetException ignored) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void unBindListener() throws InvocationTargetException, IllegalAccessException {
|
||||
for (PropertyDescriptor descriptor : BeanUtils.getPropertyDescriptors(getClass())) {
|
||||
String name = descriptor.getName();
|
||||
if (name.equals("changed")) {
|
||||
continue;
|
||||
}
|
||||
Class<?> propertyType = descriptor.getPropertyType();
|
||||
if (Property.class.isAssignableFrom(propertyType)) {
|
||||
Observable observable = (Observable) descriptor.getReadMethod().invoke(this);
|
||||
observable.removeListener(changedListener);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 应用了 changed property 的控制
|
||||
* <p>
|
||||
* 继承类需要重写 updateImpl 方法即可
|
||||
*/
|
||||
public final BaseViewModel<T> update(T v) {
|
||||
setSkipChanged(true);
|
||||
updateFrom(v);
|
||||
setChanged(false);
|
||||
setSkipChanged(false);
|
||||
return this;
|
||||
}
|
||||
|
||||
protected void updateFrom(T v) {
|
||||
}
|
||||
|
||||
public boolean copyTo(T v) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 在UI线程中更新
|
||||
*/
|
||||
public static <T, TV extends BaseViewModel<T>> void updateInFxApplicationThread(T entity, TV vm) {
|
||||
if (Platform.isFxApplicationThread()) {
|
||||
vm.update(entity);
|
||||
} else {
|
||||
Platform.runLater(() -> vm.update(entity));
|
||||
}
|
||||
}
|
||||
}
|
||||
138
client/src/main/java/com/ecep/contract/vm/CloudRkViewModel.java
Normal file
138
client/src/main/java/com/ecep/contract/vm/CloudRkViewModel.java
Normal file
@@ -0,0 +1,138 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import com.ecep.contract.model.CloudRk;
|
||||
import com.ecep.contract.model.Company;
|
||||
|
||||
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 CloudRkViewModel extends IdentityViewModel<CloudRk> {
|
||||
/**
|
||||
* 云端Id
|
||||
*/
|
||||
private SimpleStringProperty cloudId = new SimpleStringProperty();
|
||||
/**
|
||||
* 更新间隔天数
|
||||
*/
|
||||
private SimpleIntegerProperty updateDays = new SimpleIntegerProperty();
|
||||
/**
|
||||
* 自动更新
|
||||
*/
|
||||
private SimpleBooleanProperty autoUpdate = new SimpleBooleanProperty();
|
||||
/**
|
||||
* 相关方资信评价等级
|
||||
*/
|
||||
private SimpleStringProperty rank = new SimpleStringProperty();
|
||||
/**
|
||||
* 相关方资信评价等级描述
|
||||
*/
|
||||
private SimpleStringProperty rankDescription = new SimpleStringProperty();
|
||||
/**
|
||||
* 客户资信评价等级
|
||||
*/
|
||||
private SimpleStringProperty customerGrade = new SimpleStringProperty();
|
||||
/**
|
||||
* 客户资信评价等级描述
|
||||
*/
|
||||
private SimpleStringProperty customerDescription = new SimpleStringProperty();
|
||||
/**
|
||||
* 客户资信评价等级描述
|
||||
*/
|
||||
private SimpleIntegerProperty customerScore = new SimpleIntegerProperty();
|
||||
/**
|
||||
* 供应商资信评价等级
|
||||
*/
|
||||
private SimpleStringProperty vendorGrade = new SimpleStringProperty();
|
||||
/**
|
||||
* 供应商资信评价等级描述
|
||||
*/
|
||||
private SimpleStringProperty vendorDescription = new SimpleStringProperty();
|
||||
/**
|
||||
* 供应商资信评价等级描述
|
||||
*/
|
||||
private SimpleIntegerProperty vendorScore = new SimpleIntegerProperty();
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
/**
|
||||
* 公司
|
||||
*/
|
||||
private SimpleObjectProperty<Company> company = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 最后更新日期
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDateTime> latestUpdate = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 企业更新日期
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDateTime> cloudEntUpdate = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 黑名单更新日期
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDateTime> cloudBlackListUpdated = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 云端最新更新时间
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDateTime> cloudLatest = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* Version
|
||||
*/
|
||||
private SimpleIntegerProperty version = new SimpleIntegerProperty();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(CloudRk v) {
|
||||
super.updateFrom(v);
|
||||
cloudId.set(v.getCloudId());
|
||||
updateDays.set(v.getUpdateDays());
|
||||
autoUpdate.set(v.isAutoUpdate());
|
||||
description.set(v.getDescription());
|
||||
rank.set(v.getRank());
|
||||
rankDescription.set(v.getRankDescription());
|
||||
customerGrade.set(v.getCustomerGrade());
|
||||
customerDescription.set(v.getCustomerDescription());
|
||||
customerScore.set(v.getCustomerScore());
|
||||
vendorGrade.set(v.getVendorGrade());
|
||||
vendorDescription.set(v.getVendorDescription());
|
||||
vendorScore.set(v.getVendorScore());
|
||||
company.set(v.getCompany());
|
||||
latestUpdate.set(v.getLatestUpdate());
|
||||
cloudEntUpdate.set(v.getCloudEntUpdate());
|
||||
cloudBlackListUpdated.set(v.getCloudBlackListUpdated());
|
||||
cloudLatest.set(v.getCloudLatest());
|
||||
cloudLatest.set(v.getCloudLatest());
|
||||
version.set(v.getVersion());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(CloudRk v) {
|
||||
boolean result = super.copyTo(v);
|
||||
v.setCloudId(cloudId.get());
|
||||
v.setUpdateDays(updateDays.get());
|
||||
v.setAutoUpdate(autoUpdate.get());
|
||||
v.setDescription(description.get());
|
||||
v.setRank(rank.get());
|
||||
v.setRankDescription(rankDescription.get());
|
||||
v.setCustomerGrade(customerGrade.get());
|
||||
v.setCustomerDescription(customerDescription.get());
|
||||
v.setCustomerScore(customerScore.get());
|
||||
v.setVendorGrade(vendorGrade.get());
|
||||
v.setVendorDescription(vendorDescription.get());
|
||||
v.setVendorScore(vendorScore.get());
|
||||
v.setCompany(company.get());
|
||||
v.setLatestUpdate(latestUpdate.get());
|
||||
v.setCloudEntUpdate(cloudEntUpdate.get());
|
||||
v.setCloudBlackListUpdated(cloudBlackListUpdated.get());
|
||||
v.setCloudLatest(cloudLatest.get());
|
||||
v.setVersion(version.get());
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.CloudTyc;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.util.MyDateTimePropertyUtils;
|
||||
|
||||
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 CloudTycInfoViewModel extends IdentityViewModel<CloudTyc> {
|
||||
/**
|
||||
* 云端Id
|
||||
*/
|
||||
private SimpleStringProperty cloudId = new SimpleStringProperty();
|
||||
/**
|
||||
* 公司
|
||||
*/
|
||||
private SimpleObjectProperty<Company> company = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 最后更新日期
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDateTime> latest = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* Version
|
||||
*/
|
||||
private SimpleIntegerProperty version = new SimpleIntegerProperty();
|
||||
private SimpleIntegerProperty score = new SimpleIntegerProperty();
|
||||
private SimpleObjectProperty<LocalDateTime> cloudLatest = new SimpleObjectProperty<>();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(CloudTyc info) {
|
||||
super.updateFrom(info);
|
||||
update_((CloudTyc) info);
|
||||
}
|
||||
|
||||
private void update_(CloudTyc info) {
|
||||
score.set(info.getScore());
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(CloudTyc info) {
|
||||
boolean modified = super.copyTo(info);
|
||||
if (copyTo_((CloudTyc) info)) {
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
private boolean copyTo_(CloudTyc info) {
|
||||
boolean modified = super.copyTo(info);
|
||||
if (!Objects.equals(info.getId(), getId().get())) {
|
||||
info.setId(getId().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(info.getScore(), getScore().get())) {
|
||||
info.setScore(getScore().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
Instant latest = MyDateTimePropertyUtils.localDateTimeToInstant(cloudLatest);
|
||||
if (!Objects.equals(info.getCloudLatest(), latest)) {
|
||||
info.setCloudLatest(latest);
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
|
||||
public static CloudTycInfoViewModel from(CloudTyc cc) {
|
||||
CloudTycInfoViewModel model = new CloudTycInfoViewModel();
|
||||
model.update(cc);
|
||||
return model;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
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 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<CloudYu> {
|
||||
/**
|
||||
* 云端Id
|
||||
*/
|
||||
private SimpleStringProperty cloudId = new SimpleStringProperty();
|
||||
/**
|
||||
* 公司
|
||||
*/
|
||||
private SimpleObjectProperty<Company> company = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 最后更新日期
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDateTime> latest = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* Version
|
||||
*/
|
||||
private SimpleIntegerProperty version = new SimpleIntegerProperty();
|
||||
private SimpleStringProperty vendorCode = new SimpleStringProperty();
|
||||
private SimpleStringProperty vendorClassCode = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<LocalDate> vendorDevelopDate = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleStringProperty customerCode = new SimpleStringProperty();
|
||||
private SimpleStringProperty customerClassCode = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<LocalDate> customerDevelopDate = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleObjectProperty<LocalDateTime> cloudLatest = new SimpleObjectProperty<>();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(CloudYu info) {
|
||||
super.updateFrom(info);
|
||||
update_((CloudYu) info);
|
||||
}
|
||||
|
||||
private void update_(CloudYu 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);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(CloudYu info) {
|
||||
boolean modified = super.copyTo(info);
|
||||
if (copyTo_((CloudYu) info)) {
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
private boolean copyTo_(CloudYu info) {
|
||||
boolean modified = false;
|
||||
if (!Objects.equals(info.getExceptionMessage(), vendorCode.get())) {
|
||||
info.setExceptionMessage(vendorCode.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(info.getVendorUpdateDate(), vendorDevelopDate.get())) {
|
||||
info.setVendorUpdateDate(vendorDevelopDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(info.getCustomerUpdateDate(), customerDevelopDate.get())) {
|
||||
info.setCustomerUpdateDate(customerDevelopDate.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
Instant latest = MyDateTimePropertyUtils.localDateTimeToInstant(cloudLatest);
|
||||
if (!Objects.equals(info.getCloudLatest(), latest)) {
|
||||
info.setCloudLatest(latest);
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
|
||||
public static CloudYuInfoViewModel from(CloudYu cc) {
|
||||
CloudYuInfoViewModel model = new CloudYuInfoViewModel();
|
||||
model.update(cc);
|
||||
return model;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Bank;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyBankAccount;
|
||||
|
||||
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 CompanyBankAccountViewModel extends IdentityViewModel<CompanyBankAccount> implements CompanyBasedViewModel {
|
||||
private SimpleIntegerProperty id = new SimpleIntegerProperty();
|
||||
|
||||
private SimpleObjectProperty<Company> company = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<Bank> bank = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleStringProperty openingBank = new SimpleStringProperty();
|
||||
private SimpleStringProperty account = new SimpleStringProperty();
|
||||
|
||||
private SimpleObjectProperty<LocalDate> created = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleIntegerProperty version = new SimpleIntegerProperty();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(CompanyBankAccount v) {
|
||||
getId().set(v.getId());
|
||||
getCompany().set(v.getCompany());
|
||||
getBank().set(v.getBank());
|
||||
getOpeningBank().set(v.getOpeningBank());
|
||||
getAccount().set(v.getAccount());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(CompanyBankAccount v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(id.get(), v.getId())) {
|
||||
v.setId(id.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(company.get(), v.getCompany())) {
|
||||
v.setCompany(company.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(bank.get(), v.getBank())) {
|
||||
v.setBank(bank.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(openingBank.get(), v.getOpeningBank())) {
|
||||
v.setOpeningBank(openingBank.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(account.get(), v.getAccount())) {
|
||||
v.setAccount(account.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
public static CompanyBankAccountViewModel from(CompanyBankAccount v) {
|
||||
CompanyBankAccountViewModel vm = new CompanyBankAccountViewModel();
|
||||
vm.updateFrom(v);
|
||||
return vm;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import com.ecep.contract.model.Company;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
|
||||
public interface CompanyBasedViewModel {
|
||||
SimpleObjectProperty<Company> getCompany();
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.BlackReasonType;
|
||||
import com.ecep.contract.model.CompanyBlackReason;
|
||||
|
||||
import javafx.beans.property.SimpleIntegerProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ToString
|
||||
public class CompanyBlackReasonViewModel extends IdentityViewModel<CompanyBlackReason> {
|
||||
private SimpleIntegerProperty id = new SimpleIntegerProperty();
|
||||
private SimpleObjectProperty<BlackReasonType> type = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleStringProperty applyName = new SimpleStringProperty();
|
||||
private SimpleStringProperty blackReason = new SimpleStringProperty();
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
private SimpleStringProperty key = new SimpleStringProperty();
|
||||
|
||||
private SimpleObjectProperty<LocalDate> applyDate = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> updateTime = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> createTime = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> includeDate = new SimpleObjectProperty<>();
|
||||
|
||||
|
||||
public static CompanyBlackReasonViewModel from(CompanyBlackReason reason) {
|
||||
CompanyBlackReasonViewModel model = new CompanyBlackReasonViewModel();
|
||||
model.update(reason);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(CompanyBlackReason v) {
|
||||
getId().set(v.getId());
|
||||
getType().set(v.getType());
|
||||
getApplyName().set(v.getApplyName());
|
||||
getBlackReason().set(v.getBlackReason());
|
||||
getDescription().set(v.getDescription());
|
||||
getKey().set(v.getKey());
|
||||
getApplyDate().set(v.getApplyDate());
|
||||
getUpdateTime().set(v.getUpdateTime());
|
||||
getCreateTime().set(v.getCreateTime());
|
||||
getIncludeDate().set(v.getIncludeDate());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(CompanyBlackReason v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(id.get(), v.getId())) {
|
||||
v.setId(id.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(type.get(), v.getType())) {
|
||||
v.setType(type.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(applyName.get(), v.getApplyName())) {
|
||||
v.setApplyName(applyName.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(blackReason.get(), v.getBlackReason())) {
|
||||
v.setBlackReason(blackReason.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(description.get(), v.getDescription())) {
|
||||
v.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(key.get(), v.getKey())) {
|
||||
v.setKey(key.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(applyDate.get(), v.getApplyDate())) {
|
||||
v.setApplyDate(applyDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(updateTime.get(), v.getUpdateTime())) {
|
||||
v.setUpdateTime(updateTime.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(createTime.get(), v.getCreateTime())) {
|
||||
v.setCreateTime(createTime.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(includeDate.get(), v.getIncludeDate())) {
|
||||
v.setIncludeDate(includeDate.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import com.ecep.contract.model.CompanyContact;
|
||||
|
||||
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 CompanyContactViewModel extends IdentityViewModel<CompanyContact> {
|
||||
private SimpleIntegerProperty id = new SimpleIntegerProperty();
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleStringProperty position = new SimpleStringProperty();
|
||||
private SimpleStringProperty phone = new SimpleStringProperty();
|
||||
private SimpleStringProperty email = new SimpleStringProperty();
|
||||
private SimpleStringProperty address = new SimpleStringProperty();
|
||||
private SimpleStringProperty u8Code = new SimpleStringProperty();
|
||||
private SimpleStringProperty memo = new SimpleStringProperty();
|
||||
private SimpleIntegerProperty version = new SimpleIntegerProperty();
|
||||
private SimpleObjectProperty<LocalDate> created = new SimpleObjectProperty<>();
|
||||
|
||||
public static CompanyContactViewModel from(CompanyContact contact) {
|
||||
CompanyContactViewModel model = new CompanyContactViewModel();
|
||||
model.update(contact);
|
||||
return model;
|
||||
}
|
||||
|
||||
|
||||
public void updateFrom(CompanyContact v) {
|
||||
id.set(v.getId());
|
||||
name.set(v.getName());
|
||||
position.set(v.getPosition());
|
||||
phone.set(v.getPhone());
|
||||
email.set(v.getEmail());
|
||||
address.set(v.getAddress());
|
||||
u8Code.set(v.getU8Code());
|
||||
created.set(v.getCreated());
|
||||
memo.set(v.getMemo());
|
||||
version.set(v.getVersion());
|
||||
}
|
||||
|
||||
public boolean copyTo(CompanyContact v) {
|
||||
v.setId(id.get());
|
||||
v.setName(name.get());
|
||||
v.setPosition(position.get());
|
||||
v.setPhone(phone.get());
|
||||
v.setEmail(email.get());
|
||||
v.setAddress(address.get());
|
||||
v.setU8Code(u8Code.get());
|
||||
v.setCreated(created.get());
|
||||
v.setMemo(memo.get());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.CompanyCustomerFileType;
|
||||
import com.ecep.contract.model.CompanyCustomer;
|
||||
import com.ecep.contract.model.CompanyCustomerFile;
|
||||
|
||||
import javafx.beans.property.SimpleBooleanProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ToString
|
||||
public class CompanyCustomerFileViewModel extends IdentityViewModel<CompanyCustomerFile> {
|
||||
|
||||
public static CompanyCustomerFileViewModel from(CompanyCustomerFile companyCustomerFile) {
|
||||
CompanyCustomerFileViewModel model = new CompanyCustomerFileViewModel();
|
||||
model.update(companyCustomerFile);
|
||||
return model;
|
||||
}
|
||||
|
||||
@ToString.Exclude
|
||||
private SimpleObjectProperty<CompanyCustomer> customer = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleObjectProperty<CompanyCustomerFileType> type = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleStringProperty filePath = new SimpleStringProperty();
|
||||
|
||||
private SimpleStringProperty editFilePath = new SimpleStringProperty();
|
||||
|
||||
private SimpleObjectProperty<LocalDate> signDate = new SimpleObjectProperty<>();
|
||||
|
||||
@ToString.Exclude
|
||||
private SimpleBooleanProperty valid = new SimpleBooleanProperty(this, "valid", false);
|
||||
|
||||
|
||||
@Override
|
||||
protected void updateFrom(CompanyCustomerFile v) {
|
||||
super.updateFrom(v);
|
||||
getCustomer().set(v.getCustomer());
|
||||
getType().set(v.getType());
|
||||
getFilePath().set(v.getFilePath());
|
||||
getEditFilePath().set(v.getEditFilePath());
|
||||
|
||||
getSignDate().set(v.getSignDate());
|
||||
getValid().set(v.isValid());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(CompanyCustomerFile v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(customer.get(), v.getCustomer())) {
|
||||
v.setCustomer(customer.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(type.get(), v.getType())) {
|
||||
v.setType(type.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(filePath.get(), v.getFilePath())) {
|
||||
v.setFilePath(filePath.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(editFilePath.get(), v.getEditFilePath())) {
|
||||
v.setEditFilePath(editFilePath.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(signDate.get(), v.getSignDate())) {
|
||||
v.setSignDate(signDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(valid.get(), v.isValid())) {
|
||||
v.setValid(valid.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZoneOffset;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyContact;
|
||||
import com.ecep.contract.model.CompanyCustomer;
|
||||
|
||||
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 CompanyCustomerViewModel extends IdentityViewModel<CompanyCustomer> {
|
||||
private SimpleStringProperty state = new SimpleStringProperty();
|
||||
/**
|
||||
* 关联的企业
|
||||
*/
|
||||
private SimpleObjectProperty<Company> company = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 发展日期
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDate> developDate = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 文件夹
|
||||
*/
|
||||
private SimpleStringProperty path = new SimpleStringProperty();
|
||||
/**
|
||||
* 关联联系人
|
||||
*/
|
||||
private SimpleObjectProperty<CompanyContact> contact = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<LocalDateTime> created = new SimpleObjectProperty<>();
|
||||
private SimpleIntegerProperty version = new SimpleIntegerProperty();
|
||||
|
||||
public static CompanyCustomerViewModel from(CompanyCustomer cc) {
|
||||
CompanyCustomerViewModel model = new CompanyCustomerViewModel();
|
||||
model.update(cc);
|
||||
return model;
|
||||
}
|
||||
|
||||
public void updateFrom(CompanyCustomer c) {
|
||||
super.updateFrom(c);
|
||||
getCompany().set(c.getCompany());
|
||||
getDevelopDate().set(c.getDevelopDate());
|
||||
getContact().set(c.getContact());
|
||||
getPath().set(c.getPath());
|
||||
getDescription().set(c.getDescription());
|
||||
|
||||
if (c.getCreated() != null) {
|
||||
ZoneId zone = ZoneId.systemDefault();
|
||||
ZonedDateTime zonedDateTime = c.getCreated().atZone(zone);
|
||||
LocalDateTime localDateTime = zonedDateTime.toLocalDateTime();
|
||||
getCreated().set(localDateTime);
|
||||
} else {
|
||||
getCreated().set(null);
|
||||
}
|
||||
version.set(c.getVersion());
|
||||
}
|
||||
|
||||
public boolean copyTo(CompanyCustomer v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(company.get(), v.getCompany())) {
|
||||
v.setCompany(company.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(contact.get(), v.getContact())) {
|
||||
v.setContact(contact.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(developDate.get(), v.getDevelopDate())) {
|
||||
v.setDevelopDate(developDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(path.get(), v.getPath())) {
|
||||
v.setPath(path.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(description.get(), v.getDescription())) {
|
||||
v.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
if (created.get() == null) {
|
||||
v.setCreated(null);
|
||||
} else {
|
||||
Instant instant = created.get().toInstant(ZoneOffset.ofHours(8));
|
||||
if (!Objects.equals(instant, v.getCreated())) {
|
||||
v.setCreated(instant);
|
||||
modified = true;
|
||||
}
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyExtendInfo;
|
||||
|
||||
import javafx.beans.property.SimpleBooleanProperty;
|
||||
import javafx.beans.property.SimpleIntegerProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class CompanyExtendInfoViewModel extends BaseViewModel<CompanyExtendInfo> {
|
||||
private SimpleIntegerProperty id = new SimpleIntegerProperty();
|
||||
/**
|
||||
* 关联的公司
|
||||
*/
|
||||
private SimpleObjectProperty<Company> company = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 是否禁用核验
|
||||
*/
|
||||
private SimpleBooleanProperty disableVerify = new SimpleBooleanProperty();
|
||||
private SimpleIntegerProperty version = new SimpleIntegerProperty();
|
||||
|
||||
public static CompanyExtendInfoViewModel from(CompanyExtendInfo v) {
|
||||
CompanyExtendInfoViewModel vm = new CompanyExtendInfoViewModel();
|
||||
vm.updateFrom(v);
|
||||
return vm;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(CompanyExtendInfo v) {
|
||||
super.updateFrom(v);
|
||||
getId().set(v.getId());
|
||||
getCompany().set(v.getCompany());
|
||||
getDisableVerify().set(v.isDisableVerify());
|
||||
getVersion().set(v.getVersion());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(CompanyExtendInfo v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(id.get(), v.getId())) {
|
||||
v.setId(id.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(company.get(), v.getCompany())) {
|
||||
v.setCompany(company.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(disableVerify.get(), v.isDisableVerify())) {
|
||||
v.setDisableVerify(disableVerify.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.CompanyFileType;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyFile;
|
||||
|
||||
import javafx.beans.property.SimpleIntegerProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* View Model for {@link CompanyFile}
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class CompanyFileViewModel extends IdentityViewModel<CompanyFile> {
|
||||
SimpleIntegerProperty id = new SimpleIntegerProperty();
|
||||
SimpleObjectProperty<Company> company = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<CompanyFileType> type = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<LocalDate> applyDate = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<LocalDate> expiringDate = new SimpleObjectProperty<>();
|
||||
SimpleStringProperty filePath = new SimpleStringProperty();
|
||||
|
||||
|
||||
@Override
|
||||
protected void updateFrom(CompanyFile v) {
|
||||
id.set(v.getId());
|
||||
company.set(v.getCompany());
|
||||
type.set(v.getType());
|
||||
applyDate.set(v.getApplyDate());
|
||||
expiringDate.set(v.getExpiringDate());
|
||||
filePath.set(v.getFilePath());
|
||||
}
|
||||
|
||||
public boolean copyTo(CompanyFile v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(id.get(), v.getId())) {
|
||||
v.setId(id.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(company.get(), v.getCompany())) {
|
||||
v.setCompany(company.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(type.get(), v.getType())) {
|
||||
v.setType(type.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(applyDate.get(), v.getApplyDate())) {
|
||||
v.setApplyDate(applyDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(expiringDate.get(), v.getExpiringDate())) {
|
||||
v.setExpiringDate(expiringDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(filePath.get(), v.getFilePath())) {
|
||||
v.setFilePath(filePath.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
public static CompanyFileViewModel from(CompanyFile file) {
|
||||
CompanyFileViewModel model = new CompanyFileViewModel();
|
||||
model.update(file);
|
||||
return model;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import com.ecep.contract.model.CompanyOldName;
|
||||
|
||||
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 CompanyOldNameViewModel extends IdentityViewModel<CompanyOldName> {
|
||||
private SimpleIntegerProperty id = new SimpleIntegerProperty();
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleStringProperty path = new SimpleStringProperty();
|
||||
|
||||
|
||||
|
||||
private SimpleObjectProperty<LocalDate> beginDate = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> endDate = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleBooleanProperty ambiguity = new SimpleBooleanProperty();
|
||||
private SimpleIntegerProperty version = new SimpleIntegerProperty();
|
||||
private SimpleStringProperty memo = new SimpleStringProperty();
|
||||
|
||||
|
||||
public static CompanyOldNameViewModel from(CompanyOldName name) {
|
||||
CompanyOldNameViewModel model = new CompanyOldNameViewModel();
|
||||
model.update(name);
|
||||
return model;
|
||||
}
|
||||
|
||||
public void updateFrom(CompanyOldName oldName) {
|
||||
id.set(oldName.getId());
|
||||
name.set(oldName.getName());
|
||||
path.set(oldName.getPath());
|
||||
memo.set(oldName.getMemo());
|
||||
beginDate.set(oldName.getBeginDate());
|
||||
endDate.set(oldName.getEndDate());
|
||||
ambiguity.set(oldName.getAmbiguity());
|
||||
version.set(oldName.getVersion());
|
||||
|
||||
}
|
||||
|
||||
public boolean copyTo(CompanyOldName c) {
|
||||
c.setId(id.get());
|
||||
c.setName(name.get());
|
||||
c.setPath(path.get());
|
||||
c.setMemo(memo.get());
|
||||
c.setBeginDate(beginDate.get());
|
||||
c.setEndDate(endDate.get());
|
||||
c.setAmbiguity(ambiguity.get());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import com.ecep.contract.model.CompanyVendorApprovedFile;
|
||||
import com.ecep.contract.model.CompanyVendorApprovedList;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ToString
|
||||
public class CompanyVendorApprovedFileViewModel extends IdentityViewModel<CompanyVendorApprovedFile> {
|
||||
|
||||
public static CompanyVendorApprovedFileViewModel from(CompanyVendorApprovedFile companyVendorApprovedItemFile) {
|
||||
CompanyVendorApprovedFileViewModel viewModel = new CompanyVendorApprovedFileViewModel();
|
||||
viewModel.update(companyVendorApprovedItemFile);
|
||||
return viewModel;
|
||||
}
|
||||
|
||||
@ToString.Exclude
|
||||
private SimpleObjectProperty<CompanyVendorApprovedList> list = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleStringProperty fileName = new SimpleStringProperty();
|
||||
|
||||
private SimpleObjectProperty<LocalDate> signDate = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(CompanyVendorApprovedFile v) {
|
||||
super.updateFrom(v);
|
||||
getList().set(v.getList());
|
||||
getFileName().set(v.getFileName());
|
||||
getSignDate().set(v.getSignDate());
|
||||
getDescription().set(v.getDescription());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(CompanyVendorApprovedFile v) {
|
||||
super.copyTo(v);
|
||||
v.setList(list.get());
|
||||
v.setFileName(fileName.get());
|
||||
v.setSignDate(signDate.get());
|
||||
v.setDescription(description.get());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.VendorType;
|
||||
import com.ecep.contract.model.CompanyVendor;
|
||||
import com.ecep.contract.model.CompanyVendorApprovedItem;
|
||||
import com.ecep.contract.model.CompanyVendorApprovedList;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class CompanyVendorApprovedItemViewModel extends IdentityViewModel<CompanyVendorApprovedItem> {
|
||||
public static CompanyVendorApprovedItemViewModel from(CompanyVendorApprovedItem item) {
|
||||
CompanyVendorApprovedItemViewModel model = new CompanyVendorApprovedItemViewModel();
|
||||
model.update(item);
|
||||
return model;
|
||||
}
|
||||
|
||||
|
||||
private SimpleObjectProperty<CompanyVendorApprovedList> list = new SimpleObjectProperty<>();
|
||||
private SimpleStringProperty vendorName = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<CompanyVendor> vendor = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<VendorType> type = new SimpleObjectProperty<>();
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
|
||||
|
||||
@Override
|
||||
protected void updateFrom(CompanyVendorApprovedItem v) {
|
||||
super.updateFrom(v);
|
||||
getVendorName().set(v.getVendorName());
|
||||
getList().set(v.getList());
|
||||
getVendor().set(v.getVendor());
|
||||
getType().set(v.getType());
|
||||
getDescription().set(v.getDescription());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(CompanyVendorApprovedItem v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(vendorName.get(), v.getVendorName())) {
|
||||
v.setVendorName(vendorName.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(list.get(), v.getList())) {
|
||||
v.setList(list.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(vendor.get(), v.getVendor())) {
|
||||
v.setVendor(vendor.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(type.get(), v.getType())) {
|
||||
v.setType(type.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(description.get(), v.getDescription())) {
|
||||
v.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.CompanyVendorApprovedList;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class CompanyVendorApprovedListViewModel
|
||||
extends IdentityViewModel<CompanyVendorApprovedList> {
|
||||
private SimpleStringProperty title = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<LocalDate> publishDate = new SimpleObjectProperty<>();
|
||||
private SimpleStringProperty path = new SimpleStringProperty();
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
|
||||
public static CompanyVendorApprovedListViewModel from(CompanyVendorApprovedList list) {
|
||||
CompanyVendorApprovedListViewModel model = new CompanyVendorApprovedListViewModel();
|
||||
model.update(list);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(CompanyVendorApprovedList v) {
|
||||
super.updateFrom(v);
|
||||
getTitle().set(v.getTitle());
|
||||
getPublishDate().set(v.getPublishDate());
|
||||
getPath().set(v.getPath());
|
||||
getDescription().set(v.getDescription());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(CompanyVendorApprovedList v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
|
||||
if (!Objects.equals(title.get(), v.getTitle())) {
|
||||
v.setTitle(title.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(publishDate.get(), v.getPublishDate())) {
|
||||
v.setPublishDate(publishDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(path.get(), v.getPath())) {
|
||||
v.setPath(path.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(description.get(), v.getDescription())) {
|
||||
v.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import com.ecep.contract.model.CompanyVendor;
|
||||
import com.ecep.contract.model.CompanyVendorEntity;
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.model.VendorCatalog;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class CompanyVendorEntityViewModel extends IdentityViewModel<CompanyVendorEntity> {
|
||||
private SimpleObjectProperty<CompanyVendor> vendor = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<String> name = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<String> abbName = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<String> code = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleObjectProperty<VendorCatalog> catalog = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<Employee> creator = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> developDate = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<Employee> modifier = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> modifyDate = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleObjectProperty<LocalDate> updatedDate = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDateTime> fetchedTime = new SimpleObjectProperty<>();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(CompanyVendorEntity v) {
|
||||
super.updateFrom(v);
|
||||
vendor.set(v.getVendor());
|
||||
name.set(v.getName());
|
||||
abbName.set(v.getAbbName());
|
||||
code.set(v.getCode());
|
||||
catalog.set(v.getCatalog());
|
||||
creator.set(v.getCreator());
|
||||
developDate.set(v.getDevelopDate());
|
||||
modifier.set(v.getModifier());
|
||||
modifyDate.set(v.getModifyDate());
|
||||
updatedDate.set(v.getUpdatedDate());
|
||||
fetchedTime.set(v.getFetchedTime());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(CompanyVendorEntity v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (vendor.get() != null) {
|
||||
v.setVendor(vendor.get());
|
||||
modified = true;
|
||||
}
|
||||
if (name.get() != null) {
|
||||
v.setName(name.get());
|
||||
modified = true;
|
||||
}
|
||||
if (abbName.get() != null) {
|
||||
v.setAbbName(abbName.get());
|
||||
modified = true;
|
||||
}
|
||||
if (code.get() != null) {
|
||||
v.setCode(code.get());
|
||||
modified = true;
|
||||
}
|
||||
if (catalog.get() != null) {
|
||||
v.setCatalog(catalog.get());
|
||||
modified = true;
|
||||
}
|
||||
if (creator.get() != null) {
|
||||
v.setCreator(creator.get());
|
||||
modified = true;
|
||||
}
|
||||
if (developDate.get() != null) {
|
||||
v.setDevelopDate(developDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (modifier.get() != null) {
|
||||
v.setModifier(modifier.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.CompanyVendorFileType;
|
||||
import com.ecep.contract.model.CompanyVendor;
|
||||
import com.ecep.contract.model.CompanyVendorFile;
|
||||
|
||||
import javafx.beans.property.SimpleBooleanProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ToString
|
||||
public class CompanyVendorFileViewModel extends IdentityViewModel<CompanyVendorFile> {
|
||||
@ToString.Exclude
|
||||
private SimpleObjectProperty<CompanyVendor> vendor = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleObjectProperty<CompanyVendorFileType> type = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleStringProperty filePath = new SimpleStringProperty();
|
||||
|
||||
private SimpleStringProperty editFilePath = new SimpleStringProperty();
|
||||
|
||||
private SimpleObjectProperty<LocalDate> signDate = new SimpleObjectProperty<>();
|
||||
|
||||
@ToString.Exclude
|
||||
private SimpleBooleanProperty valid = new SimpleBooleanProperty(this, "valid", false);
|
||||
|
||||
|
||||
@Override
|
||||
protected void updateFrom(CompanyVendorFile v) {
|
||||
super.updateFrom(v);
|
||||
getVendor().set(v.getVendor());
|
||||
getType().set(v.getType());
|
||||
getFilePath().set(v.getFilePath());
|
||||
getEditFilePath().set(v.getEditFilePath());
|
||||
|
||||
getSignDate().set(v.getSignDate());
|
||||
getValid().set(v.isValid());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(CompanyVendorFile v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(getVendor().get(), v.getVendor())) {
|
||||
v.setVendor(getVendor().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getType().get(), v.getType())) {
|
||||
v.setType(getType().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(getFilePath().get(), v.getFilePath())) {
|
||||
v.setFilePath(getFilePath().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getEditFilePath().get(), v.getEditFilePath())) {
|
||||
v.setEditFilePath(getEditFilePath().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getSignDate().get(), v.getSignDate())) {
|
||||
v.setSignDate(getSignDate().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getValid().get(), v.isValid())) {
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
public static CompanyVendorFileViewModel from(CompanyVendorFile companyVendorFile) {
|
||||
CompanyVendorFileViewModel model = new CompanyVendorFileViewModel();
|
||||
model.update(companyVendorFile);
|
||||
return model;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,168 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZoneOffset;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.VendorType;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyContact;
|
||||
import com.ecep.contract.model.CompanyVendor;
|
||||
import com.ecep.contract.model.VendorCatalog;
|
||||
import com.ecep.contract.model.VendorGroup;
|
||||
|
||||
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 CompanyVendorViewModel extends IdentityViewModel<CompanyVendor> {
|
||||
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleStringProperty state = new SimpleStringProperty();
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private SimpleObjectProperty<VendorType> type = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 分组
|
||||
*/
|
||||
private SimpleObjectProperty<VendorGroup> group = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 是否为协议供应商
|
||||
*/
|
||||
private SimpleBooleanProperty protocolProvider = new SimpleBooleanProperty(false);
|
||||
/**
|
||||
* 分组
|
||||
*/
|
||||
private SimpleObjectProperty<VendorCatalog> catalog = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 关联的企业
|
||||
*/
|
||||
private SimpleObjectProperty<Company> company = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 开发日期
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDate> developDate = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 对口联系人
|
||||
*/
|
||||
private SimpleObjectProperty<CompanyContact> contact = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 文件夹
|
||||
*/
|
||||
private SimpleStringProperty path = new SimpleStringProperty();
|
||||
/**
|
||||
* 采购的产品
|
||||
*/
|
||||
private SimpleStringProperty purchase = new SimpleStringProperty();
|
||||
/**
|
||||
* 说明
|
||||
*/
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
/**
|
||||
* 记录创建日期
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDateTime> created = new SimpleObjectProperty<>();
|
||||
private SimpleIntegerProperty version = new SimpleIntegerProperty();
|
||||
|
||||
|
||||
public static CompanyVendorViewModel from(CompanyVendor companyVendor) {
|
||||
CompanyVendorViewModel model = new CompanyVendorViewModel();
|
||||
model.update(companyVendor);
|
||||
return model;
|
||||
}
|
||||
|
||||
public void updateFrom(CompanyVendor v) {
|
||||
super.updateFrom(v);
|
||||
// getState().set(v.getState());
|
||||
getType().set(v.getType());
|
||||
getProtocolProvider().set(v.isProtocolProvider());
|
||||
getCatalog().set(v.getCatalog());
|
||||
getCompany().set(v.getCompany());
|
||||
getDevelopDate().set(v.getDevelopDate());
|
||||
|
||||
getPath().set(v.getPath());
|
||||
getPurchase().set(v.getPurchase());
|
||||
getDescription().set(v.getDescription());
|
||||
|
||||
if (v.getCreated() != null) {
|
||||
ZoneId zone = ZoneId.systemDefault();
|
||||
ZonedDateTime zonedDateTime = v.getCreated().atZone(zone);
|
||||
LocalDateTime localDateTime = zonedDateTime.toLocalDateTime();
|
||||
getCreated().set(localDateTime);
|
||||
} else {
|
||||
getCreated().set(null);
|
||||
}
|
||||
|
||||
getContact().set(v.getContact());
|
||||
version.set(v.getVersion());
|
||||
}
|
||||
|
||||
public boolean copyTo(CompanyVendor v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(type.get(), v.getType())) {
|
||||
v.setType(type.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(protocolProvider.get(), v.isProtocolProvider())) {
|
||||
v.setProtocolProvider(protocolProvider.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(catalog.get(), v.getCatalog())) {
|
||||
v.setCatalog(catalog.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(company.get(), v.getCompany())) {
|
||||
v.setCompany(company.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(developDate.get(), v.getDevelopDate())) {
|
||||
v.setDevelopDate(developDate.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(path.get(), v.getPath())) {
|
||||
v.setPath(path.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(purchase.get(), v.getPurchase())) {
|
||||
v.setPurchase(purchase.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(description.get(), v.getDescription())) {
|
||||
v.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
|
||||
if (!Objects.equals(contact.get(), v.getContact())) {
|
||||
v.setContact(contact.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (created.get() == null) {
|
||||
v.setCreated(null);
|
||||
} else {
|
||||
Instant instant = created.get().toInstant(ZoneOffset.ofHours(8));
|
||||
if (!Objects.equals(instant, v.getCreated())) {
|
||||
v.setCreated(instant);
|
||||
modified = true;
|
||||
}
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
173
client/src/main/java/com/ecep/contract/vm/CompanyViewModel.java
Normal file
173
client/src/main/java/com/ecep/contract/vm/CompanyViewModel.java
Normal file
@@ -0,0 +1,173 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Company;
|
||||
|
||||
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 CompanyViewModel extends IdentityViewModel<Company> {
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleStringProperty shortName = new SimpleStringProperty();
|
||||
private SimpleStringProperty uid = new SimpleStringProperty();
|
||||
private SimpleBooleanProperty pathExist = new SimpleBooleanProperty();
|
||||
private SimpleStringProperty path = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<LocalDate> setupDate = new SimpleObjectProperty<>();
|
||||
private SimpleStringProperty entStatus = new SimpleStringProperty();
|
||||
private SimpleStringProperty entType = new SimpleStringProperty();
|
||||
private SimpleStringProperty district = new SimpleStringProperty();
|
||||
private SimpleStringProperty industry = new SimpleStringProperty();
|
||||
|
||||
private SimpleStringProperty regAddress = new SimpleStringProperty();
|
||||
private SimpleStringProperty address = new SimpleStringProperty();
|
||||
|
||||
private SimpleStringProperty telephone = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<LocalDate> operationPeriodBegin = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> operationPeriodEnd = new SimpleObjectProperty<>();
|
||||
private SimpleStringProperty registeredCapital = new SimpleStringProperty();
|
||||
private SimpleStringProperty registeredCapitalCurrency = new SimpleStringProperty();
|
||||
private SimpleStringProperty legalRepresentative = new SimpleStringProperty();
|
||||
|
||||
private SimpleStringProperty memo = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<LocalDate> created = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleIntegerProperty version = new SimpleIntegerProperty();
|
||||
|
||||
public static CompanyViewModel from(Company company) {
|
||||
CompanyViewModel model = new CompanyViewModel();
|
||||
model.update(company);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(Company company) {
|
||||
super.updateFrom(company);
|
||||
name.set(company.getName());
|
||||
shortName.set(company.getShortName());
|
||||
uid.set(company.getUniscid());
|
||||
if (company.getPathExist() != null) {
|
||||
pathExist.set(company.getPathExist());
|
||||
}
|
||||
path.set(company.getPath());
|
||||
setupDate.set(company.getSetupDate());
|
||||
entStatus.set(company.getEntStatus());
|
||||
entType.set(company.getEntType());
|
||||
district.set(company.getDistrict());
|
||||
industry.set(company.getIndustry());
|
||||
|
||||
regAddress.set(company.getRegAddr());
|
||||
address.set(company.getAddress());
|
||||
|
||||
telephone.set(company.getTelephone());
|
||||
operationPeriodBegin.set(company.getOperationPeriodBegin());
|
||||
operationPeriodEnd.set(company.getOperationPeriodEnd());
|
||||
registeredCapital.set(company.getRegisteredCapital());
|
||||
registeredCapitalCurrency.set(company.getRegisteredCapitalCurrency());
|
||||
legalRepresentative.set(company.getLegalRepresentative());
|
||||
|
||||
created.set(company.getCreated());
|
||||
memo.set(company.getMemo());
|
||||
version.set(company.getVersion());
|
||||
}
|
||||
|
||||
public boolean copyTo(Company v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(name.get(), v.getName())) {
|
||||
v.setName(name.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(shortName.get(), v.getShortName())) {
|
||||
v.setShortName(shortName.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(uid.get(), v.getUniscid())) {
|
||||
v.setUniscid(uid.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(pathExist.get(), v.getPathExist())) {
|
||||
v.setPathExist(pathExist.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(path.get(), v.getPath())) {
|
||||
v.setPath(path.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(setupDate.get(), v.getSetupDate())) {
|
||||
v.setSetupDate(setupDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(entStatus.get(), v.getEntStatus())) {
|
||||
v.setEntStatus(entStatus.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(entType.get(), v.getEntType())) {
|
||||
v.setEntType(entType.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(district.get(), v.getDistrict())) {
|
||||
v.setDistrict(district.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(industry.get(), v.getIndustry())) {
|
||||
v.setIndustry(industry.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(regAddress.get(), v.getRegAddr())) {
|
||||
v.setRegAddr(regAddress.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(address.get(), v.getAddress())) {
|
||||
v.setAddress(address.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(telephone.get(), v.getTelephone())) {
|
||||
v.setTelephone(telephone.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(operationPeriodBegin.get(), v.getOperationPeriodBegin())) {
|
||||
v.setOperationPeriodBegin(operationPeriodBegin.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(operationPeriodEnd.get(), v.getOperationPeriodEnd())) {
|
||||
v.setOperationPeriodEnd(operationPeriodEnd.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(registeredCapital.get(), v.getRegisteredCapital())) {
|
||||
v.setRegisteredCapital(registeredCapital.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(registeredCapitalCurrency.get(), v.getRegisteredCapitalCurrency())) {
|
||||
v.setRegisteredCapitalCurrency(registeredCapitalCurrency.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(legalRepresentative.get(), v.getLegalRepresentative())) {
|
||||
v.setLegalRepresentative(legalRepresentative.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(memo.get(), v.getMemo())) {
|
||||
v.setMemo(memo.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(created.get(), v.getCreated())) {
|
||||
v.setCreated(created.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.model.ContractBidVendor;
|
||||
import com.ecep.contract.model.ContractFile;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ContractBidVendorViewModel extends IdentityViewModel<ContractBidVendor> {
|
||||
/**
|
||||
* 关联的合同
|
||||
*/
|
||||
private SimpleObjectProperty<Contract> contract = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 关联的企业
|
||||
*/
|
||||
private SimpleObjectProperty<Company> company = new SimpleObjectProperty<>();
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private SimpleObjectProperty<ContractFile> quotationSheet = new SimpleObjectProperty<>();
|
||||
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ContractBidVendor v) {
|
||||
super.updateFrom(v);
|
||||
getContract().set(v.getContract());
|
||||
getCompany().set(v.getCompany());
|
||||
getQuotationSheet().set(v.getQuotationSheet());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ContractBidVendor v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(contract.get(), v.getContract())) {
|
||||
v.setContract(contract.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(company.get(), v.getCompany())) {
|
||||
v.setCompany(company.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(quotationSheet.get(), v.getQuotationSheet())) {
|
||||
v.setQuotationSheet(quotationSheet.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
|
||||
public static ContractBidVendorViewModel from(ContractBidVendor contractBidVendor) {
|
||||
ContractBidVendorViewModel viewModel = new ContractBidVendorViewModel();
|
||||
// viewModel.updateFrom(contractBidVendor);
|
||||
viewModel.update(contractBidVendor);
|
||||
return viewModel;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.ContractFileType;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.model.ContractFile;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ContractFileViewModel extends IdentityViewModel<ContractFile> {
|
||||
SimpleObjectProperty<Contract> contract = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<ContractFileType> type = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<LocalDate> applyDate = new SimpleObjectProperty<>();
|
||||
SimpleStringProperty fileName = new SimpleStringProperty();
|
||||
SimpleStringProperty description = new SimpleStringProperty();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ContractFile v) {
|
||||
super.updateFrom(v);
|
||||
contract.set(v.getContract());
|
||||
type.set(v.getType());
|
||||
applyDate.set(v.getApplyDate());
|
||||
fileName.set(v.getFileName());
|
||||
description.set(v.getDescription());
|
||||
super.updateFrom(v);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ContractFile v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(contract.get(), v.getContract())) {
|
||||
v.setContract(contract.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(type.get(), v.getType())) {
|
||||
v.setType(type.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(applyDate.get(), v.getApplyDate())) {
|
||||
v.setApplyDate(applyDate.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(fileName.get(), v.getFileName())) {
|
||||
v.setFileName(fileName.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(description.get(), v.getDescription())) {
|
||||
v.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
public static ContractFileViewModel from(ContractFile contractFile) {
|
||||
ContractFileViewModel model = new ContractFileViewModel();
|
||||
model.update(contractFile);
|
||||
return model;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import com.ecep.contract.model.ContractGroup;
|
||||
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ContractGroupViewModel extends IdentityViewModel<ContractGroup> {
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleStringProperty title = new SimpleStringProperty();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ContractGroup v) {
|
||||
super.updateFrom(v);
|
||||
code.set(v.getCode());
|
||||
name.set(v.getName());
|
||||
title.set(v.getTitle());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ContractGroup v) {
|
||||
boolean result = super.copyTo(v);
|
||||
v.setCode(code.get());
|
||||
v.setName(name.get());
|
||||
v.setTitle(title.get());
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import com.ecep.contract.model.ContractItem;
|
||||
|
||||
import javafx.beans.property.SimpleDoubleProperty;
|
||||
import javafx.beans.property.SimpleIntegerProperty;
|
||||
import javafx.beans.property.SimpleListProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.collections.ObservableList;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ContractItemComposeViewModel extends BaseViewModel<ContractItemComposeViewModel.Compose> {
|
||||
|
||||
@Data
|
||||
public static class Compose {
|
||||
|
||||
/**
|
||||
* 税率
|
||||
*/
|
||||
SimpleDoubleProperty taxRate = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 不含税价格
|
||||
*/
|
||||
SimpleDoubleProperty exclusiveTaxPrice = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 含税价格
|
||||
*/
|
||||
SimpleDoubleProperty taxPrice = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
SimpleDoubleProperty quantity = new SimpleDoubleProperty();
|
||||
|
||||
/**
|
||||
* 含税价格合计
|
||||
*/
|
||||
SimpleDoubleProperty taxAmount = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 不含税价格合计
|
||||
*/
|
||||
SimpleDoubleProperty exclusiveTaxAmount = new SimpleDoubleProperty();
|
||||
|
||||
SimpleListProperty<ContractItem> items = new SimpleListProperty<>();
|
||||
|
||||
public void add(ContractItem item) {
|
||||
taxRate.set(item.getTaxRate());
|
||||
exclusiveTaxPrice.set(item.getExclusiveTaxPrice());
|
||||
taxPrice.set(item.getTaxPrice());
|
||||
|
||||
taxAmount.set(taxAmount.get() + item.getTaxPrice() * item.getQuantity());
|
||||
exclusiveTaxAmount.set(exclusiveTaxAmount.get() + item.getExclusiveTaxPrice() * item.getQuantity());
|
||||
|
||||
quantity.set(quantity.get() + item.getQuantity());
|
||||
|
||||
ObservableList<ContractItem> list = items.get();
|
||||
if (list == null) {
|
||||
list = FXCollections.observableArrayList();
|
||||
items.set(list);
|
||||
}
|
||||
list.add(item);
|
||||
}
|
||||
}
|
||||
|
||||
SimpleIntegerProperty id = new SimpleIntegerProperty();
|
||||
SimpleObjectProperty<String> title = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<String> specification = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<String> unit = new SimpleObjectProperty<>();
|
||||
|
||||
/**
|
||||
* 进项
|
||||
*/
|
||||
Compose in = new Compose();
|
||||
/**
|
||||
* 出项
|
||||
*/
|
||||
Compose out = new Compose();
|
||||
|
||||
SimpleObjectProperty<String> remark = new SimpleObjectProperty<>();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,192 @@
|
||||
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.ContractItem;
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.model.Inventory;
|
||||
|
||||
import javafx.beans.property.SimpleDoubleProperty;
|
||||
import javafx.beans.property.SimpleIntegerProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 合同内容
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ContractItemViewModel extends IdentityViewModel<ContractItem> {
|
||||
/**
|
||||
* 关联的合同对象
|
||||
*/
|
||||
SimpleObjectProperty<Contract> contract = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 关联的用友系统中的数据ID
|
||||
*/
|
||||
SimpleIntegerProperty refId = new SimpleIntegerProperty();
|
||||
SimpleObjectProperty<String> code = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<String> title = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<String> specification = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<String> unit = new SimpleObjectProperty<>();
|
||||
|
||||
/**
|
||||
* 存货
|
||||
*/
|
||||
SimpleObjectProperty<Inventory> inventory = new SimpleObjectProperty<>();
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
SimpleDoubleProperty taxRate = new SimpleDoubleProperty();
|
||||
SimpleDoubleProperty exclusiveTaxPrice = new SimpleDoubleProperty();
|
||||
SimpleDoubleProperty taxPrice = new SimpleDoubleProperty();
|
||||
SimpleDoubleProperty quantity = new SimpleDoubleProperty();
|
||||
SimpleDoubleProperty taxAmount = new SimpleDoubleProperty();
|
||||
SimpleDoubleProperty exclusiveTaxAmount = new SimpleDoubleProperty();
|
||||
|
||||
|
||||
SimpleObjectProperty<LocalDate> startDate = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<LocalDate> endDate = new SimpleObjectProperty<>();
|
||||
|
||||
SimpleObjectProperty<LocalDateTime> createDate = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<LocalDateTime> updateDate = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<Employee> creator = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<Employee> updater = new SimpleObjectProperty<>();
|
||||
|
||||
SimpleObjectProperty<String> remark = new SimpleObjectProperty<>();
|
||||
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ContractItem v) {
|
||||
super.updateFrom(v);
|
||||
getContract().set(v.getContract());
|
||||
getRefId().set(v.getRefId());
|
||||
getCode().set(v.getItemCode());
|
||||
getTitle().set(v.getTitle());
|
||||
getSpecification().set(v.getSpecification());
|
||||
getUnit().set(v.getUnit());
|
||||
getInventory().set(v.getInventory());
|
||||
|
||||
getExclusiveTaxPrice().set(v.getExclusiveTaxPrice());
|
||||
getTaxRate().set(v.getTaxRate());
|
||||
getTaxPrice().set(v.getTaxPrice());
|
||||
getQuantity().set(v.getQuantity());
|
||||
|
||||
getStartDate().set(v.getStartDate());
|
||||
getEndDate().set(v.getEndDate());
|
||||
|
||||
getCreateDate().set(v.getCreateDate());
|
||||
getUpdateDate().set(v.getUpdateDate());
|
||||
getCreator().set(v.getCreator());
|
||||
getUpdater().set(v.getUpdater());
|
||||
getRemark().set(v.getRemark());
|
||||
|
||||
getTaxAmount().set(v.getTaxPrice() * v.getQuantity());
|
||||
getExclusiveTaxAmount().set(v.getExclusiveTaxPrice() * v.getQuantity());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ContractItem v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(contract.get(), v.getContract())) {
|
||||
v.setContract(contract.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(refId.get(), v.getRefId())) {
|
||||
v.setRefId(refId.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(code.get(), v.getItemCode())) {
|
||||
v.setItemCode(code.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(title.get(), v.getTitle())) {
|
||||
v.setTitle(title.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(specification.get(), v.getSpecification())) {
|
||||
v.setSpecification(specification.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(unit.get(), v.getUnit())) {
|
||||
v.setUnit(unit.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(inventory.get(), v.getInventory())) {
|
||||
v.setInventory(inventory.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!doubleEquals(exclusiveTaxPrice.get(), v.getExclusiveTaxPrice())) {
|
||||
v.setExclusiveTaxPrice(exclusiveTaxPrice.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!doubleEquals(taxRate.get(), v.getTaxRate())) {
|
||||
v.setTaxRate(taxRate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!doubleEquals(taxPrice.get(), v.getTaxPrice())) {
|
||||
v.setTaxPrice(taxPrice.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!doubleEquals(quantity.get(), v.getQuantity())) {
|
||||
v.setQuantity(quantity.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(startDate.get(), v.getStartDate())) {
|
||||
v.setStartDate(startDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(endDate.get(), v.getEndDate())) {
|
||||
v.setEndDate(endDate.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(createDate.get(), v.getCreateDate())) {
|
||||
v.setCreateDate(createDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(updateDate.get(), v.getUpdateDate())) {
|
||||
v.setUpdateDate(updateDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(creator.get(), v.getCreator())) {
|
||||
v.setCreator(creator.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(updater.get(), v.getUpdater())) {
|
||||
v.setUpdater(updater.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(remark.get(), v.getRemark())) {
|
||||
v.setRemark(remark.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
|
||||
return modified;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断两个 double 值是否相等
|
||||
*
|
||||
* @param a a
|
||||
* @param b b
|
||||
* @return 在误差范围内是否相同
|
||||
*/
|
||||
private boolean doubleEquals(double a, double b) {
|
||||
return Math.abs(a - b) < 0.0001;
|
||||
}
|
||||
|
||||
public static ContractItemViewModel from(ContractItem contractItem) {
|
||||
ContractItemViewModel viewModel = new ContractItemViewModel();
|
||||
viewModel.update(contractItem);
|
||||
return viewModel;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import com.ecep.contract.model.ContractKind;
|
||||
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ContractKindViewModel extends IdentityViewModel<ContractKind> {
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleStringProperty title = new SimpleStringProperty();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ContractKind v) {
|
||||
super.updateFrom(v);
|
||||
code.set(v.getCode());
|
||||
name.set(v.getName());
|
||||
title.set(v.getTitle());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ContractKind v) {
|
||||
boolean result = super.copyTo(v);
|
||||
v.setCode(code.get());
|
||||
v.setName(name.get());
|
||||
v.setTitle(title.get());
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
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.ContractPayPlan;
|
||||
|
||||
import javafx.beans.property.SimpleDoubleProperty;
|
||||
import javafx.beans.property.SimpleFloatProperty;
|
||||
import javafx.beans.property.SimpleIntegerProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ContractPayPlanViewModel extends IdentityViewModel<ContractPayPlan> {
|
||||
/**
|
||||
* 关联的合同对象
|
||||
*/
|
||||
SimpleObjectProperty<Contract> contract = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 关联的用友系统中的数据ID
|
||||
*/
|
||||
SimpleIntegerProperty refId = new SimpleIntegerProperty();
|
||||
|
||||
SimpleObjectProperty<LocalDate> payDate = new SimpleObjectProperty<>();
|
||||
SimpleFloatProperty payRatio = new SimpleFloatProperty();
|
||||
SimpleDoubleProperty payCurrency = new SimpleDoubleProperty();
|
||||
SimpleObjectProperty<String> payTerm = new SimpleObjectProperty<>();
|
||||
|
||||
SimpleObjectProperty<LocalDateTime> updateDate = new SimpleObjectProperty<>();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ContractPayPlan v) {
|
||||
super.updateFrom(v);
|
||||
getContract().set(v.getContract());
|
||||
getRefId().set(v.getRefId());
|
||||
getPayDate().set(v.getPayDate());
|
||||
getPayRatio().set(v.getPayRatio());
|
||||
getPayCurrency().set(v.getPayCurrency());
|
||||
getPayTerm().set(v.getPayTerm());
|
||||
getUpdateDate().set(v.getUpdateDate());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ContractPayPlan v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(contract.get(), v.getContract())) {
|
||||
v.setContract(contract.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(refId.get(), v.getRefId())) {
|
||||
v.setRefId(refId.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(payDate.get(), v.getPayDate())) {
|
||||
v.setPayDate(payDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!doubleEquals(payRatio.get(), v.getPayRatio())) {
|
||||
v.setPayRatio(payRatio.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!doubleEquals(payCurrency.get(), v.getPayCurrency())) {
|
||||
v.setPayCurrency(payCurrency.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(payTerm.get(), v.getPayTerm())) {
|
||||
v.setPayTerm(payTerm.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断两个 double 值是否相等
|
||||
*
|
||||
* @param a a
|
||||
* @param b b
|
||||
* @return 在误差范围内是否相同
|
||||
*/
|
||||
private boolean doubleEquals(double a, double b) {
|
||||
return Math.abs(a - b) < 0.0001;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import javafx.collections.ObservableList;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ContractTreeItemModel extends ContractViewModel
|
||||
{
|
||||
private ObservableList<ContractTreeItemModel> children;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import com.ecep.contract.model.ContractType;
|
||||
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ContractTypeViewModel extends IdentityViewModel<ContractType> {
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleStringProperty title = new SimpleStringProperty();
|
||||
|
||||
private SimpleStringProperty catalog = new SimpleStringProperty();
|
||||
private SimpleStringProperty direction = new SimpleStringProperty();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ContractType v) {
|
||||
super.updateFrom(v);
|
||||
code.set(v.getCode());
|
||||
name.set(v.getName());
|
||||
title.set(v.getTitle());
|
||||
catalog.set(v.getCatalog());
|
||||
direction.set(v.getDirection());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ContractType v) {
|
||||
boolean result = super.copyTo(v);
|
||||
v.setCode(code.get());
|
||||
v.setName(name.get());
|
||||
v.setTitle(title.get());
|
||||
v.setCatalog(catalog.get());
|
||||
v.setDirection(direction.get());
|
||||
return result;
|
||||
}
|
||||
}
|
||||
353
client/src/main/java/com/ecep/contract/vm/ContractViewModel.java
Normal file
353
client/src/main/java/com/ecep/contract/vm/ContractViewModel.java
Normal file
@@ -0,0 +1,353 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.ContractPayWay;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyContract;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.model.ContractGroup;
|
||||
import com.ecep.contract.model.ContractKind;
|
||||
import com.ecep.contract.model.ContractType;
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.model.Project;
|
||||
|
||||
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;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ContractViewModel extends IdentityViewModel<Contract> {
|
||||
private SimpleStringProperty guid = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<ContractPayWay> payWay = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleStringProperty state = new SimpleStringProperty();
|
||||
/**
|
||||
* 分组
|
||||
*/
|
||||
private SimpleObjectProperty<ContractGroup> group = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 分类
|
||||
*/
|
||||
private SimpleObjectProperty<ContractType> type = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 性质
|
||||
*/
|
||||
private SimpleObjectProperty<ContractKind> kind = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 主合同编号
|
||||
*/
|
||||
private SimpleStringProperty parentCode = new SimpleStringProperty();
|
||||
/**
|
||||
* 签订日期
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDate> orderDate = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 合同起始日期
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDate> startDate = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 合同截止日期
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDate> endDate = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleObjectProperty<Employee> setupPerson = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> setupDate = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 生效人
|
||||
*/
|
||||
private SimpleObjectProperty<Employee> inurePerson = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> inureDate = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 修改人
|
||||
*/
|
||||
private SimpleObjectProperty<Employee> varyPerson = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> varyDate = new SimpleObjectProperty<>();
|
||||
|
||||
/**
|
||||
* 文件夹
|
||||
*/
|
||||
private SimpleStringProperty path = new SimpleStringProperty();
|
||||
|
||||
private SimpleDoubleProperty amount = new SimpleDoubleProperty();
|
||||
private SimpleBooleanProperty standardPayWay = new SimpleBooleanProperty();
|
||||
private SimpleBooleanProperty standardContractText = new SimpleBooleanProperty();
|
||||
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<LocalDateTime> created = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleObjectProperty<Company> company = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 业务员
|
||||
*/
|
||||
private SimpleObjectProperty<Employee> employee = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 经办人
|
||||
*/
|
||||
private SimpleObjectProperty<Employee> handler = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 项目
|
||||
*/
|
||||
private SimpleObjectProperty<Project> project = new SimpleObjectProperty<>();
|
||||
|
||||
/**
|
||||
* 版本
|
||||
*/
|
||||
private SimpleIntegerProperty version = new SimpleIntegerProperty();
|
||||
|
||||
/**
|
||||
* 总数量
|
||||
*/
|
||||
private SimpleDoubleProperty totalQuantity = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 总金额
|
||||
*/
|
||||
private SimpleDoubleProperty totalAmount = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 总 不含税 金额
|
||||
*/
|
||||
private SimpleDoubleProperty totalUnTaxAmount = new SimpleDoubleProperty();
|
||||
|
||||
/**
|
||||
* 已执行数量
|
||||
*/
|
||||
private SimpleDoubleProperty execQuantity = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 已执行金额
|
||||
*/
|
||||
private SimpleDoubleProperty execAmount = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 已执行 不含税 金额
|
||||
*/
|
||||
private SimpleDoubleProperty execUnTaxAmount = new SimpleDoubleProperty();
|
||||
|
||||
public static ContractViewModel from(CompanyContract cc) {
|
||||
ContractViewModel model = new ContractViewModel();
|
||||
model.update(cc.getContract());
|
||||
return model;
|
||||
}
|
||||
|
||||
public static ContractViewModel from(Contract cc) {
|
||||
ContractViewModel model = new ContractViewModel();
|
||||
model.update(cc);
|
||||
return model;
|
||||
}
|
||||
|
||||
public void updateFrom(Contract c) {
|
||||
super.updateFrom(c);
|
||||
getGuid().set(c.getGuid());
|
||||
getPayWay().set(c.getPayWay());
|
||||
getCode().set(c.getCode());
|
||||
getName().set(c.getName());
|
||||
getState().set(c.getState());
|
||||
|
||||
getGroup().set(c.getGroup());
|
||||
getType().set(c.getType());
|
||||
getKind().set(c.getKind());
|
||||
|
||||
getParentCode().set(c.getParentCode());
|
||||
|
||||
getSetupPerson().set(c.getSetupPerson());
|
||||
getSetupDate().set(c.getSetupDate());
|
||||
|
||||
getOrderDate().set(c.getOrderDate());
|
||||
getStartDate().set(c.getStartDate());
|
||||
getEndDate().set(c.getEndDate());
|
||||
|
||||
getInurePerson().set(c.getInurePerson());
|
||||
getInureDate().set(c.getInureDate());
|
||||
|
||||
getVaryPerson().set(c.getVaryPerson());
|
||||
getVaryDate().set(c.getVaryDate());
|
||||
|
||||
getCompany().set(c.getCompany());
|
||||
getEmployee().set(c.getEmployee());
|
||||
getHandler().set(c.getHandler());
|
||||
getProject().set(c.getProject());
|
||||
|
||||
path.set(c.getPath());
|
||||
description.set(c.getDescription());
|
||||
amount.set(Objects.requireNonNullElse(c.getAmount(), 0D));
|
||||
standardPayWay.set(c.isStandardPayWay());
|
||||
standardContractText.set(c.isStandardPContractText());
|
||||
created.set(c.getCreated());
|
||||
version.set(c.getVersion());
|
||||
|
||||
getTotalQuantity().set(c.getTotalQuantity());
|
||||
getTotalAmount().set(c.getTotalAmount());
|
||||
getTotalUnTaxAmount().set(c.getTotalUnTaxAmount());
|
||||
getExecQuantity().set(c.getExecQuantity());
|
||||
getExecAmount().set(c.getExecAmount());
|
||||
getExecUnTaxAmount().set(c.getExecUnTaxAmount());
|
||||
}
|
||||
|
||||
public boolean copyTo(Contract contract) {
|
||||
boolean modified = super.copyTo(contract);
|
||||
if (!Objects.equals(guid.get(), contract.getGuid())) {
|
||||
contract.setGuid(guid.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(payWay.get(), contract.getPayWay())) {
|
||||
contract.setPayWay(payWay.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(code.get(), contract.getCode())) {
|
||||
contract.setCode(code.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(name.get(), contract.getName())) {
|
||||
contract.setName(name.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(state.get(), contract.getState())) {
|
||||
contract.setState(state.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(group.get(), contract.getGroup())) {
|
||||
contract.setGroup(group.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(type.get(), contract.getType())) {
|
||||
contract.setType(type.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(kind.get(), contract.getKind())) {
|
||||
contract.setKind(kind.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(parentCode.get(), contract.getParentCode())) {
|
||||
contract.setParentCode(parentCode.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(setupPerson.get(), contract.getSetupPerson())) {
|
||||
contract.setSetupPerson(setupPerson.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(setupDate.get(), contract.getSetupDate())) {
|
||||
contract.setSetupDate(setupDate.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(orderDate.get(), contract.getOrderDate())) {
|
||||
contract.setOrderDate(orderDate.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(startDate.get(), contract.getStartDate())) {
|
||||
contract.setStartDate(startDate.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(endDate.get(), contract.getEndDate())) {
|
||||
contract.setEndDate(endDate.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(inurePerson.get(), contract.getInurePerson())) {
|
||||
contract.setInurePerson(inurePerson.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(inureDate.get(), contract.getInureDate())) {
|
||||
contract.setInureDate(inureDate.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(varyPerson.get(), contract.getVaryPerson())) {
|
||||
contract.setVaryPerson(varyPerson.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(varyDate.get(), contract.getVaryDate())) {
|
||||
contract.setVaryDate(varyDate.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(path.get(), contract.getPath())) {
|
||||
contract.setPath(path.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(description.get(), contract.getDescription())) {
|
||||
contract.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getEmployee().get(), contract.getEmployee())) {
|
||||
contract.setEmployee(getEmployee().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getHandler().get(), contract.getHandler())) {
|
||||
contract.setHandler(getHandler().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getCompany().get(), contract.getCompany())) {
|
||||
contract.setCompany(getCompany().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getProject().get(), contract.getProject())) {
|
||||
contract.setProject(getProject().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(amount.get(), contract.getAmount())) {
|
||||
contract.setAmount(amount.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(standardPayWay.get(), contract.isStandardPayWay())) {
|
||||
contract.setStandardPayWay(standardPayWay.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(standardContractText.get(), contract.isStandardPContractText())) {
|
||||
contract.setStandardPContractText(standardContractText.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!doubleEquals(totalQuantity.get(), contract.getTotalQuantity())) {
|
||||
contract.setTotalQuantity(totalQuantity.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!doubleEquals(totalAmount.get(), contract.getTotalAmount())) {
|
||||
contract.setTotalAmount(totalAmount.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!doubleEquals(totalUnTaxAmount.get(), contract.getTotalUnTaxAmount())) {
|
||||
contract.setTotalUnTaxAmount(totalUnTaxAmount.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!doubleEquals(execQuantity.get(), contract.getExecQuantity())) {
|
||||
contract.setExecQuantity(execQuantity.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!doubleEquals(execAmount.get(), contract.getExecAmount())) {
|
||||
contract.setExecAmount(execAmount.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!doubleEquals(execUnTaxAmount.get(), contract.getExecUnTaxAmount())) {
|
||||
contract.setExecUnTaxAmount(execUnTaxAmount.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(created.get(), contract.getCreated())) {
|
||||
contract.setCreated(created.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
private boolean doubleEquals(double a, double b) {
|
||||
return Math.abs(a - b) < 0.0001;
|
||||
}
|
||||
}
|
||||
189
client/src/main/java/com/ecep/contract/vm/CurrentEmployee.java
Normal file
189
client/src/main/java/com/ecep/contract/vm/CurrentEmployee.java
Normal file
@@ -0,0 +1,189 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import com.ecep.contract.Desktop;
|
||||
import com.ecep.contract.MyDateTimeUtils;
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.controller.CurrentEmployeeInitialedEvent;
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.model.EmployeeRole;
|
||||
import com.ecep.contract.service.EmployeeService;
|
||||
|
||||
import javafx.application.Platform;
|
||||
import javafx.beans.property.SimpleListProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.util.converter.CurrencyStringConverter;
|
||||
import javafx.util.converter.LocalDateStringConverter;
|
||||
import javafx.util.converter.LocalDateTimeStringConverter;
|
||||
import javafx.util.converter.NumberStringConverter;
|
||||
import lombok.ToString;
|
||||
|
||||
/**
|
||||
* 当前登录用户
|
||||
*/
|
||||
@ToString(callSuper = false, exclude = "roles")
|
||||
public class CurrentEmployee extends EmployeeViewModel {
|
||||
private static final Logger logger = LoggerFactory.getLogger(CurrentEmployee.class);
|
||||
/**
|
||||
* 语言环境
|
||||
*/
|
||||
private SimpleObjectProperty<Locale> locale = new SimpleObjectProperty<>(Locale.getDefault());
|
||||
/**
|
||||
* 角色
|
||||
*/
|
||||
private SimpleListProperty<EmployeeRole> roles = new SimpleListProperty<>(FXCollections.observableArrayList());
|
||||
|
||||
private DateTimeFormatter dateFormatter = DateTimeFormatter
|
||||
.ofPattern(MyDateTimeUtils.DEFAULT_DATE_FORMAT_PATTERN);
|
||||
private DateTimeFormatter dateTimeFormatter = DateTimeFormatter
|
||||
.ofPattern(MyDateTimeUtils.DEFAULT_DATETIME_FORMAT_PATTERN);
|
||||
private DateTimeFormatter timeFormatter = DateTimeFormatter
|
||||
.ofPattern(MyDateTimeUtils.DEFAULT_TIME_FORMAT_PATTERN);
|
||||
|
||||
private LocalDateStringConverter localDateStringConverter = new LocalDateStringConverter(
|
||||
dateFormatter, null);
|
||||
private LocalDateTimeStringConverter localDateTimeStringConverter = new LocalDateTimeStringConverter(
|
||||
dateTimeFormatter, null);
|
||||
|
||||
private NumberStringConverter numberStringConverter = new NumberStringConverter("#,##0.00");
|
||||
private CurrencyStringConverter currencyStringConverter = new CurrencyStringConverter("#,##0.00");
|
||||
|
||||
/**
|
||||
* 是否系统管理员
|
||||
*/
|
||||
public boolean isSystemAdministrator() {
|
||||
return roles.stream().anyMatch(EmployeeRole::isSystemAdministrator);
|
||||
}
|
||||
|
||||
/**
|
||||
* 语言环境属性
|
||||
*/
|
||||
public SimpleObjectProperty<Locale> localeProperty() {
|
||||
return locale;
|
||||
}
|
||||
|
||||
/**
|
||||
* 角色属性
|
||||
*/
|
||||
public SimpleListProperty<EmployeeRole> rolesProperty() {
|
||||
return roles;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(Employee v) {
|
||||
super.updateFrom(v);
|
||||
|
||||
// 根据用户的个人配置修改
|
||||
if (StringUtils.hasText(v.getLocale())) {
|
||||
try {
|
||||
localeProperty().set(Locale.forLanguageTag(v.getLocale()));
|
||||
} catch (Exception e) {
|
||||
handleException("解析设置用户区域设置失败," + v.getLocale(), e);
|
||||
}
|
||||
}
|
||||
if (StringUtils.hasText(v.getDateFormatter())) {
|
||||
try {
|
||||
dateFormatter = DateTimeFormatter.ofPattern(v.getDateFormatter());
|
||||
localDateStringConverter = new LocalDateStringConverter(dateFormatter, null);
|
||||
} catch (Exception e) {
|
||||
handleException("解析设置用户日期格式失败," + v.getDateFormatter(), e);
|
||||
}
|
||||
}
|
||||
if (StringUtils.hasText(v.getDateTimeFormatter())) {
|
||||
try {
|
||||
dateTimeFormatter = DateTimeFormatter.ofPattern(v.getDateTimeFormatter());
|
||||
localDateTimeStringConverter = new LocalDateTimeStringConverter(dateTimeFormatter, null);
|
||||
} catch (Exception e) {
|
||||
handleException("解析设置用户日期时间格式失败," + v.getDateTimeFormatter(), e);
|
||||
}
|
||||
}
|
||||
|
||||
if (StringUtils.hasText(v.getNumberFormatter())) {
|
||||
try {
|
||||
numberStringConverter = new NumberStringConverter(localeProperty().get(), v.getNumberFormatter());
|
||||
} catch (Exception e) {
|
||||
handleException("解析设置用户数字格式失败," + v.getNumberFormatter(), e);
|
||||
}
|
||||
}
|
||||
|
||||
if (StringUtils.hasText(v.getCurrencyFormatter())) {
|
||||
try {
|
||||
currencyStringConverter = new CurrencyStringConverter(localeProperty().get(), v.getCurrencyFormatter());
|
||||
} catch (Exception e) {
|
||||
handleException("解析设置用户货币格式失败," + v.getCurrencyFormatter(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化
|
||||
*/
|
||||
public CompletableFuture<Void> initialize() {
|
||||
CompletableFuture<Void> future = new CompletableFuture<>();
|
||||
ScheduledExecutorService executorService = Desktop.instance.getExecutorService();
|
||||
/**
|
||||
* 异步初始化当前用户
|
||||
* 1. 从数据库中查询当前用户
|
||||
* 2. 从数据库中查询当前用户的角色
|
||||
* 3. 更新当前用户的信息
|
||||
* 4. 更新当前用户的角色
|
||||
*/
|
||||
executorService.submit(() -> {
|
||||
// issue #1 sss 2020-07-05
|
||||
EmployeeService employeeService = SpringApp.getBean(EmployeeService.class);
|
||||
Employee employee = employeeService.findById(Desktop.instance.getActiveEmployeeId());
|
||||
List<EmployeeRole> roles = employeeService.getRolesByEmployeeId(employee.getId());
|
||||
Platform.runLater(() -> {
|
||||
update(employee);
|
||||
rolesProperty().setAll(roles);
|
||||
// 发布事件
|
||||
SpringApp.context.publishEvent(new CurrentEmployeeInitialedEvent(this));
|
||||
future.complete(null);
|
||||
});
|
||||
});
|
||||
/**
|
||||
* 定时更新用户活动状态
|
||||
*/
|
||||
executorService.scheduleWithFixedDelay(() -> {
|
||||
try {
|
||||
SpringApp.getBean(EmployeeService.class).updateActive(Desktop.instance.getSessionId());
|
||||
} catch (Exception e) {
|
||||
if (logger.isErrorEnabled()) {
|
||||
logger.error("updateActive:{}", e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
}, 10, 10, TimeUnit.SECONDS);
|
||||
return future;
|
||||
}
|
||||
|
||||
private void handleException(String msg, Exception e) {
|
||||
logger.warn(msg, e);
|
||||
}
|
||||
|
||||
public LocalDateStringConverter getLocalDateStringConverter() {
|
||||
return localDateStringConverter;
|
||||
}
|
||||
|
||||
public LocalDateTimeStringConverter getLocalDateTimeStringConverter() {
|
||||
return localDateTimeStringConverter;
|
||||
}
|
||||
|
||||
public NumberStringConverter getNumberStringConverter() {
|
||||
return numberStringConverter;
|
||||
}
|
||||
|
||||
public CurrencyStringConverter getCurrencyStringConverter() {
|
||||
return currencyStringConverter;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.CompanyCustomer;
|
||||
import com.ecep.contract.model.CompanyCustomerEntity;
|
||||
import com.ecep.contract.model.CustomerCatalog;
|
||||
import com.ecep.contract.model.Employee;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class CustomerEntityViewModel extends IdentityViewModel<CompanyCustomerEntity> {
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleStringProperty abbName = new SimpleStringProperty();
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
/**
|
||||
* 分组
|
||||
*/
|
||||
private SimpleObjectProperty<CustomerCatalog> catalog = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 关联的企业
|
||||
*/
|
||||
private SimpleObjectProperty<CompanyCustomer> customer = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 发展日期
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDate> developDate = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<Employee> creator = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<Employee> modifier = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> modifyDate = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 从U8系统同步时间
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDate> updatedDate = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDateTime> fetchedTime = new SimpleObjectProperty<>();
|
||||
|
||||
public static CustomerEntityViewModel from(CompanyCustomerEntity cc) {
|
||||
CustomerEntityViewModel model = new CustomerEntityViewModel();
|
||||
model.update(cc);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(CompanyCustomerEntity v) {
|
||||
super.updateFrom(v);
|
||||
getName().set(v.getName());
|
||||
getAbbName().set(v.getAbbName());
|
||||
getCode().set(v.getCode());
|
||||
getCatalog().set(v.getCatalog());
|
||||
getCustomer().set(v.getCustomer());
|
||||
getDevelopDate().set(v.getDevelopDate());
|
||||
getCreator().set(v.getCreator());
|
||||
getModifier().set(v.getModifier());
|
||||
getModifyDate().set(v.getModifyDate());
|
||||
getUpdatedDate().set(v.getUpdatedDate());
|
||||
getFetchedTime().set(v.getFetchedTime());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(CompanyCustomerEntity v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(name.get(), v.getName())) {
|
||||
v.setName(name.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(abbName.get(), v.getAbbName())) {
|
||||
v.setAbbName(abbName.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(code.get(), v.getCode())) {
|
||||
v.setCode(code.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(catalog.get(), v.getCatalog())) {
|
||||
v.setCatalog(catalog.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(customer.get(), v.getCustomer())) {
|
||||
v.setCustomer(customer.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(developDate.get(), v.getDevelopDate())) {
|
||||
v.setDevelopDate(developDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(creator.get(), v.getCreator())) {
|
||||
v.setCreator(creator.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(modifier.get(), v.getModifier())) {
|
||||
v.setModifier(modifier.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(modifyDate.get(), v.getModifyDate())) {
|
||||
v.setModifyDate(modifyDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(updatedDate.get(), v.getUpdatedDate())) {
|
||||
v.setUpdatedDate(updatedDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(fetchedTime.get(), v.getFetchedTime())) {
|
||||
v.setFetchedTime(fetchedTime.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.CustomerSatisfactionSurvey;
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.model.Project;
|
||||
|
||||
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 CustomerSatisfactionSurveyViewModel extends IdentityViewModel<CustomerSatisfactionSurvey> implements ProjectBasedViewModel {
|
||||
/**
|
||||
* 关联的项目
|
||||
*/
|
||||
private SimpleObjectProperty<Project> project = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
|
||||
private SimpleObjectProperty<LocalDate> date = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleIntegerProperty totalScore = new SimpleIntegerProperty();
|
||||
private SimpleStringProperty data = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<Employee> applicant = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDateTime> applyTime = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 说明、注释
|
||||
*/
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(CustomerSatisfactionSurvey v) {
|
||||
super.updateFrom(v);
|
||||
getProject().set(v.getProject());
|
||||
getCode().set(v.getCode());
|
||||
getDate().set(v.getDate());
|
||||
getTotalScore().set(v.getTotalScore());
|
||||
getData().set(v.getData());
|
||||
getApplicant().set(v.getApplicant());
|
||||
getApplyTime().set(v.getApplyTime());
|
||||
getDescription().set(v.getDescription());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(CustomerSatisfactionSurvey v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(getProject().get(), v.getProject())) {
|
||||
v.setProject(getProject().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getCode().get(), v.getCode())) {
|
||||
v.setCode(getCode().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getDate().get(), v.getDate())) {
|
||||
v.setDate(getDate().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getTotalScore().get(), v.getTotalScore())) {
|
||||
v.setTotalScore(getTotalScore().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getData().get(), v.getData())) {
|
||||
v.setData(getData().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getApplicant().get(), v.getApplicant())) {
|
||||
v.setApplicant(getApplicant().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getApplyTime().get(), v.getApplyTime())) {
|
||||
v.setApplyTime(getApplyTime().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getDescription().get(), v.getDescription())) {
|
||||
v.setDescription(getDescription().get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.DeliverySignMethod;
|
||||
import com.ecep.contract.model.ProjectSaleType;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 交付或签收方式
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class DeliverySignMethodViewModel extends IdentityViewModel<DeliverySignMethod> {
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<LocalDate> created = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleObjectProperty<ProjectSaleType> saleType = new SimpleObjectProperty<>();
|
||||
|
||||
public static DeliverySignMethodViewModel from(DeliverySignMethod v) {
|
||||
DeliverySignMethodViewModel model = new DeliverySignMethodViewModel();
|
||||
model.update(v);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(DeliverySignMethod v) {
|
||||
super.updateFrom(v);
|
||||
getName().set(v.getName());
|
||||
getCode().set(v.getCode());
|
||||
getDescription().set(v.getDescription());
|
||||
getSaleType().set(v.getSaleType());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(DeliverySignMethod v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(getName().get(), v.getName())) {
|
||||
v.setName(getName().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getCode().get(), v.getCode())) {
|
||||
v.setCode(getCode().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getDescription().get(), v.getDescription())) {
|
||||
v.setDescription(getDescription().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getSaleType().get(), v.getSaleType())) {
|
||||
v.setSaleType(getSaleType().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Department;
|
||||
import com.ecep.contract.model.Employee;
|
||||
|
||||
import javafx.beans.property.SimpleBooleanProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class DepartmentViewModel extends IdentityViewModel<Department> {
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<Employee> leader = new SimpleObjectProperty<>();
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleBooleanProperty isActive = new SimpleBooleanProperty();
|
||||
|
||||
public static DepartmentViewModel from(Department v) {
|
||||
DepartmentViewModel model = new DepartmentViewModel();
|
||||
model.update(v);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(Department v) {
|
||||
super.updateFrom(v);
|
||||
getName().set(v.getName());
|
||||
getCode().set(v.getCode());
|
||||
getLeader().set(v.getLeader());
|
||||
getIsActive().set(v.isActive());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(Department v) {
|
||||
if (v == null) return false;
|
||||
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(name.get(), v.getName())) {
|
||||
v.setName(name.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(code.get(), v.getCode())) {
|
||||
v.setCode(code.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(leader.get(), v.getLeader())) {
|
||||
v.setLeader(leader.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(isActive.get(), v.isActive())) {
|
||||
v.setActive(isActive.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.model.EmployeeAuthBind;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class EmployeeAuthBindViewModel extends IdentityViewModel<EmployeeAuthBind> implements EmployeeBasedViewModel {
|
||||
private SimpleStringProperty ip = new SimpleStringProperty();
|
||||
private SimpleStringProperty mac = new SimpleStringProperty();
|
||||
|
||||
private SimpleObjectProperty<Employee> employee = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleObjectProperty<LocalDateTime> createTime = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleObjectProperty<Employee> updater = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDateTime> updateTime = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
|
||||
|
||||
public static EmployeeAuthBindViewModel from(EmployeeAuthBind v) {
|
||||
EmployeeAuthBindViewModel vm = new EmployeeAuthBindViewModel();
|
||||
vm.update(v);
|
||||
return vm;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void updateFrom(EmployeeAuthBind v) {
|
||||
super.updateFrom(v);
|
||||
getIp().set(v.getIp());
|
||||
getMac().set(v.getMac());
|
||||
getEmployee().set(v.getEmployee());
|
||||
getCreateTime().set(v.getCreateTime());
|
||||
getUpdater().set(v.getUpdater());
|
||||
getUpdateTime().set(v.getUpdateTime());
|
||||
getDescription().set(v.getDescription());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(EmployeeAuthBind v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(getIp().get(), v.getIp())) {
|
||||
v.setIp(getIp().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getMac().get(), v.getMac())) {
|
||||
v.setMac(getMac().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getEmployee().get(), v.getEmployee())) {
|
||||
v.setEmployee(getEmployee().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getCreateTime().get(), v.getCreateTime())) {
|
||||
v.setCreateTime(getCreateTime().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getUpdater().get(), v.getUpdater())) {
|
||||
v.setUpdater(getUpdater().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getUpdateTime().get(), v.getUpdateTime())) {
|
||||
v.setUpdateTime(getUpdateTime().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getDescription().get(), v.getDescription())) {
|
||||
v.setDescription(getDescription().get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import com.ecep.contract.model.Employee;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
|
||||
public interface EmployeeBasedViewModel {
|
||||
SimpleObjectProperty<Employee> getEmployee();
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.model.EmployeeLoginHistory;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class EmployeeLoginHistoryViewModel extends IdentityViewModel<EmployeeLoginHistory> implements EmployeeBasedViewModel {
|
||||
private SimpleStringProperty ip = new SimpleStringProperty();
|
||||
private SimpleStringProperty mac = new SimpleStringProperty();
|
||||
|
||||
private SimpleObjectProperty<Employee> employee = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleObjectProperty<LocalDateTime> loginTime = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDateTime> activeTime = new SimpleObjectProperty<>();
|
||||
|
||||
|
||||
public static EmployeeLoginHistoryViewModel from(EmployeeLoginHistory v) {
|
||||
EmployeeLoginHistoryViewModel vm = new EmployeeLoginHistoryViewModel();
|
||||
vm.update(v);
|
||||
return vm;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void updateFrom(EmployeeLoginHistory v) {
|
||||
super.updateFrom(v);
|
||||
getIp().set(v.getIp());
|
||||
getMac().set(v.getMac());
|
||||
getEmployee().set(v.getEmployee());
|
||||
getLoginTime().set(v.getLoginTime());
|
||||
getActiveTime().set(v.getActiveTime());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(EmployeeLoginHistory v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(getIp().get(), v.getIp())) {
|
||||
v.setIp(getIp().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getMac().get(), v.getMac())) {
|
||||
v.setMac(getMac().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getEmployee().get(), v.getEmployee())) {
|
||||
v.setEmployee(getEmployee().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getLoginTime().get(), v.getLoginTime())) {
|
||||
v.setLoginTime(getLoginTime().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getActiveTime().get(), v.getActiveTime())) {
|
||||
v.setActiveTime(getActiveTime().get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.EmployeeRole;
|
||||
|
||||
import javafx.beans.property.SimpleBooleanProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class EmployeeRoleViewModel extends IdentityViewModel<EmployeeRole> {
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleBooleanProperty systemAdministrator = new SimpleBooleanProperty();
|
||||
private SimpleBooleanProperty manager = new SimpleBooleanProperty();
|
||||
private SimpleBooleanProperty active = new SimpleBooleanProperty();
|
||||
|
||||
public static EmployeeRoleViewModel from(EmployeeRole v) {
|
||||
EmployeeRoleViewModel model = new EmployeeRoleViewModel();
|
||||
model.update(v);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(EmployeeRole v) {
|
||||
super.updateFrom(v);
|
||||
getCode().set(v.getCode());
|
||||
getName().set(v.getName());
|
||||
getSystemAdministrator().set(v.isSystemAdministrator());
|
||||
getManager().set(v.isManager());
|
||||
getActive().set(v.isActive());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(EmployeeRole v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(getCode().get(), v.getCode())) {
|
||||
v.setCode(getCode().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getName().get(), v.getName())) {
|
||||
v.setName(getName().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getSystemAdministrator().get(), v.isSystemAdministrator())) {
|
||||
v.setSystemAdministrator(getSystemAdministrator().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getManager().get(), v.isManager())) {
|
||||
v.setManager(getManager().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getActive().get(), v.isActive())) {
|
||||
v.setActive(getActive().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
109
client/src/main/java/com/ecep/contract/vm/EmployeeViewModel.java
Normal file
109
client/src/main/java/com/ecep/contract/vm/EmployeeViewModel.java
Normal file
@@ -0,0 +1,109 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Department;
|
||||
import com.ecep.contract.model.Employee;
|
||||
|
||||
import javafx.beans.property.SimpleBooleanProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class EmployeeViewModel extends IdentityViewModel<Employee> {
|
||||
private SimpleStringProperty account = new SimpleStringProperty();
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<Department> department = new SimpleObjectProperty<>();
|
||||
private SimpleStringProperty alias = new SimpleStringProperty();
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleStringProperty email = new SimpleStringProperty();
|
||||
private SimpleStringProperty phone = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<LocalDate> created = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> entryDate = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> leaveDate = new SimpleObjectProperty<>();
|
||||
private SimpleBooleanProperty isActive = new SimpleBooleanProperty();
|
||||
|
||||
public static EmployeeViewModel from(Employee v) {
|
||||
EmployeeViewModel model = new EmployeeViewModel();
|
||||
model.update(v);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(Employee v) {
|
||||
super.updateFrom(v);
|
||||
getAccount().set(v.getAccount());
|
||||
getName().set(v.getName());
|
||||
getDepartment().set(v.getDepartment());
|
||||
// getRoles().set(FXCollections.observableArrayList(v.getRoles()));
|
||||
getAlias().set(v.getAlias());
|
||||
getCode().set(v.getCode());
|
||||
getEmail().set(v.getEmail());
|
||||
getPhone().set(v.getPhone());
|
||||
getCreated().set(v.getCreated());
|
||||
getEntryDate().set(v.getEntryDate());
|
||||
getLeaveDate().set(v.getLeaveDate());
|
||||
getIsActive().set(v.isActive());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(Employee v) {
|
||||
if (v == null)
|
||||
return false;
|
||||
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(account.get(), v.getAccount())) {
|
||||
v.setAccount(account.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(name.get(), v.getName())) {
|
||||
v.setName(name.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(department.get(), v.getDepartment())) {
|
||||
v.setDepartment(department.get());
|
||||
modified = true;
|
||||
}
|
||||
// if (!Objects.equals(roles.get(), v.getRoles())) {
|
||||
// v.setRoles(roles.get());
|
||||
// modified = true;
|
||||
// }
|
||||
if (!Objects.equals(alias.get(), v.getAlias())) {
|
||||
v.setAlias(alias.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(code.get(), v.getCode())) {
|
||||
v.setCode(code.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(email.get(), v.getEmail())) {
|
||||
v.setEmail(email.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(phone.get(), v.getPhone())) {
|
||||
v.setPhone(phone.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(created.get(), v.getCreated())) {
|
||||
v.setCreated(created.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(entryDate.get(), v.getEntryDate())) {
|
||||
v.setEntryDate(entryDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(leaveDate.get(), v.getLeaveDate())) {
|
||||
v.setLeaveDate(leaveDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(isActive.get(), v.isActive())) {
|
||||
v.setActive(isActive.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.model.ExtendVendorInfo;
|
||||
import com.ecep.contract.model.VendorGroup;
|
||||
|
||||
import javafx.beans.property.SimpleBooleanProperty;
|
||||
import javafx.beans.property.SimpleIntegerProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ExtendVendorInfoViewModel extends IdentityViewModel<ExtendVendorInfo> {
|
||||
/**
|
||||
* 关联的合同
|
||||
*/
|
||||
private SimpleObjectProperty<Contract> contract = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 供应商分组
|
||||
*/
|
||||
private SimpleObjectProperty<VendorGroup> group = new SimpleObjectProperty<>();
|
||||
|
||||
/**
|
||||
* 合同序号
|
||||
*/
|
||||
private SimpleIntegerProperty codeSequenceNumber = new SimpleIntegerProperty();
|
||||
|
||||
/**
|
||||
* 是否已指定供应商
|
||||
*/
|
||||
private SimpleBooleanProperty assignedProvider = new SimpleBooleanProperty();
|
||||
/**
|
||||
* 是否是预采购
|
||||
*/
|
||||
private SimpleBooleanProperty prePurchase = new SimpleBooleanProperty();
|
||||
|
||||
public static ExtendVendorInfoViewModel from(ExtendVendorInfo v) {
|
||||
ExtendVendorInfoViewModel vm = new ExtendVendorInfoViewModel();
|
||||
vm.updateFrom(v);
|
||||
return vm;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ExtendVendorInfo v) {
|
||||
super.updateFrom(v);
|
||||
getContract().set(v.getContract());
|
||||
getGroup().set(v.getGroup());
|
||||
getCodeSequenceNumber().set(v.getCodeSequenceNumber());
|
||||
getAssignedProvider().set(v.isAssignedProvider());
|
||||
getPrePurchase().set(v.isPrePurchase());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ExtendVendorInfo v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(contract.get(), v.getContract())) {
|
||||
v.setContract(contract.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(group.get(), v.getGroup())) {
|
||||
v.setGroup(group.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(codeSequenceNumber.get(), v.getCodeSequenceNumber())) {
|
||||
v.setCodeSequenceNumber(codeSequenceNumber.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(assignedProvider.get(), v.isAssignedProvider())) {
|
||||
v.setAssignedProvider(assignedProvider.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(prePurchase.get(), v.isPrePurchase())) {
|
||||
v.setPrePurchase(prePurchase.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Function;
|
||||
|
||||
import javafx.beans.property.SimpleBooleanProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class FunctionViewModel extends IdentityViewModel<Function> {
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleStringProperty key = new SimpleStringProperty();
|
||||
private SimpleStringProperty controller = new SimpleStringProperty();
|
||||
private SimpleStringProperty icon = new SimpleStringProperty();
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
private SimpleBooleanProperty active = new SimpleBooleanProperty();
|
||||
|
||||
public static FunctionViewModel from(Function v) {
|
||||
FunctionViewModel model = new FunctionViewModel();
|
||||
model.update(v);
|
||||
return model;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void updateFrom(Function v) {
|
||||
super.updateFrom(v);
|
||||
getName().set(v.getName());
|
||||
getKey().set(v.getKey());
|
||||
getController().set(v.getController());
|
||||
getIcon().set(v.getIcon());
|
||||
getDescription().set(v.getDescription());
|
||||
getActive().set(v.isActive());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(Function v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(name.get(), v.getName())) {
|
||||
v.setName(name.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(key.get(), v.getKey())) {
|
||||
v.setKey(key.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(controller.get(), v.getController())) {
|
||||
v.setController(controller.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(icon.get(), v.getIcon())) {
|
||||
v.setIcon(icon.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(description.get(), v.getDescription())) {
|
||||
v.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
if (active.get() != v.isActive()) {
|
||||
v.setActive(active.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.IdentityEntity;
|
||||
import com.ecep.contract.service.ViewModelService;
|
||||
|
||||
import javafx.beans.property.SimpleIntegerProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class IdentityViewModel<T extends IdentityEntity> extends BaseViewModel<T> {
|
||||
/**
|
||||
* 主键Id
|
||||
*/
|
||||
private SimpleIntegerProperty id = new SimpleIntegerProperty();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(T v) {
|
||||
super.updateFrom(v);
|
||||
id.set(v.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(T v) {
|
||||
boolean changed = super.copyTo(v);
|
||||
if (!Objects.equals(id.get(), v.getId())) {
|
||||
v.setId(id.get());
|
||||
changed = true;
|
||||
}
|
||||
return changed;
|
||||
}
|
||||
|
||||
public <TV extends IdentityViewModel<T>> void saveInFxApplicationThread(ViewModelService<T, TV> service) {
|
||||
T cloudRk = service.findById(getId().get());
|
||||
if (copyTo(cloudRk)) {
|
||||
T saved = service.save(cloudRk);
|
||||
updateInFxApplicationThread(saved, this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.MonthDay;
|
||||
import java.time.Year;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.HistoryPrice;
|
||||
import com.ecep.contract.model.Inventory;
|
||||
import com.ecep.contract.model.InventoryHistoryPrice;
|
||||
|
||||
import javafx.beans.property.SimpleDoubleProperty;
|
||||
import javafx.beans.property.SimpleFloatProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class InventoryHistoryPriceViewModel extends IdentityViewModel<InventoryHistoryPrice> {
|
||||
private SimpleObjectProperty<Inventory> inventory = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<Year> year = new SimpleObjectProperty<>();
|
||||
// latest price
|
||||
private SimpleFloatProperty latestSaleTax = new SimpleFloatProperty();
|
||||
private SimpleDoubleProperty latestSalePrice = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty latestSaleTaxPrice = new SimpleDoubleProperty();
|
||||
private SimpleObjectProperty<MonthDay> latestSalePriceDate = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleFloatProperty latestPurchaseTax = new SimpleFloatProperty();
|
||||
private SimpleDoubleProperty latestPurchasePrice = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty latestPurchaseTaxPrice = new SimpleDoubleProperty();
|
||||
private SimpleObjectProperty<MonthDay> latestPurchasePriceDate = new SimpleObjectProperty<>();
|
||||
// mini price
|
||||
private SimpleFloatProperty miniSaleTax = new SimpleFloatProperty();
|
||||
private SimpleDoubleProperty miniSalePrice = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty miniSaleTaxPrice = new SimpleDoubleProperty();
|
||||
private SimpleObjectProperty<MonthDay> miniSalePriceDate = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleFloatProperty miniPurchaseTax = new SimpleFloatProperty();
|
||||
private SimpleDoubleProperty miniPurchasePrice = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty miniPurchaseTaxPrice = new SimpleDoubleProperty();
|
||||
private SimpleObjectProperty<MonthDay> miniPurchasePriceDate = new SimpleObjectProperty<>();
|
||||
// max price
|
||||
private SimpleFloatProperty maxSaleTax = new SimpleFloatProperty();
|
||||
private SimpleDoubleProperty maxSalePrice = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty maxSaleTaxPrice = new SimpleDoubleProperty();
|
||||
private SimpleObjectProperty<MonthDay> maxSalePriceDate = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleFloatProperty maxPurchaseTax = new SimpleFloatProperty();
|
||||
private SimpleDoubleProperty maxPurchasePrice = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty maxPurchaseTaxPrice = new SimpleDoubleProperty();
|
||||
private SimpleObjectProperty<MonthDay> maxPurchasePriceDate = new SimpleObjectProperty<>();
|
||||
|
||||
void updateHistoryPrice(HistoryPrice historyPrice,
|
||||
SimpleFloatProperty taxProperty,
|
||||
SimpleDoubleProperty priceProperty, SimpleDoubleProperty taxPriceProperty,
|
||||
SimpleObjectProperty<MonthDay> monthDayProperty
|
||||
) {
|
||||
if (historyPrice == null) {
|
||||
taxProperty.set(0);
|
||||
priceProperty.set(0);
|
||||
taxPriceProperty.set(0);
|
||||
monthDayProperty.set(null);
|
||||
return;
|
||||
}
|
||||
taxProperty.set(historyPrice.getTaxRate());
|
||||
priceProperty.set(historyPrice.getPreTaxPrice());
|
||||
taxPriceProperty.set(historyPrice.getPostTaxPrice());
|
||||
monthDayProperty.set(historyPrice.getMonthDay());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(InventoryHistoryPrice v) {
|
||||
super.updateFrom(v);
|
||||
inventory.set(v.getInventory());
|
||||
year.set(v.getYear());
|
||||
// latest price
|
||||
updateHistoryPrice(v.getLatestPurchasePrice(), latestPurchaseTax, latestPurchasePrice, latestPurchaseTaxPrice, latestPurchasePriceDate);
|
||||
updateHistoryPrice(v.getLatestSalePrice(), latestSaleTax, latestSalePrice, latestSaleTaxPrice, latestSalePriceDate);
|
||||
|
||||
// min price
|
||||
updateHistoryPrice(v.getMiniPurchasePrice(), miniPurchaseTax, miniPurchasePrice, miniPurchaseTaxPrice, miniPurchasePriceDate);
|
||||
updateHistoryPrice(v.getMiniSalePrice(), miniSaleTax, miniSalePrice, miniSaleTaxPrice, miniSalePriceDate);
|
||||
|
||||
// max price
|
||||
updateHistoryPrice(v.getMaxPurchasePrice(), maxPurchaseTax, maxPurchasePrice, maxPurchaseTaxPrice, maxPurchasePriceDate);
|
||||
updateHistoryPrice(v.getMaxSalePrice(), maxSaleTax, maxSalePrice, maxSaleTaxPrice, maxSalePriceDate);
|
||||
}
|
||||
|
||||
boolean copyTo(HistoryPrice historyPrice,
|
||||
SimpleFloatProperty taxProperty,
|
||||
SimpleDoubleProperty priceProperty, SimpleDoubleProperty taxPriceProperty,
|
||||
SimpleObjectProperty<MonthDay> monthDayProperty
|
||||
) {
|
||||
boolean modified = false;
|
||||
if (!Objects.equals(priceProperty.get(), historyPrice.getPreTaxPrice())) {
|
||||
historyPrice.setPreTaxPrice(priceProperty.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(taxProperty.get(), historyPrice.getTaxRate())) {
|
||||
historyPrice.setTaxRate(taxProperty.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(taxPriceProperty.get(), historyPrice.getPostTaxPrice())) {
|
||||
historyPrice.setPostTaxPrice(taxPriceProperty.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(monthDayProperty.get(), historyPrice.getMonthDay())) {
|
||||
historyPrice.setMonthDay(monthDayProperty.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(InventoryHistoryPrice v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(inventory.get(), v.getInventory())) {
|
||||
v.setInventory(inventory.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(year.get(), v.getYear())) {
|
||||
v.setYear(year.get().getValue());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
// latest price
|
||||
if (copyTo(v.getLatestPurchasePrice(), latestPurchaseTax, latestPurchasePrice, latestPurchaseTaxPrice, latestPurchasePriceDate)) {
|
||||
modified = true;
|
||||
}
|
||||
if (copyTo(v.getLatestSalePrice(), latestSaleTax, latestSalePrice, latestSaleTaxPrice, latestSalePriceDate)) {
|
||||
modified = true;
|
||||
}
|
||||
|
||||
|
||||
// mini price
|
||||
if (copyTo(v.getMiniPurchasePrice(), miniPurchaseTax, miniPurchasePrice, miniPurchaseTaxPrice, miniPurchasePriceDate)) {
|
||||
modified = true;
|
||||
}
|
||||
if (copyTo(v.getMiniSalePrice(), miniSaleTax, miniSalePrice, miniSaleTaxPrice, miniSalePriceDate)) {
|
||||
modified = true;
|
||||
}
|
||||
|
||||
// max price
|
||||
if (copyTo(v.getMaxPurchasePrice(), maxPurchaseTax, maxPurchasePrice, maxPurchaseTaxPrice, maxPurchasePriceDate)) {
|
||||
modified = true;
|
||||
}
|
||||
if (copyTo(v.getMaxSalePrice(), maxSaleTax, maxSalePrice, maxSaleTaxPrice, maxSalePriceDate)) {
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,293 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.model.Inventory;
|
||||
import com.ecep.contract.model.InventoryCatalog;
|
||||
import com.ecep.contract.model.Price;
|
||||
import com.ecep.contract.model.VolumeSize;
|
||||
|
||||
import javafx.beans.property.SimpleBooleanProperty;
|
||||
import javafx.beans.property.SimpleDoubleProperty;
|
||||
import javafx.beans.property.SimpleFloatProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class InventoryViewModel extends IdentityViewModel<Inventory> {
|
||||
private SimpleObjectProperty<InventoryCatalog> catalog = new SimpleObjectProperty<>();
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleStringProperty specification = new SimpleStringProperty();
|
||||
private SimpleBooleanProperty specificationLock = new SimpleBooleanProperty();
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleBooleanProperty nameLock = new SimpleBooleanProperty();
|
||||
|
||||
private SimpleFloatProperty purchaseTaxRate = new SimpleFloatProperty();
|
||||
private SimpleDoubleProperty purchasePrice = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty purchaseTaxPrice = new SimpleDoubleProperty();
|
||||
|
||||
private SimpleFloatProperty saleTaxRate = new SimpleFloatProperty();
|
||||
private SimpleDoubleProperty salePrice = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty saleTaxPrice = new SimpleDoubleProperty();
|
||||
|
||||
private SimpleStringProperty weightUnit = new SimpleStringProperty();
|
||||
private SimpleStringProperty sizeUnit = new SimpleStringProperty();
|
||||
private SimpleStringProperty volumeUnit = new SimpleStringProperty();
|
||||
private SimpleDoubleProperty weight = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty packagedWeight = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty sizeLength = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty sizeWidth = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty sizeHeight = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty volume = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty packagedSizeLength = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty packagedSizeWidth = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty packagedSizeHeight = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty packagedVolume = new SimpleDoubleProperty();
|
||||
|
||||
private SimpleStringProperty unit = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<Employee> creator = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> createTime = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<Employee> updater = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDateTime> updateDate = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
|
||||
public static InventoryViewModel from(Inventory v) {
|
||||
InventoryViewModel model = new InventoryViewModel();
|
||||
model.update(v);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(Inventory v) {
|
||||
super.updateFrom(v);
|
||||
getCatalog().set(v.getCatalog());
|
||||
getCode().set(v.getCode());
|
||||
getSpecification().set(v.getSpecification());
|
||||
getSpecificationLock().set(v.isSpecificationLock());
|
||||
getName().set(v.getName());
|
||||
getNameLock().set(v.isNameLock());
|
||||
getUnit().set(v.getUnit());
|
||||
|
||||
Price purchasePrice = v.getPurchasePrice();
|
||||
getPurchaseTaxRate().set(purchasePrice.getTaxRate());
|
||||
getPurchasePrice().set(purchasePrice.getPreTaxPrice());
|
||||
getPurchaseTaxPrice().set(purchasePrice.getPostTaxPrice());
|
||||
|
||||
Price salePrice = v.getSalePrice();
|
||||
getSaleTaxRate().set(salePrice.getTaxRate());
|
||||
getSalePrice().set(salePrice.getPreTaxPrice());
|
||||
getSaleTaxPrice().set(salePrice.getPostTaxPrice());
|
||||
|
||||
getWeightUnit().set(v.getWeightUnit());
|
||||
getSizeUnit().set(v.getSizeUnit());
|
||||
getVolumeUnit().set(v.getVolumeUnit());
|
||||
|
||||
getWeight().set(v.getWeight());
|
||||
getPackagedWeight().set(v.getPackagedWeight());
|
||||
|
||||
VolumeSize volumeSize = v.getVolumeSize();
|
||||
getSizeLength().set(volumeSize.getLength());
|
||||
getSizeWidth().set(volumeSize.getWidth());
|
||||
getSizeHeight().set(volumeSize.getHeight());
|
||||
getVolume().set(volumeSize.getVolume());
|
||||
|
||||
VolumeSize packagedVolumeSize = v.getPackagedVolumeSize();
|
||||
getPackagedSizeLength().set(packagedVolumeSize.getLength());
|
||||
getPackagedSizeWidth().set(packagedVolumeSize.getWidth());
|
||||
getPackagedSizeHeight().set(packagedVolumeSize.getHeight());
|
||||
getPackagedVolume().set(packagedVolumeSize.getVolume());
|
||||
|
||||
getCreator().set(v.getCreator());
|
||||
getCreateTime().set(v.getCreateTime());
|
||||
getUpdater().set(v.getUpdater());
|
||||
getUpdateDate().set(v.getUpdateDate());
|
||||
getDescription().set(v.getDescription());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(Inventory v) {
|
||||
if (v == null)
|
||||
return false;
|
||||
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(catalog.get(), v.getCatalog())) {
|
||||
v.setCatalog(catalog.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(code.get(), v.getCode())) {
|
||||
v.setCode(code.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(specification.get(), v.getSpecification())) {
|
||||
v.setSpecification(specification.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(specificationLock.get(), v.isSpecificationLock())) {
|
||||
v.setSpecificationLock(specificationLock.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(name.get(), v.getName())) {
|
||||
v.setName(name.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(nameLock.get(), v.isNameLock())) {
|
||||
v.setNameLock(nameLock.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(unit.get(), v.getUnit())) {
|
||||
v.setUnit(unit.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
// price
|
||||
Price purchasePrice = v.getPurchasePrice();
|
||||
if (!Objects.equals(getPurchaseTaxRate().get(), purchasePrice.getTaxRate())) {
|
||||
purchasePrice.setTaxRate(getPurchaseTaxRate().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getPurchasePrice().get(), purchasePrice.getPreTaxPrice())) {
|
||||
purchasePrice.setPreTaxPrice(getPurchasePrice().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getPurchaseTaxPrice().get(), purchasePrice.getPostTaxPrice())) {
|
||||
purchasePrice.setPostTaxPrice(getPurchaseTaxPrice().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
Price salePrice = v.getSalePrice();
|
||||
if (!Objects.equals(getSaleTaxRate().get(), salePrice.getTaxRate())) {
|
||||
salePrice.setTaxRate(getSaleTaxRate().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getSalePrice().get(), salePrice.getPreTaxPrice())) {
|
||||
salePrice.setPreTaxPrice(getSalePrice().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getSaleTaxPrice().get(), salePrice.getPostTaxPrice())) {
|
||||
salePrice.setPostTaxPrice(getSaleTaxPrice().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(getWeightUnit().get(), v.getWeightUnit())) {
|
||||
v.setWeightUnit(getWeightUnit().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getVolumeUnit().get(), v.getVolumeUnit())) {
|
||||
v.setVolumeUnit(getVolumeUnit().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getSizeUnit().get(), v.getSizeUnit())) {
|
||||
v.setSizeUnit(getSizeUnit().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(getWeight().get(), v.getWeight())) {
|
||||
v.setWeight(getWeight().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getPackagedWeight().get(), v.getPackagedWeight())) {
|
||||
v.setPackagedWeight(getPackagedWeight().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
VolumeSize volumeSize = v.getVolumeSize();
|
||||
if (!Objects.equals(getSizeLength().get(), volumeSize.getLength())) {
|
||||
volumeSize.setLength(getSizeLength().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getSizeWidth().get(), volumeSize.getWidth())) {
|
||||
volumeSize.setWidth(getSizeWidth().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getSizeHeight().get(), volumeSize.getHeight())) {
|
||||
volumeSize.setHeight(getSizeHeight().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getSizeLength().get(), volumeSize.getLength())) {
|
||||
volumeSize.setLength(getSizeLength().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
VolumeSize packagedVolumeSize = v.getPackagedVolumeSize();
|
||||
if (!Objects.equals(getPackagedSizeHeight().get(), packagedVolumeSize.getHeight())) {
|
||||
packagedVolumeSize.setHeight(getPackagedSizeHeight().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getPackagedSizeLength().get(), packagedVolumeSize.getLength())) {
|
||||
packagedVolumeSize.setLength(getPackagedSizeLength().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getPackagedSizeWidth().get(), packagedVolumeSize.getWidth())) {
|
||||
packagedVolumeSize.setWidth(getPackagedSizeWidth().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getPackagedVolume().get(), packagedVolumeSize.getVolume())) {
|
||||
packagedVolumeSize.setVolume(getPackagedVolume().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
// creator or updater
|
||||
if (!Objects.equals(creator.get(), v.getCreator())) {
|
||||
v.setCreator(creator.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(createTime.get(), v.getCreateTime())) {
|
||||
v.setCreateTime(createTime.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(updater.get(), v.getUpdater())) {
|
||||
v.setUpdater(updater.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(updateDate.get(), v.getUpdateDate())) {
|
||||
v.setUpdateDate(updateDate.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(description.get(), v.getDescription())) {
|
||||
v.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
void taxPrice2ExclusiveTaxPrice(SimpleDoubleProperty taxPrice, SimpleDoubleProperty exclusiveTaxPrice,
|
||||
SimpleFloatProperty taxRate) {
|
||||
double value = taxPrice.get();
|
||||
exclusiveTaxPrice.setValue(value / ((100 + taxRate.get()) / 100));
|
||||
}
|
||||
|
||||
void exclusiveTaxPrice2TaxPrice(SimpleDoubleProperty exclusiveTaxPrice, SimpleDoubleProperty taxPrice,
|
||||
SimpleFloatProperty taxRate) {
|
||||
double value = exclusiveTaxPrice.get();
|
||||
taxPrice.setValue(value * ((100 + taxRate.get()) / 100.0));
|
||||
}
|
||||
|
||||
public void updateSalePrice(double v) {
|
||||
getSalePrice().set(v);
|
||||
exclusiveTaxPrice2TaxPrice(getSalePrice(), getSaleTaxPrice(), getSaleTaxRate());
|
||||
}
|
||||
|
||||
public void updateSaleTaxPrice(double v) {
|
||||
getSaleTaxPrice().set(v);
|
||||
taxPrice2ExclusiveTaxPrice(getSaleTaxPrice(), getSalePrice(), getSaleTaxRate());
|
||||
}
|
||||
|
||||
public void updatePurchasePrice(double v) {
|
||||
getPurchasePrice().set(v);
|
||||
exclusiveTaxPrice2TaxPrice(getPurchasePrice(), getPurchaseTaxPrice(), getPurchaseTaxRate());
|
||||
}
|
||||
|
||||
public void updatePurchaseTaxPrice(double v) {
|
||||
getPurchaseTaxPrice().set(v);
|
||||
taxPrice2ExclusiveTaxPrice(getPurchaseTaxPrice(), getPurchasePrice(), getPurchaseTaxRate());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.Invoice;
|
||||
|
||||
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 InvoiceViewModel extends IdentityViewModel<Invoice> {
|
||||
SimpleIntegerProperty id = new SimpleIntegerProperty();
|
||||
SimpleStringProperty code = new SimpleStringProperty();
|
||||
SimpleObjectProperty<Company> company = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<LocalDate> invoiceDate = new SimpleObjectProperty<>();
|
||||
SimpleStringProperty description = new SimpleStringProperty();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(Invoice v) {
|
||||
super.updateFrom(v);
|
||||
getId().set(v.getId());
|
||||
getCode().set(v.getCode());
|
||||
getCompany().set(v.getCompany());
|
||||
getInvoiceDate().set(v.getInvoiceDate());
|
||||
getDescription().set(v.getDescription());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(Invoice v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(id.get(), v.getId())) {
|
||||
v.setId(id.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(code.get(), v.getCode())) {
|
||||
v.setCode(code.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(company.get(), v.getCompany())) {
|
||||
v.setCompany(company.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(invoiceDate.get(), v.getInvoiceDate())) {
|
||||
v.setInvoiceDate(invoiceDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(description.get(), v.getDescription())) {
|
||||
v.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
public static InvoiceViewModel from(Invoice invoice) {
|
||||
InvoiceViewModel vm = new InvoiceViewModel();
|
||||
vm.updateFrom(invoice);
|
||||
return vm;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Function;
|
||||
import com.ecep.contract.model.Permission;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class PermissionViewModel extends IdentityViewModel<Permission> {
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<Function> function = new SimpleObjectProperty<>();
|
||||
private SimpleStringProperty key = new SimpleStringProperty();
|
||||
|
||||
public static PermissionViewModel from(Permission v) {
|
||||
PermissionViewModel model = new PermissionViewModel();
|
||||
model.update(v);
|
||||
return model;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void updateFrom(Permission v) {
|
||||
super.updateFrom(v);
|
||||
getName().set(v.getName());
|
||||
getFunction().set(v.getFunction());
|
||||
getKey().set(v.getKey());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(Permission 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());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(key.get(), v.getKey())) {
|
||||
v.setKey(key.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.ProductType;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ProductTypeViewModel extends IdentityViewModel<ProductType> {
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<LocalDate> created = new SimpleObjectProperty<>();
|
||||
|
||||
public static ProductTypeViewModel from(ProductType v) {
|
||||
ProductTypeViewModel model = new ProductTypeViewModel();
|
||||
model.update(v);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ProductType v) {
|
||||
super.updateFrom(v);
|
||||
getName().set(v.getName());
|
||||
getCode().set(v.getCode());
|
||||
getDescription().set(v.getDescription());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ProductType v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(getName().get(), v.getName())) {
|
||||
v.setName(getName().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getCode().get(), v.getCode())) {
|
||||
v.setCode(getCode().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getDescription().get(), v.getDescription())) {
|
||||
v.setDescription(getDescription().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.ProductUsage;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ProductUsageViewModel extends IdentityViewModel<ProductUsage> {
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<LocalDate> created = new SimpleObjectProperty<>();
|
||||
|
||||
public static ProductUsageViewModel from(ProductUsage v) {
|
||||
ProductUsageViewModel model = new ProductUsageViewModel();
|
||||
model.update(v);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ProductUsage v) {
|
||||
super.updateFrom(v);
|
||||
getName().set(v.getName());
|
||||
getCode().set(v.getCode());
|
||||
getDescription().set(v.getDescription());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ProductUsage v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(getName().get(), v.getName())) {
|
||||
v.setName(getName().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getCode().get(), v.getCode())) {
|
||||
v.setCode(getCode().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getDescription().get(), v.getDescription())) {
|
||||
v.setDescription(getDescription().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import com.ecep.contract.model.Project;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
|
||||
public interface ProjectBasedViewModel {
|
||||
SimpleObjectProperty<Project> getProject();
|
||||
}
|
||||
@@ -0,0 +1,225 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.io.File;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import com.ecep.contract.model.CompanyCustomerEvaluationFormFile;
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.model.Project;
|
||||
import com.ecep.contract.model.ProjectBid;
|
||||
import com.ecep.contract.model.ProjectCost;
|
||||
import com.ecep.contract.util.NumberUtils;
|
||||
|
||||
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;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 项目报价
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ProjectBidViewModel extends IdentityViewModel<ProjectBid> implements ProjectBasedViewModel {
|
||||
/**
|
||||
* 关联的项目
|
||||
*/
|
||||
private SimpleObjectProperty<Project> project = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 客户咨询等级(级别)
|
||||
*/
|
||||
private SimpleIntegerProperty level = new SimpleIntegerProperty();
|
||||
|
||||
/**
|
||||
* 报价金额
|
||||
*/
|
||||
private SimpleDoubleProperty amount = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 客户咨询评估文件,根据资信资评估文件生成客户资信等级(级别)
|
||||
*/
|
||||
private SimpleObjectProperty<CompanyCustomerEvaluationFormFile> evaluationFile = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 项目成本表
|
||||
*/
|
||||
private SimpleObjectProperty<ProjectCost> cost = new SimpleObjectProperty<>();
|
||||
|
||||
/**
|
||||
* 是否标准付款方式
|
||||
*/
|
||||
private SimpleBooleanProperty standardPayWay = new SimpleBooleanProperty();
|
||||
/**
|
||||
* 非标准付款方式文本
|
||||
*/
|
||||
private SimpleStringProperty noStandardPayWayText = new SimpleStringProperty();
|
||||
/**
|
||||
* 是否标准合同文本
|
||||
*/
|
||||
private SimpleBooleanProperty standardContractText = new SimpleBooleanProperty();
|
||||
/**
|
||||
* 非标准合同文本
|
||||
*/
|
||||
private SimpleStringProperty noStandardContractText = new SimpleStringProperty();
|
||||
/**
|
||||
* 申请日期
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDateTime> applyTime = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 申请人
|
||||
*/
|
||||
private SimpleObjectProperty<Employee> applicant = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 审核时间
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDateTime> authorizationTime = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 审核人
|
||||
*/
|
||||
private SimpleObjectProperty<Employee> authorizer = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 审核文件
|
||||
*/
|
||||
private SimpleObjectProperty<File> authorizationFile = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 中标通知书文件
|
||||
*/
|
||||
private SimpleObjectProperty<File> bidAcceptanceLetterFile = new SimpleObjectProperty<>();
|
||||
|
||||
/**
|
||||
* 说明、注释
|
||||
*/
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
|
||||
public static ProjectBidViewModel from(ProjectBid v) {
|
||||
ProjectBidViewModel model = new ProjectBidViewModel();
|
||||
model.update(v);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ProjectBid v) {
|
||||
super.updateFrom(v);
|
||||
getProject().set(v.getProject());
|
||||
getLevel().set(v.getLevel());
|
||||
getAmount().set(v.getAmount());
|
||||
getEvaluationFile().set(v.getEvaluationFile());
|
||||
getCost().set(v.getCost());
|
||||
getStandardPayWay().set(v.isStandardPayWay());
|
||||
getNoStandardPayWayText().set(v.getNoStandardPayWayText());
|
||||
getStandardContractText().set(v.isStandardContractText());
|
||||
getNoStandardContractText().set(v.getNoStandardContractText());
|
||||
getApplicant().set(v.getApplicant());
|
||||
getApplyTime().set(v.getApplyTime());
|
||||
getAuthorizer().set(v.getAuthorizer());
|
||||
getAuthorizationTime().set(v.getAuthorizationTime());
|
||||
|
||||
if (StringUtils.hasText(v.getAuthorizationFile())) {
|
||||
File file = new File(v.getAuthorizationFile());
|
||||
getAuthorizationFile().set(file);
|
||||
} else {
|
||||
getAuthorizationFile().set(null);
|
||||
}
|
||||
|
||||
if (StringUtils.hasText(v.getBidAcceptanceLetterFile())) {
|
||||
File file = new File(v.getBidAcceptanceLetterFile());
|
||||
getBidAcceptanceLetterFile().set(file);
|
||||
} else {
|
||||
getBidAcceptanceLetterFile().set(null);
|
||||
}
|
||||
|
||||
getDescription().set(v.getDescription());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ProjectBid v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(getProject().get(), v.getProject())) {
|
||||
v.setProject(getProject().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getLevel().get(), v.getLevel())) {
|
||||
v.setLevel(getLevel().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!NumberUtils.equals(getAmount().get(), v.getAmount())) {
|
||||
v.setAmount(getAmount().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getEvaluationFile().get(), v.getEvaluationFile())) {
|
||||
v.setEvaluationFile(getEvaluationFile().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getCost().get(), v.getCost())) {
|
||||
v.setCost(getCost().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(getStandardPayWay().get(), v.isStandardPayWay())) {
|
||||
v.setStandardPayWay(getStandardPayWay().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getNoStandardPayWayText().get(), v.getNoStandardPayWayText())) {
|
||||
v.setNoStandardPayWayText(getNoStandardPayWayText().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getStandardContractText().get(), v.isStandardContractText())) {
|
||||
v.setStandardContractText(getStandardContractText().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getNoStandardContractText().get(), v.getNoStandardContractText())) {
|
||||
v.setNoStandardContractText(getNoStandardContractText().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(getApplicant().get(), v.getApplicant())) {
|
||||
v.setApplicant(getApplicant().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getApplyTime().get(), v.getApplyTime())) {
|
||||
v.setApplyTime(getApplyTime().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getAuthorizer().get(), v.getAuthorizer())) {
|
||||
v.setAuthorizer(getAuthorizer().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getAuthorizationTime().get(), v.getAuthorizationTime())) {
|
||||
v.setAuthorizationTime(getAuthorizationTime().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (updateFile(authorizationFile, v::getAuthorizationFile, v::setAuthorizationFile)) {
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (updateFile(bidAcceptanceLetterFile, v::getBidAcceptanceLetterFile, v::setBidAcceptanceLetterFile)) {
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(getDescription().get(), v.getDescription())) {
|
||||
v.setDescription(getDescription().get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
private boolean updateFile(SimpleObjectProperty<File> property, Supplier<String> getter, Consumer<String> setter) {
|
||||
File file = null;
|
||||
String path = getter.get();
|
||||
if (StringUtils.hasText(path)) {
|
||||
file = new File(path);
|
||||
}
|
||||
if (!Objects.equals(property.get(), file)) {
|
||||
setter.accept(property.get() == null ? null : property.get().getAbsolutePath());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,280 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.model.Inventory;
|
||||
import com.ecep.contract.model.ProjectCost;
|
||||
import com.ecep.contract.model.ProjectCostItem;
|
||||
|
||||
import javafx.beans.property.SimpleBooleanProperty;
|
||||
import javafx.beans.property.SimpleDoubleProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 合同成本内容
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ProjectCostItemViewModel extends IdentityViewModel<ProjectCostItem> {
|
||||
/**
|
||||
* 关联的合同成本对象
|
||||
*/
|
||||
SimpleObjectProperty<ProjectCost> cost = new SimpleObjectProperty<>();
|
||||
|
||||
SimpleStringProperty title = new SimpleStringProperty();
|
||||
SimpleStringProperty specification = new SimpleStringProperty();
|
||||
SimpleStringProperty unit = new SimpleStringProperty();
|
||||
|
||||
/**
|
||||
* 存货
|
||||
*/
|
||||
SimpleObjectProperty<Inventory> inventory = new SimpleObjectProperty<>();
|
||||
|
||||
SimpleDoubleProperty inQuantity = new SimpleDoubleProperty();
|
||||
SimpleDoubleProperty inTaxRate = new SimpleDoubleProperty();
|
||||
SimpleDoubleProperty inTaxPrice = new SimpleDoubleProperty();
|
||||
SimpleDoubleProperty inTaxAmount = new SimpleDoubleProperty();
|
||||
SimpleDoubleProperty inExclusiveTaxPrice = new SimpleDoubleProperty();
|
||||
SimpleDoubleProperty inExclusiveTaxAmount = new SimpleDoubleProperty();
|
||||
|
||||
SimpleDoubleProperty outQuantity = new SimpleDoubleProperty();
|
||||
SimpleDoubleProperty outTaxRate = new SimpleDoubleProperty();
|
||||
SimpleDoubleProperty outTaxPrice = new SimpleDoubleProperty();
|
||||
SimpleDoubleProperty outTaxAmount = new SimpleDoubleProperty();
|
||||
SimpleDoubleProperty outExclusiveTaxPrice = new SimpleDoubleProperty();
|
||||
SimpleDoubleProperty outExclusiveTaxAmount = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 毛利,单位为元,计算结果
|
||||
*/
|
||||
SimpleDoubleProperty grossProfit = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 毛利率,%,计算结果
|
||||
*/
|
||||
SimpleDoubleProperty grossProfitMargin = new SimpleDoubleProperty();
|
||||
|
||||
SimpleObjectProperty<LocalDateTime> createDate = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<LocalDateTime> updateDate = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<Employee> creator = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<Employee> updater = new SimpleObjectProperty<>();
|
||||
|
||||
SimpleBooleanProperty updatePriceWay = new SimpleBooleanProperty(false);
|
||||
|
||||
SimpleStringProperty remark = new SimpleStringProperty();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ProjectCostItem v) {
|
||||
super.updateFrom(v);
|
||||
getCost().set(v.getCost());
|
||||
getTitle().set(v.getTitle());
|
||||
getSpecification().set(v.getSpecification());
|
||||
getUnit().set(v.getUnit());
|
||||
getInventory().set(v.getInventory());
|
||||
|
||||
getInQuantity().set(v.getInQuantity());
|
||||
getInTaxRate().set(v.getInTaxRate());
|
||||
getInExclusiveTaxPrice().set(v.getInExclusiveTaxPrice());
|
||||
getInTaxPrice().set(v.getInExclusiveTaxPrice() * (100 + v.getInTaxRate()) / 100.0);
|
||||
updateIn();
|
||||
|
||||
getOutQuantity().set(v.getOutQuantity());
|
||||
getOutTaxRate().set(v.getOutTaxRate());
|
||||
getOutExclusiveTaxPrice().set(v.getOutExclusiveTaxPrice());
|
||||
getOutTaxPrice().set(v.getOutExclusiveTaxPrice() * (100 + v.getOutTaxRate()) / 100.0);
|
||||
updateOut();
|
||||
|
||||
getCreateDate().set(v.getCreateDate());
|
||||
getUpdateDate().set(v.getUpdateDate());
|
||||
getCreator().set(v.getCreator());
|
||||
getUpdater().set(v.getUpdater());
|
||||
getRemark().set(v.getRemark());
|
||||
}
|
||||
|
||||
public void updateIn() {
|
||||
double quantity = getInQuantity().get();
|
||||
|
||||
getInTaxAmount().set(getInTaxPrice().get() * quantity);
|
||||
getInExclusiveTaxAmount().set(getInExclusiveTaxPrice().get() * quantity);
|
||||
|
||||
updateGrossProfitMargin();
|
||||
}
|
||||
|
||||
public void updateOut() {
|
||||
double quantity = getOutQuantity().get();
|
||||
|
||||
getOutTaxAmount().set(getOutTaxPrice().get() * quantity);
|
||||
getOutExclusiveTaxAmount().set(getOutExclusiveTaxPrice().get() * quantity);
|
||||
|
||||
updateGrossProfitMargin();
|
||||
}
|
||||
|
||||
public void updateGrossProfitMargin() {
|
||||
double amount = getInExclusiveTaxAmount().get();
|
||||
getGrossProfit().set(amount - getOutExclusiveTaxAmount().get());
|
||||
if (amount == 0) {
|
||||
getGrossProfitMargin().set(0);
|
||||
return;
|
||||
}
|
||||
getGrossProfitMargin().set(getGrossProfit().get() / amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ProjectCostItem v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(cost.get(), v.getCost())) {
|
||||
v.setCost(cost.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(title.get(), v.getTitle())) {
|
||||
v.setTitle(title.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(specification.get(), v.getSpecification())) {
|
||||
v.setSpecification(specification.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(unit.get(), v.getUnit())) {
|
||||
v.setUnit(unit.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(inventory.get(), v.getInventory())) {
|
||||
v.setInventory(inventory.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!doubleEquals(inQuantity.get(), v.getInQuantity())) {
|
||||
v.setInQuantity(inQuantity.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!doubleEquals(inTaxRate.get(), v.getInTaxRate())) {
|
||||
v.setInTaxRate(inTaxRate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!doubleEquals(inExclusiveTaxPrice.get(), v.getInExclusiveTaxPrice())) {
|
||||
v.setInExclusiveTaxPrice(inExclusiveTaxPrice.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!doubleEquals(outQuantity.get(), v.getOutQuantity())) {
|
||||
v.setOutQuantity(outQuantity.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!doubleEquals(outTaxRate.get(), v.getOutTaxRate())) {
|
||||
v.setOutTaxRate(outTaxRate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!doubleEquals(outExclusiveTaxPrice.get(), v.getOutExclusiveTaxPrice())) {
|
||||
v.setOutExclusiveTaxPrice(outExclusiveTaxPrice.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(createDate.get(), v.getCreateDate())) {
|
||||
v.setCreateDate(createDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(updateDate.get(), v.getUpdateDate())) {
|
||||
v.setUpdateDate(updateDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(creator.get(), v.getCreator())) {
|
||||
v.setCreator(creator.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(updater.get(), v.getUpdater())) {
|
||||
v.setUpdater(updater.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(remark.get(), v.getRemark())) {
|
||||
v.setRemark(remark.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断两个 double 值是否相等
|
||||
*
|
||||
* @param a a
|
||||
* @param b b
|
||||
* @return 在误差范围内是否相同
|
||||
*/
|
||||
private boolean doubleEquals(double a, double b) {
|
||||
return Math.abs(a - b) < 0.0001;
|
||||
}
|
||||
|
||||
public static ProjectCostItemViewModel from(ProjectCostItem v) {
|
||||
ProjectCostItemViewModel viewModel = new ProjectCostItemViewModel();
|
||||
viewModel.update(v);
|
||||
return viewModel;
|
||||
}
|
||||
|
||||
public void updateInQuantity(double value) {
|
||||
getInQuantity().setValue(value);
|
||||
updateIn();
|
||||
}
|
||||
|
||||
public void updateInTaxRate(double value) {
|
||||
getInTaxRate().setValue(value);
|
||||
if (getUpdatePriceWay().get()) {
|
||||
exclusiveTaxPrice2TaxPrice(getInExclusiveTaxPrice(), getInTaxPrice(), getInTaxRate());
|
||||
} else {
|
||||
taxPrice2ExclusiveTaxPrice(getInTaxPrice(), getInExclusiveTaxPrice(), getInTaxRate());
|
||||
}
|
||||
updateIn();
|
||||
}
|
||||
|
||||
public void updateInTaxPrice(double value) {
|
||||
getInTaxPrice().setValue(value);
|
||||
taxPrice2ExclusiveTaxPrice(getInTaxPrice(), getInExclusiveTaxPrice(), getInTaxRate());
|
||||
updateIn();
|
||||
}
|
||||
|
||||
void taxPrice2ExclusiveTaxPrice(SimpleDoubleProperty taxPrice, SimpleDoubleProperty exclusiveTaxPrice,
|
||||
SimpleDoubleProperty taxRate) {
|
||||
double value = taxPrice.get();
|
||||
exclusiveTaxPrice.setValue(value / ((100 + taxRate.get()) / 100));
|
||||
}
|
||||
|
||||
void exclusiveTaxPrice2TaxPrice(SimpleDoubleProperty exclusiveTaxPrice, SimpleDoubleProperty taxPrice,
|
||||
SimpleDoubleProperty taxRate) {
|
||||
double value = exclusiveTaxPrice.get();
|
||||
taxPrice.setValue(value * ((100 + taxRate.get()) / 100.0));
|
||||
}
|
||||
|
||||
public void updateInExclusiveTaxPrice(double value) {
|
||||
getInExclusiveTaxPrice().setValue(value);
|
||||
exclusiveTaxPrice2TaxPrice(getInExclusiveTaxPrice(), getInTaxPrice(), getInTaxRate());
|
||||
updateIn();
|
||||
}
|
||||
|
||||
public void updateOutQuantity(double value) {
|
||||
getOutQuantity().setValue(value);
|
||||
updateOut();
|
||||
}
|
||||
|
||||
public void updateOutTaxRate(double value) {
|
||||
getOutTaxRate().setValue(value);
|
||||
if (getUpdatePriceWay().get()) {
|
||||
exclusiveTaxPrice2TaxPrice(getOutExclusiveTaxPrice(), getOutTaxPrice(), getOutTaxRate());
|
||||
} else {
|
||||
taxPrice2ExclusiveTaxPrice(getOutTaxPrice(), getOutExclusiveTaxPrice(), getOutTaxRate());
|
||||
}
|
||||
updateOut();
|
||||
}
|
||||
|
||||
public void updateOutTaxPrice(double value) {
|
||||
getOutTaxPrice().setValue(value);
|
||||
taxPrice2ExclusiveTaxPrice(getOutTaxPrice(), getOutExclusiveTaxPrice(), getOutTaxRate());
|
||||
updateOut();
|
||||
}
|
||||
|
||||
public void updateOutExclusiveTaxPrice(double value) {
|
||||
getOutExclusiveTaxPrice().setValue(value);
|
||||
exclusiveTaxPrice2TaxPrice(getOutExclusiveTaxPrice(), getOutTaxPrice(), getOutTaxRate());
|
||||
updateOut();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,350 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.io.File;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.model.Project;
|
||||
import com.ecep.contract.model.ProjectCost;
|
||||
import com.ecep.contract.util.NumberUtils;
|
||||
|
||||
import javafx.beans.property.SimpleBooleanProperty;
|
||||
import javafx.beans.property.SimpleDoubleProperty;
|
||||
import javafx.beans.property.SimpleFloatProperty;
|
||||
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 ProjectCostViewModel extends IdentityViewModel<ProjectCost> implements ProjectBasedViewModel {
|
||||
/**
|
||||
* 合同对象
|
||||
*/
|
||||
SimpleObjectProperty<Contract> contract = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 项目对象
|
||||
*/
|
||||
SimpleObjectProperty<Project> project = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 申请日期
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDateTime> applyTime = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 申请人
|
||||
*/
|
||||
private SimpleObjectProperty<Employee> applicant = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 审核时间
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDateTime> authorizationTime = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 审核文件
|
||||
*/
|
||||
private SimpleObjectProperty<File> authorizationFile = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 审核人
|
||||
*/
|
||||
private SimpleObjectProperty<Employee> authorizer = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 是否是标准合同文本
|
||||
*/
|
||||
SimpleBooleanProperty standardPayWay = new SimpleBooleanProperty();
|
||||
/**
|
||||
* 是否是标准付款方式
|
||||
*/
|
||||
SimpleBooleanProperty standardContractText = new SimpleBooleanProperty();
|
||||
/**
|
||||
* 非标准付款方式文本
|
||||
*/
|
||||
SimpleStringProperty noStandardPayWayText = new SimpleStringProperty();
|
||||
/**
|
||||
* 非标准合同文本
|
||||
*/
|
||||
SimpleStringProperty noStandardContractText = new SimpleStringProperty();
|
||||
/**
|
||||
* 印花税
|
||||
*/
|
||||
SimpleFloatProperty stampTax = new SimpleFloatProperty();
|
||||
/**
|
||||
* 印花税金额
|
||||
*/
|
||||
SimpleFloatProperty stampTaxFee = new SimpleFloatProperty();
|
||||
/**
|
||||
* 现场位置费
|
||||
*/
|
||||
SimpleFloatProperty onSiteServiceFee = new SimpleFloatProperty();
|
||||
/**
|
||||
* 装配服务费
|
||||
*/
|
||||
SimpleFloatProperty assemblyServiceFee = new SimpleFloatProperty();
|
||||
/**
|
||||
* 技术服务费
|
||||
*/
|
||||
SimpleFloatProperty technicalServiceFee = new SimpleFloatProperty();
|
||||
/**
|
||||
* 投标服务费
|
||||
*/
|
||||
SimpleFloatProperty bidServiceFee = new SimpleFloatProperty();
|
||||
/**
|
||||
* 运费
|
||||
*/
|
||||
SimpleFloatProperty freightCost = new SimpleFloatProperty();
|
||||
/**
|
||||
* 保函费
|
||||
*/
|
||||
SimpleFloatProperty guaranteeLetterFee = new SimpleFloatProperty();
|
||||
/**
|
||||
* 营业税及附加费
|
||||
*/
|
||||
SimpleFloatProperty taxAndSurcharges = new SimpleFloatProperty();
|
||||
/**
|
||||
* 营业税及附加费金额
|
||||
*/
|
||||
SimpleFloatProperty taxAndSurchargesFee = new SimpleFloatProperty();
|
||||
|
||||
/**
|
||||
* 含税进项总金额
|
||||
*/
|
||||
SimpleDoubleProperty inTaxAmount = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 不含税进项总金额
|
||||
*/
|
||||
SimpleDoubleProperty inExclusiveTaxAmount = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 含税出项总金额
|
||||
*/
|
||||
SimpleDoubleProperty outTaxAmount = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 不含税出项总金额
|
||||
*/
|
||||
SimpleDoubleProperty outExclusiveTaxAmount = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 毛利率
|
||||
*/
|
||||
SimpleDoubleProperty grossProfitMargin = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 版本号
|
||||
*/
|
||||
SimpleIntegerProperty version = new SimpleIntegerProperty();
|
||||
|
||||
/**
|
||||
* 是否导入锁定,导入锁定后不允许导入
|
||||
*/
|
||||
SimpleBooleanProperty importLock = new SimpleBooleanProperty(false);
|
||||
|
||||
/**
|
||||
* 说明、注释
|
||||
*/
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ProjectCost v) {
|
||||
super.updateFrom(v);
|
||||
getContract().set(v.getContract());
|
||||
getProject().set(v.getProject());
|
||||
getApplicant().set(v.getApplicant());
|
||||
getApplyTime().set(v.getApplyTime());
|
||||
getAuthorizer().set(v.getAuthorizer());
|
||||
getAuthorizationTime().set(v.getAuthorizationTime());
|
||||
|
||||
if (StringUtils.hasText(v.getAuthorizationFile())) {
|
||||
File file = new File(v.getAuthorizationFile());
|
||||
getAuthorizationFile().set(file);
|
||||
} else {
|
||||
getAuthorizationFile().set(null);
|
||||
}
|
||||
|
||||
getStandardPayWay().set(v.isStandardPayWay());
|
||||
getStandardContractText().set(v.isStandardContractText());
|
||||
getNoStandardPayWayText().set(v.getNoStandardPayWayText());
|
||||
getNoStandardContractText().set(v.getNoStandardContractText());
|
||||
getStampTax().set(v.getStampTax());
|
||||
getStampTaxFee().set(v.getStampTaxFee());
|
||||
getOnSiteServiceFee().set(v.getOnSiteServiceFee());
|
||||
getAssemblyServiceFee().set(v.getAssemblyServiceFee());
|
||||
getTechnicalServiceFee().set(v.getTechnicalServiceFee());
|
||||
getBidServiceFee().set(v.getBidServiceFee());
|
||||
getFreightCost().set(v.getFreightCost());
|
||||
getGuaranteeLetterFee().set(v.getGuaranteeLetterFee());
|
||||
getTaxAndSurcharges().set(v.getTaxAndSurcharges());
|
||||
getTaxAndSurchargesFee().set(v.getTaxAndSurchargesFee());
|
||||
getInTaxAmount().set(v.getInTaxAmount());
|
||||
getInExclusiveTaxAmount().set(v.getInExclusiveTaxAmount());
|
||||
getOutTaxAmount().set(v.getOutTaxAmount());
|
||||
getOutExclusiveTaxAmount().set(v.getOutExclusiveTaxAmount());
|
||||
getGrossProfitMargin().set(v.getGrossProfitMargin());
|
||||
getVersion().set(v.getVersion());
|
||||
getDescription().set(v.getDescription());
|
||||
getImportLock().set(v.isImportLock());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ProjectCost v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(contract.get(), v.getContract())) {
|
||||
v.setContract(contract.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(project.get(), v.getProject())) {
|
||||
v.setProject(project.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(applicant.get(), v.getApplicant())) {
|
||||
v.setApplicant(applicant.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(applyTime.get(), v.getApplyTime())) {
|
||||
v.setApplyTime(applyTime.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(authorizer.get(), v.getAuthorizer())) {
|
||||
v.setAuthorizer(authorizer.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(authorizationTime.get(), v.getAuthorizationTime())) {
|
||||
v.setAuthorizationTime(authorizationTime.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
{
|
||||
|
||||
File file = null;
|
||||
if (StringUtils.hasText(v.getAuthorizationFile())) {
|
||||
file = new File(v.getAuthorizationFile());
|
||||
}
|
||||
if (!Objects.equals(authorizationFile.get(), file)) {
|
||||
v.setAuthorizationFile(authorizationFile.get() == null ? null : authorizationFile.get().getAbsolutePath());
|
||||
modified = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!Objects.equals(standardPayWay.get(), v.isStandardPayWay())) {
|
||||
v.setStandardPayWay(standardPayWay.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(standardContractText.get(), v.isStandardContractText())) {
|
||||
v.setStandardContractText(standardContractText.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(noStandardPayWayText.get(), v.getNoStandardPayWayText())) {
|
||||
v.setNoStandardPayWayText(noStandardPayWayText.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(noStandardContractText.get(), v.getNoStandardContractText())) {
|
||||
v.setNoStandardContractText(noStandardContractText.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!NumberUtils.equals(stampTax.get(), v.getStampTax())) {
|
||||
v.setStampTax(stampTax.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!NumberUtils.equals(stampTaxFee.get(), v.getStampTaxFee())) {
|
||||
v.setStampTaxFee(stampTaxFee.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!NumberUtils.equals(onSiteServiceFee.get(), v.getOnSiteServiceFee())) {
|
||||
v.setOnSiteServiceFee(onSiteServiceFee.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!NumberUtils.equals(assemblyServiceFee.get(), v.getAssemblyServiceFee())) {
|
||||
v.setAssemblyServiceFee(assemblyServiceFee.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!NumberUtils.equals(technicalServiceFee.get(), v.getTechnicalServiceFee())) {
|
||||
v.setTechnicalServiceFee(technicalServiceFee.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!NumberUtils.equals(bidServiceFee.get(), v.getBidServiceFee())) {
|
||||
v.setBidServiceFee(bidServiceFee.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!NumberUtils.equals(freightCost.get(), v.getFreightCost())) {
|
||||
v.setFreightCost(freightCost.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!NumberUtils.equals(guaranteeLetterFee.get(), v.getGuaranteeLetterFee())) {
|
||||
v.setGuaranteeLetterFee(guaranteeLetterFee.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!NumberUtils.equals(taxAndSurcharges.get(), v.getTaxAndSurcharges())) {
|
||||
v.setTaxAndSurcharges(taxAndSurcharges.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!NumberUtils.equals(taxAndSurchargesFee.get(), v.getTaxAndSurchargesFee())) {
|
||||
v.setTaxAndSurchargesFee(taxAndSurchargesFee.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!NumberUtils.equals(inTaxAmount.get(), v.getInTaxAmount())) {
|
||||
v.setInTaxAmount(inTaxAmount.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!NumberUtils.equals(inExclusiveTaxAmount.get(), v.getInExclusiveTaxAmount())) {
|
||||
v.setInExclusiveTaxAmount(inExclusiveTaxAmount.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!NumberUtils.equals(outTaxAmount.get(), v.getOutTaxAmount())) {
|
||||
v.setOutTaxAmount(outTaxAmount.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!NumberUtils.equals(outExclusiveTaxAmount.get(), v.getOutExclusiveTaxAmount())) {
|
||||
v.setOutExclusiveTaxAmount(outExclusiveTaxAmount.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!NumberUtils.equals(grossProfitMargin.get(), v.getGrossProfitMargin())) {
|
||||
v.setGrossProfitMargin(grossProfitMargin.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!NumberUtils.equals(version.get(), v.getVersion())) {
|
||||
v.setVersion(version.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(description.get(), v.getDescription())) {
|
||||
v.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(importLock.get(), v.isImportLock())) {
|
||||
v.setImportLock(importLock.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
public static ProjectCostViewModel from(ProjectCost projectCost) {
|
||||
ProjectCostViewModel viewModel = new ProjectCostViewModel();
|
||||
viewModel.update(projectCost);
|
||||
return viewModel;
|
||||
}
|
||||
|
||||
public void updateGrossProfitMargin() {
|
||||
double amount = getInExclusiveTaxAmount().get();
|
||||
if (amount == 0) {
|
||||
getGrossProfitMargin().set(0);
|
||||
return;
|
||||
}
|
||||
double grossProfit = amount - getOutExclusiveTaxAmount().get() - getStampTaxFee().get() - getTaxAndSurchargesFee().get();
|
||||
getGrossProfitMargin().set(grossProfit * 100 / amount);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据印花税税率更新印花税税费
|
||||
*/
|
||||
public void updateStampTaxFee() {
|
||||
getStampTaxFee().set((float) (getInTaxAmount().get() * getStampTax().get() / 100));
|
||||
updateGrossProfitMargin();
|
||||
}
|
||||
|
||||
public void updateTaxAndSurchargesFee() {
|
||||
double value = (getInTaxAmount().get() - getInExclusiveTaxAmount().get()) - (getOutTaxAmount().get() - getOutExclusiveTaxAmount().get());
|
||||
getTaxAndSurchargesFee().set((float) (value * getTaxAndSurcharges().get() / 100));
|
||||
updateGrossProfitMargin();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import com.ecep.contract.model.Project;
|
||||
import com.ecep.contract.model.ProjectFile;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ProjectFileViewModel extends IdentityViewModel<ProjectFile> implements ProjectBasedViewModel {
|
||||
/**
|
||||
* 关联的项目
|
||||
*/
|
||||
private SimpleObjectProperty<Project> project = new SimpleObjectProperty<>();
|
||||
|
||||
public static ProjectFileViewModel from(ProjectFile file) {
|
||||
ProjectFileViewModel viewModel = new ProjectFileViewModel();
|
||||
viewModel.update(file);
|
||||
return viewModel;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.ContractPayWay;
|
||||
import com.ecep.contract.model.ContractPayPlan;
|
||||
import com.ecep.contract.model.Project;
|
||||
import com.ecep.contract.model.ProjectFundPlan;
|
||||
import com.ecep.contract.util.NumberUtils;
|
||||
|
||||
import javafx.beans.property.SimpleDoubleProperty;
|
||||
import javafx.beans.property.SimpleFloatProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 项目资金计划视图模型
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ProjectFundPlanViewModel extends IdentityViewModel<ProjectFundPlan> implements ProjectBasedViewModel {
|
||||
/**
|
||||
* 关联的项目
|
||||
*/
|
||||
private SimpleObjectProperty<Project> project = new SimpleObjectProperty<>();
|
||||
|
||||
/**
|
||||
* 付款日期
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDate> payDate = new SimpleObjectProperty<>();
|
||||
|
||||
/**
|
||||
* 付款比例
|
||||
*/
|
||||
private SimpleFloatProperty payRatio = new SimpleFloatProperty();
|
||||
|
||||
/**
|
||||
* 付款金额
|
||||
*/
|
||||
private SimpleDoubleProperty payCurrency = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 余额
|
||||
*/
|
||||
private SimpleDoubleProperty balance = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 付款条件
|
||||
*/
|
||||
private SimpleStringProperty payTerm = new SimpleStringProperty();
|
||||
|
||||
/**
|
||||
* 合同付款计划
|
||||
*/
|
||||
private SimpleObjectProperty<ContractPayPlan> contractPayPlan = new SimpleObjectProperty<>();
|
||||
|
||||
/**
|
||||
* 更新日期
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDateTime> updateDate = new SimpleObjectProperty<>();
|
||||
|
||||
/**
|
||||
* 付款方式
|
||||
*/
|
||||
private SimpleObjectProperty<ContractPayWay> payWay = new SimpleObjectProperty<>();
|
||||
|
||||
/**
|
||||
* 从实体对象创建视图模型
|
||||
*/
|
||||
public static ProjectFundPlanViewModel from(ProjectFundPlan entity) {
|
||||
ProjectFundPlanViewModel model = new ProjectFundPlanViewModel();
|
||||
model.update(entity);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ProjectFundPlan entity) {
|
||||
super.updateFrom(entity);
|
||||
|
||||
// 设置项目关联
|
||||
getProject().set(entity.getProject());
|
||||
|
||||
// 设置付款相关信息
|
||||
getPayDate().set(entity.getPayDate());
|
||||
getPayRatio().set(entity.getPayRatio());
|
||||
getPayCurrency().set(entity.getPayCurrency());
|
||||
getPayTerm().set(entity.getPayTerm());
|
||||
|
||||
// 设置合同付款计划关联
|
||||
getContractPayPlan().set(entity.getContractPayPlan());
|
||||
|
||||
// 设置更新日期
|
||||
getUpdateDate().set(entity.getUpdateDate());
|
||||
|
||||
// 设置付款方式
|
||||
getPayWay().set(entity.getPayWay());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ProjectFundPlan entity) {
|
||||
boolean modified = super.copyTo(entity);
|
||||
|
||||
// 复制项目关联
|
||||
if (!Objects.equals(getProject().get(), entity.getProject())) {
|
||||
entity.setProject(getProject().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
// 复制付款相关信息
|
||||
if (!Objects.equals(getPayDate().get(), entity.getPayDate())) {
|
||||
entity.setPayDate(getPayDate().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!NumberUtils.equals(getPayRatio().get(), entity.getPayRatio())) {
|
||||
entity.setPayRatio(getPayRatio().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!NumberUtils.equals(getPayCurrency().get(), entity.getPayCurrency())) {
|
||||
entity.setPayCurrency(getPayCurrency().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(getPayTerm().get(), entity.getPayTerm())) {
|
||||
entity.setPayTerm(getPayTerm().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
// 复制合同付款计划关联
|
||||
if (!Objects.equals(getContractPayPlan().get(), entity.getContractPayPlan())) {
|
||||
entity.setContractPayPlan(getContractPayPlan().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
// 复制更新日期
|
||||
if (!Objects.equals(getUpdateDate().get(), entity.getUpdateDate())) {
|
||||
entity.setUpdateDate(getUpdateDate().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
// 复制付款方式
|
||||
if (!Objects.equals(getPayWay().get(), entity.getPayWay())) {
|
||||
entity.setPayWay(getPayWay().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.ProjectIndustry;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ProjectIndustryViewModel extends IdentityViewModel<ProjectIndustry> {
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<LocalDate> created = new SimpleObjectProperty<>();
|
||||
|
||||
public static ProjectIndustryViewModel from(ProjectIndustry v) {
|
||||
ProjectIndustryViewModel model = new ProjectIndustryViewModel();
|
||||
model.update(v);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ProjectIndustry v) {
|
||||
super.updateFrom(v);
|
||||
getName().set(v.getName());
|
||||
getCode().set(v.getCode());
|
||||
getDescription().set(v.getDescription());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ProjectIndustry v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(getName().get(), v.getName())) {
|
||||
v.setName(getName().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getCode().get(), v.getCode())) {
|
||||
v.setCode(getCode().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getDescription().get(), v.getDescription())) {
|
||||
v.setDescription(getDescription().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.io.File;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import com.ecep.contract.model.CompanyCustomerEvaluationFormFile;
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.model.Project;
|
||||
import com.ecep.contract.model.ProjectQuotation;
|
||||
import com.ecep.contract.util.NumberUtils;
|
||||
|
||||
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;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 项目报价
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ProjectQuotationViewModel extends IdentityViewModel<ProjectQuotation> {
|
||||
/**
|
||||
* 关联的项目
|
||||
*/
|
||||
private SimpleObjectProperty<Project> project = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 客户咨询等级(级别)
|
||||
*/
|
||||
private SimpleIntegerProperty level = new SimpleIntegerProperty();
|
||||
/**
|
||||
* 是否标准付款方式
|
||||
*/
|
||||
private SimpleBooleanProperty standardPayWay = new SimpleBooleanProperty();
|
||||
/**
|
||||
* 非标准付款方式文本
|
||||
*/
|
||||
|
||||
private SimpleStringProperty noStandardPayWayText = new SimpleStringProperty();
|
||||
/**
|
||||
* 报价金额
|
||||
*/
|
||||
private SimpleDoubleProperty amount = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 客户咨询评估文件,根据资信资评估文件生成客户资信等级(级别)
|
||||
*/
|
||||
private SimpleObjectProperty<CompanyCustomerEvaluationFormFile> evaluationFile = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 申请日期
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDateTime> applyTime = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 申请人
|
||||
*/
|
||||
private SimpleObjectProperty<Employee> applicant = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 审核时间
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDateTime> authorizationTime = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 审核人
|
||||
*/
|
||||
private SimpleObjectProperty<Employee> authorizer = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 审核文件
|
||||
*/
|
||||
private SimpleObjectProperty<File> authorizationFile = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 说明、注释
|
||||
*/
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
|
||||
|
||||
public static ProjectQuotationViewModel from(ProjectQuotation v) {
|
||||
ProjectQuotationViewModel model = new ProjectQuotationViewModel();
|
||||
model.update(v);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ProjectQuotation v) {
|
||||
super.updateFrom(v);
|
||||
getLevel().set(v.getLevel());
|
||||
getStandardPayWay().set(v.isStandardPayWay());
|
||||
getNoStandardPayWayText().set(v.getNoStandardPayWayText());
|
||||
getAmount().set(v.getAmount());
|
||||
getEvaluationFile().set(v.getEvaluationFile());
|
||||
getProject().set(v.getProject());
|
||||
getApplicant().set(v.getApplicant());
|
||||
getApplyTime().set(v.getApplyTime());
|
||||
getAuthorizer().set(v.getAuthorizer());
|
||||
getAuthorizationTime().set(v.getAuthorizationTime());
|
||||
|
||||
if (StringUtils.hasText(v.getAuthorizationFile())) {
|
||||
File file = new File(v.getAuthorizationFile());
|
||||
getAuthorizationFile().set(file);
|
||||
} else {
|
||||
getAuthorizationFile().set(null);
|
||||
}
|
||||
|
||||
getDescription().set(v.getDescription());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ProjectQuotation v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(getLevel().get(), v.getLevel())) {
|
||||
v.setLevel(getLevel().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getStandardPayWay().get(), v.isStandardPayWay())) {
|
||||
v.setStandardPayWay(getStandardPayWay().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getNoStandardPayWayText().get(), v.getNoStandardPayWayText())) {
|
||||
v.setNoStandardPayWayText(getNoStandardPayWayText().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!NumberUtils.equals(getAmount().get(), v.getAmount())) {
|
||||
v.setAmount(getAmount().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getEvaluationFile().get(), v.getEvaluationFile())) {
|
||||
v.setEvaluationFile(getEvaluationFile().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getProject().get(), v.getProject())) {
|
||||
v.setProject(getProject().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getApplicant().get(), v.getApplicant())) {
|
||||
v.setApplicant(getApplicant().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getApplyTime().get(), v.getApplyTime())) {
|
||||
v.setApplyTime(getApplyTime().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getAuthorizer().get(), v.getAuthorizer())) {
|
||||
v.setAuthorizer(getAuthorizer().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getAuthorizationTime().get(), v.getAuthorizationTime())) {
|
||||
v.setAuthorizationTime(getAuthorizationTime().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
{
|
||||
|
||||
File file = null;
|
||||
if (StringUtils.hasText(v.getAuthorizationFile())) {
|
||||
file = new File(v.getAuthorizationFile());
|
||||
}
|
||||
if (!Objects.equals(authorizationFile.get(), file)) {
|
||||
v.setAuthorizationFile(authorizationFile.get() == null ? null : authorizationFile.get().getAbsolutePath());
|
||||
modified = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!Objects.equals(getDescription().get(), v.getDescription())) {
|
||||
v.setDescription(getDescription().get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.ContractFileType;
|
||||
import com.ecep.contract.model.ProjectSaleType;
|
||||
import com.ecep.contract.model.ProjectSaleTypeRequireFileType;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ProjectSaleTypeRequireFileTypeViewModel extends IdentityViewModel<ProjectSaleTypeRequireFileType> {
|
||||
private SimpleObjectProperty<ProjectSaleType> saleType = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<ContractFileType> fileType = new SimpleObjectProperty<>();
|
||||
|
||||
public static ProjectSaleTypeRequireFileTypeViewModel from(ProjectSaleTypeRequireFileType entity) {
|
||||
ProjectSaleTypeRequireFileTypeViewModel vm = new ProjectSaleTypeRequireFileTypeViewModel();
|
||||
vm.updateFrom(entity);
|
||||
return vm;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ProjectSaleTypeRequireFileType v) {
|
||||
super.updateFrom(v);
|
||||
getSaleType().set(v.getSaleType());
|
||||
getFileType().set(v.getFileType());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ProjectSaleTypeRequireFileType v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(getSaleType().get(), v.getSaleType())) {
|
||||
v.setSaleType(getSaleType().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getFileType().get(), v.getFileType())) {
|
||||
v.setFileType(getFileType().get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.ProjectSaleType;
|
||||
|
||||
import javafx.beans.property.SimpleBooleanProperty;
|
||||
import javafx.beans.property.SimpleDoubleProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ProjectSaleTypeViewModel extends IdentityViewModel<ProjectSaleType> {
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleStringProperty path = new SimpleStringProperty();
|
||||
private SimpleBooleanProperty storeByYear = new SimpleBooleanProperty();
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
/**
|
||||
* 符合重大项目的合同金额条件
|
||||
*/
|
||||
private SimpleDoubleProperty criticalProjectLimit = new SimpleDoubleProperty();
|
||||
/**
|
||||
* 是否启用重大项目决策(三重一大)
|
||||
*/
|
||||
private SimpleBooleanProperty criticalProjectDecision = new SimpleBooleanProperty();
|
||||
private SimpleBooleanProperty active = new SimpleBooleanProperty();
|
||||
private SimpleObjectProperty<LocalDate> created = new SimpleObjectProperty<>();
|
||||
|
||||
public static ProjectSaleTypeViewModel from(ProjectSaleType v) {
|
||||
ProjectSaleTypeViewModel model = new ProjectSaleTypeViewModel();
|
||||
model.update(v);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ProjectSaleType v) {
|
||||
super.updateFrom(v);
|
||||
getName().set(v.getName());
|
||||
getCode().set(v.getCode());
|
||||
getPath().set(v.getPath());
|
||||
getStoreByYear().set(v.isStoreByYear());
|
||||
getDescription().set(v.getDescription());
|
||||
getCriticalProjectLimit().set(v.getCriticalProjectLimit());
|
||||
getCriticalProjectDecision().set(v.isCriticalProjectDecision());
|
||||
getActive().set(v.isActive());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ProjectSaleType v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(getName().get(), v.getName())) {
|
||||
v.setName(getName().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getCode().get(), v.getCode())) {
|
||||
v.setCode(getCode().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getPath().get(), v.getPath())) {
|
||||
v.setPath(getPath().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getStoreByYear().get(), v.isStoreByYear())) {
|
||||
v.setStoreByYear(getStoreByYear().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getDescription().get(), v.getDescription())) {
|
||||
v.setDescription(getDescription().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getCriticalProjectLimit().get(), v.getCriticalProjectLimit())) {
|
||||
v.setCriticalProjectLimit(getCriticalProjectLimit().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getCriticalProjectDecision().get(), v.isCriticalProjectDecision())) {
|
||||
v.setCriticalProjectDecision(getCriticalProjectDecision().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getActive().get(), v.isActive())) {
|
||||
v.setActive(getActive().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.ProjectType;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ProjectTypeViewModel extends IdentityViewModel<ProjectType> {
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<LocalDate> created = new SimpleObjectProperty<>();
|
||||
|
||||
public static ProjectTypeViewModel from(ProjectType v) {
|
||||
ProjectTypeViewModel model = new ProjectTypeViewModel();
|
||||
model.update(v);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(ProjectType v) {
|
||||
super.updateFrom(v);
|
||||
getName().set(v.getName());
|
||||
getCode().set(v.getCode());
|
||||
getDescription().set(v.getDescription());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(ProjectType v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(getName().get(), v.getName())) {
|
||||
v.setName(getName().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getCode().get(), v.getCode())) {
|
||||
v.setCode(getCode().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getDescription().get(), v.getDescription())) {
|
||||
v.setDescription(getDescription().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
236
client/src/main/java/com/ecep/contract/vm/ProjectViewModel.java
Normal file
236
client/src/main/java/com/ecep/contract/vm/ProjectViewModel.java
Normal file
@@ -0,0 +1,236 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyBankAccount;
|
||||
import com.ecep.contract.model.CompanyContact;
|
||||
import com.ecep.contract.model.CompanyInvoiceInfo;
|
||||
import com.ecep.contract.model.DeliverySignMethod;
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.model.ProductType;
|
||||
import com.ecep.contract.model.ProductUsage;
|
||||
import com.ecep.contract.model.Project;
|
||||
import com.ecep.contract.model.ProjectIndustry;
|
||||
import com.ecep.contract.model.ProjectSaleType;
|
||||
import com.ecep.contract.model.ProjectType;
|
||||
|
||||
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 ProjectViewModel extends IdentityViewModel<Project> {
|
||||
private SimpleObjectProperty<Company> customer = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 银行账户(公司可能有多个账户,此项目关联其中一个账户)
|
||||
*/
|
||||
private SimpleObjectProperty<CompanyBankAccount> bankAccount = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 开票信息(公司可能有多个开票信息,此项目关联其中一个开票信息)
|
||||
*/
|
||||
private SimpleObjectProperty<CompanyInvoiceInfo> invoiceInfo = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 主联系人(公司可能有多个联系人,此项目关联其中一个为主联系人)
|
||||
*/
|
||||
private SimpleObjectProperty<CompanyContact> mainContact = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 备用联系人(公司可能有多个联系人,此项目关联其中一个为备用联系人)
|
||||
*/
|
||||
private SimpleObjectProperty<CompanyContact> subContact = new SimpleObjectProperty<>();
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleIntegerProperty codeYear = new SimpleIntegerProperty();
|
||||
private SimpleIntegerProperty codeSequenceNumber = new SimpleIntegerProperty();
|
||||
|
||||
private SimpleObjectProperty<ProjectIndustry> industry = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<ProjectSaleType> saleType = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<ProjectType> projectType = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<ProductType> productType = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<DeliverySignMethod> deliverySignMethod = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<ProductUsage> productUsage = new SimpleObjectProperty<>();
|
||||
|
||||
/**
|
||||
* 项目地址
|
||||
*/
|
||||
private SimpleStringProperty address = new SimpleStringProperty();
|
||||
private SimpleBooleanProperty useBid = new SimpleBooleanProperty();
|
||||
private SimpleBooleanProperty useOffer = new SimpleBooleanProperty();
|
||||
private SimpleIntegerProperty amount = new SimpleIntegerProperty();
|
||||
private SimpleBooleanProperty standardPayWay = new SimpleBooleanProperty();
|
||||
|
||||
private SimpleStringProperty path = new SimpleStringProperty();
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
private SimpleObjectProperty<Employee> applicant = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<Employee> authorizer = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> created = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> plannedStartTime = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> plannedCompletionTime = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleIntegerProperty version = new SimpleIntegerProperty();
|
||||
|
||||
public static ProjectViewModel from(Project project) {
|
||||
ProjectViewModel model = new ProjectViewModel();
|
||||
model.update(project);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(Project v) {
|
||||
super.updateFrom(v);
|
||||
customer.set(v.getCustomer());
|
||||
bankAccount.set(v.getBankAccount());
|
||||
invoiceInfo.set(v.getInvoiceInfo());
|
||||
mainContact.set(v.getMainContact());
|
||||
subContact.set(v.getSubContact());
|
||||
|
||||
name.set(v.getName());
|
||||
code.set(v.getCode());
|
||||
codeYear.set(v.getCodeYear());
|
||||
codeSequenceNumber.set(v.getCodeSequenceNumber());
|
||||
address.set(v.getAddress());
|
||||
useBid.set(v.isUseBid());
|
||||
useOffer.set(v.isUseOffer());
|
||||
amount.set(Objects.requireNonNullElse(v.getAmount(), 0));
|
||||
standardPayWay.set(v.isStandardPayWay());
|
||||
industry.set(v.getIndustry());
|
||||
saleType.set(v.getSaleType());
|
||||
projectType.set(v.getProjectType());
|
||||
productType.set(v.getProductType());
|
||||
getDeliverySignMethod().set(v.getDeliverySignMethod());
|
||||
getProductUsage().set(v.getProductUsage());
|
||||
path.set(v.getPath());
|
||||
getDescription().set(v.getDescription());
|
||||
getApplicant().set(v.getApplicant());
|
||||
getAuthorizer().set(v.getAuthorizer());
|
||||
getCreated().set(v.getCreated());
|
||||
getPlannedStartTime().set(v.getPlannedStartTime());
|
||||
getPlannedCompletionTime().set(v.getPlannedCompletionTime());
|
||||
getVersion().set(v.getVersion());
|
||||
}
|
||||
|
||||
public boolean copyTo(Project v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(customer.get(), v.getCustomer())) {
|
||||
v.setCustomer(customer.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(bankAccount.get(), v.getBankAccount())) {
|
||||
v.setBankAccount(bankAccount.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(invoiceInfo.get(), v.getInvoiceInfo())) {
|
||||
v.setInvoiceInfo(invoiceInfo.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(mainContact.get(), v.getMainContact())) {
|
||||
v.setMainContact(mainContact.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(subContact.get(), v.getSubContact())) {
|
||||
v.setSubContact(subContact.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(name.get(), v.getName())) {
|
||||
v.setName(name.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(code.get(), v.getCode())) {
|
||||
v.setCode(code.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(codeYear.get(), v.getCodeYear())) {
|
||||
v.setCodeYear(codeYear.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(codeSequenceNumber.get(), v.getCodeSequenceNumber())) {
|
||||
v.setCodeSequenceNumber(codeSequenceNumber.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(address.get(), v.getAddress())) {
|
||||
v.setAddress(address.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(useBid.get(), v.isUseBid())) {
|
||||
v.setUseBid(useBid.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(useOffer.get(), v.isUseOffer())) {
|
||||
v.setUseOffer(useOffer.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(amount.get(), v.getAmount())) {
|
||||
v.setAmount(amount.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(standardPayWay.get(), v.isStandardPayWay())) {
|
||||
v.setStandardPayWay(standardPayWay.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(industry.get(), v.getIndustry())) {
|
||||
v.setIndustry(industry.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(saleType.get(), v.getSaleType())) {
|
||||
v.setSaleType(saleType.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(projectType.get(), v.getProjectType())) {
|
||||
v.setProjectType(projectType.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(productType.get(), v.getProductType())) {
|
||||
v.setProductType(productType.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(deliverySignMethod.get(), v.getDeliverySignMethod())) {
|
||||
v.setDeliverySignMethod(deliverySignMethod.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(productUsage.get(), v.getProductUsage())) {
|
||||
v.setProductUsage(productUsage.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(path.get(), v.getPath())) {
|
||||
v.setPath(path.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(description.get(), v.getDescription())) {
|
||||
v.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(applicant.get(), v.getApplicant())) {
|
||||
v.setApplicant(applicant.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(authorizer.get(), v.getAuthorizer())) {
|
||||
v.setAuthorizer(authorizer.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(created.get(), v.getCreated())) {
|
||||
v.setCreated(created.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(plannedStartTime.get(), v.getPlannedStartTime())) {
|
||||
v.setPlannedStartTime(plannedStartTime.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(plannedCompletionTime.get(), v.getPlannedCompletionTime())) {
|
||||
v.setPlannedCompletionTime(plannedCompletionTime.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.model.Inventory;
|
||||
import com.ecep.contract.model.Invoice;
|
||||
import com.ecep.contract.model.PurchaseBillVoucher;
|
||||
import com.ecep.contract.model.PurchaseBillVoucherItem;
|
||||
import com.ecep.contract.model.PurchaseOrderItem;
|
||||
|
||||
import javafx.beans.property.SimpleDoubleProperty;
|
||||
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 PurchaseBillVoucherItemViewModel extends IdentityViewModel<PurchaseBillVoucherItem> {
|
||||
|
||||
private SimpleIntegerProperty id = new SimpleIntegerProperty();
|
||||
private SimpleIntegerProperty refId = new SimpleIntegerProperty();
|
||||
/**
|
||||
* 关联的销售订单
|
||||
*/
|
||||
private SimpleObjectProperty<PurchaseBillVoucher> voucher = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<PurchaseOrderItem> orderItem = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<Invoice> invoice = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<Inventory> inventory = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<Contract> contract = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleDoubleProperty quantity = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty price = new SimpleDoubleProperty();
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(PurchaseBillVoucherItem v) {
|
||||
super.updateFrom(v);
|
||||
getId().set(v.getId());
|
||||
getRefId().set(v.getRefId());
|
||||
getVoucher().set(v.getVoucher());
|
||||
getOrderItem().set(v.getOrderItem());
|
||||
getInvoice().set(v.getInvoice());
|
||||
getInventory().set(v.getInventory());
|
||||
getContract().set(v.getContract());
|
||||
getQuantity().set(v.getQuantity());
|
||||
getPrice().set(v.getPrice());
|
||||
getDescription().set(v.getDescription());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(PurchaseBillVoucherItem v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
|
||||
if (!Objects.equals(id.get(), v.getId())) {
|
||||
v.setId(id.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(voucher.get(), v.getVoucher())) {
|
||||
v.setVoucher(voucher.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(orderItem.get(), v.getOrderItem())) {
|
||||
v.setOrderItem(orderItem.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(invoice.get(), v.getInvoice())) {
|
||||
v.setInvoice(invoice.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(inventory.get(), v.getInventory())) {
|
||||
v.setInventory(inventory.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(contract.get(), v.getContract())) {
|
||||
v.setContract(contract.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(refId.get(), v.getRefId())) {
|
||||
v.setRefId(refId.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(quantity.get(), v.getQuantity())) {
|
||||
v.setQuantity(quantity.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(price.get(), v.getPrice())) {
|
||||
v.setPrice(price.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(description.get(), v.getDescription())) {
|
||||
v.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
|
||||
public static PurchaseBillVoucherItemViewModel from(PurchaseBillVoucherItem item) {
|
||||
PurchaseBillVoucherItemViewModel viewModel = new PurchaseBillVoucherItemViewModel();
|
||||
viewModel.update(item);
|
||||
return viewModel;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.model.Invoice;
|
||||
import com.ecep.contract.model.PurchaseBillVoucher;
|
||||
|
||||
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 PurchaseBillVoucherViewModel extends IdentityViewModel<PurchaseBillVoucher> {
|
||||
|
||||
SimpleIntegerProperty id = new SimpleIntegerProperty();
|
||||
SimpleIntegerProperty refId = new SimpleIntegerProperty();
|
||||
SimpleStringProperty code = new SimpleStringProperty();
|
||||
SimpleObjectProperty<Company> company = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<Invoice> invoice = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<Employee> employee = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<Employee> maker = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<Employee> verifier = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<LocalDateTime> makerDate = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<LocalDateTime> modifyDate = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<LocalDateTime> verifierDate = new SimpleObjectProperty<>();
|
||||
SimpleStringProperty description = new SimpleStringProperty();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(PurchaseBillVoucher v) {
|
||||
getId().set(v.getId());
|
||||
getRefId().set(v.getRefId());
|
||||
getCode().set(v.getCode());
|
||||
getCompany().set(v.getCompany());
|
||||
getInvoice().set(v.getInvoice());
|
||||
getEmployee().set(v.getEmployee());
|
||||
getMaker().set(v.getMaker());
|
||||
getVerifier().set(v.getVerifier());
|
||||
getMakerDate().set(v.getMakerDate());
|
||||
getModifyDate().set(v.getModifyDate());
|
||||
getVerifierDate().set(v.getVerifierDate());
|
||||
getDescription().set(v.getDescription());
|
||||
super.updateFrom(v);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(PurchaseBillVoucher v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(id.get(), v.getId())) {
|
||||
v.setId(id.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(refId.get(), v.getRefId())) {
|
||||
v.setRefId(refId.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(code.get(), v.getCode())) {
|
||||
v.setCode(code.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(company.get(), v.getCompany())) {
|
||||
v.setCompany(company.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(invoice.get(), v.getInvoice())) {
|
||||
v.setInvoice(invoice.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(employee.get(), v.getEmployee())) {
|
||||
v.setEmployee(employee.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(maker.get(), v.getMaker())) {
|
||||
v.setMaker(maker.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(verifier.get(), v.getVerifier())) {
|
||||
v.setVerifier(verifier.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(makerDate.get(), v.getMakerDate())) {
|
||||
v.setMakerDate(makerDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(modifyDate.get(), v.getModifyDate())) {
|
||||
v.setModifyDate(modifyDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(verifierDate.get(), v.getVerifierDate())) {
|
||||
v.setVerifierDate(verifierDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(description.get(), v.getDescription())) {
|
||||
v.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
public static PurchaseBillVoucherViewModel from(PurchaseBillVoucher order) {
|
||||
PurchaseBillVoucherViewModel model = new PurchaseBillVoucherViewModel();
|
||||
model.update(order);
|
||||
return model;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Inventory;
|
||||
import com.ecep.contract.model.PurchaseOrder;
|
||||
import com.ecep.contract.model.PurchaseOrderItem;
|
||||
|
||||
import javafx.beans.property.SimpleDoubleProperty;
|
||||
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 PurchaseOrderItemViewModel extends IdentityViewModel<PurchaseOrderItem> {
|
||||
|
||||
private SimpleIntegerProperty id = new SimpleIntegerProperty();
|
||||
/**
|
||||
* 关联的销售订单
|
||||
*/
|
||||
private SimpleObjectProperty<PurchaseOrder> order = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<Inventory> inventory = new SimpleObjectProperty<>();
|
||||
private SimpleIntegerProperty refId = new SimpleIntegerProperty();
|
||||
private SimpleDoubleProperty quantity = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty price = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty taxRate = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty exclusiveTaxPrice = new SimpleDoubleProperty();
|
||||
private SimpleObjectProperty<LocalDate> arriveDate = new SimpleObjectProperty<>();
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
|
||||
|
||||
@Override
|
||||
protected void updateFrom(PurchaseOrderItem v) {
|
||||
super.updateFrom(v);
|
||||
getId().set(v.getId());
|
||||
getOrder().set(v.getOrder());
|
||||
getInventory().set(v.getInventory());
|
||||
getRefId().set(v.getRefId());
|
||||
getQuantity().set(v.getQuantity());
|
||||
getPrice().set(v.getPrice());
|
||||
getTaxRate().set(v.getTaxRate());
|
||||
getExclusiveTaxPrice().set(v.getExclusiveTaxPrice());
|
||||
getArriveDate().set(v.getArriveDate());
|
||||
getDescription().set(v.getDescription());
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(PurchaseOrderItem v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
|
||||
if (!Objects.equals(id.get(), v.getId())) {
|
||||
v.setId(id.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(order.get(), v.getOrder())) {
|
||||
v.setOrder(order.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(inventory.get(), v.getInventory())) {
|
||||
v.setInventory(inventory.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(refId.get(), v.getRefId())) {
|
||||
v.setRefId(refId.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(quantity.get(), v.getQuantity())) {
|
||||
v.setQuantity(quantity.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(taxRate.get(), v.getTaxRate())) {
|
||||
v.setTaxRate(taxRate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(price.get(), v.getPrice())) {
|
||||
v.setPrice(price.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(exclusiveTaxPrice.get(), v.getExclusiveTaxPrice())) {
|
||||
v.setExclusiveTaxPrice(exclusiveTaxPrice.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(arriveDate.get(), v.getArriveDate())) {
|
||||
v.setArriveDate(arriveDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(description.get(), v.getDescription())) {
|
||||
v.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
|
||||
public static PurchaseOrderItemViewModel from(PurchaseOrderItem item) {
|
||||
PurchaseOrderItemViewModel viewModel = new PurchaseOrderItemViewModel();
|
||||
viewModel.update(item);
|
||||
return viewModel;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
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 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 PurchaseOrderViewModel extends IdentityViewModel<PurchaseOrder> {
|
||||
|
||||
SimpleIntegerProperty id = new SimpleIntegerProperty();
|
||||
SimpleIntegerProperty refId = new SimpleIntegerProperty();
|
||||
SimpleObjectProperty<Contract> contract = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<Employee> employee = new SimpleObjectProperty<>();
|
||||
SimpleStringProperty code = new SimpleStringProperty();
|
||||
SimpleObjectProperty<Employee> maker = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<Employee> verifier = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<Employee> 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(PurchaseOrder v) {
|
||||
getId().set(v.getId());
|
||||
getRefId().set(v.getRefId());
|
||||
getContract().set(v.getContract());
|
||||
getEmployee().set(v.getEmployee());
|
||||
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);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(PurchaseOrder v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(id.get(), v.getId())) {
|
||||
v.setId(id.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(refId.get(), v.getRefId())) {
|
||||
v.setRefId(refId.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(contract.get(), v.getContract())) {
|
||||
v.setContract(contract.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());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(verifier.get(), v.getVerifier())) {
|
||||
v.setVerifier(verifier.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(closer.get(), v.getCloser())) {
|
||||
v.setCloser(closer.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(makerDate.get(), v.getMakerDate())) {
|
||||
v.setMakerDate(makerDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(modifyDate.get(), v.getModifyDate())) {
|
||||
v.setModifyDate(modifyDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(verifierDate.get(), v.getVerifierDate())) {
|
||||
v.setVerifierDate(verifierDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(closerDate.get(), v.getCloserDate())) {
|
||||
v.setCloserDate(closerDate.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(description.get(), v.getDescription())) {
|
||||
v.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
public static PurchaseOrderViewModel from(PurchaseOrder order) {
|
||||
PurchaseOrderViewModel model = new PurchaseOrderViewModel();
|
||||
model.update(order);
|
||||
return model;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.model.SalesBillVoucher;
|
||||
import com.ecep.contract.model.SalesOrder;
|
||||
|
||||
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 SalesBillVoucherViewModel extends IdentityViewModel<SalesBillVoucher> {
|
||||
|
||||
SimpleIntegerProperty id = new SimpleIntegerProperty();
|
||||
SimpleIntegerProperty refId = new SimpleIntegerProperty();
|
||||
SimpleStringProperty code = new SimpleStringProperty();
|
||||
SimpleObjectProperty<Company> company = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<SalesOrder> order = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<Employee> employee = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<Employee> maker = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<Employee> verifier = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<LocalDateTime> makerDate = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<LocalDateTime> modifyDate = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<LocalDateTime> verifierDate = new SimpleObjectProperty<>();
|
||||
SimpleStringProperty description = new SimpleStringProperty();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(SalesBillVoucher v) {
|
||||
getId().set(v.getId());
|
||||
getRefId().set(v.getRefId());
|
||||
getCode().set(v.getCode());
|
||||
getCompany().set(v.getCompany());
|
||||
getOrder().set(v.getOrder());
|
||||
getEmployee().set(v.getEmployee());
|
||||
getMaker().set(v.getMaker());
|
||||
getVerifier().set(v.getVerifier());
|
||||
getMakerDate().set(v.getMakerDate());
|
||||
getModifyDate().set(v.getModifyDate());
|
||||
getVerifierDate().set(v.getVerifierDate());
|
||||
getDescription().set(v.getDescription());
|
||||
super.updateFrom(v);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(SalesBillVoucher v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(id.get(), v.getId())) {
|
||||
v.setId(id.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(refId.get(), v.getRefId())) {
|
||||
v.setRefId(refId.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(code.get(), v.getCode())) {
|
||||
v.setCode(code.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(company.get(), v.getCompany())) {
|
||||
v.setCompany(company.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(order.get(), v.getOrder())) {
|
||||
v.setOrder(order.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(employee.get(), v.getEmployee())) {
|
||||
v.setEmployee(employee.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(maker.get(), v.getMaker())) {
|
||||
v.setMaker(maker.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(verifier.get(), v.getVerifier())) {
|
||||
v.setVerifier(verifier.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(makerDate.get(), v.getMakerDate())) {
|
||||
v.setMakerDate(makerDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(modifyDate.get(), v.getModifyDate())) {
|
||||
v.setModifyDate(modifyDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(verifierDate.get(), v.getVerifierDate())) {
|
||||
v.setVerifierDate(verifierDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(description.get(), v.getDescription())) {
|
||||
v.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
public static SalesBillVoucherViewModel from(SalesBillVoucher order) {
|
||||
SalesBillVoucherViewModel model = new SalesBillVoucherViewModel();
|
||||
model.update(order);
|
||||
return model;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.SalesOrder;
|
||||
import com.ecep.contract.model.SalesOrderItem;
|
||||
|
||||
import javafx.beans.property.SimpleDoubleProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class SalesOrderItemViewModel extends IdentityViewModel<SalesOrderItem> {
|
||||
/**
|
||||
* 关联的销售订单
|
||||
*/
|
||||
private SimpleObjectProperty<SalesOrder> order = new SimpleObjectProperty<>();
|
||||
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleDoubleProperty quantity = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty price = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty taxRate = new SimpleDoubleProperty();
|
||||
private SimpleDoubleProperty exclusiveTaxPrice = new SimpleDoubleProperty();
|
||||
private SimpleObjectProperty<LocalDate> startDate = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> endDate = new SimpleObjectProperty<>();
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(SalesOrderItem v) {
|
||||
super.updateFrom(v);
|
||||
getOrder().set(v.getOrder());
|
||||
getCode().set(v.getCode());
|
||||
getName().set(v.getName());
|
||||
getQuantity().set(v.getQuantity());
|
||||
getPrice().set(v.getPrice());
|
||||
getTaxRate().set(v.getTaxRate());
|
||||
getExclusiveTaxPrice().set(v.getExclusiveTaxPrice());
|
||||
getStartDate().set(v.getStartDate());
|
||||
getEndDate().set(v.getEndDate());
|
||||
getDescription().set(v.getDescription());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(SalesOrderItem v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(order.get(), v.getOrder())) {
|
||||
v.setOrder(order.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(code.get(), v.getCode())) {
|
||||
v.setCode(code.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(name.get(), v.getName())) {
|
||||
v.setName(name.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(quantity.get(), v.getQuantity())) {
|
||||
v.setQuantity(quantity.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(price.get(), v.getPrice())) {
|
||||
v.setPrice(price.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(taxRate.get(), v.getTaxRate())) {
|
||||
v.setTaxRate(taxRate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(price.get(), v.getPrice())) {
|
||||
v.setPrice(price.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(exclusiveTaxPrice.get(), v.getExclusiveTaxPrice())) {
|
||||
v.setExclusiveTaxPrice(exclusiveTaxPrice.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(startDate.get(), v.getStartDate())) {
|
||||
v.setStartDate(startDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(endDate.get(), v.getEndDate())) {
|
||||
v.setEndDate(endDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(description.get(), v.getDescription())) {
|
||||
v.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
|
||||
public static SalesOrderItemViewModel from(SalesOrderItem item) {
|
||||
SalesOrderItemViewModel viewModel = new SalesOrderItemViewModel();
|
||||
// viewModel.updateFrom(item);
|
||||
viewModel.update(item);
|
||||
return viewModel;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.model.SalesOrder;
|
||||
|
||||
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 SalesOrderViewModel extends IdentityViewModel<SalesOrder> {
|
||||
|
||||
SimpleIntegerProperty id = new SimpleIntegerProperty();
|
||||
SimpleObjectProperty<Contract> contract = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<Employee> employee = new SimpleObjectProperty<>();
|
||||
SimpleStringProperty code = new SimpleStringProperty();
|
||||
SimpleObjectProperty<Employee> maker = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<Employee> verifier = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<LocalDate> makerDate = new SimpleObjectProperty<>();
|
||||
SimpleObjectProperty<LocalDate> verifierDate = new SimpleObjectProperty<>();
|
||||
SimpleStringProperty description = new SimpleStringProperty();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(SalesOrder v) {
|
||||
getId().set(v.getId());
|
||||
getContract().set(v.getContract());
|
||||
getEmployee().set(v.getEmployee());
|
||||
getCode().set(v.getCode());
|
||||
getMaker().set(v.getMaker());
|
||||
getVerifier().set(v.getVerifier());
|
||||
getMakerDate().set(v.getMakerDate());
|
||||
getVerifierDate().set(v.getVerifierDate());
|
||||
super.updateFrom(v);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(SalesOrder v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(id.get(), v.getId())) {
|
||||
v.setId(id.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(contract.get(), v.getContract())) {
|
||||
v.setContract(contract.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(employee.get(), v.getEmployee())) {
|
||||
v.setEmployee(employee.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());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(makerDate.get(), v.getMakerDate())) {
|
||||
v.setMakerDate(makerDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(verifier.get(), v.getVerifier())) {
|
||||
v.setVerifier(verifier.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(verifierDate.get(), v.getVerifierDate())) {
|
||||
v.setVerifierDate(verifierDate.get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(description.get(), v.getDescription())) {
|
||||
v.setDescription(description.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
public static SalesOrderViewModel from(SalesOrder order) {
|
||||
SalesOrderViewModel model = new SalesOrderViewModel();
|
||||
model.update(order);
|
||||
return model;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.CompanyVendor;
|
||||
import com.ecep.contract.model.CompanyVendorEntity;
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.model.VendorCatalog;
|
||||
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class VendorEntityViewModel extends IdentityViewModel<CompanyVendorEntity> {
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleStringProperty abbName = new SimpleStringProperty();
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
/**
|
||||
* 分组
|
||||
*/
|
||||
private SimpleObjectProperty<VendorCatalog> catalog = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 关联的企业
|
||||
*/
|
||||
private SimpleObjectProperty<CompanyVendor> vendor = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 发展日期
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDate> developDate = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<Employee> creator = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<Employee> modifier = new SimpleObjectProperty<>();
|
||||
private SimpleObjectProperty<LocalDate> modifyDate = new SimpleObjectProperty<>();
|
||||
/**
|
||||
* 从U8系统同步时间
|
||||
*/
|
||||
private SimpleObjectProperty<LocalDate> updatedDate = new SimpleObjectProperty<>();
|
||||
|
||||
|
||||
|
||||
public static VendorEntityViewModel from(CompanyVendorEntity cc) {
|
||||
VendorEntityViewModel model = new VendorEntityViewModel();
|
||||
model.update(cc);
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(CompanyVendorEntity v) {
|
||||
super.updateFrom(v);
|
||||
getName().set(v.getName());
|
||||
getAbbName().set(v.getAbbName());
|
||||
getCode().set(v.getCode());
|
||||
getCatalog().set(v.getCatalog());
|
||||
getVendor().set(v.getVendor());
|
||||
getDevelopDate().set(v.getDevelopDate());
|
||||
getCreator().set(v.getCreator());
|
||||
getModifier().set(v.getModifier());
|
||||
getModifyDate().set(v.getModifyDate());
|
||||
getUpdatedDate().set(v.getUpdatedDate());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(CompanyVendorEntity v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(name.get(), v.getName())) {
|
||||
v.setName(name.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(abbName.get(), v.getAbbName())) {
|
||||
v.setAbbName(abbName.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(code.get(), v.getCode())) {
|
||||
v.setCode(code.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(catalog.get(), v.getCatalog())) {
|
||||
v.setCatalog(catalog.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(vendor.get(), v.getVendor())) {
|
||||
v.setVendor(vendor.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(developDate.get(), v.getDevelopDate())) {
|
||||
v.setDevelopDate(developDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(creator.get(), v.getCreator())) {
|
||||
v.setCreator(creator.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(modifier.get(), v.getModifier())) {
|
||||
v.setModifier(modifier.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(modifyDate.get(), v.getModifyDate())) {
|
||||
v.setModifyDate(modifyDate.get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(updatedDate.get(), v.getUpdatedDate())) {
|
||||
v.setUpdatedDate(updatedDate.get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
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 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<>();
|
||||
private SimpleObjectProperty<ContractFileType> fileType = new SimpleObjectProperty<>();
|
||||
|
||||
@Override
|
||||
protected void updateFrom(VendorGroupRequireFileType v) {
|
||||
super.updateFrom(v);
|
||||
getGroup().set(v.getGroup());
|
||||
getFileType().set(v.getFileType());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(VendorGroupRequireFileType v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(getGroup().get(), v.getGroup())) {
|
||||
v.setGroup(getGroup().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getFileType().get(), v.getFileType())) {
|
||||
v.setFileType(getFileType().get());
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.ecep.contract.vm;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.VendorGroup;
|
||||
|
||||
import javafx.beans.property.SimpleBooleanProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class VendorGroupViewModel extends IdentityViewModel<VendorGroup> {
|
||||
private SimpleStringProperty name = new SimpleStringProperty();
|
||||
private SimpleStringProperty code = new SimpleStringProperty();
|
||||
private SimpleStringProperty description = new SimpleStringProperty();
|
||||
private SimpleBooleanProperty active = new SimpleBooleanProperty();
|
||||
private SimpleBooleanProperty priceComparison = new SimpleBooleanProperty();
|
||||
/**
|
||||
* 中选的供应商是否可以免除报价表
|
||||
*/
|
||||
private SimpleBooleanProperty requireQuotationSheetForBid = new SimpleBooleanProperty();
|
||||
/**
|
||||
* 是否可以提前预采购
|
||||
*/
|
||||
private SimpleBooleanProperty canPrePurchase = new SimpleBooleanProperty();
|
||||
|
||||
public static VendorGroupViewModel from(VendorGroup v) {
|
||||
VendorGroupViewModel vm = new VendorGroupViewModel();
|
||||
vm.updateFrom(v);
|
||||
return vm;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateFrom(VendorGroup v) {
|
||||
super.updateFrom(v);
|
||||
getName().set(v.getName());
|
||||
getCode().set(v.getCode());
|
||||
getDescription().set(v.getDescription());
|
||||
getActive().set(v.isActive());
|
||||
getPriceComparison().set(v.isPriceComparison());
|
||||
getRequireQuotationSheetForBid().set(v.isRequireQuotationSheetForBid());
|
||||
getCanPrePurchase().set(v.isCanPrePurchase());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyTo(VendorGroup v) {
|
||||
boolean modified = super.copyTo(v);
|
||||
if (!Objects.equals(getName().get(), v.getName())) {
|
||||
v.setName(getName().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getCode().get(), v.getCode())) {
|
||||
v.setCode(getCode().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getDescription().get(), v.getDescription())) {
|
||||
v.setDescription(getDescription().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getActive().get(), v.isActive())) {
|
||||
v.setActive(getActive().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getPriceComparison().get(), v.isPriceComparison())) {
|
||||
v.setPriceComparison(getPriceComparison().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getRequireQuotationSheetForBid().get(), v.isRequireQuotationSheetForBid())) {
|
||||
v.setRequireQuotationSheetForBid(getRequireQuotationSheetForBid().get());
|
||||
modified = true;
|
||||
}
|
||||
if (!Objects.equals(getCanPrePurchase().get(), v.isCanPrePurchase())) {
|
||||
v.setCanPrePurchase(getCanPrePurchase().get());
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user