From 27528280940b64a3071ebbbd6374cca80a7963e5 Mon Sep 17 00:00:00 2001 From: songqq Date: Thu, 18 Sep 2025 09:08:57 +0800 Subject: [PATCH] =?UTF-8?q?refactor(client):=20=E9=87=8D=E6=9E=84=E9=93=B6?= =?UTF-8?q?=E8=A1=8C=E5=92=8C=E5=85=AC=E5=8F=B8=E7=9B=B8=E5=85=B3=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更新了多个类中的导入语句,替换了模型类为对应的VO类 - 优化了部分方法的参数和返回类型,使用VO类替代模型类 - 重构了自动补全功能,使用统一的泛型方法 - 添加了缓存注解,提高了数据访问性能 - 优化了部分代码结构,提高了可维护性 --- .../controller/bank/BankManagerSkin.java | 6 +- .../bank/BankManagerWindowController.java | 4 +- .../bank/account/BankAccountBaseTabSkin.java | 47 ++++----------- .../account/BankAccountWindowController.java | 3 +- .../company/AbstCompanyTableTabSkin.java | 19 +++--- .../company/CompanyWindowController.java | 16 ++--- .../project/ProjectTabSkinCustomerInfo.java | 15 +++-- .../converter/BankStringConverter.java | 6 +- .../ecep/contract/service/BankService.java | 59 +++++++++++++++++-- .../service/CompanyBankAccountService.java | 6 +- .../service/CompanyCustomerService.java | 20 +++---- .../contract/service/CompanyFileService.java | 44 ++++++++------ .../service/CompanyOldNameService.java | 37 ++++++------ .../ecep/contract/service/CompanyService.java | 54 +++++++++-------- .../service/CompanyVendorService.java | 32 ++++++---- .../contract/service/InventoryService.java | 4 +- .../ecep/contract/service/QueryService.java | 4 ++ .../task/CompanyCompositeUpdateTasker.java | 4 +- .../contract/task/CompanyVerifyTasker.java | 4 +- .../java/com/ecep/contract/util/UITools.java | 54 ++++++++++++++++- .../com/ecep/contract/vm/BankViewModel.java | 9 +-- .../vm/CompanyBankAccountViewModel.java | 29 +++++---- .../contract/vm/CompanyBasedViewModel.java | 6 +- .../contract/vm/CompanyOldNameViewModel.java | 25 ++++---- .../ecep/contract/vm/CompanyViewModel.java | 11 ++-- .../ecep/contract/vm/ProjectViewModel.java | 11 ++-- .../contract/vo/CompanyBankAccountVo.java | 2 +- .../com/ecep/contract/vo/CompanyBasedVo.java | 7 +++ .../contract/vo/CompanyBlackReasonVo.java | 3 +- .../ecep/contract/vo/CompanyContactVo.java | 3 +- .../ecep/contract/vo/CompanyContractVo.java | 3 +- .../contract/vo/CompanyCustomerFileVo.java | 1 - .../ecep/contract/vo/CompanyCustomerVo.java | 3 +- .../ecep/contract/vo/CompanyExtendInfoVo.java | 3 +- .../com/ecep/contract/vo/CompanyFileVo.java | 3 +- .../contract/vo/CompanyInvoiceInfoVo.java | 3 +- .../ecep/contract/vo/CompanyOldNameVo.java | 2 +- .../com/ecep/contract/vo/InventoryVo.java | 4 +- .../java/com/ecep/contract/vo/InvoiceVo.java | 2 +- .../com/ecep/contract/vo/PurchaseOrderVo.java | 2 +- .../ecep/contract/vo/PurchaseReceiptVo.java | 12 ++-- .../com/ecep/contract/vo/SalesOrderVo.java | 2 +- 42 files changed, 341 insertions(+), 243 deletions(-) create mode 100644 common/src/main/java/com/ecep/contract/vo/CompanyBasedVo.java diff --git a/client/src/main/java/com/ecep/contract/controller/bank/BankManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/bank/BankManagerSkin.java index 169550a..b9b8cfb 100644 --- a/client/src/main/java/com/ecep/contract/controller/bank/BankManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/bank/BankManagerSkin.java @@ -3,16 +3,16 @@ package com.ecep.contract.controller.bank; import com.ecep.contract.controller.AbstEntityManagerSkin; import com.ecep.contract.controller.ManagerSkin; import com.ecep.contract.controller.table.EditableEntityTableTabSkin; -import com.ecep.contract.model.Bank; import com.ecep.contract.vm.BankViewModel; +import com.ecep.contract.vo.BankVo; import javafx.scene.control.TableColumn; import javafx.scene.control.cell.TextFieldTableCell; public class BankManagerSkin - extends AbstEntityManagerSkin - implements ManagerSkin, EditableEntityTableTabSkin { + extends AbstEntityManagerSkin + implements ManagerSkin, EditableEntityTableTabSkin { public BankManagerSkin(BankManagerWindowController controller) { super(controller); diff --git a/client/src/main/java/com/ecep/contract/controller/bank/BankManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/bank/BankManagerWindowController.java index 26e9559..0fb7632 100644 --- a/client/src/main/java/com/ecep/contract/controller/bank/BankManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/bank/BankManagerWindowController.java @@ -6,10 +6,10 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstManagerWindowController; -import com.ecep.contract.model.Bank; import com.ecep.contract.service.BankService; import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.BankViewModel; +import com.ecep.contract.vo.BankVo; import javafx.event.ActionEvent; import javafx.scene.control.TableColumn; @@ -19,7 +19,7 @@ import javafx.scene.control.TableColumn; @Component @FxmlPath("/ui/bank-manager.fxml") public class BankManagerWindowController - extends AbstManagerWindowController { + extends AbstManagerWindowController { @Autowired private BankService bankService; diff --git a/client/src/main/java/com/ecep/contract/controller/bank/account/BankAccountBaseTabSkin.java b/client/src/main/java/com/ecep/contract/controller/bank/account/BankAccountBaseTabSkin.java index 22fdbf5..b3dffef 100644 --- a/client/src/main/java/com/ecep/contract/controller/bank/account/BankAccountBaseTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/bank/account/BankAccountBaseTabSkin.java @@ -1,29 +1,20 @@ package com.ecep.contract.controller.bank.account; -import com.ecep.contract.SpringApp; import com.ecep.contract.controller.company.CompanyWindowController; import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; 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.CompanyService; import com.ecep.contract.util.UITools; 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.TextField; -import lombok.Setter; public class BankAccountBaseTabSkin - extends AbstEntityBasedTabSkin + extends AbstEntityBasedTabSkin implements TabSkin { - @Setter - private CompanyService companyService; - @Setter - private BankService bankService; public BankAccountBaseTabSkin(BankAccountWindowController controller) { super(controller); @@ -37,8 +28,9 @@ public class BankAccountBaseTabSkin @Override public void initializeTab() { - initializeBaseTabCompanyFieldAutoCompletion(controller.companyField); - initializeBaseTabBankFieldAutoCompletion(controller.bankField); + UITools.autoCompletion(controller.companyField, viewModel.getCompanyId(), getCompanyService()); + + UITools.autoCompletion(controller.bankField, viewModel.getBankId(), getBankService()); controller.openingBankField.textProperty().bindBidirectional(viewModel.getOpeningBank()); controller.bankAccountField.textProperty().bindBidirectional(viewModel.getAccount()); @@ -47,36 +39,21 @@ public class BankAccountBaseTabSkin controller.createdField.textProperty().bind(viewModel.getCreated().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 -> { - Company company = viewModel.getCompany().get(); - if (company != null) { + Integer companyId = viewModel.getCompanyId().get(); + if (companyId != null) { + CompanyVo company = getCompanyService().findById(companyId); 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() { - if (bankService == null) { - bankService = getBean(BankService.class); - } - return bankService; + return getCachedBean(BankService.class); } public CompanyService getCompanyService() { - if (companyService == null) { - companyService = getBean(CompanyService.class); - } - return companyService; + return getCachedBean(CompanyService.class); } } diff --git a/client/src/main/java/com/ecep/contract/controller/bank/account/BankAccountWindowController.java b/client/src/main/java/com/ecep/contract/controller/bank/account/BankAccountWindowController.java index 9ff9541..7926f49 100644 --- a/client/src/main/java/com/ecep/contract/controller/bank/account/BankAccountWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/bank/account/BankAccountWindowController.java @@ -10,6 +10,7 @@ import com.ecep.contract.model.CompanyBankAccount; import com.ecep.contract.service.CompanyBankAccountService; import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.CompanyBankAccountViewModel; +import com.ecep.contract.vo.CompanyBankAccountVo; import javafx.scene.control.Button; import javafx.scene.control.Label; @@ -25,7 +26,7 @@ import javafx.stage.WindowEvent; @Scope("prototype") @Component @FxmlPath("/ui/company/bank-account.fxml") -public class BankAccountWindowController extends AbstEntityController { +public class BankAccountWindowController extends AbstEntityController { public BorderPane root; public TabPane tabPane; diff --git a/client/src/main/java/com/ecep/contract/controller/company/AbstCompanyTableTabSkin.java b/client/src/main/java/com/ecep/contract/controller/company/AbstCompanyTableTabSkin.java index 6898b18..bf86e31 100644 --- a/client/src/main/java/com/ecep/contract/controller/company/AbstCompanyTableTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/company/AbstCompanyTableTabSkin.java @@ -1,21 +1,21 @@ package com.ecep.contract.controller.company; -import java.util.HashMap; import java.util.Map; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.table.AbstEntityTableTabSkin; import com.ecep.contract.controller.table.TableOfTabSkin; -import com.ecep.contract.model.Company; import com.ecep.contract.model.IdentityEntity; import com.ecep.contract.service.CompanyService; +import com.ecep.contract.util.ParamUtils; import com.ecep.contract.vm.CompanyBasedViewModel; import com.ecep.contract.vm.CompanyViewModel; import com.ecep.contract.vm.IdentityViewModel; +import com.ecep.contract.vo.CompanyVo; public abstract class AbstCompanyTableTabSkin> - extends AbstEntityTableTabSkin - implements TabSkin, TableOfTabSkin { + extends AbstEntityTableTabSkin + implements TabSkin, TableOfTabSkin { public AbstCompanyTableTabSkin(CompanyWindowController controller) { super(controller); @@ -26,7 +26,7 @@ public abstract class AbstCompanyTableTabSkin getSpecification(Company parent) { - Map params = getSpecification(); - if (params == null) { - params = new HashMap<>(); - } - params.put("company", parent.getId()); - return params; + public Map getSpecification(CompanyVo parent) { + return ParamUtils.equal("company", parent.getId()); } } diff --git a/client/src/main/java/com/ecep/contract/controller/company/CompanyWindowController.java b/client/src/main/java/com/ecep/contract/controller/company/CompanyWindowController.java index bdfcc37..bd13237 100644 --- a/client/src/main/java/com/ecep/contract/controller/company/CompanyWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/company/CompanyWindowController.java @@ -39,6 +39,7 @@ import com.ecep.contract.util.FxmlPath; import com.ecep.contract.util.ProxyUtils; import com.ecep.contract.util.UITools; import com.ecep.contract.vm.CompanyViewModel; +import com.ecep.contract.vo.CompanyVo; import javafx.beans.property.SimpleObjectProperty; import javafx.event.ActionEvent; @@ -61,16 +62,11 @@ import javafx.stage.Window; @Component @FxmlPath("/ui/company/company.fxml") public class CompanyWindowController - extends AbstEntityController { + extends AbstEntityController { private static final Logger logger = LoggerFactory.getLogger(CompanyWindowController.class); - public static void show(Company company, Window window) { - CompanyViewModel viewModel = new CompanyViewModel(); - if (!ProxyUtils.isInitialized(company)) { - company = SpringApp.getBean(CompanyService.class).findById(company.getId()); - } - viewModel.update(company); - show(viewModel, window); + public static void show(CompanyVo company, Window window) { + show(CompanyViewModel.from(company), window); } /** @@ -269,7 +265,7 @@ public class CompanyWindowController * 企业合规检查 */ public void onCompanyVerifyAction(ActionEvent event) { - Company company = getEntity(); + CompanyVo company = getEntity(); CompanyVerifyTasker task = new CompanyVerifyTasker(); task.setCompanyService(companyService); task.setCompany(company); @@ -277,7 +273,7 @@ public class CompanyWindowController } public void onCompanyOpenInExplorerAction(ActionEvent event) { - Company company = getEntity(); + CompanyVo company = getEntity(); String path = company.getPath(); CompletableFuture.runAsync(() -> { diff --git a/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCustomerInfo.java b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCustomerInfo.java index 87a41e3..f456be1 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCustomerInfo.java +++ b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCustomerInfo.java @@ -3,9 +3,7 @@ package com.ecep.contract.controller.project; import java.util.List; import java.util.function.BiFunction; -import com.ecep.contract.service.*; import org.controlsfx.control.textfield.AutoCompletionBinding; -import com.ecep.contract.util.ProxyUtils; import org.springframework.util.StringUtils; 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.converter.CompanyStringConverter; import com.ecep.contract.converter.EntityStringConverter; -import com.ecep.contract.model.Bank; import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyBankAccount; import com.ecep.contract.model.CompanyContact; import com.ecep.contract.model.CompanyInvoiceInfo; +import com.ecep.contract.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.ProxyUtils; 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.StringProperty; @@ -103,7 +108,7 @@ public class ProjectTabSkinCustomerInfo }); companyDetailBtn.setOnAction(event -> { - Company company = viewModel.getCustomer().get(); + CompanyVo company = viewModel.getCustomer().get(); if (company == null) { return; } @@ -204,7 +209,7 @@ public class ProjectTabSkinCustomerInfo } StringBuilder sb = new StringBuilder(); sb.append("开户行:"); - Bank bank = account.getBank(); + BankVo bank = account.getBank(); if (bank != null) { if (!ProxyUtils.isInitialized(bank)) { bank = getBankService().findById(bank.getId()); diff --git a/client/src/main/java/com/ecep/contract/converter/BankStringConverter.java b/client/src/main/java/com/ecep/contract/converter/BankStringConverter.java index 3bcebe0..b157c45 100644 --- a/client/src/main/java/com/ecep/contract/converter/BankStringConverter.java +++ b/client/src/main/java/com/ecep/contract/converter/BankStringConverter.java @@ -4,18 +4,20 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; -import com.ecep.contract.model.Bank; import com.ecep.contract.service.BankService; +import com.ecep.contract.vo.BankVo; import jakarta.annotation.PostConstruct; @Lazy @Component -public class BankStringConverter extends EntityStringConverter { +@Deprecated +public class BankStringConverter extends EntityStringConverter { @Lazy @Autowired BankService service; + public BankStringConverter() { } diff --git a/client/src/main/java/com/ecep/contract/service/BankService.java b/client/src/main/java/com/ecep/contract/service/BankService.java index 83e671e..9d83237 100644 --- a/client/src/main/java/com/ecep/contract/service/BankService.java +++ b/client/src/main/java/com/ecep/contract/service/BankService.java @@ -1,16 +1,63 @@ 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 com.ecep.contract.model.Bank; +import com.ecep.contract.util.ParamUtils; import com.ecep.contract.vm.BankViewModel; +import com.ecep.contract.vo.BankVo; + +import javafx.util.StringConverter; @Service -public class BankService extends QueryService { - public Bank findByName(String name) { - return null; +@CacheConfig(cacheNames = "bank") +public class BankService extends QueryService { + @Cacheable(key = "#p0") + @Override + public BankVo findById(Integer id) { + return super.findById(id); + } + + public BankVo findByName(String name) { + Page page = findAll(ParamUtils.equal(name, name), Pageable.ofSize(1)); + if (page.isEmpty()) { + 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 stringConverter = new StringConverter() { + @Override + public String toString(BankVo object) { + return object == null ? "" : object.getName(); + } + + @Override + public BankVo fromString(String string) { + return findByName(string); + } + }; + + @Override + public StringConverter getStringConverter() { + return stringConverter; } } diff --git a/client/src/main/java/com/ecep/contract/service/CompanyBankAccountService.java b/client/src/main/java/com/ecep/contract/service/CompanyBankAccountService.java index 6b899f4..dc1cbc4 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyBankAccountService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyBankAccountService.java @@ -5,13 +5,13 @@ import java.util.List; import org.springframework.stereotype.Service; import com.ecep.contract.model.Company; -import com.ecep.contract.model.CompanyBankAccount; import com.ecep.contract.vm.CompanyBankAccountViewModel; +import com.ecep.contract.vo.CompanyBankAccountVo; @Service -public class CompanyBankAccountService extends QueryService { +public class CompanyBankAccountService extends QueryService { - public List searchByCompany(Company company, String searchText) { + public List searchByCompany(Company company, String searchText) { throw new UnsupportedOperationException("未实现"); } } diff --git a/client/src/main/java/com/ecep/contract/service/CompanyCustomerService.java b/client/src/main/java/com/ecep/contract/service/CompanyCustomerService.java index 5d255b5..ee73357 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyCustomerService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyCustomerService.java @@ -1,24 +1,22 @@ package com.ecep.contract.service; -import com.ecep.contract.MessageHolder; -import com.ecep.contract.model.Company; -import com.ecep.contract.model.CompanyCustomer; -import com.ecep.contract.vm.CompanyCustomerViewModel; +import java.io.File; + import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; -import java.io.File; -import java.util.HashMap; -import java.util.Map; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.util.ParamUtils; +import com.ecep.contract.vm.CompanyCustomerViewModel; +import com.ecep.contract.vo.CompanyVo; @Service public class CompanyCustomerService extends QueryService { - public CompanyCustomer findByCompany(Company company) { - Map params = new HashMap<>(); - params.put("company", company.getId()); - Page page = findAll(params, Pageable.ofSize(1)); + public CompanyCustomer findByCompany(CompanyVo company) { + Page page = findAll(ParamUtils.equal("company", company.getId()), Pageable.ofSize(1)); if (page.isEmpty()) { return null; } diff --git a/client/src/main/java/com/ecep/contract/service/CompanyFileService.java b/client/src/main/java/com/ecep/contract/service/CompanyFileService.java index cc3cf66..186ed3b 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyFileService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyFileService.java @@ -1,5 +1,22 @@ 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.MessageHolder; 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.ParamUtils; import com.ecep.contract.vm.CompanyFileViewModel; -import javafx.collections.ObservableList; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; +import com.ecep.contract.vo.CompanyFileVo; +import com.ecep.contract.vo.CompanyVo; -import java.io.File; -import java.time.LocalDate; -import java.util.*; -import java.util.function.Consumer; -import java.util.regex.Matcher; -import java.util.regex.Pattern; +import javafx.collections.ObservableList; @Service public class CompanyFileService extends QueryService { @@ -295,16 +305,16 @@ public class CompanyFileService extends QueryService map = new HashMap<>(); File home = new File(company.getPath()); map.put(company.getName(), home); - List retrieveFiles = new ArrayList<>(); + List retrieveFiles = new ArrayList<>(); - List oldNames = SpringApp.getBean(CompanyOldNameService.class).findAllByCompany(company); + List oldNames = SpringApp.getBean(CompanyOldNameService.class).findAllByCompany(company); // 获取所有曾用名 - for (CompanyOldName companyOldName : oldNames) { + for (CompanyOldNameVo companyOldName : oldNames) { String name = companyOldName.getName(); if (!StringUtils.hasText(name)) { continue; @@ -375,13 +385,13 @@ public class CompanyFileService extends QueryService { +import com.ecep.contract.model.IdentityEntity; +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 { + + public boolean makePathAbsent(CompanyOldNameVo companyOldName) { // TODO Auto-generated method stub 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 throw new UnsupportedOperationException("Unimplemented method 'findMatchByDate'"); } - public List findAllByCompanyAndName(Company company, String oldName) { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'findAllByCompanyAndName'"); + public List findAllByCompanyAndName(CompanyVo company, String oldName) { + return findAll(ParamUtils.builder().equals("company", company.getId()).equals("oldName", oldName).build(), + Pageable.unpaged()).getContent(); } - public List findAllByCompany(Company company) { - HashMap params = new HashMap<>(); - params.put("company", company.getId()); - return findAll(params, Pageable.unpaged()).getContent(); + public List findAllByCompany(IdentityEntity company) { + return findAll(ParamUtils.equal("company", company.getId()), Pageable.unpaged()).getContent(); } } diff --git a/client/src/main/java/com/ecep/contract/service/CompanyService.java b/client/src/main/java/com/ecep/contract/service/CompanyService.java index 992e2ac..88eb092 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyService.java @@ -1,5 +1,18 @@ 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.MyDateTimeUtils; 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.util.FileUtils; import com.ecep.contract.vm.CompanyViewModel; -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 java.io.File; -import java.time.LocalDate; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import com.ecep.contract.vo.CompanyVo; @Service @CacheConfig(cacheNames = "company") -public class CompanyService extends QueryService { +public class CompanyService extends QueryService { @Autowired private SysConfService confService; @@ -42,37 +44,37 @@ public class CompanyService extends QueryService { } @Cacheable(key = "#p0") - public Company findById(Integer id) { + public CompanyVo findById(Integer id) { return super.findById(id); } - public Company findByName(String name) { - List list = findAllByName(name); + public CompanyVo findByName(String name) { + List list = findAllByName(name); if (list.isEmpty()) { return null; } return list.getFirst(); } - public List findAllByName(String name) { + public List findAllByName(String name) { Map params = new HashMap<>(); params.put("name", name); 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 throw new UnsupportedOperationException("Unimplemented method 'merge'"); } - public Company createNewCompany(String newCompanyName) { - Company company = new Company(); + public CompanyVo createNewCompany(String newCompanyName) { + CompanyVo company = new CompanyVo(); company.setName(newCompanyName); company.setCreated(LocalDate.now()); return company; } - public boolean existsCompanyPath(Company company) { + public boolean existsCompanyPath(CompanyVo company) { if (!StringUtils.hasText(company.getPath())) { return false; } @@ -81,7 +83,7 @@ public class CompanyService extends QueryService { return path.exists(); } - public boolean checkCompanyPathInBasePath(Company company) { + public boolean checkCompanyPathInBasePath(CompanyVo company) { if (!existsCompanyPath(company)) { return false; } @@ -93,7 +95,7 @@ public class CompanyService extends QueryService { 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(); if (StringUtils.hasText(entStatus)) { @@ -114,7 +116,7 @@ public class CompanyService extends QueryService { } } - public boolean makePathAbsent(Company company) { + public boolean makePathAbsent(CompanyVo company) { String path = company.getPath(); if (StringUtils.hasText(path)) { File file = new File(path); @@ -141,7 +143,7 @@ public class CompanyService extends QueryService { * @param company 要创建的企业对象 * @return 目录 */ - public File makePath(Company company) { + public File makePath(CompanyVo company) { File basePath = getBasePath(); if (!basePath.exists()) { return null; @@ -178,7 +180,7 @@ public class CompanyService extends QueryService { * @param files 要被移动的文件集合,需要从中选择需要的 * @param holder 状态输出 */ - public boolean retrieveFromDownloadFiles(Company company, File[] files, MessageHolder holder) { + public boolean retrieveFromDownloadFiles(CompanyVo company, File[] files, MessageHolder holder) { // boolean companyChanged = makePathAbsent(company); diff --git a/client/src/main/java/com/ecep/contract/service/CompanyVendorService.java b/client/src/main/java/com/ecep/contract/service/CompanyVendorService.java index ae47c51..076454e 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyVendorService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyVendorService.java @@ -2,20 +2,30 @@ package com.ecep.contract.service; import java.io.File; 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.data.domain.Page; 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.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 org.springframework.util.StringUtils; +import com.ecep.contract.vo.CompanyVo; @Service public class CompanyVendorService extends QueryService { @@ -27,14 +37,11 @@ public class CompanyVendorService extends QueryService params = new HashMap<>(); - params.put("company", company.getId()); - Page page = findAll(params, Pageable.ofSize(1)); + public CompanyVendor findByCompany(CompanyVo company) { + Page page = findAll(ParamUtils.equal("company", company.getId()), Pageable.ofSize(1)); if (page.isEmpty()) { return null; } @@ -93,7 +100,8 @@ public class CompanyVendorService extends QueryService { public Inventory createNewInstance() { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'createNewInstance'"); + Inventory inventory = new Inventory(); + return inventory; } public void syncInventory(Inventory inventory, MessageHolder holder) { diff --git a/client/src/main/java/com/ecep/contract/service/QueryService.java b/client/src/main/java/com/ecep/contract/service/QueryService.java index 418de6a..2fe4f49 100644 --- a/client/src/main/java/com/ecep/contract/service/QueryService.java +++ b/client/src/main/java/com/ecep/contract/service/QueryService.java @@ -9,6 +9,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import javafx.util.StringConverter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -253,4 +254,7 @@ public class QueryService getStringConverter() { + throw new UnsupportedOperationException("Not implemented"); + } } \ No newline at end of file diff --git a/client/src/main/java/com/ecep/contract/task/CompanyCompositeUpdateTasker.java b/client/src/main/java/com/ecep/contract/task/CompanyCompositeUpdateTasker.java index 4cd03d0..27f36a2 100644 --- a/client/src/main/java/com/ecep/contract/task/CompanyCompositeUpdateTasker.java +++ b/client/src/main/java/com/ecep/contract/task/CompanyCompositeUpdateTasker.java @@ -5,7 +5,7 @@ import org.slf4j.LoggerFactory; import com.ecep.contract.MessageHolder; import com.ecep.contract.constant.CloudServiceConstant; -import com.ecep.contract.model.Company; +import com.ecep.contract.vo.CompanyVo; import lombok.Setter; @@ -15,7 +15,7 @@ import lombok.Setter; public class CompanyCompositeUpdateTasker extends Tasker { private static final Logger logger = LoggerFactory.getLogger(CompanyCompositeUpdateTasker.class); @Setter - private Company company; + private CompanyVo company; @Override protected Object execute(MessageHolder holder) throws Exception { diff --git a/client/src/main/java/com/ecep/contract/task/CompanyVerifyTasker.java b/client/src/main/java/com/ecep/contract/task/CompanyVerifyTasker.java index 43408d6..f3adb37 100644 --- a/client/src/main/java/com/ecep/contract/task/CompanyVerifyTasker.java +++ b/client/src/main/java/com/ecep/contract/task/CompanyVerifyTasker.java @@ -1,7 +1,7 @@ package com.ecep.contract.task; import com.ecep.contract.MessageHolder; -import com.ecep.contract.model.Company; +import com.ecep.contract.vo.CompanyVo; import lombok.Getter; import lombok.Setter; @@ -9,7 +9,7 @@ import lombok.Setter; public class CompanyVerifyTasker extends Tasker { @Getter @Setter - private Company company; + private CompanyVo company; @Override protected Object execute(MessageHolder holder) throws Exception { diff --git a/client/src/main/java/com/ecep/contract/util/UITools.java b/client/src/main/java/com/ecep/contract/util/UITools.java index b558263..0b33133 100644 --- a/client/src/main/java/com/ecep/contract/util/UITools.java +++ b/client/src/main/java/com/ecep/contract/util/UITools.java @@ -7,6 +7,10 @@ import java.util.concurrent.CompletableFuture; import java.util.function.Consumer; 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.TextFields; import org.slf4j.Logger; @@ -72,7 +76,7 @@ public class UITools { * @param content 扩张节点 */ public static CompletableFuture showAndWait(Alert.AlertType alertType, String title, String header, - String message, Node content) { + String message, Node content) { CompletableFuture future = new CompletableFuture<>(); Platform.runLater(() -> { Alert alert = new Alert(alertType); @@ -165,7 +169,7 @@ public class UITools { * @param init 初始化 */ public static void showTaskDialogAndWait(String title, javafx.concurrent.Task task, - Consumer> init) { + Consumer> init) { Dialog dialog = createDialog(); dialog.getDialogPane().getScene().getStylesheets().add("/ui/dialog.css"); dialog.setTitle(title); @@ -244,6 +248,52 @@ public class UITools { return autoCompletion(textField, property, converter::suggest, converter); } + public static > AutoCompletionBinding autoCompletion( + TextField textField, ObjectProperty idProperty, QueryService queryService) { + Integer id = idProperty.get(); + T entity = queryService.findById(id); + + StringConverter 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 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 增加一个 自动补全功能 * diff --git a/client/src/main/java/com/ecep/contract/vm/BankViewModel.java b/client/src/main/java/com/ecep/contract/vm/BankViewModel.java index be4dd36..6bd2c2b 100644 --- a/client/src/main/java/com/ecep/contract/vm/BankViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/BankViewModel.java @@ -3,6 +3,7 @@ package com.ecep.contract.vm; import java.util.Objects; import com.ecep.contract.model.Bank; +import com.ecep.contract.vo.BankVo; import javafx.beans.property.SimpleStringProperty; import lombok.Data; @@ -10,12 +11,12 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = false) -public class BankViewModel extends IdentityViewModel { +public class BankViewModel extends IdentityViewModel { private SimpleStringProperty code = new SimpleStringProperty(); private SimpleStringProperty name = new SimpleStringProperty(); - public static BankViewModel from(Bank v) { + public static BankViewModel from(BankVo v) { BankViewModel vm = new BankViewModel(); vm.update(v); return vm; @@ -23,14 +24,14 @@ public class BankViewModel extends IdentityViewModel { @Override - protected void updateFrom(Bank v) { + protected void updateFrom(BankVo v) { super.updateFrom(v); getCode().set(v.getCode()); getName().set(v.getName()); } @Override - public boolean copyTo(Bank v) { + public boolean copyTo(BankVo v) { boolean modified = super.copyTo(v); if (!Objects.equals(getCode().get(), v.getCode())) { v.setCode(getCode().get()); diff --git a/client/src/main/java/com/ecep/contract/vm/CompanyBankAccountViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyBankAccountViewModel.java index 3d0a30c..a78c25a 100644 --- a/client/src/main/java/com/ecep/contract/vm/CompanyBankAccountViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyBankAccountViewModel.java @@ -3,9 +3,7 @@ package com.ecep.contract.vm; import java.time.LocalDate; import java.util.Objects; -import com.ecep.contract.model.Bank; -import com.ecep.contract.model.Company; -import com.ecep.contract.model.CompanyBankAccount; +import com.ecep.contract.vo.CompanyBankAccountVo; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; @@ -15,11 +13,12 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = false) -public class CompanyBankAccountViewModel extends IdentityViewModel implements CompanyBasedViewModel { +public class CompanyBankAccountViewModel extends IdentityViewModel + implements CompanyBasedViewModel { private SimpleIntegerProperty id = new SimpleIntegerProperty(); - private SimpleObjectProperty company = new SimpleObjectProperty<>(); - private SimpleObjectProperty bank = new SimpleObjectProperty<>(); + private SimpleObjectProperty companyId = new SimpleObjectProperty<>(); + private SimpleObjectProperty bankId = new SimpleObjectProperty<>(); private SimpleStringProperty openingBank = new SimpleStringProperty(); private SimpleStringProperty account = new SimpleStringProperty(); @@ -29,27 +28,27 @@ public class CompanyBankAccountViewModel extends IdentityViewModel getCompany(); + ObjectProperty getCompanyId(); } diff --git a/client/src/main/java/com/ecep/contract/vm/CompanyOldNameViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyOldNameViewModel.java index 665ffe2..4152176 100644 --- a/client/src/main/java/com/ecep/contract/vm/CompanyOldNameViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyOldNameViewModel.java @@ -3,7 +3,7 @@ package com.ecep.contract.vm; import java.time.LocalDate; 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.SimpleIntegerProperty; @@ -14,40 +14,39 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = false) -public class CompanyOldNameViewModel extends IdentityViewModel { +public class CompanyOldNameViewModel extends IdentityViewModel { private SimpleIntegerProperty id = new SimpleIntegerProperty(); private SimpleStringProperty name = new SimpleStringProperty(); private SimpleStringProperty path = new SimpleStringProperty(); - - private SimpleObjectProperty beginDate = new SimpleObjectProperty<>(); private SimpleObjectProperty endDate = new SimpleObjectProperty<>(); private SimpleBooleanProperty ambiguity = new SimpleBooleanProperty(); - private SimpleIntegerProperty version = new SimpleIntegerProperty(); + private SimpleBooleanProperty active = new SimpleBooleanProperty(); private SimpleStringProperty memo = new SimpleStringProperty(); + private SimpleIntegerProperty version = new SimpleIntegerProperty(); - - public static CompanyOldNameViewModel from(CompanyOldName name) { + public static CompanyOldNameViewModel from(CompanyOldNameVo name) { CompanyOldNameViewModel model = new CompanyOldNameViewModel(); model.update(name); return model; } - public void updateFrom(CompanyOldName oldName) { + public void updateFrom(CompanyOldNameVo oldName) { id.set(oldName.getId()); name.set(oldName.getName()); path.set(oldName.getPath()); memo.set(oldName.getMemo()); beginDate.set(oldName.getBeginDate()); endDate.set(oldName.getEndDate()); - ambiguity.set(oldName.getAmbiguity()); + ambiguity.set(oldName.isAmbiguity()); + active.set(oldName.isActive()); version.set(oldName.getVersion()); } - public boolean copyTo(CompanyOldName c) { + public boolean copyTo(CompanyOldNameVo c) { boolean modified = super.copyTo(c); if (!Objects.equals(id.get(), c.getId())) { c.setId(id.get()); @@ -73,10 +72,14 @@ public class CompanyOldNameViewModel extends IdentityViewModel { c.setEndDate(endDate.get()); modified = true; } - if (!Objects.equals(ambiguity.get(), c.getAmbiguity())) { + if (!Objects.equals(ambiguity.get(), c.isAmbiguity())) { c.setAmbiguity(ambiguity.get()); modified = true; } + if (!Objects.equals(active.get(), c.isActive())) { + c.setActive(active.get()); + modified = true; + } return modified; } } diff --git a/client/src/main/java/com/ecep/contract/vm/CompanyViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyViewModel.java index d61e704..bf8c450 100644 --- a/client/src/main/java/com/ecep/contract/vm/CompanyViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyViewModel.java @@ -3,7 +3,7 @@ package com.ecep.contract.vm; import java.time.LocalDate; 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.SimpleIntegerProperty; @@ -12,10 +12,9 @@ import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; - @Data @EqualsAndHashCode(callSuper = false) -public class CompanyViewModel extends IdentityViewModel { +public class CompanyViewModel extends IdentityViewModel { private SimpleStringProperty name = new SimpleStringProperty(); private SimpleStringProperty shortName = new SimpleStringProperty(); private SimpleStringProperty uid = new SimpleStringProperty(); @@ -42,14 +41,14 @@ public class CompanyViewModel extends IdentityViewModel { private SimpleIntegerProperty version = new SimpleIntegerProperty(); - public static CompanyViewModel from(Company company) { + public static CompanyViewModel from(CompanyVo company) { CompanyViewModel model = new CompanyViewModel(); model.update(company); return model; } @Override - protected void updateFrom(Company company) { + protected void updateFrom(CompanyVo company) { super.updateFrom(company); name.set(company.getName()); shortName.set(company.getShortName()); @@ -79,7 +78,7 @@ public class CompanyViewModel extends IdentityViewModel { version.set(company.getVersion()); } - public boolean copyTo(Company v) { + public boolean copyTo(CompanyVo v) { boolean modified = super.copyTo(v); if (!Objects.equals(name.get(), v.getName())) { v.setName(name.get()); diff --git a/client/src/main/java/com/ecep/contract/vm/ProjectViewModel.java b/client/src/main/java/com/ecep/contract/vm/ProjectViewModel.java index f27de26..5f6b8c7 100644 --- a/client/src/main/java/com/ecep/contract/vm/ProjectViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ProjectViewModel.java @@ -15,6 +15,7 @@ import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectIndustry; import com.ecep.contract.model.ProjectSaleType; import com.ecep.contract.model.ProjectType; +import com.ecep.contract.vo.ProjectVo; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleIntegerProperty; @@ -25,8 +26,8 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = false) -public class ProjectViewModel extends IdentityViewModel { - private SimpleObjectProperty customer = new SimpleObjectProperty<>(); +public class ProjectViewModel extends IdentityViewModel { + private SimpleObjectProperty customer = new SimpleObjectProperty<>(); /** * 银行账户(公司可能有多个账户,此项目关联其中一个账户) */ @@ -78,14 +79,14 @@ public class ProjectViewModel extends IdentityViewModel { private SimpleIntegerProperty version = new SimpleIntegerProperty(); - public static ProjectViewModel from(Project project) { + public static ProjectViewModel from(ProjectVo project) { ProjectViewModel model = new ProjectViewModel(); model.update(project); return model; } @Override - protected void updateFrom(Project v) { + protected void updateFrom(ProjectVo v) { super.updateFrom(v); customer.set(v.getCustomer()); bankAccount.set(v.getBankAccount()); @@ -118,7 +119,7 @@ public class ProjectViewModel extends IdentityViewModel { getVersion().set(v.getVersion()); } - public boolean copyTo(Project v) { + public boolean copyTo(ProjectVo v) { boolean modified = super.copyTo(v); if (!Objects.equals(customer.get(), v.getCustomer())) { v.setCustomer(customer.get()); diff --git a/common/src/main/java/com/ecep/contract/vo/CompanyBankAccountVo.java b/common/src/main/java/com/ecep/contract/vo/CompanyBankAccountVo.java index fd57a18..95e6225 100644 --- a/common/src/main/java/com/ecep/contract/vo/CompanyBankAccountVo.java +++ b/common/src/main/java/com/ecep/contract/vo/CompanyBankAccountVo.java @@ -4,7 +4,7 @@ import com.ecep.contract.model.IdentityEntity; import lombok.Data; @Data -public class CompanyBankAccountVo implements IdentityEntity { +public class CompanyBankAccountVo implements IdentityEntity, CompanyBasedVo { private Integer id; /** * 公司id diff --git a/common/src/main/java/com/ecep/contract/vo/CompanyBasedVo.java b/common/src/main/java/com/ecep/contract/vo/CompanyBasedVo.java new file mode 100644 index 0000000..4836179 --- /dev/null +++ b/common/src/main/java/com/ecep/contract/vo/CompanyBasedVo.java @@ -0,0 +1,7 @@ +package com.ecep.contract.vo; + +public interface CompanyBasedVo { + Integer getCompanyId(); + + void setCompanyId(Integer companyId); +} diff --git a/common/src/main/java/com/ecep/contract/vo/CompanyBlackReasonVo.java b/common/src/main/java/com/ecep/contract/vo/CompanyBlackReasonVo.java index c2226d9..77dec19 100644 --- a/common/src/main/java/com/ecep/contract/vo/CompanyBlackReasonVo.java +++ b/common/src/main/java/com/ecep/contract/vo/CompanyBlackReasonVo.java @@ -6,10 +6,9 @@ import java.time.LocalDate; import lombok.Data; @Data -public class CompanyBlackReasonVo implements IdentityEntity { +public class CompanyBlackReasonVo implements IdentityEntity ,CompanyBasedVo{ private Integer id; private Integer companyId; - private String companyName; private BlackReasonType type; private String applyName; private LocalDate applyDate; diff --git a/common/src/main/java/com/ecep/contract/vo/CompanyContactVo.java b/common/src/main/java/com/ecep/contract/vo/CompanyContactVo.java index 74c2178..6f2426b 100644 --- a/common/src/main/java/com/ecep/contract/vo/CompanyContactVo.java +++ b/common/src/main/java/com/ecep/contract/vo/CompanyContactVo.java @@ -6,10 +6,9 @@ import java.time.LocalDate; import lombok.Data; @Data -public class CompanyContactVo implements IdentityEntity, NamedEntity { +public class CompanyContactVo implements IdentityEntity, NamedEntity ,CompanyBasedVo{ private Integer id; private Integer companyId; - private String companyName; private String name; private String position; private String phone; diff --git a/common/src/main/java/com/ecep/contract/vo/CompanyContractVo.java b/common/src/main/java/com/ecep/contract/vo/CompanyContractVo.java index 13d4801..9734a2a 100644 --- a/common/src/main/java/com/ecep/contract/vo/CompanyContractVo.java +++ b/common/src/main/java/com/ecep/contract/vo/CompanyContractVo.java @@ -4,10 +4,9 @@ import com.ecep.contract.model.IdentityEntity; import lombok.Data; @Data -public class CompanyContractVo implements IdentityEntity { +public class CompanyContractVo implements IdentityEntity ,CompanyBasedVo{ private Integer id; private Integer companyId; - private String companyName; private Integer contractId; private String contractCode; private String contractName; diff --git a/common/src/main/java/com/ecep/contract/vo/CompanyCustomerFileVo.java b/common/src/main/java/com/ecep/contract/vo/CompanyCustomerFileVo.java index 7f20b56..8385dec 100644 --- a/common/src/main/java/com/ecep/contract/vo/CompanyCustomerFileVo.java +++ b/common/src/main/java/com/ecep/contract/vo/CompanyCustomerFileVo.java @@ -9,7 +9,6 @@ import lombok.Data; public class CompanyCustomerFileVo implements IdentityEntity { private Integer id; private Integer customerId; - private String customerName; private CompanyCustomerFileType type; private String filePath; private String editFilePath; diff --git a/common/src/main/java/com/ecep/contract/vo/CompanyCustomerVo.java b/common/src/main/java/com/ecep/contract/vo/CompanyCustomerVo.java index c173853..526eeb6 100644 --- a/common/src/main/java/com/ecep/contract/vo/CompanyCustomerVo.java +++ b/common/src/main/java/com/ecep/contract/vo/CompanyCustomerVo.java @@ -6,10 +6,9 @@ import java.time.LocalDate; import lombok.Data; @Data -public class CompanyCustomerVo implements IdentityEntity { +public class CompanyCustomerVo implements IdentityEntity,CompanyBasedVo { private Integer id; private Integer companyId; - private String companyName; private LocalDate developDate; private String path; private Integer companyContactId; diff --git a/common/src/main/java/com/ecep/contract/vo/CompanyExtendInfoVo.java b/common/src/main/java/com/ecep/contract/vo/CompanyExtendInfoVo.java index a836f38..7a80458 100644 --- a/common/src/main/java/com/ecep/contract/vo/CompanyExtendInfoVo.java +++ b/common/src/main/java/com/ecep/contract/vo/CompanyExtendInfoVo.java @@ -4,10 +4,9 @@ import com.ecep.contract.model.IdentityEntity; import lombok.Data; @Data -public class CompanyExtendInfoVo implements IdentityEntity { +public class CompanyExtendInfoVo implements IdentityEntity, CompanyBasedVo { private Integer id; private Integer companyId; - private String companyName; private boolean disableVerify = false; private int version = 0; } \ No newline at end of file diff --git a/common/src/main/java/com/ecep/contract/vo/CompanyFileVo.java b/common/src/main/java/com/ecep/contract/vo/CompanyFileVo.java index 601ebfe..42586fe 100644 --- a/common/src/main/java/com/ecep/contract/vo/CompanyFileVo.java +++ b/common/src/main/java/com/ecep/contract/vo/CompanyFileVo.java @@ -8,11 +8,10 @@ import com.ecep.contract.model.IdentityEntity; import lombok.Data; @Data -public class CompanyFileVo implements IdentityEntity { +public class CompanyFileVo implements IdentityEntity, CompanyBasedVo { private Integer id; private Integer companyId; - private String companyName; private CompanyFileType type; private LocalDate applyDate; private LocalDate expiringDate; diff --git a/common/src/main/java/com/ecep/contract/vo/CompanyInvoiceInfoVo.java b/common/src/main/java/com/ecep/contract/vo/CompanyInvoiceInfoVo.java index cbf5a58..de05370 100644 --- a/common/src/main/java/com/ecep/contract/vo/CompanyInvoiceInfoVo.java +++ b/common/src/main/java/com/ecep/contract/vo/CompanyInvoiceInfoVo.java @@ -5,11 +5,10 @@ import com.ecep.contract.model.NamedEntity; import lombok.Data; @Data -public class CompanyInvoiceInfoVo implements IdentityEntity, NamedEntity { +public class CompanyInvoiceInfoVo implements IdentityEntity, NamedEntity, CompanyBasedVo { private Integer id; private String name; private Integer companyId; - private String companyName; private String taxId; private String address; private String phone; diff --git a/common/src/main/java/com/ecep/contract/vo/CompanyOldNameVo.java b/common/src/main/java/com/ecep/contract/vo/CompanyOldNameVo.java index 41ac854..b0f4b42 100644 --- a/common/src/main/java/com/ecep/contract/vo/CompanyOldNameVo.java +++ b/common/src/main/java/com/ecep/contract/vo/CompanyOldNameVo.java @@ -8,7 +8,7 @@ import com.ecep.contract.model.NamedEntity; import lombok.Data; @Data -public class CompanyOldNameVo implements IdentityEntity, NamedEntity { +public class CompanyOldNameVo implements IdentityEntity, NamedEntity, CompanyBasedVo { private Integer id; private Integer companyId; private String name; diff --git a/common/src/main/java/com/ecep/contract/vo/InventoryVo.java b/common/src/main/java/com/ecep/contract/vo/InventoryVo.java index 2c2f927..d9ce9b8 100644 --- a/common/src/main/java/com/ecep/contract/vo/InventoryVo.java +++ b/common/src/main/java/com/ecep/contract/vo/InventoryVo.java @@ -13,8 +13,8 @@ public class InventoryVo implements IdentityEntity { private Integer catalogId; private String catalogName; private String specification; - private boolean specificationLock; - private boolean nameLock; + private boolean specificationLock = false; + private boolean nameLock = false; private Double purchaseTax; private Double purchasePrice; private Double purchaseTaxPrice; diff --git a/common/src/main/java/com/ecep/contract/vo/InvoiceVo.java b/common/src/main/java/com/ecep/contract/vo/InvoiceVo.java index d835a4d..902f237 100644 --- a/common/src/main/java/com/ecep/contract/vo/InvoiceVo.java +++ b/common/src/main/java/com/ecep/contract/vo/InvoiceVo.java @@ -18,5 +18,5 @@ public class InvoiceVo implements IdentityEntity { private Double totalAmount; private Integer invoiceStatusId; private String remark; - private Boolean active; + private Boolean active = false; } \ No newline at end of file diff --git a/common/src/main/java/com/ecep/contract/vo/PurchaseOrderVo.java b/common/src/main/java/com/ecep/contract/vo/PurchaseOrderVo.java index 4ae62a0..b74f6e7 100644 --- a/common/src/main/java/com/ecep/contract/vo/PurchaseOrderVo.java +++ b/common/src/main/java/com/ecep/contract/vo/PurchaseOrderVo.java @@ -17,5 +17,5 @@ public class PurchaseOrderVo implements IdentityEntity { private Double taxRate; private Integer statusId; private String remark; - private Boolean active; + private Boolean active = false; } \ No newline at end of file diff --git a/common/src/main/java/com/ecep/contract/vo/PurchaseReceiptVo.java b/common/src/main/java/com/ecep/contract/vo/PurchaseReceiptVo.java index b1fb5d9..966513f 100644 --- a/common/src/main/java/com/ecep/contract/vo/PurchaseReceiptVo.java +++ b/common/src/main/java/com/ecep/contract/vo/PurchaseReceiptVo.java @@ -1,16 +1,16 @@ package com.ecep.contract.vo; -import com.ecep.contract.model.IdentityEntity; import java.time.LocalDate; +import com.ecep.contract.model.IdentityEntity; import lombok.Data; @Data public class PurchaseReceiptVo implements IdentityEntity { private Integer id; - private Integer purchaseOrderId; private String code; - private LocalDate receiptDate; - private Integer receivedByEmployeeId; - private String remark; - private Boolean active; + private Integer orderId; + private LocalDate verifierDate; + private LocalDate arriveDate; + private String description; + private boolean active = false; } \ No newline at end of file diff --git a/common/src/main/java/com/ecep/contract/vo/SalesOrderVo.java b/common/src/main/java/com/ecep/contract/vo/SalesOrderVo.java index 31bb36e..f773c2a 100644 --- a/common/src/main/java/com/ecep/contract/vo/SalesOrderVo.java +++ b/common/src/main/java/com/ecep/contract/vo/SalesOrderVo.java @@ -17,5 +17,5 @@ public class SalesOrderVo implements IdentityEntity { private Double taxRate; private Integer statusId; private String remark; - private Boolean active; + private Boolean active = false; } \ No newline at end of file