Compare commits

...

7 Commits

Author SHA1 Message Date
07c3f39a95 feat(vo): 新增并更新多个VO类实现ContractBasedVo接口
新增CloudTycVo、CloudYuVo、ExtendVendorInfoVo等VO类
更新SalesOrderVo、PurchaseOrderVo等实现ContractBasedVo接口
统一布尔类型字段为boolean并设置默认值false
2025-09-18 09:19:45 +08:00
f113cd8c48 feat(contract): 添加ContractBasedVo接口作为合同相关VO的基类 2025-09-18 09:19:29 +08:00
2752828094 refactor(client): 重构银行和公司相关代码
- 更新了多个类中的导入语句,替换了模型类为对应的VO类
- 优化了部分方法的参数和返回类型,使用VO类替代模型类
- 重构了自动补全功能,使用统一的泛型方法
- 添加了缓存注解,提高了数据访问性能
- 优化了部分代码结构,提高了可维护性
2025-09-18 09:08:57 +08:00
d0645c33f1 feat(common): 新增多个 VO 类
- 新增了多个与公司、合同、项目、库存等相关的 VO 类
- 这些类用于数据传输和接口定义,提高了系统的可维护性和扩展性
- 使用了 Lombok 注解,简化了类的编写
2025-09-18 08:45:08 +08:00
588779d611 feat(contract): 新增合同管理相关 VO 类
- 新增 CompanyContractVo 类,用于公司合同信息的传输
- 新增 CompanyCustomerEntityVo 类,用于公司客户实体信息的传输
- 新增 CompanyCustomerEvaluationFormFileVo 类,用于公司客户评估表文件信息的传输
2025-09-18 02:03:21 +08:00
9ffaac39cb feat(common): 新增 BankVo、CompanyBlackReasonVo 和 CompanyContactVo 类
- 新增 BankVo 类,用于表示银行信息
- 新增 CompanyBlackReasonVo 类,用于表示公司黑名单原因
- 新增 CompanyContactVo 类,用于表示公司联系人信息
2025-09-18 02:03:01 +08:00
9ef90f98c1 feat(contract): 添加公司银行账户价值对象
新增 CompanyBankAccountVo 类,用于表示公司银行账户相关信息。该类包含以下属性:
- id: 主键
- companyId:公司 ID,关联 CompanyVo- bankId: 银行 ID,关联 BankVo
- account: 银行账号
- openingBank: 开户行
- description: 描述信息
- active: 账户状态

此添加为合同模块提供了新的数据传输对象,有助于管理和展示公司银行账户信息。
2025-09-18 02:01:35 +08:00
99 changed files with 1916 additions and 215 deletions

View File

@@ -3,16 +3,16 @@ package com.ecep.contract.controller.bank;
import com.ecep.contract.controller.AbstEntityManagerSkin; import com.ecep.contract.controller.AbstEntityManagerSkin;
import com.ecep.contract.controller.ManagerSkin; import com.ecep.contract.controller.ManagerSkin;
import com.ecep.contract.controller.table.EditableEntityTableTabSkin; import com.ecep.contract.controller.table.EditableEntityTableTabSkin;
import com.ecep.contract.model.Bank;
import com.ecep.contract.vm.BankViewModel; import com.ecep.contract.vm.BankViewModel;
import com.ecep.contract.vo.BankVo;
import javafx.scene.control.TableColumn; import javafx.scene.control.TableColumn;
import javafx.scene.control.cell.TextFieldTableCell; import javafx.scene.control.cell.TextFieldTableCell;
public class BankManagerSkin public class BankManagerSkin
extends AbstEntityManagerSkin<Bank, BankViewModel, BankManagerSkin, BankManagerWindowController> extends AbstEntityManagerSkin<BankVo, BankViewModel, BankManagerSkin, BankManagerWindowController>
implements ManagerSkin, EditableEntityTableTabSkin<Bank, BankViewModel> { implements ManagerSkin, EditableEntityTableTabSkin<BankVo, BankViewModel> {
public BankManagerSkin(BankManagerWindowController controller) { public BankManagerSkin(BankManagerWindowController controller) {
super(controller); super(controller);

View File

@@ -6,10 +6,10 @@ import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.ecep.contract.controller.AbstManagerWindowController; import com.ecep.contract.controller.AbstManagerWindowController;
import com.ecep.contract.model.Bank;
import com.ecep.contract.service.BankService; import com.ecep.contract.service.BankService;
import com.ecep.contract.util.FxmlPath; import com.ecep.contract.util.FxmlPath;
import com.ecep.contract.vm.BankViewModel; import com.ecep.contract.vm.BankViewModel;
import com.ecep.contract.vo.BankVo;
import javafx.event.ActionEvent; import javafx.event.ActionEvent;
import javafx.scene.control.TableColumn; import javafx.scene.control.TableColumn;
@@ -19,7 +19,7 @@ import javafx.scene.control.TableColumn;
@Component @Component
@FxmlPath("/ui/bank-manager.fxml") @FxmlPath("/ui/bank-manager.fxml")
public class BankManagerWindowController public class BankManagerWindowController
extends AbstManagerWindowController<Bank, BankViewModel, BankManagerSkin> { extends AbstManagerWindowController<BankVo, BankViewModel, BankManagerSkin> {
@Autowired @Autowired
private BankService bankService; private BankService bankService;

View File

@@ -1,29 +1,20 @@
package com.ecep.contract.controller.bank.account; package com.ecep.contract.controller.bank.account;
import com.ecep.contract.SpringApp;
import com.ecep.contract.controller.company.CompanyWindowController; import com.ecep.contract.controller.company.CompanyWindowController;
import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin;
import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.tab.TabSkin;
import com.ecep.contract.converter.BankStringConverter;
import com.ecep.contract.converter.CompanyStringConverter;
import com.ecep.contract.model.Company;
import com.ecep.contract.model.CompanyBankAccount;
import com.ecep.contract.service.BankService; import com.ecep.contract.service.BankService;
import com.ecep.contract.service.CompanyService; import com.ecep.contract.service.CompanyService;
import com.ecep.contract.util.UITools; import com.ecep.contract.util.UITools;
import com.ecep.contract.vm.CompanyBankAccountViewModel; import com.ecep.contract.vm.CompanyBankAccountViewModel;
import com.ecep.contract.vo.CompanyBankAccountVo;
import com.ecep.contract.vo.CompanyVo;
import javafx.scene.control.Tab; import javafx.scene.control.Tab;
import javafx.scene.control.TextField;
import lombok.Setter;
public class BankAccountBaseTabSkin public class BankAccountBaseTabSkin
extends AbstEntityBasedTabSkin<BankAccountWindowController, CompanyBankAccount, CompanyBankAccountViewModel> extends AbstEntityBasedTabSkin<BankAccountWindowController, CompanyBankAccountVo, CompanyBankAccountViewModel>
implements TabSkin { implements TabSkin {
@Setter
private CompanyService companyService;
@Setter
private BankService bankService;
public BankAccountBaseTabSkin(BankAccountWindowController controller) { public BankAccountBaseTabSkin(BankAccountWindowController controller) {
super(controller); super(controller);
@@ -37,8 +28,9 @@ public class BankAccountBaseTabSkin
@Override @Override
public void initializeTab() { public void initializeTab() {
initializeBaseTabCompanyFieldAutoCompletion(controller.companyField); UITools.autoCompletion(controller.companyField, viewModel.getCompanyId(), getCompanyService());
initializeBaseTabBankFieldAutoCompletion(controller.bankField);
UITools.autoCompletion(controller.bankField, viewModel.getBankId(), getBankService());
controller.openingBankField.textProperty().bindBidirectional(viewModel.getOpeningBank()); controller.openingBankField.textProperty().bindBidirectional(viewModel.getOpeningBank());
controller.bankAccountField.textProperty().bindBidirectional(viewModel.getAccount()); controller.bankAccountField.textProperty().bindBidirectional(viewModel.getAccount());
@@ -47,36 +39,21 @@ public class BankAccountBaseTabSkin
controller.createdField.textProperty().bind(viewModel.getCreated().asString()); controller.createdField.textProperty().bind(viewModel.getCreated().asString());
controller.versionLabel.textProperty().bind(viewModel.getVersion().asString()); controller.versionLabel.textProperty().bind(viewModel.getVersion().asString());
controller.relativeCompanyBtn.disableProperty().bind(viewModel.getCompany().isNull()); controller.relativeCompanyBtn.disableProperty().bind(viewModel.getCompanyId().isNull());
controller.relativeCompanyBtn.setOnAction(event -> { controller.relativeCompanyBtn.setOnAction(event -> {
Company company = viewModel.getCompany().get(); Integer companyId = viewModel.getCompanyId().get();
if (company != null) { if (companyId != null) {
CompanyVo company = getCompanyService().findById(companyId);
CompanyWindowController.show(company, controller.root.getScene().getWindow()); CompanyWindowController.show(company, controller.root.getScene().getWindow());
} }
}); });
} }
private void initializeBaseTabCompanyFieldAutoCompletion(TextField textField) {
CompanyStringConverter converter = SpringApp.getBean(CompanyStringConverter.class);
UITools.autoCompletion(textField, viewModel.getCompany(), converter::suggest, converter);
}
private void initializeBaseTabBankFieldAutoCompletion(TextField textField) {
BankStringConverter converter = SpringApp.getBean(BankStringConverter.class);
UITools.autoCompletion(textField, viewModel.getBank(), converter::suggest, converter);
}
public BankService getBankService() { public BankService getBankService() {
if (bankService == null) { return getCachedBean(BankService.class);
bankService = getBean(BankService.class);
}
return bankService;
} }
public CompanyService getCompanyService() { public CompanyService getCompanyService() {
if (companyService == null) { return getCachedBean(CompanyService.class);
companyService = getBean(CompanyService.class);
}
return companyService;
} }
} }

View File

@@ -10,6 +10,7 @@ import com.ecep.contract.model.CompanyBankAccount;
import com.ecep.contract.service.CompanyBankAccountService; import com.ecep.contract.service.CompanyBankAccountService;
import com.ecep.contract.util.FxmlPath; import com.ecep.contract.util.FxmlPath;
import com.ecep.contract.vm.CompanyBankAccountViewModel; import com.ecep.contract.vm.CompanyBankAccountViewModel;
import com.ecep.contract.vo.CompanyBankAccountVo;
import javafx.scene.control.Button; import javafx.scene.control.Button;
import javafx.scene.control.Label; import javafx.scene.control.Label;
@@ -25,7 +26,7 @@ import javafx.stage.WindowEvent;
@Scope("prototype") @Scope("prototype")
@Component @Component
@FxmlPath("/ui/company/bank-account.fxml") @FxmlPath("/ui/company/bank-account.fxml")
public class BankAccountWindowController extends AbstEntityController<CompanyBankAccount, CompanyBankAccountViewModel> { public class BankAccountWindowController extends AbstEntityController<CompanyBankAccountVo, CompanyBankAccountViewModel> {
public BorderPane root; public BorderPane root;
public TabPane tabPane; public TabPane tabPane;

View File

@@ -1,21 +1,21 @@
package com.ecep.contract.controller.company; package com.ecep.contract.controller.company;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.tab.TabSkin;
import com.ecep.contract.controller.table.AbstEntityTableTabSkin; import com.ecep.contract.controller.table.AbstEntityTableTabSkin;
import com.ecep.contract.controller.table.TableOfTabSkin; import com.ecep.contract.controller.table.TableOfTabSkin;
import com.ecep.contract.model.Company;
import com.ecep.contract.model.IdentityEntity; import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.service.CompanyService; import com.ecep.contract.service.CompanyService;
import com.ecep.contract.util.ParamUtils;
import com.ecep.contract.vm.CompanyBasedViewModel; import com.ecep.contract.vm.CompanyBasedViewModel;
import com.ecep.contract.vm.CompanyViewModel; import com.ecep.contract.vm.CompanyViewModel;
import com.ecep.contract.vm.IdentityViewModel; import com.ecep.contract.vm.IdentityViewModel;
import com.ecep.contract.vo.CompanyVo;
public abstract class AbstCompanyTableTabSkin<T extends IdentityEntity, TV extends IdentityViewModel<T>> public abstract class AbstCompanyTableTabSkin<T extends IdentityEntity, TV extends IdentityViewModel<T>>
extends AbstEntityTableTabSkin<CompanyWindowController, Company, CompanyViewModel, T, TV> extends AbstEntityTableTabSkin<CompanyWindowController, CompanyVo, CompanyViewModel, T, TV>
implements TabSkin, TableOfTabSkin<Company, T, TV> { implements TabSkin, TableOfTabSkin<CompanyVo, T, TV> {
public AbstCompanyTableTabSkin(CompanyWindowController controller) { public AbstCompanyTableTabSkin(CompanyWindowController controller) {
super(controller); super(controller);
@@ -26,7 +26,7 @@ public abstract class AbstCompanyTableTabSkin<T extends IdentityEntity, TV exten
protected TV createNewViewModel() { protected TV createNewViewModel() {
TV model = super.createNewViewModel(); TV model = super.createNewViewModel();
if (model instanceof CompanyBasedViewModel m) { if (model instanceof CompanyBasedViewModel m) {
m.getCompany().set(getEntity()); m.getCompanyId().set(getEntity().getId());
} }
return model; return model;
} }
@@ -40,13 +40,8 @@ public abstract class AbstCompanyTableTabSkin<T extends IdentityEntity, TV exten
} }
@Override @Override
public Map<String, Object> getSpecification(Company parent) { public Map<String, Object> getSpecification(CompanyVo parent) {
Map<String, Object> params = getSpecification(); return ParamUtils.equal("company", parent.getId());
if (params == null) {
params = new HashMap<>();
}
params.put("company", parent.getId());
return params;
} }
} }

View File

@@ -39,6 +39,7 @@ import com.ecep.contract.util.FxmlPath;
import com.ecep.contract.util.ProxyUtils; import com.ecep.contract.util.ProxyUtils;
import com.ecep.contract.util.UITools; import com.ecep.contract.util.UITools;
import com.ecep.contract.vm.CompanyViewModel; import com.ecep.contract.vm.CompanyViewModel;
import com.ecep.contract.vo.CompanyVo;
import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleObjectProperty;
import javafx.event.ActionEvent; import javafx.event.ActionEvent;
@@ -61,16 +62,11 @@ import javafx.stage.Window;
@Component @Component
@FxmlPath("/ui/company/company.fxml") @FxmlPath("/ui/company/company.fxml")
public class CompanyWindowController public class CompanyWindowController
extends AbstEntityController<Company, CompanyViewModel> { extends AbstEntityController<CompanyVo, CompanyViewModel> {
private static final Logger logger = LoggerFactory.getLogger(CompanyWindowController.class); private static final Logger logger = LoggerFactory.getLogger(CompanyWindowController.class);
public static void show(Company company, Window window) { public static void show(CompanyVo company, Window window) {
CompanyViewModel viewModel = new CompanyViewModel(); show(CompanyViewModel.from(company), window);
if (!ProxyUtils.isInitialized(company)) {
company = SpringApp.getBean(CompanyService.class).findById(company.getId());
}
viewModel.update(company);
show(viewModel, window);
} }
/** /**
@@ -269,7 +265,7 @@ public class CompanyWindowController
* 企业合规检查 * 企业合规检查
*/ */
public void onCompanyVerifyAction(ActionEvent event) { public void onCompanyVerifyAction(ActionEvent event) {
Company company = getEntity(); CompanyVo company = getEntity();
CompanyVerifyTasker task = new CompanyVerifyTasker(); CompanyVerifyTasker task = new CompanyVerifyTasker();
task.setCompanyService(companyService); task.setCompanyService(companyService);
task.setCompany(company); task.setCompany(company);
@@ -277,7 +273,7 @@ public class CompanyWindowController
} }
public void onCompanyOpenInExplorerAction(ActionEvent event) { public void onCompanyOpenInExplorerAction(ActionEvent event) {
Company company = getEntity(); CompanyVo company = getEntity();
String path = company.getPath(); String path = company.getPath();
CompletableFuture.runAsync(() -> { CompletableFuture.runAsync(() -> {

View File

@@ -3,9 +3,7 @@ package com.ecep.contract.controller.project;
import java.util.List; import java.util.List;
import java.util.function.BiFunction; import java.util.function.BiFunction;
import com.ecep.contract.service.*;
import org.controlsfx.control.textfield.AutoCompletionBinding; import org.controlsfx.control.textfield.AutoCompletionBinding;
import com.ecep.contract.util.ProxyUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import com.ecep.contract.SpringApp; import com.ecep.contract.SpringApp;
@@ -13,13 +11,20 @@ import com.ecep.contract.controller.company.CompanyWindowController;
import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.tab.TabSkin;
import com.ecep.contract.converter.CompanyStringConverter; import com.ecep.contract.converter.CompanyStringConverter;
import com.ecep.contract.converter.EntityStringConverter; import com.ecep.contract.converter.EntityStringConverter;
import com.ecep.contract.model.Bank;
import com.ecep.contract.model.Company; import com.ecep.contract.model.Company;
import com.ecep.contract.model.CompanyBankAccount; import com.ecep.contract.model.CompanyBankAccount;
import com.ecep.contract.model.CompanyContact; import com.ecep.contract.model.CompanyContact;
import com.ecep.contract.model.CompanyInvoiceInfo; import com.ecep.contract.model.CompanyInvoiceInfo;
import com.ecep.contract.service.BankService;
import com.ecep.contract.service.CompanyBankAccountService;
import com.ecep.contract.service.CompanyContactService;
import com.ecep.contract.service.CompanyInvoiceInfoService;
import com.ecep.contract.service.CompanyService;
import com.ecep.contract.util.FxmlPath; import com.ecep.contract.util.FxmlPath;
import com.ecep.contract.util.ProxyUtils;
import com.ecep.contract.util.UITools; import com.ecep.contract.util.UITools;
import com.ecep.contract.vo.BankVo;
import com.ecep.contract.vo.CompanyVo;
import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.StringProperty; import javafx.beans.property.StringProperty;
@@ -103,7 +108,7 @@ public class ProjectTabSkinCustomerInfo
}); });
companyDetailBtn.setOnAction(event -> { companyDetailBtn.setOnAction(event -> {
Company company = viewModel.getCustomer().get(); CompanyVo company = viewModel.getCustomer().get();
if (company == null) { if (company == null) {
return; return;
} }
@@ -204,7 +209,7 @@ public class ProjectTabSkinCustomerInfo
} }
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("开户行:"); sb.append("开户行:");
Bank bank = account.getBank(); BankVo bank = account.getBank();
if (bank != null) { if (bank != null) {
if (!ProxyUtils.isInitialized(bank)) { if (!ProxyUtils.isInitialized(bank)) {
bank = getBankService().findById(bank.getId()); bank = getBankService().findById(bank.getId());

View File

@@ -4,18 +4,20 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.ecep.contract.model.Bank;
import com.ecep.contract.service.BankService; import com.ecep.contract.service.BankService;
import com.ecep.contract.vo.BankVo;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
@Lazy @Lazy
@Component @Component
public class BankStringConverter extends EntityStringConverter<Bank> { @Deprecated
public class BankStringConverter extends EntityStringConverter<BankVo> {
@Lazy @Lazy
@Autowired @Autowired
BankService service; BankService service;
public BankStringConverter() { public BankStringConverter() {
} }

View File

@@ -1,16 +1,63 @@
package com.ecep.contract.service; package com.ecep.contract.service;
import java.util.List; import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.cache.annotation.Caching;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ecep.contract.model.Bank; import com.ecep.contract.util.ParamUtils;
import com.ecep.contract.vm.BankViewModel; import com.ecep.contract.vm.BankViewModel;
import com.ecep.contract.vo.BankVo;
import javafx.util.StringConverter;
@Service @Service
public class BankService extends QueryService<Bank, BankViewModel> { @CacheConfig(cacheNames = "bank")
public Bank findByName(String name) { public class BankService extends QueryService<BankVo, BankViewModel> {
@Cacheable(key = "#p0")
@Override
public BankVo findById(Integer id) {
return super.findById(id);
}
public BankVo findByName(String name) {
Page<BankVo> page = findAll(ParamUtils.equal(name, name), Pageable.ofSize(1));
if (page.isEmpty()) {
return null; return null;
} }
return page.getContent().getFirst();
}
@Caching(evict = { @CacheEvict(key = "#p0.id") })
@Override
public BankVo save(BankVo entity) {
return super.save(entity);
}
@Caching(evict = { @CacheEvict(key = "#p0.id") })
@Override
public void delete(BankVo entity) {
super.delete(entity);
}
private StringConverter<BankVo> stringConverter = new StringConverter<BankVo>() {
@Override
public String toString(BankVo object) {
return object == null ? "" : object.getName();
}
@Override
public BankVo fromString(String string) {
return findByName(string);
}
};
@Override
public StringConverter<BankVo> getStringConverter() {
return stringConverter;
}
} }

View File

@@ -5,13 +5,13 @@ import java.util.List;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ecep.contract.model.Company; import com.ecep.contract.model.Company;
import com.ecep.contract.model.CompanyBankAccount;
import com.ecep.contract.vm.CompanyBankAccountViewModel; import com.ecep.contract.vm.CompanyBankAccountViewModel;
import com.ecep.contract.vo.CompanyBankAccountVo;
@Service @Service
public class CompanyBankAccountService extends QueryService<CompanyBankAccount, CompanyBankAccountViewModel> { public class CompanyBankAccountService extends QueryService<CompanyBankAccountVo, CompanyBankAccountViewModel> {
public List<CompanyBankAccount> searchByCompany(Company company, String searchText) { public List<CompanyBankAccountVo> searchByCompany(Company company, String searchText) {
throw new UnsupportedOperationException("未实现"); throw new UnsupportedOperationException("未实现");
} }
} }

View File

@@ -1,24 +1,22 @@
package com.ecep.contract.service; package com.ecep.contract.service;
import com.ecep.contract.MessageHolder; import java.io.File;
import com.ecep.contract.model.Company;
import com.ecep.contract.model.CompanyCustomer;
import com.ecep.contract.vm.CompanyCustomerViewModel;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.File; import com.ecep.contract.MessageHolder;
import java.util.HashMap; import com.ecep.contract.model.CompanyCustomer;
import java.util.Map; import com.ecep.contract.util.ParamUtils;
import com.ecep.contract.vm.CompanyCustomerViewModel;
import com.ecep.contract.vo.CompanyVo;
@Service @Service
public class CompanyCustomerService extends QueryService<CompanyCustomer, CompanyCustomerViewModel> { public class CompanyCustomerService extends QueryService<CompanyCustomer, CompanyCustomerViewModel> {
public CompanyCustomer findByCompany(Company company) { public CompanyCustomer findByCompany(CompanyVo company) {
Map<String, Object> params = new HashMap<>(); Page<CompanyCustomer> page = findAll(ParamUtils.equal("company", company.getId()), Pageable.ofSize(1));
params.put("company", company.getId());
Page<CompanyCustomer> page = findAll(params, Pageable.ofSize(1));
if (page.isEmpty()) { if (page.isEmpty()) {
return null; return null;
} }

View File

@@ -1,5 +1,22 @@
package com.ecep.contract.service; package com.ecep.contract.service;
import java.io.File;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.ecep.contract.vo.CompanyOldNameVo;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import com.ecep.contract.CompanyFileType; import com.ecep.contract.CompanyFileType;
import com.ecep.contract.MessageHolder; import com.ecep.contract.MessageHolder;
import com.ecep.contract.MyDateTimeUtils; import com.ecep.contract.MyDateTimeUtils;
@@ -12,17 +29,10 @@ import com.ecep.contract.model.CompanyOldName;
import com.ecep.contract.util.FileUtils; import com.ecep.contract.util.FileUtils;
import com.ecep.contract.util.ParamUtils; import com.ecep.contract.util.ParamUtils;
import com.ecep.contract.vm.CompanyFileViewModel; import com.ecep.contract.vm.CompanyFileViewModel;
import javafx.collections.ObservableList; import com.ecep.contract.vo.CompanyFileVo;
import org.springframework.data.domain.Pageable; import com.ecep.contract.vo.CompanyVo;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.io.File; import javafx.collections.ObservableList;
import java.time.LocalDate;
import java.util.*;
import java.util.function.Consumer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Service @Service
public class CompanyFileService extends QueryService<CompanyFile, CompanyFileViewModel> { public class CompanyFileService extends QueryService<CompanyFile, CompanyFileViewModel> {
@@ -295,16 +305,16 @@ public class CompanyFileService extends QueryService<CompanyFile, CompanyFileVie
* @param files 要被移动的文件集合,需要从中选择需要的 * @param files 要被移动的文件集合,需要从中选择需要的
* @param holder 状态输出 * @param holder 状态输出
*/ */
public boolean retrieveFromDownloadFiles(Company company, File[] files, MessageHolder holder) { public boolean retrieveFromDownloadFiles(CompanyVo company, File[] files, MessageHolder holder) {
Map<String, File> map = new HashMap<>(); Map<String, File> map = new HashMap<>();
File home = new File(company.getPath()); File home = new File(company.getPath());
map.put(company.getName(), home); map.put(company.getName(), home);
List<CompanyFile> retrieveFiles = new ArrayList<>(); List<CompanyFileVo> retrieveFiles = new ArrayList<>();
List<CompanyOldName> oldNames = SpringApp.getBean(CompanyOldNameService.class).findAllByCompany(company); List<CompanyOldNameVo> oldNames = SpringApp.getBean(CompanyOldNameService.class).findAllByCompany(company);
// 获取所有曾用名 // 获取所有曾用名
for (CompanyOldName companyOldName : oldNames) { for (CompanyOldNameVo companyOldName : oldNames) {
String name = companyOldName.getName(); String name = companyOldName.getName();
if (!StringUtils.hasText(name)) { if (!StringUtils.hasText(name)) {
continue; continue;
@@ -375,13 +385,13 @@ public class CompanyFileService extends QueryService<CompanyFile, CompanyFileVie
* @param holder 状态输出 * @param holder 状态输出
* @return 生成的公司文件对象如果无法转换则返回null * @return 生成的公司文件对象如果无法转换则返回null
*/ */
private CompanyFile fillDownloadFileType(Company company, File file, String companyName, File destDir, private CompanyFileVo fillDownloadFileType(CompanyVo company, File file, String companyName, File destDir,
MessageHolder holder) { MessageHolder holder) {
String fileName = file.getName(); String fileName = file.getName();
// 天眼查的报告 // 天眼查的报告
// 目前只有 基础版企业信用报告, 企业信用信息公示报告下载保存时的文件名中没有天眼查 // 目前只有 基础版企业信用报告, 企业信用信息公示报告下载保存时的文件名中没有天眼查
if (CloudTycService.isTycReport(fileName)) { if (CloudTycService.isTycReport(fileName)) {
CompanyFile companyFile = new CompanyFile(); CompanyFileVo companyFile = new CompanyFileVo();
companyFile.setType(CompanyFileType.CreditReport); companyFile.setType(CompanyFileType.CreditReport);
fillApplyDateAbsent(file, companyFile); fillApplyDateAbsent(file, companyFile);
@@ -471,7 +481,7 @@ public class CompanyFileService extends QueryService<CompanyFile, CompanyFileVie
/** /**
* 当 ApplyDate 未设置时,尝试使用文件名中包含的日期 * 当 ApplyDate 未设置时,尝试使用文件名中包含的日期
*/ */
private static void fillApplyDateAbsent(File file, CompanyFile companyFile) { private static void fillApplyDateAbsent(File file, CompanyFileVo companyFile) {
LocalDate applyDate = companyFile.getApplyDate(); LocalDate applyDate = companyFile.getApplyDate();
if (applyDate != null) { if (applyDate != null) {
return; return;

View File

@@ -1,36 +1,39 @@
package com.ecep.contract.service; package com.ecep.contract.service;
import com.ecep.contract.model.Company;
import com.ecep.contract.model.CompanyOldName;
import com.ecep.contract.vm.CompanyOldNameViewModel;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@Service import com.ecep.contract.model.IdentityEntity;
public class CompanyOldNameService extends QueryService<CompanyOldName, CompanyOldNameViewModel> { import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
public boolean makePathAbsent(CompanyOldName companyOldName) { import com.ecep.contract.model.Company;
import com.ecep.contract.model.CompanyOldName;
import com.ecep.contract.util.ParamUtils;
import com.ecep.contract.vm.CompanyOldNameViewModel;
import com.ecep.contract.vo.CompanyOldNameVo;
import com.ecep.contract.vo.CompanyVo;
@Service
public class CompanyOldNameService extends QueryService<CompanyOldNameVo, CompanyOldNameViewModel> {
public boolean makePathAbsent(CompanyOldNameVo companyOldName) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'makePathAbsent'"); throw new UnsupportedOperationException("Unimplemented method 'makePathAbsent'");
} }
public CompanyOldName findMatchByDate(Company company, LocalDate localDate) { public CompanyOldName findMatchByDate(CompanyVo company, LocalDate localDate) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'findMatchByDate'"); throw new UnsupportedOperationException("Unimplemented method 'findMatchByDate'");
} }
public List<CompanyOldName> findAllByCompanyAndName(Company company, String oldName) { public List<CompanyOldNameVo> findAllByCompanyAndName(CompanyVo company, String oldName) {
// TODO Auto-generated method stub return findAll(ParamUtils.builder().equals("company", company.getId()).equals("oldName", oldName).build(),
throw new UnsupportedOperationException("Unimplemented method 'findAllByCompanyAndName'"); Pageable.unpaged()).getContent();
} }
public List<CompanyOldName> findAllByCompany(Company company) { public List<CompanyOldNameVo> findAllByCompany(IdentityEntity company) {
HashMap<String, Object> params = new HashMap<>(); return findAll(ParamUtils.equal("company", company.getId()), Pageable.unpaged()).getContent();
params.put("company", company.getId());
return findAll(params, Pageable.unpaged()).getContent();
} }
} }

View File

@@ -1,5 +1,18 @@
package com.ecep.contract.service; package com.ecep.contract.service;
import java.io.File;
import java.time.LocalDate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import com.ecep.contract.MessageHolder; import com.ecep.contract.MessageHolder;
import com.ecep.contract.MyDateTimeUtils; import com.ecep.contract.MyDateTimeUtils;
import com.ecep.contract.SpringApp; import com.ecep.contract.SpringApp;
@@ -7,22 +20,11 @@ import com.ecep.contract.constant.CompanyConstant;
import com.ecep.contract.model.Company; import com.ecep.contract.model.Company;
import com.ecep.contract.util.FileUtils; import com.ecep.contract.util.FileUtils;
import com.ecep.contract.vm.CompanyViewModel; import com.ecep.contract.vm.CompanyViewModel;
import org.springframework.beans.factory.annotation.Autowired; import com.ecep.contract.vo.CompanyVo;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.io.File;
import java.time.LocalDate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service @Service
@CacheConfig(cacheNames = "company") @CacheConfig(cacheNames = "company")
public class CompanyService extends QueryService<Company, CompanyViewModel> { public class CompanyService extends QueryService<CompanyVo, CompanyViewModel> {
@Autowired @Autowired
private SysConfService confService; private SysConfService confService;
@@ -42,37 +44,37 @@ public class CompanyService extends QueryService<Company, CompanyViewModel> {
} }
@Cacheable(key = "#p0") @Cacheable(key = "#p0")
public Company findById(Integer id) { public CompanyVo findById(Integer id) {
return super.findById(id); return super.findById(id);
} }
public Company findByName(String name) { public CompanyVo findByName(String name) {
List<Company> list = findAllByName(name); List<CompanyVo> list = findAllByName(name);
if (list.isEmpty()) { if (list.isEmpty()) {
return null; return null;
} }
return list.getFirst(); return list.getFirst();
} }
public List<Company> findAllByName(String name) { public List<CompanyVo> findAllByName(String name) {
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
params.put("name", name); params.put("name", name);
return findAll(params, Pageable.unpaged()).getContent(); return findAll(params, Pageable.unpaged()).getContent();
} }
public void merge(Company company, Company updater) { public void merge(CompanyVo company, CompanyVo updater) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'merge'"); throw new UnsupportedOperationException("Unimplemented method 'merge'");
} }
public Company createNewCompany(String newCompanyName) { public CompanyVo createNewCompany(String newCompanyName) {
Company company = new Company(); CompanyVo company = new CompanyVo();
company.setName(newCompanyName); company.setName(newCompanyName);
company.setCreated(LocalDate.now()); company.setCreated(LocalDate.now());
return company; return company;
} }
public boolean existsCompanyPath(Company company) { public boolean existsCompanyPath(CompanyVo company) {
if (!StringUtils.hasText(company.getPath())) { if (!StringUtils.hasText(company.getPath())) {
return false; return false;
} }
@@ -81,7 +83,7 @@ public class CompanyService extends QueryService<Company, CompanyViewModel> {
return path.exists(); return path.exists();
} }
public boolean checkCompanyPathInBasePath(Company company) { public boolean checkCompanyPathInBasePath(CompanyVo company) {
if (!existsCompanyPath(company)) { if (!existsCompanyPath(company)) {
return false; return false;
} }
@@ -93,7 +95,7 @@ public class CompanyService extends QueryService<Company, CompanyViewModel> {
return path.getAbsolutePath().startsWith(basePath.getAbsolutePath()); return path.getAbsolutePath().startsWith(basePath.getAbsolutePath());
} }
public void verifyEnterpriseStatus(Company company, LocalDate verifyDate, MessageHolder holder) { public void verifyEnterpriseStatus(CompanyVo company, LocalDate verifyDate, MessageHolder holder) {
// 检查营业状态 // 检查营业状态
String entStatus = company.getEntStatus(); String entStatus = company.getEntStatus();
if (StringUtils.hasText(entStatus)) { if (StringUtils.hasText(entStatus)) {
@@ -114,7 +116,7 @@ public class CompanyService extends QueryService<Company, CompanyViewModel> {
} }
} }
public boolean makePathAbsent(Company company) { public boolean makePathAbsent(CompanyVo company) {
String path = company.getPath(); String path = company.getPath();
if (StringUtils.hasText(path)) { if (StringUtils.hasText(path)) {
File file = new File(path); File file = new File(path);
@@ -141,7 +143,7 @@ public class CompanyService extends QueryService<Company, CompanyViewModel> {
* @param company 要创建的企业对象 * @param company 要创建的企业对象
* @return 目录 * @return 目录
*/ */
public File makePath(Company company) { public File makePath(CompanyVo company) {
File basePath = getBasePath(); File basePath = getBasePath();
if (!basePath.exists()) { if (!basePath.exists()) {
return null; return null;
@@ -178,7 +180,7 @@ public class CompanyService extends QueryService<Company, CompanyViewModel> {
* @param files 要被移动的文件集合,需要从中选择需要的 * @param files 要被移动的文件集合,需要从中选择需要的
* @param holder 状态输出 * @param holder 状态输出
*/ */
public boolean retrieveFromDownloadFiles(Company company, File[] files, MessageHolder holder) { public boolean retrieveFromDownloadFiles(CompanyVo company, File[] files, MessageHolder holder) {
// //
boolean companyChanged = makePathAbsent(company); boolean companyChanged = makePathAbsent(company);

View File

@@ -2,20 +2,30 @@ package com.ecep.contract.service;
import java.io.File; import java.io.File;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.*; import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import com.ecep.contract.VendorType;
import com.ecep.contract.model.*;
import com.ecep.contract.util.MyStringUtils;
import com.ecep.contract.util.ProxyUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import com.ecep.contract.MessageHolder; import com.ecep.contract.MessageHolder;
import com.ecep.contract.VendorType;
import com.ecep.contract.model.Company;
import com.ecep.contract.model.CompanyVendor;
import com.ecep.contract.model.Contract;
import com.ecep.contract.model.VendorCatalog;
import com.ecep.contract.model.VendorTypeLocal;
import com.ecep.contract.util.MyStringUtils;
import com.ecep.contract.util.ParamUtils;
import com.ecep.contract.util.ProxyUtils;
import com.ecep.contract.vm.CompanyVendorViewModel; import com.ecep.contract.vm.CompanyVendorViewModel;
import org.springframework.util.StringUtils; import com.ecep.contract.vo.CompanyVo;
@Service @Service
public class CompanyVendorService extends QueryService<CompanyVendor, CompanyVendorViewModel> { public class CompanyVendorService extends QueryService<CompanyVendor, CompanyVendorViewModel> {
@@ -27,14 +37,11 @@ public class CompanyVendorService extends QueryService<CompanyVendor, CompanyVen
private CompanyVendorFileService companyVendorFileService; private CompanyVendorFileService companyVendorFileService;
public VendorCatalog findCatalogById(Integer id) { public VendorCatalog findCatalogById(Integer id) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'findCatalogById'"); throw new UnsupportedOperationException("Unimplemented method 'findCatalogById'");
} }
public CompanyVendor findByCompany(Company company) { public CompanyVendor findByCompany(CompanyVo company) {
Map<String, Object> params = new HashMap<>(); Page<CompanyVendor> page = findAll(ParamUtils.equal("company", company.getId()), Pageable.ofSize(1));
params.put("company", company.getId());
Page<CompanyVendor> page = findAll(params, Pageable.ofSize(1));
if (page.isEmpty()) { if (page.isEmpty()) {
return null; return null;
} }
@@ -93,7 +100,8 @@ public class CompanyVendorService extends QueryService<CompanyVendor, CompanyVen
if (entStatus.contains("注销")) { if (entStatus.contains("注销")) {
holder.error("营业状态异常:" + entStatus + ", 自动设置为不合格"); holder.error("营业状态异常:" + entStatus + ", 自动设置为不合格");
companyVendor.setType(VendorType.UNQUALIFIED); companyVendor.setType(VendorType.UNQUALIFIED);
companyVendor.setDescription(MyStringUtils.appendIfAbsent(companyVendor.getDescription(), "自动检测到营业状态为" + entStatus + ",设置为不合格供应商.")); companyVendor.setDescription(MyStringUtils.appendIfAbsent(companyVendor.getDescription(),
"自动检测到营业状态为" + entStatus + ",设置为不合格供应商."));
valid = true; valid = true;
} }
} else { } else {

View File

@@ -10,8 +10,8 @@ import com.ecep.contract.vm.InventoryViewModel;
public class InventoryService extends QueryService<Inventory, InventoryViewModel> { public class InventoryService extends QueryService<Inventory, InventoryViewModel> {
public Inventory createNewInstance() { public Inventory createNewInstance() {
// TODO Auto-generated method stub Inventory inventory = new Inventory();
throw new UnsupportedOperationException("Unimplemented method 'createNewInstance'"); return inventory;
} }
public void syncInventory(Inventory inventory, MessageHolder holder) { public void syncInventory(Inventory inventory, MessageHolder holder) {

View File

@@ -9,6 +9,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import javafx.util.StringConverter;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -253,4 +254,7 @@ public class QueryService<T extends IdentityEntity, TV extends IdentityViewModel
return pageContent; return pageContent;
} }
public StringConverter<T> getStringConverter() {
throw new UnsupportedOperationException("Not implemented");
}
} }

View File

@@ -5,7 +5,7 @@ import org.slf4j.LoggerFactory;
import com.ecep.contract.MessageHolder; import com.ecep.contract.MessageHolder;
import com.ecep.contract.constant.CloudServiceConstant; import com.ecep.contract.constant.CloudServiceConstant;
import com.ecep.contract.model.Company; import com.ecep.contract.vo.CompanyVo;
import lombok.Setter; import lombok.Setter;
@@ -15,7 +15,7 @@ import lombok.Setter;
public class CompanyCompositeUpdateTasker extends Tasker<Object> { public class CompanyCompositeUpdateTasker extends Tasker<Object> {
private static final Logger logger = LoggerFactory.getLogger(CompanyCompositeUpdateTasker.class); private static final Logger logger = LoggerFactory.getLogger(CompanyCompositeUpdateTasker.class);
@Setter @Setter
private Company company; private CompanyVo company;
@Override @Override
protected Object execute(MessageHolder holder) throws Exception { protected Object execute(MessageHolder holder) throws Exception {

View File

@@ -1,7 +1,7 @@
package com.ecep.contract.task; package com.ecep.contract.task;
import com.ecep.contract.MessageHolder; import com.ecep.contract.MessageHolder;
import com.ecep.contract.model.Company; import com.ecep.contract.vo.CompanyVo;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@@ -9,7 +9,7 @@ import lombok.Setter;
public class CompanyVerifyTasker extends Tasker<Object> { public class CompanyVerifyTasker extends Tasker<Object> {
@Getter @Getter
@Setter @Setter
private Company company; private CompanyVo company;
@Override @Override
protected Object execute(MessageHolder holder) throws Exception { protected Object execute(MessageHolder holder) throws Exception {

View File

@@ -7,6 +7,10 @@ import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.function.Function; import java.util.function.Function;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.service.QueryService;
import com.ecep.contract.vm.IdentityViewModel;
import javafx.beans.property.ObjectProperty;
import org.controlsfx.control.textfield.AutoCompletionBinding; import org.controlsfx.control.textfield.AutoCompletionBinding;
import org.controlsfx.control.textfield.TextFields; import org.controlsfx.control.textfield.TextFields;
import org.slf4j.Logger; import org.slf4j.Logger;
@@ -244,6 +248,52 @@ public class UITools {
return autoCompletion(textField, property, converter::suggest, converter); return autoCompletion(textField, property, converter::suggest, converter);
} }
public static <T extends IdentityEntity, TV extends IdentityViewModel<T>> AutoCompletionBinding<T> autoCompletion(
TextField textField, ObjectProperty<Integer> idProperty, QueryService<T, TV> queryService) {
Integer id = idProperty.get();
T entity = queryService.findById(id);
StringConverter<T> converter = queryService.getStringConverter();
// 先赋值
textField.textProperty().set(converter.toString(entity));
// 监听 property 变化
idProperty.addListener((observable, oldValue, newValue) -> {
T newEntity = queryService.findById(newValue);
textField.textProperty().set(converter.toString(newEntity));
});
// 关联一个 自动完成
AutoCompletionBinding<T> completionBinding = TextFields.bindAutoCompletion(textField, p -> {
if (p.isCancelled()) {
return null;
}
try {
return queryService.search(p.getUserText());
} catch (Exception e) {
textField.setText(e.getMessage());
throw new RuntimeException(e);
}
}, converter);
// 设置自动补全选中值到 property
completionBinding.setOnAutoCompleted(event -> {
T completion = event.getCompletion();
idProperty.set(completion.getId());
});
// fixed 当输入框丢失焦点时输入框内容为空时设置property 为null
textField.focusedProperty().addListener((observable, oldValue, newValue) -> {
if (!newValue) {
if (!StringUtils.hasText(textField.getText())) {
idProperty.set(null);
}
}
});
return completionBinding;
}
/** /**
* 给 TextField 增加一个 自动补全功能 * 给 TextField 增加一个 自动补全功能
* *

View File

@@ -3,6 +3,7 @@ package com.ecep.contract.vm;
import java.util.Objects; import java.util.Objects;
import com.ecep.contract.model.Bank; import com.ecep.contract.model.Bank;
import com.ecep.contract.vo.BankVo;
import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.SimpleStringProperty;
import lombok.Data; import lombok.Data;
@@ -10,12 +11,12 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class BankViewModel extends IdentityViewModel<Bank> { public class BankViewModel extends IdentityViewModel<BankVo> {
private SimpleStringProperty code = new SimpleStringProperty(); private SimpleStringProperty code = new SimpleStringProperty();
private SimpleStringProperty name = new SimpleStringProperty(); private SimpleStringProperty name = new SimpleStringProperty();
public static BankViewModel from(Bank v) { public static BankViewModel from(BankVo v) {
BankViewModel vm = new BankViewModel(); BankViewModel vm = new BankViewModel();
vm.update(v); vm.update(v);
return vm; return vm;
@@ -23,14 +24,14 @@ public class BankViewModel extends IdentityViewModel<Bank> {
@Override @Override
protected void updateFrom(Bank v) { protected void updateFrom(BankVo v) {
super.updateFrom(v); super.updateFrom(v);
getCode().set(v.getCode()); getCode().set(v.getCode());
getName().set(v.getName()); getName().set(v.getName());
} }
@Override @Override
public boolean copyTo(Bank v) { public boolean copyTo(BankVo v) {
boolean modified = super.copyTo(v); boolean modified = super.copyTo(v);
if (!Objects.equals(getCode().get(), v.getCode())) { if (!Objects.equals(getCode().get(), v.getCode())) {
v.setCode(getCode().get()); v.setCode(getCode().get());

View File

@@ -3,9 +3,7 @@ package com.ecep.contract.vm;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.Objects; import java.util.Objects;
import com.ecep.contract.model.Bank; import com.ecep.contract.vo.CompanyBankAccountVo;
import com.ecep.contract.model.Company;
import com.ecep.contract.model.CompanyBankAccount;
import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleObjectProperty;
@@ -15,11 +13,12 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class CompanyBankAccountViewModel extends IdentityViewModel<CompanyBankAccount> implements CompanyBasedViewModel { public class CompanyBankAccountViewModel extends IdentityViewModel<CompanyBankAccountVo>
implements CompanyBasedViewModel {
private SimpleIntegerProperty id = new SimpleIntegerProperty(); private SimpleIntegerProperty id = new SimpleIntegerProperty();
private SimpleObjectProperty<Company> company = new SimpleObjectProperty<>(); private SimpleObjectProperty<Integer> companyId = new SimpleObjectProperty<>();
private SimpleObjectProperty<Bank> bank = new SimpleObjectProperty<>(); private SimpleObjectProperty<Integer> bankId = new SimpleObjectProperty<>();
private SimpleStringProperty openingBank = new SimpleStringProperty(); private SimpleStringProperty openingBank = new SimpleStringProperty();
private SimpleStringProperty account = new SimpleStringProperty(); private SimpleStringProperty account = new SimpleStringProperty();
@@ -29,27 +28,27 @@ public class CompanyBankAccountViewModel extends IdentityViewModel<CompanyBankAc
private SimpleIntegerProperty version = new SimpleIntegerProperty(); private SimpleIntegerProperty version = new SimpleIntegerProperty();
@Override @Override
protected void updateFrom(CompanyBankAccount v) { protected void updateFrom(CompanyBankAccountVo v) {
getId().set(v.getId()); getId().set(v.getId());
getCompany().set(v.getCompany()); companyId.set(v.getCompanyId());
getBank().set(v.getBank()); bankId.set(v.getBankId());
getOpeningBank().set(v.getOpeningBank()); getOpeningBank().set(v.getOpeningBank());
getAccount().set(v.getAccount()); getAccount().set(v.getAccount());
} }
@Override @Override
public boolean copyTo(CompanyBankAccount v) { public boolean copyTo(CompanyBankAccountVo v) {
boolean modified = super.copyTo(v); boolean modified = super.copyTo(v);
if (!Objects.equals(id.get(), v.getId())) { if (!Objects.equals(id.get(), v.getId())) {
v.setId(id.get()); v.setId(id.get());
modified = true; modified = true;
} }
if (!Objects.equals(company.get(), v.getCompany())) { if (!Objects.equals(companyId.get(), v.getCompanyId())) {
v.setCompany(company.get()); v.setCompanyId(companyId.get());
modified = true; modified = true;
} }
if (!Objects.equals(bank.get(), v.getBank())) { if (!Objects.equals(bankId.get(), v.getBankId())) {
v.setBank(bank.get()); v.setBankId(bankId.get());
modified = true; modified = true;
} }
if (!Objects.equals(openingBank.get(), v.getOpeningBank())) { if (!Objects.equals(openingBank.get(), v.getOpeningBank())) {
@@ -63,7 +62,7 @@ public class CompanyBankAccountViewModel extends IdentityViewModel<CompanyBankAc
return modified; return modified;
} }
public static CompanyBankAccountViewModel from(CompanyBankAccount v) { public static CompanyBankAccountViewModel from(CompanyBankAccountVo v) {
CompanyBankAccountViewModel vm = new CompanyBankAccountViewModel(); CompanyBankAccountViewModel vm = new CompanyBankAccountViewModel();
vm.updateFrom(v); vm.updateFrom(v);
return vm; return vm;

View File

@@ -1,9 +1,7 @@
package com.ecep.contract.vm; package com.ecep.contract.vm;
import com.ecep.contract.model.Company; import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
public interface CompanyBasedViewModel { public interface CompanyBasedViewModel {
SimpleObjectProperty<Company> getCompany(); ObjectProperty<Integer> getCompanyId();
} }

View File

@@ -3,7 +3,7 @@ package com.ecep.contract.vm;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.Objects; import java.util.Objects;
import com.ecep.contract.model.CompanyOldName; import com.ecep.contract.vo.CompanyOldNameVo;
import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleIntegerProperty;
@@ -14,40 +14,39 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class CompanyOldNameViewModel extends IdentityViewModel<CompanyOldName> { public class CompanyOldNameViewModel extends IdentityViewModel<CompanyOldNameVo> {
private SimpleIntegerProperty id = new SimpleIntegerProperty(); private SimpleIntegerProperty id = new SimpleIntegerProperty();
private SimpleStringProperty name = new SimpleStringProperty(); private SimpleStringProperty name = new SimpleStringProperty();
private SimpleStringProperty path = new SimpleStringProperty(); private SimpleStringProperty path = new SimpleStringProperty();
private SimpleObjectProperty<LocalDate> beginDate = new SimpleObjectProperty<>(); private SimpleObjectProperty<LocalDate> beginDate = new SimpleObjectProperty<>();
private SimpleObjectProperty<LocalDate> endDate = new SimpleObjectProperty<>(); private SimpleObjectProperty<LocalDate> endDate = new SimpleObjectProperty<>();
private SimpleBooleanProperty ambiguity = new SimpleBooleanProperty(); private SimpleBooleanProperty ambiguity = new SimpleBooleanProperty();
private SimpleIntegerProperty version = new SimpleIntegerProperty(); private SimpleBooleanProperty active = new SimpleBooleanProperty();
private SimpleStringProperty memo = new SimpleStringProperty(); private SimpleStringProperty memo = new SimpleStringProperty();
private SimpleIntegerProperty version = new SimpleIntegerProperty();
public static CompanyOldNameViewModel from(CompanyOldNameVo name) {
public static CompanyOldNameViewModel from(CompanyOldName name) {
CompanyOldNameViewModel model = new CompanyOldNameViewModel(); CompanyOldNameViewModel model = new CompanyOldNameViewModel();
model.update(name); model.update(name);
return model; return model;
} }
public void updateFrom(CompanyOldName oldName) { public void updateFrom(CompanyOldNameVo oldName) {
id.set(oldName.getId()); id.set(oldName.getId());
name.set(oldName.getName()); name.set(oldName.getName());
path.set(oldName.getPath()); path.set(oldName.getPath());
memo.set(oldName.getMemo()); memo.set(oldName.getMemo());
beginDate.set(oldName.getBeginDate()); beginDate.set(oldName.getBeginDate());
endDate.set(oldName.getEndDate()); endDate.set(oldName.getEndDate());
ambiguity.set(oldName.getAmbiguity()); ambiguity.set(oldName.isAmbiguity());
active.set(oldName.isActive());
version.set(oldName.getVersion()); version.set(oldName.getVersion());
} }
public boolean copyTo(CompanyOldName c) { public boolean copyTo(CompanyOldNameVo c) {
boolean modified = super.copyTo(c); boolean modified = super.copyTo(c);
if (!Objects.equals(id.get(), c.getId())) { if (!Objects.equals(id.get(), c.getId())) {
c.setId(id.get()); c.setId(id.get());
@@ -73,10 +72,14 @@ public class CompanyOldNameViewModel extends IdentityViewModel<CompanyOldName> {
c.setEndDate(endDate.get()); c.setEndDate(endDate.get());
modified = true; modified = true;
} }
if (!Objects.equals(ambiguity.get(), c.getAmbiguity())) { if (!Objects.equals(ambiguity.get(), c.isAmbiguity())) {
c.setAmbiguity(ambiguity.get()); c.setAmbiguity(ambiguity.get());
modified = true; modified = true;
} }
if (!Objects.equals(active.get(), c.isActive())) {
c.setActive(active.get());
modified = true;
}
return modified; return modified;
} }
} }

View File

@@ -3,7 +3,7 @@ package com.ecep.contract.vm;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.Objects; import java.util.Objects;
import com.ecep.contract.model.Company; import com.ecep.contract.vo.CompanyVo;
import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleIntegerProperty;
@@ -12,10 +12,9 @@ import javafx.beans.property.SimpleStringProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class CompanyViewModel extends IdentityViewModel<Company> { public class CompanyViewModel extends IdentityViewModel<CompanyVo> {
private SimpleStringProperty name = new SimpleStringProperty(); private SimpleStringProperty name = new SimpleStringProperty();
private SimpleStringProperty shortName = new SimpleStringProperty(); private SimpleStringProperty shortName = new SimpleStringProperty();
private SimpleStringProperty uid = new SimpleStringProperty(); private SimpleStringProperty uid = new SimpleStringProperty();
@@ -42,14 +41,14 @@ public class CompanyViewModel extends IdentityViewModel<Company> {
private SimpleIntegerProperty version = new SimpleIntegerProperty(); private SimpleIntegerProperty version = new SimpleIntegerProperty();
public static CompanyViewModel from(Company company) { public static CompanyViewModel from(CompanyVo company) {
CompanyViewModel model = new CompanyViewModel(); CompanyViewModel model = new CompanyViewModel();
model.update(company); model.update(company);
return model; return model;
} }
@Override @Override
protected void updateFrom(Company company) { protected void updateFrom(CompanyVo company) {
super.updateFrom(company); super.updateFrom(company);
name.set(company.getName()); name.set(company.getName());
shortName.set(company.getShortName()); shortName.set(company.getShortName());
@@ -79,7 +78,7 @@ public class CompanyViewModel extends IdentityViewModel<Company> {
version.set(company.getVersion()); version.set(company.getVersion());
} }
public boolean copyTo(Company v) { public boolean copyTo(CompanyVo v) {
boolean modified = super.copyTo(v); boolean modified = super.copyTo(v);
if (!Objects.equals(name.get(), v.getName())) { if (!Objects.equals(name.get(), v.getName())) {
v.setName(name.get()); v.setName(name.get());

View File

@@ -15,6 +15,7 @@ import com.ecep.contract.model.Project;
import com.ecep.contract.model.ProjectIndustry; import com.ecep.contract.model.ProjectIndustry;
import com.ecep.contract.model.ProjectSaleType; import com.ecep.contract.model.ProjectSaleType;
import com.ecep.contract.model.ProjectType; import com.ecep.contract.model.ProjectType;
import com.ecep.contract.vo.ProjectVo;
import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleIntegerProperty;
@@ -25,8 +26,8 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class ProjectViewModel extends IdentityViewModel<Project> { public class ProjectViewModel extends IdentityViewModel<ProjectVo> {
private SimpleObjectProperty<Company> customer = new SimpleObjectProperty<>(); private SimpleObjectProperty<Integer> customer = new SimpleObjectProperty<>();
/** /**
* 银行账户(公司可能有多个账户,此项目关联其中一个账户) * 银行账户(公司可能有多个账户,此项目关联其中一个账户)
*/ */
@@ -78,14 +79,14 @@ public class ProjectViewModel extends IdentityViewModel<Project> {
private SimpleIntegerProperty version = new SimpleIntegerProperty(); private SimpleIntegerProperty version = new SimpleIntegerProperty();
public static ProjectViewModel from(Project project) { public static ProjectViewModel from(ProjectVo project) {
ProjectViewModel model = new ProjectViewModel(); ProjectViewModel model = new ProjectViewModel();
model.update(project); model.update(project);
return model; return model;
} }
@Override @Override
protected void updateFrom(Project v) { protected void updateFrom(ProjectVo v) {
super.updateFrom(v); super.updateFrom(v);
customer.set(v.getCustomer()); customer.set(v.getCustomer());
bankAccount.set(v.getBankAccount()); bankAccount.set(v.getBankAccount());
@@ -118,7 +119,7 @@ public class ProjectViewModel extends IdentityViewModel<Project> {
getVersion().set(v.getVersion()); getVersion().set(v.getVersion());
} }
public boolean copyTo(Project v) { public boolean copyTo(ProjectVo v) {
boolean modified = super.copyTo(v); boolean modified = super.copyTo(v);
if (!Objects.equals(customer.get(), v.getCustomer())) { if (!Objects.equals(customer.get(), v.getCustomer())) {
v.setCustomer(customer.get()); v.setCustomer(customer.get());

View File

@@ -0,0 +1,12 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class BankVo implements IdentityEntity {
private Integer id;
private String code;
private String name;
}

View File

@@ -0,0 +1,30 @@
package com.ecep.contract.vo;
import java.time.LocalDateTime;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class CloudRkVo implements IdentityEntity {
private Integer id;
private String cloudId;
private Integer companyId;
private boolean autoUpdate = false;
private int updateDays;
private String customerGrade;
private Integer customerScore;
private String customerDescription;
private String vendorGrade;
private Integer vendorScore;
private String vendorDescription;
private String rank;
private String rankDescription;
private LocalDateTime cloudLatest;
private LocalDateTime cloudBlackListUpdated;
private LocalDateTime cloudEntUpdate;
private String description;
private LocalDateTime latestUpdate;
private Integer version;
}

View File

@@ -0,0 +1,19 @@
package com.ecep.contract.vo;
import java.time.Instant;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class CloudTycVo implements IdentityEntity, CompanyBasedVo {
private Integer id;
private Integer score;
private Instant cloudLatest;
private String cloudId;
private Instant latestUpdate;
private Integer companyId;
private int version;
private boolean active = false;
}

View File

@@ -0,0 +1,20 @@
package com.ecep.contract.vo;
import java.time.Instant;
import java.time.LocalDate;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class CloudYuVo implements IdentityEntity {
private Integer id;
private Instant latestUpdate;
private Integer companyId;
private String exceptionMessage;
private LocalDate vendorUpdateDate;
private LocalDate customerUpdateDate;
private Instant cloudLatest;
private boolean active = false;
}

View File

@@ -0,0 +1,37 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class CompanyBankAccountVo implements IdentityEntity, CompanyBasedVo {
private Integer id;
/**
* 公司id
*
* @see CompanyVo
*/
private Integer companyId;
/**
* 银行id
*
* @see BankVo
*/
private Integer bankId;
/**
* 账号
*/
private String account;
/**
* 开户行
*/
private String openingBank;
/**
* 描述
*/
private String description;
/**
* 状态
*/
private boolean active = false;
}

View File

@@ -0,0 +1,7 @@
package com.ecep.contract.vo;
public interface CompanyBasedVo {
Integer getCompanyId();
void setCompanyId(Integer companyId);
}

View File

@@ -0,0 +1,21 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.BlackReasonType;
import java.time.LocalDate;
import lombok.Data;
@Data
public class CompanyBlackReasonVo implements IdentityEntity ,CompanyBasedVo{
private Integer id;
private Integer companyId;
private BlackReasonType type;
private String applyName;
private LocalDate applyDate;
private LocalDate updateTime;
private LocalDate createTime;
private LocalDate includeDate;
private String blackReason;
private String description;
private String key;
}

View File

@@ -0,0 +1,23 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.model.NamedEntity;
import java.time.LocalDate;
import lombok.Data;
@Data
public class CompanyContactVo implements IdentityEntity, NamedEntity ,CompanyBasedVo{
private Integer id;
private Integer companyId;
private String name;
private String position;
private String phone;
private String email;
private String address;
private String u8Code;
private String memo;
private LocalDate created;
private boolean primary = false;
private String description;
private boolean active = false;
}

View File

@@ -0,0 +1,13 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class CompanyContractVo implements IdentityEntity ,CompanyBasedVo{
private Integer id;
private Integer companyId;
private Integer contractId;
private String contractCode;
private String contractName;
}

View File

@@ -0,0 +1,26 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class CompanyCustomerEntityVo implements IdentityEntity {
private Integer id;
private Integer companyCustomerId;
private String customerName;
private String name;
private String abbName;
private String code;
private Integer customerCatalogId;
private String catalogName;
private Integer creatorId;
private String creatorName;
private Integer modifierId;
private String modifierName;
private LocalDate modifyDate;
private LocalDate developDate;
private LocalDate updatedDate;
private LocalDateTime fetchedTime;
}

View File

@@ -0,0 +1,19 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class CompanyCustomerEvaluationFormFileVo implements IdentityEntity {
private Integer id;
private Integer customerFileId;
private String catalog;
private String level;
private Integer creditLevel = 0;
private Integer score1 = 0;
private Integer score2 = 0;
private Integer score3 = 0;
private Integer score4 = 0;
private Integer score5 = 0;
private Integer scoreTemplateVersion = 1;
}

View File

@@ -0,0 +1,14 @@
package com.ecep.contract.vo;
import com.ecep.contract.CompanyCustomerFileType;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class CompanyCustomerFileTypeLocalVo implements IdentityEntity {
private Integer id;
private String name;
private CompanyCustomerFileType value;
private Integer orderNum = 0;
private boolean active = false;
}

View File

@@ -0,0 +1,17 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.CompanyCustomerFileType;
import java.time.LocalDate;
import lombok.Data;
@Data
public class CompanyCustomerFileVo implements IdentityEntity {
private Integer id;
private Integer customerId;
private CompanyCustomerFileType type;
private String filePath;
private String editFilePath;
private LocalDate signDate;
private boolean valid = false;
}

View File

@@ -0,0 +1,21 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import java.time.Instant;
import java.time.LocalDate;
import lombok.Data;
@Data
public class CompanyCustomerVo implements IdentityEntity,CompanyBasedVo {
private Integer id;
private Integer companyId;
private LocalDate developDate;
private String path;
private Integer companyContactId;
private String contactName;
private String contactPhone;
private String contactEmail;
private String description;
private Instant created;
private int version;
}

View File

@@ -0,0 +1,12 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class CompanyExtendInfoVo implements IdentityEntity, CompanyBasedVo {
private Integer id;
private Integer companyId;
private boolean disableVerify = false;
private int version = 0;
}

View File

@@ -0,0 +1,14 @@
package com.ecep.contract.vo;
import com.ecep.contract.CompanyFileType;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class CompanyFileTypeLocalVo implements IdentityEntity {
private Integer id;
private String name;
private CompanyFileType value;
private Integer orderNum = 0;
private boolean active = false;
}

View File

@@ -0,0 +1,20 @@
package com.ecep.contract.vo;
import java.time.LocalDate;
import com.ecep.contract.CompanyFileType;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class CompanyFileVo implements IdentityEntity, CompanyBasedVo {
private Integer id;
private Integer companyId;
private CompanyFileType type;
private LocalDate applyDate;
private LocalDate expiringDate;
private String filePath;
private boolean active = false;
}

View File

@@ -0,0 +1,18 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.model.NamedEntity;
import lombok.Data;
@Data
public class CompanyInvoiceInfoVo implements IdentityEntity, NamedEntity, CompanyBasedVo {
private Integer id;
private String name;
private Integer companyId;
private String taxId;
private String address;
private String phone;
private String bankName;
private String bankAccount;
private boolean active = false;
}

View File

@@ -0,0 +1,22 @@
package com.ecep.contract.vo;
import java.time.LocalDate;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.model.NamedEntity;
import lombok.Data;
@Data
public class CompanyOldNameVo implements IdentityEntity, NamedEntity, CompanyBasedVo {
private Integer id;
private Integer companyId;
private String name;
private LocalDate beginDate;
private LocalDate endDate;
private boolean ambiguity = false;
private String path;
private String memo;
private int version;
private boolean active = false;
}

View File

@@ -0,0 +1,15 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import java.time.LocalDate;
import lombok.Data;
@Data
public class CompanyVendorApprovedFileVo implements IdentityEntity {
private Integer id;
private Integer listId;
private String listName;
private String fileName;
private LocalDate signDate;
private String description;
}

View File

@@ -0,0 +1,21 @@
package com.ecep.contract.vo;
import com.ecep.contract.VendorType;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
/**
* 供应商审批项目VO类
*/
@Data
public class CompanyVendorApprovedItemVo implements IdentityEntity {
private Integer id;
private Integer listId;
private String listName;
private String vendorName;
private Integer vendorId;
private String vendorNameInfo;
private VendorType type;
private String description;
}

View File

@@ -0,0 +1,19 @@
package com.ecep.contract.vo;
import java.time.LocalDate;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
/**
* 合格供应商名录VO类
*/
@Data
public class CompanyVendorApprovedListVo implements IdentityEntity {
private Integer id;
private String title;
private LocalDate publishDate;
private String path;
private String description;
}

View File

@@ -0,0 +1,31 @@
package com.ecep.contract.vo;
import java.time.LocalDate;
import java.time.LocalDateTime;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
/**
* 供应商的关联详细项VO类
*/
@Data
public class CompanyVendorEntityVo implements IdentityEntity {
private Integer id;
private Integer vendorId;
private String vendorName;
private String name;
private String abbName;
private String code;
private Integer catalogId;
private String catalogName;
private Integer creatorId;
private String creatorName;
private Integer modifierId;
private String modifierName;
private LocalDate modifyDate;
private LocalDate developDate;
private LocalDate updatedDate;
private LocalDateTime fetchedTime;
}

View File

@@ -0,0 +1,23 @@
package com.ecep.contract.vo;
import java.time.LocalDate;
import com.ecep.contract.VendorFileType;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
/**
* 供应商的文件VO类
*/
@Data
public class CompanyVendorFileVo implements IdentityEntity {
private Integer id;
private Integer vendorId;
private String vendorName;
private VendorFileType type;
private String filePath;
private String editFilePath;
private LocalDate signDate;
private boolean valid = false;
}

View File

@@ -0,0 +1,26 @@
package com.ecep.contract.vo;
import com.ecep.contract.VendorType;
import com.ecep.contract.model.IdentityEntity;
import java.time.Instant;
import java.time.LocalDate;
import lombok.Data;
@Data
public class CompanyVendorVo implements IdentityEntity {
private Integer id;
private VendorType type;
private boolean protocolProvider = false;
private Integer companyId;
private String companyName;
private Integer catalogId;
private String catalogName;
private LocalDate developDate;
private String path;
private Integer contactId;
private String contactName;
private String purchase;
private String description;
private Instant created;
private int version;
}

View File

@@ -0,0 +1,43 @@
package com.ecep.contract.vo;
import java.time.LocalDate;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.model.NamedEntity;
import lombok.Data;
@Data
public class CompanyVo implements IdentityEntity, NamedEntity {
private Integer id;
private String name;
private String uniscid;
private String shortName;
private boolean pathExist = false;
private String path;
private LocalDate created;
private String entStatus;
private String entType;
private String district;
private String industry;
private String telephone;
private String regAddr;
private String address;
private LocalDate setupDate;
private LocalDate operationPeriodBegin;
private LocalDate operationPeriodEnd;
private String registeredCapital;
private String registeredCapitalCurrency;
private String legalRepresentative;
private String memo;
private int version;
// 保留的额外字段
private String registerAddress;
private String businessScope;
private String legalPerson;
private String legalPersonPhone;
private String contactPerson;
private String contactPhone;
private String contactEmail;
private String website;
private String remark;
}

View File

@@ -0,0 +1,7 @@
package com.ecep.contract.vo;
public interface ContractBasedVo {
Integer getContractId();
void setContractId(Integer contractId);
}

View File

@@ -0,0 +1,13 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class ContractBidVendorVo implements IdentityEntity, ContractBasedVo, CompanyBasedVo {
private Integer id;
private Integer contractId;
private Integer companyId;
private Integer quotationSheetFileId;
private String quotationSheetFileName;
}

View File

@@ -0,0 +1,15 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.model.NamedEntity;
import lombok.Data;
@Data
public class ContractCatalogVo implements IdentityEntity, NamedEntity {
private Integer id;
private String code;
private String name;
private String path;
private String parent;
private boolean useYear = false;
}

View File

@@ -0,0 +1,15 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.ContractFileType;
import lombok.Data;
@Data
public class ContractFileTypeLocalVo implements IdentityEntity {
private Integer id;
private String language;
private ContractFileType type;
private String name;
private String description;
private String suggestFileName;
}

View File

@@ -0,0 +1,17 @@
package com.ecep.contract.vo;
import java.time.LocalDate;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.ContractFileType;
import lombok.Data;
@Data
public class ContractFileVo implements IdentityEntity, ContractBasedVo {
private Integer id;
private Integer contractId;
private ContractFileType type;
private String fileName;
private LocalDate applyDate;
private String description;
}

View File

@@ -0,0 +1,17 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.model.NamedEntity;
import lombok.Data;
@Data
public class ContractGroupVo implements IdentityEntity, NamedEntity {
private Integer id;
private String name;
private String code;
private String title;
private Integer parentId;
private Integer order;
private String description;
private boolean active = false;
}

View File

@@ -0,0 +1,35 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class ContractItemVo implements IdentityEntity, ContractBasedVo {
private Integer id;
private Integer contractId;
private Integer refId;
private String itemCode;
private String title;
private String specification;
private String unit;
private Integer inventoryId;
private String inventoryName;
private Double exclusiveTaxPrice;
private Double taxRate;
private Double taxPrice;
private Double quantity;
private LocalDateTime createDate;
private LocalDateTime updateDate;
private LocalDate startDate;
private LocalDate endDate;
private Integer creatorId;
private String creatorName;
private Integer updaterId;
private String updaterName;
private String remark;
private Integer order;
}

View File

@@ -0,0 +1,14 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.model.NamedEntity;
import lombok.Data;
@Data
public class ContractKindVo implements IdentityEntity, NamedEntity {
private Integer id;
private String name;
private String code;
private String description;
private boolean active = false;
}

View File

@@ -0,0 +1,19 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import java.time.LocalDate;
import lombok.Data;
@Data
public class ContractPayPlanVo implements IdentityEntity, ContractBasedVo {
private Integer id;
private Integer contractId;
private Integer order;
private Double amount;
private LocalDate planDate;
private LocalDate actualDate;
private String remark;
private boolean paid = false;
}

View File

@@ -0,0 +1,19 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.model.NamedEntity;
import lombok.Data;
@Data
public class ContractTypeVo implements IdentityEntity, NamedEntity {
private Integer id;
private String name;
private String code;
private String catalog;
private String title;
private String direction;
private Integer parentId;
private Integer order;
private String description;
private boolean active = false;
}

View File

@@ -0,0 +1,63 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.model.NamedEntity;
import com.ecep.contract.ContractPayWay;
import java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class ContractVo implements IdentityEntity, NamedEntity {
private Integer id;
private String guid;
private String code;
private String name;
private Integer companyId;
private String companyName;
private Integer customerId;
private String customerName;
private Integer vendorId;
private String vendorName;
private Integer contractTypeId;
private String contractTypeName;
private Integer contractKindId;
private String contractKindName;
private Integer contractGroupId;
private String contractGroupName;
private Integer projectId;
private String projectName;
private String parentCode;
private LocalDate orderDate;
private LocalDate startDate;
private LocalDate endDate;
private Integer setupPersonId;
private String setupPersonName;
private LocalDate setupDate;
private Integer inurePersonId;
private String inurePersonName;
private LocalDate inureDate;
private Integer varyPersonId;
private String varyPersonName;
private LocalDate varyDate;
private Integer employeeId;
private String employeeName;
private Integer handlerId;
private String handlerName;
private String state;
private String path;
private String description;
private LocalDateTime created;
private Double amount;
private boolean standardPayWay = false;
private boolean standardPContractText = false;
private Double totalQuantity;
private Double totalAmount;
private Double totalUnTaxAmount;
private Double execQuantity;
private Double execAmount;
private Double execUnTaxAmount;
private ContractPayWay payWay;
private boolean active = false;
private Integer version;
}

View File

@@ -0,0 +1,15 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class CustomerCatalogVo implements IdentityEntity {
private Integer id;
private String name;
private String code;
private Integer parentId;
private Integer order;
private String description;
private boolean active = false;
}

View File

@@ -0,0 +1,22 @@
package com.ecep.contract.vo;
import java.time.LocalDate;
import java.time.LocalDateTime;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class CustomerSatisfactionSurveyVo implements IdentityEntity, ProjectBasedVo {
private Integer id;
private Integer projectId;
private String code;
private LocalDate date;
private int totalScore;
private String data;
private Integer applicantId;
private LocalDateTime applyTime;
private String description;
private boolean active = false;
}

View File

@@ -0,0 +1,17 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import java.time.LocalDate;
import lombok.Data;
@Data
public class DeliverySignMethodVo implements IdentityEntity {
private Integer id;
private String name;
private String code;
private Integer saleTypeId;
private String saleTypeName;
private String description;
private boolean active = false;
private LocalDate created;
}

View File

@@ -0,0 +1,17 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class DepartmentVo implements IdentityEntity {
private Integer id;
private String name;
private String code;
private Integer parentId;
private Integer order;
private Integer leaderId;
private String leaderName;
private String description;
private boolean active = false;
}

View File

@@ -0,0 +1,16 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.model.NamedEntity;
import lombok.Data;
@Data
public class EmployeeRoleVo implements IdentityEntity, NamedEntity {
private Integer id;
private String code;
private String name;
private boolean systemAdministrator = false;
private boolean manager = false;
private boolean active = true;
private String description;
}

View File

@@ -0,0 +1,36 @@
package com.ecep.contract.vo;
import java.time.LocalDate;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.model.NamedEntity;
import lombok.Data;
/**
*
*/
@Data
public class EmployeeVo implements IdentityEntity, NamedEntity {
private Integer id;
private String account;
private String name;
private String alias;
private String code;
private Integer departmentId;
private String departmentName;
private String position;
private String phone;
private String email;
private String idCard;
private LocalDate created;
private LocalDate entryDate;
private LocalDate leaveDate;
private String locale;
private String dateFormatter;
private String dateTimeFormatter;
private String timeFormatter;
private String timeZone;
private String numberFormatter;
private String currencyFormatter;
private boolean active = false;
private String description;
}

View File

@@ -0,0 +1,26 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
/**
* 扩展供应商信息VO类
*/
@Data
public class ExtendVendorInfoVo implements IdentityEntity, ContractBasedVo {
private Integer id;
private Integer contractId;
private Integer vendorGroupId;
/**
* 合同序号
*/
private int codeSequenceNumber;
/**
* 是否为指定供应商
*/
private boolean assignedProvider = false;
/**
* 是否为预采购
*/
private boolean prePurchase = false;
}

View File

@@ -0,0 +1,17 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class FunctionVo implements IdentityEntity {
private Integer id;
private String name;
private String code;
private Integer parentId;
private Integer order;
private String description;
private String url;
private String icon;
private boolean active = false;
}

View File

@@ -0,0 +1,15 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class InventoryCatalogVo implements IdentityEntity {
private Integer id;
private String name;
private String code;
private Integer parentId;
private Integer order;
private String description;
private boolean active = false;
}

View File

@@ -0,0 +1,46 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class InventoryVo implements IdentityEntity {
private Integer id;
private String name;
private String code;
private Integer catalogId;
private String catalogName;
private String specification;
private boolean specificationLock = false;
private boolean nameLock = false;
private Double purchaseTax;
private Double purchasePrice;
private Double purchaseTaxPrice;
private Double saleTax;
private Double salePrice;
private Double saleTaxPrice;
private String unit;
private Double weight;
private Double packagedWeight;
private String weightUnit;
private String volumeUnit;
private String sizeUnit;
private Double volume;
private Double volumeSizeLength;
private Double volumeSizeWidth;
private Double volumeSizeHeight;
private Double packVolume;
private Double packVolumeSizeLength;
private Double packVolumeSizeWidth;
private Double packVolumeSizeHeight;
private Integer creatorId;
private String creatorName;
private LocalDate createTime;
private Integer updaterId;
private String updaterName;
private LocalDateTime updateDate;
private String description;
private boolean active = false;
}

View File

@@ -0,0 +1,22 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import java.time.LocalDate;
import lombok.Data;
@Data
public class InvoiceVo implements IdentityEntity {
private Integer id;
private Integer contractId;
private Integer contractItemId;
private String invoiceNumber;
private LocalDate invoiceDate;
private LocalDate issueDate;
private Double amount;
private Double taxAmount;
private Double taxRate;
private Double totalAmount;
private Integer invoiceStatusId;
private String remark;
private Boolean active = false;
}

View File

@@ -0,0 +1,14 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class PermissionVo implements IdentityEntity {
private Integer id;
private Integer functionId;
private String name;
private String code;
private String description;
private Boolean active;
}

View File

@@ -0,0 +1,17 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import java.time.LocalDate;
import lombok.Data;
@Data
public class PriceVo implements IdentityEntity {
private Integer id;
private Integer inventoryId;
private Integer customerId;
private Double unitPrice;
private LocalDate effectiveDate;
private LocalDate expireDate;
private String remark;
private boolean active = false;
}

View File

@@ -0,0 +1,15 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class ProductTypeVo implements IdentityEntity {
private Integer id;
private String name;
private String code;
private Integer parentId;
private Integer order;
private String description;
private boolean active = false;
}

View File

@@ -0,0 +1,13 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class ProductUsageVo implements IdentityEntity {
private Integer id;
private String name;
private String code;
private String description;
private boolean active = false;
}

View File

@@ -0,0 +1,7 @@
package com.ecep.contract.vo;
public interface ProjectBasedVo {
Integer getProjectId();
void setProjectId(Integer projectId);
}

View File

@@ -0,0 +1,29 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class ProjectBidVo implements IdentityEntity, ProjectBasedVo {
private Integer id;
private Integer projectId;
private int level;
private double amount;
private Integer evaluationFileId;
private Integer costId;
private boolean standardPayWay = false;
private String noStandardPayWayText;
private boolean standardContractText = false;
private String noStandardContractText;
private String authorizationFile;
private String bidAcceptanceLetterFile;
private Integer applicantId;
private String applicantName;
private LocalDateTime applyTime;
private Integer authorizerId;
private String authorizerName;
private LocalDateTime authorizationTime;
private String description;
private boolean active = false;
}

View File

@@ -0,0 +1,26 @@
package com.ecep.contract.vo;
import java.time.LocalDateTime;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class ProjectCostItemVo implements IdentityEntity {
private Integer id;
private Integer costId;
private String title;
private String specification;
private String unit;
private Integer inventoryId;
private double inTaxRate;
private double inExclusiveTaxPrice;
private double inQuantity;
private double outTaxRate;
private double outExclusiveTaxPrice;
private double outQuantity;
private String remark;
private LocalDateTime createDate;
private Integer creatorId;
private LocalDateTime updateDate;
private Integer updaterId;
}

View File

@@ -0,0 +1,41 @@
package com.ecep.contract.vo;
import java.time.LocalDateTime;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class ProjectCostVo implements IdentityEntity, ProjectBasedVo {
private Integer id;
private Integer contractId;
private Integer projectId;
private int version;
private boolean standardPayWay = false;
private String noStandardPayWayText;
private boolean standardContractText = false;
private String noStandardContractText;
private float stampTax;
private float stampTaxFee;
private float onSiteServiceFee;
private float assemblyServiceFee;
private float technicalServiceFee;
private float bidServiceFee;
private float freightCost;
private float guaranteeLetterFee;
private float taxAndSurcharges;
private float taxAndSurchargesFee;
private double inQuantities;
private double inTaxAmount;
private double inExclusiveTaxAmount;
private double outQuantities;
private double outTaxAmount;
private double outExclusiveTaxAmount;
private double grossProfitMargin;
private Integer applicantId;
private LocalDateTime applyTime;
private Integer authorizerId;
private LocalDateTime authorizationTime;
private String authorizationFile;
private String description;
private boolean importLock = false;
}

View File

@@ -0,0 +1,14 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.model.NamedEntity;
import lombok.Data;
@Data
public class ProjectIndustryVo implements IdentityEntity, NamedEntity {
private Integer id;
private String name;
private String code;
private String description;
private boolean active = false;
}

View File

@@ -0,0 +1,25 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class ProjectQuotationVo implements IdentityEntity, ProjectBasedVo {
private Integer id;
private Integer projectId;
private int level;
private boolean standardPayWay = false;
private String noStandardPayWayText;
private double amount;
private Integer applicantId;
private String applicantName;
private LocalDateTime applyTime;
private Integer authorizerId;
private String authorizerName;
private LocalDateTime authorizationTime;
private String authorizationFile;
private String description;
private Integer evaluationFileId;
private boolean active = false;
}

View File

@@ -0,0 +1,21 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.model.NamedEntity;
import java.time.LocalDate;
import lombok.Data;
@Data
public class ProjectSaleTypeVo implements IdentityEntity, NamedEntity {
private Integer id;
private String name;
private String code;
private String path;
private boolean storeByYear = false;
private boolean criticalProjectDecision = false;
private Double criticalProjectLimit;
private boolean active = false;
private String description;
private LocalDate created;
private int version;
}

View File

@@ -0,0 +1,14 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.model.NamedEntity;
import lombok.Data;
@Data
public class ProjectTypeVo implements IdentityEntity, NamedEntity {
private Integer id;
private String name;
private String code;
private String description;
private boolean active = false;
}

View File

@@ -0,0 +1,48 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.model.NamedEntity;
import java.time.LocalDate;
import lombok.Data;
@Data
public class ProjectVo implements IdentityEntity, NamedEntity {
private Integer id;
private String name;
private String code;
private Integer customerId;
private String customerName;
private Integer projectTypeId;
private String projectTypeName;
private Integer industryId;
private String industryName;
private Integer saleTypeId;
private String saleTypeName;
private Integer productTypeId;
private String productTypeName;
private Integer deliverySignMethodId;
private String deliverySignMethodName;
private Integer productUsageId;
private String productUsageName;
private Integer codeYear;
private Integer codeSequenceNumber;
private Integer applicantId;
private String applicantName;
private Integer authorizerId;
private String authorizerName;
private Integer bankAccountId;
private Integer invoiceInfoId;
private Integer mainContactId;
private Integer subContactId;
private String address;
private boolean useBid = false;
private boolean useOffer = false;
private Integer amount;
private boolean standardPayWay = false;
private String path;
private LocalDate created;
private LocalDate PlannedStartTime;
private LocalDate PlannedCompletionTime;
private String description;
private int version;
}

View File

@@ -0,0 +1,22 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class PurchaseOrderItemVo implements IdentityEntity {
private Integer id;
private Integer purchaseOrderId;
private Integer contractItemId;
private Integer inventoryId;
private String itemName;
private Integer unitId;
private Double quantity;
private Double unitPrice;
private Double totalPrice;
private Double taxRate;
private Double taxAmount;
private Double totalAmount;
private Integer order;
private String remark;
}

View File

@@ -0,0 +1,21 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import java.time.LocalDate;
import lombok.Data;
@Data
public class PurchaseOrderVo implements IdentityEntity, ContractBasedVo {
private Integer id;
private Integer contractId;
private String code;
private String name;
private Integer vendorId;
private LocalDate orderDate;
private Double totalAmount;
private Double taxAmount;
private Double taxRate;
private Integer statusId;
private String remark;
private Boolean active = false;
}

View File

@@ -0,0 +1,16 @@
package com.ecep.contract.vo;
import java.time.LocalDate;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class PurchaseReceiptVo implements IdentityEntity {
private Integer id;
private String code;
private Integer orderId;
private LocalDate verifierDate;
private LocalDate arriveDate;
private String description;
private boolean active = false;
}

View File

@@ -0,0 +1,22 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class SalesOrderItemVo implements IdentityEntity {
private Integer id;
private Integer salesOrderId;
private Integer contractItemId;
private Integer inventoryId;
private String itemName;
private Integer unitId;
private Double quantity;
private Double unitPrice;
private Double totalPrice;
private Double taxRate;
private Double taxAmount;
private Double totalAmount;
private Integer order;
private String remark;
}

View File

@@ -0,0 +1,21 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import java.time.LocalDate;
import lombok.Data;
@Data
public class SalesOrderVo implements IdentityEntity, ContractBasedVo {
private Integer id;
private Integer contractId;
private String code;
private String name;
private Integer customerId;
private LocalDate orderDate;
private Double totalAmount;
private Double taxAmount;
private Double taxRate;
private Integer statusId;
private String remark;
private Boolean active = false;
}

View File

@@ -0,0 +1,15 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class SysConfVo implements IdentityEntity {
private Integer id;
private String name;
private String code;
private String value;
private String type;
private String description;
private Boolean active;
}

View File

@@ -0,0 +1,18 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.model.NamedEntity;
import com.ecep.contract.UnitType;
import lombok.Data;
@Data
public class UnitVo implements IdentityEntity, NamedEntity {
private Integer id;
private String name;
private String code;
private UnitType unitType;
private double ratio;
private boolean standard;
private String description;
private Boolean active;
}

View File

@@ -0,0 +1,15 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import lombok.Data;
@Data
public class VendorCatalogVo implements IdentityEntity {
private Integer id;
private String name;
private String code;
private Integer parentId;
private Integer order;
private String description;
private Boolean active;
}

View File

@@ -0,0 +1,22 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.model.NamedEntity;
import lombok.Data;
/**
* 供应商分组VO类
*/
@Data
public class VendorGroupVo implements IdentityEntity, NamedEntity {
private Integer id;
private String name;
private String code;
private String path;
private String description;
private boolean active = false;
private boolean priceComparison = false;
private boolean requireQuotationSheetForBid = false;
private boolean canPrePurchase = false;
private int version;
}

View File

@@ -0,0 +1,14 @@
package com.ecep.contract.vo;
import com.ecep.contract.model.IdentityEntity;
import com.ecep.contract.VendorType;
import lombok.Data;
@Data
public class VendorTypeLocalVo implements IdentityEntity {
private Integer id;
private String language;
private VendorType type;
private String name;
private String description;
}

View File

@@ -0,0 +1,11 @@
package com.ecep.contract.vo;
import lombok.Data;
@Data
public class VolumeSizeVo {
private double volume;
private double length;
private double width;
private double height;
}

95
docs/create_vo.md Normal file
View File

@@ -0,0 +1,95 @@
更新Vo
# 任务逻辑
根据 model 创建、更新 Vo先检查Vo是否存在如果不存在则创建Vo否则根据要求更新Vo
更新结果保存到 D:\idea-workspace\Contract-Manager\docs\create_vo.md
## model 所在目录
D:\idea-workspace\Contract-Manager\common\src\main\java\com\ecep\contract\model
## vo 目录
D:\idea-workspace\Contract-Manager\common\src\main\java\com\ecep\contract\vo
## 参考
D:\idea-workspace\Contract-Manager\common\src\main\java\com\ecep\contract\model\Bank.java
D:\idea-workspace\Contract-Manager\common\src\main\java\com\ecep\contract\vo\BankVo.java
## 其他要求
- 检索到的Model先记录在 create_vo.md
- 主键名称为id类型都是 Integer
- 布尔类型的属性使用 boolean,不要使用 Boolean初始值为false
- 注解为@Embeddable@MappedSuperclass的Model不需要更新Vo
- 更新结果以 ModelVo (状态) 保存, Model 和 VO 的名称后期后修改,可能会不一一对应
# 结果记录
已创建: CompanyOldNameVo.java
已创建: ContractCatalogVo.java
已创建: CompanyBlackReasonVo.java
已创建: CompanyContractVo.java
已创建: CompanyCustomerVo.java
已创建: CompanyCustomerEntityVo.java
已创建: CompanyCustomerEvaluationFormFileVo.java
已创建: CompanyCustomerFileVo.java
已创建: CompanyCustomerFileTypeLocalVo.java
已创建: CompanyExtendInfoVo.java
已创建: CompanyFileTypeLocalVo.java
已创建: CompanyVendorVo.java
已创建: CompanyVendorApprovedFileVo.java
已创建: CompanyVendorApprovedItemVo.java
已创建: CompanyVendorApprovedListVo.java
已创建: CompanyVendorEntityVo.java
已创建: CompanyVendorFileVo.java
已创建: CustomerSatisfactionSurveyVo.java (包含active字段boolean类型并设置初始值)
已创建: EmployeeRoleVo.java (包含systemAdministrator、manager和active字段boolean类型并设置初始值)
已创建: ProductTypeVo.java (添加boolean类型的active字段并设置初始值false)
已创建: PurchaseOrderVo.java (添加boolean类型的active字段并设置初始值false)
已创建: CloudRkVo.java (添加boolean类型的autoUpdate字段并设置初始值false)
已创建: CloudTycVo.java (添加boolean类型的active字段并设置初始值false)
已创建: CloudYuVo.java (添加boolean类型的active字段并设置初始值false)
已更新: CompanyContactVo.java (将Boolean类型改为boolean并设置初始值)
已更新: ContractTypeVo.java (将Boolean类型改为boolean并设置初始值)
已更新: ContractKindVo.java (将Boolean类型改为boolean并设置初始值)
已更新: ContractPayPlanVo.java (将Boolean类型改为boolean并设置初始值)
已更新: CustomerCatalogVo.java (将Boolean类型改为boolean并设置初始值)
已更新: DepartmentVo.java (将Boolean类型改为boolean并设置初始值)
已更新: FunctionVo.java (将Boolean类型改为boolean并设置初始值)
已更新: ProjectTypeVo.java (将Boolean类型改为boolean并设置初始值)
已更新: ProductTypeVo.java (将Boolean类型改为boolean并设置初始值)
已更新: ProductUsageVo.java (将Boolean类型改为boolean并设置初始值)
已更新: PriceVo.java (将Boolean类型改为boolean并设置初始值)
已更新: ContractGroupVo.java (将Boolean类型改为boolean并设置初始值)
已更新: DeliverySignMethodVo.java (将Boolean类型改为boolean并设置初始值)
已更新: EmployeeVo.java (为boolean类型的active属性设置初始值false)
已更新: InventoryVo.java (将Boolean类型改为boolean并设置初始值)
已更新: InventoryCatalogVo.java (将Boolean类型改为boolean并设置初始值)
已更新: ProjectVo.java (将多个Boolean类型改为boolean并设置初始值)
已更新: ProjectIndustryVo.java (将Boolean类型改为boolean并设置初始值)
已更新: ProjectSaleTypeVo.java (为boolean类型的属性设置初始值false)
已更新: CompanyBankAccountVo.java (为boolean类型的active属性设置初始值false)
已更新: CompanyInvoiceInfoVo.java (将Boolean类型改为boolean并设置初始值)
已更新: CompanyOldNameVo.java (为boolean类型的ambiguity和active属性设置初始值false)
已更新: CompanyVo.java (将Boolean类型改为boolean并设置初始值)
已更新: ContractVo.java (将多个Boolean类型改为boolean并设置初始值)
已更新: PurchaseReceiptVo.java (修正字段名将Boolean类型的active字段改为boolean类型并设置初始值false)
已检查: ContractItemVo.java (已存在且符合要求)
已检查: VolumeSizeVo.java (已存在且符合要求)
已检查: BankVo.java (已存在且符合要求)
已检查: ContractVo.java (已存在且符合要求)
已检查: ContractBidVendorVo.java (已存在且符合要求)
已检查: ContractCatalogVo.java (已存在且符合要求)
已检查: ContractFileVo.java (已存在且符合要求)
已检查: ContractFileTypeLocalVo.java (已存在且符合要求)
已检查: EmployeeVo.java (已存在且符合要求)
已检查: DepartmentVo.java (已存在且符合要求)
已更新: InventoryVo.java (为boolean类型的specificationLock和nameLock字段设置初始值false)
已检查: InventoryCatalogVo.java (已存在且符合要求)
已检查: ProjectVo.java (已存在且符合要求)
已检查: ProjectIndustryVo.java (已存在且符合要求)
已检查: ProjectSaleTypeVo.java (已存在且符合要求)
已检查: CompanyVo.java (已存在且符合要求)
已更新: InvoiceVo.java (为Boolean类型的active字段设置初始值false)
已更新: PurchaseOrderVo.java (为Boolean类型的active字段设置初始值false)
已更新: SalesOrderVo.java (为Boolean类型的active字段设置初始值false)
已创建: ProjectBidVo.java (包含standardPayWay、standardContractText和active字段boolean类型并设置初始值false)
已创建: ProjectQuotationVo.java (包含standardPayWay和active字段boolean类型并设置初始值false)
已检查: CompanyBankAccountVo.java (已存在且符合要求)
已创建: ExtendVendorInfoVo.java (包含assignedProvider和prePurchase字段boolean类型并设置初始值false)
已更新: ProjectCostVo.java (为boolean类型的standardPayWay、standardContractText和importLock字段设置初始值false并实现ProjectBasedVo接口)
已创建: VendorGroupVo.java (包含active、priceComparison、requireQuotationSheetForBid和canPrePurchase字段boolean类型并设置初始值false)