From effd7b103c03793c11a3ef8fb223b6c1737d9371 Mon Sep 17 00:00:00 2001 From: songqq Date: Sat, 6 Sep 2025 13:43:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=A4=9A=E4=B8=AA?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=B1=BB=E5=8F=8A=E5=B7=A5=E5=85=B7=E7=B1=BB?= =?UTF-8?q?=EF=BC=8C=E9=87=8D=E6=9E=84=E9=83=A8=E5=88=86=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构服务类结构,将分散的服务统一整合到service包下 新增ProjectConstant常量类及多个实体服务类 添加SecurityUtils安全工具类和BeanCacher工具类 优化部分UI控件和转换器的实现 --- .../controller/CloudTycManagerSkin.java | 29 +-- .../CloudTycManagerWindowController.java | 29 +-- .../controller/HomeWindowController.java | 41 ++--- .../controller/LoginWidowController.java | 44 +++-- .../controller/SysConfWindowController.java | 41 ++--- .../YongYouU8ConfigWindowController.java | 23 ++- .../controller/YongYouU8ManagerSkin.java | 34 +--- .../bank/BankManagerWindowController.java | 4 +- .../bank/account/BankAccountBaseTabSkin.java | 2 +- .../account/BankAccountWindowController.java | 4 +- .../CompanyContactWindowController.java | 44 +++-- .../company/CompanyManagerSkin.java | 7 +- .../CompanyManagerWindowController.java | 8 +- .../company/CompanyWindowController.java | 4 +- .../CompanyOldNameTabSkinFile.java | 23 +-- .../CompanyOldNameWindowController.java | 8 +- .../contract/AbstContractTableTabSkin.java | 17 +- .../ContractManagerWindowController.java | 14 +- .../ContractTabSkinExtendVendorInfo.java | 12 +- .../ContractVerifyWindowController.java | 43 ++--- .../contract/ContractWindowController.java | 6 +- ...merEvaluationFormFileWindowController.java | 14 +- .../customer/CompanyCustomerTabSkinBase.java | 25 ++- .../customer/CustomerTabSkinEntity.java | 26 ++- .../customer/CustomerTabSkinFile.java | 73 +++++--- .../department/DepartmentManagerSkin.java | 6 +- .../DepartmentManagerWindowController.java | 4 +- .../employee/AbstEmployeeBasedTabSkin.java | 6 +- .../employee/AbstEmployeeTableTabSkin.java | 14 +- .../employee/EmployeeManagerSkin.java | 18 +- .../EmployeeManagerWindowController.java | 11 +- .../employee/EmployeeTabSkinAuthBind.java | 6 +- .../employee/EmployeeTabSkinBase.java | 4 +- .../employee/EmployeeTabSkinLoginHistory.java | 6 +- .../employee/EmployeeTabSkinRole.java | 8 +- .../employee/EmployeeWindowController.java | 4 +- .../inventory/InventoryManagerSkin.java | 8 +- .../InventoryManagerWindowController.java | 8 +- .../inventory/InventoryTabSkinBase.java | 31 +--- .../inventory/InventoryTabSkinContracts.java | 43 +++-- .../InventoryTabSkinHistoryPrice.java | 19 +- .../inventory/InventoryWindowController.java | 4 +- .../AbstEmployeeRoleBasedTabSkin.java | 19 +- ...loyeeFunctionsManagerWindowController.java | 6 +- .../permission/EmployeeRoleManagerSkin.java | 2 +- .../EmployeeRoleManagerWindowController.java | 6 +- .../EmployeeRoleTabSkinFunctions.java | 5 +- .../EmployeeRoleWindowController.java | 6 +- .../permission/FunctionManagerSkin.java | 4 +- .../permission/FunctionTabSkinPermission.java | 18 +- .../permission/FunctionWindowController.java | 4 +- .../permission/PermissionManagerSkin.java | 28 +-- .../project/AbstProjectBasedTabSkin.java | 2 +- .../project/AbstProjectTableTabSkin.java | 13 +- .../ApplyNewProjectWindowController.java | 8 +- .../project/CompanyInvoiceInfoService.java | 15 ++ .../project/ProjectManagerSkin.java | 52 +++--- .../ProjectManagerWindowController.java | 4 +- .../project/ProjectTabSkinBase.java | 18 +- .../controller/project/ProjectTabSkinBid.java | 14 +- .../project/ProjectTabSkinContract.java | 6 +- .../project/ProjectTabSkinCost.java | 12 +- .../project/ProjectTabSkinCustomerInfo.java | 15 +- ...jectTabSkinCustomerSatisfactionSurvey.java | 14 +- .../project/ProjectTabSkinFundPlan.java | 10 +- .../project/ProjectTabSkinQuotation.java | 18 +- .../project/ProjectWindowController.java | 8 +- .../project/bid/ProjectBidTabSkinBase.java | 20 +-- .../bid/ProjectBidWindowController.java | 6 +- .../cost/ProjectCostExportExcelTasker.java | 58 +++--- ...ectCostImportItemsFromContractsTasker.java | 19 ++ .../project/cost/ProjectCostTabSkinBase.java | 8 +- .../project/cost/ProjectCostTabSkinItems.java | 33 ++-- .../cost/ProjectCostWindowController.java | 8 +- .../industry/ProjectIndustryManagerSkin.java | 2 +- ...rojectIndustryManagerWindowController.java | 6 +- .../ProductTypeManagerWindowController.java | 6 +- .../project_type/ProjectTypeManagerSkin.java | 4 +- .../ProjectTypeManagerWindowController.java | 6 +- .../ProjectQuotationExportAsExcelFile.java | 8 +- .../ProjectQuotationTabSkinBase.java | 18 +- .../ProjectQuotationWindowController.java | 8 +- .../AbstProjectSaleTypeBasedTabSkin.java | 6 +- .../AbstProjectSaleTypeTableTabSkin.java | 18 +- .../sale_type/ProjectSaleTypeManagerSkin.java | 49 +++--- ...rojectSaleTypeManagerWindowController.java | 24 +-- .../ProjectSaleTypeRequireFilesTabSkin.java | 4 +- .../ProjectSaleTypeWindowController.java | 10 +- .../project/sale_type/SignMethodTabSkin.java | 2 +- ...CustomerSatisfactionSurveyTabSkinBase.java | 16 +- ...merSatisfactionSurveyWindowController.java | 6 +- ...erSatisfactionSurveyExportAsExcelFile.java | 13 +- .../usage/ProductUsageManagerSkin.java | 4 +- .../ProductUsageManagerWindowController.java | 6 +- .../tab/CompanyTabSkinBankAccount.java | 12 +- .../controller/tab/CompanyTabSkinBase.java | 2 +- .../tab/CompanyTabSkinBlackReason.java | 16 +- .../controller/tab/CompanyTabSkinContact.java | 8 +- .../tab/CompanyTabSkinContract.java | 16 +- .../controller/tab/CompanyTabSkinFile.java | 39 ++--- .../controller/tab/CompanyTabSkinOther.java | 165 +++--------------- .../controller/tab/ContractManagerSkin.java | 70 ++++---- .../controller/tab/ContractTabSkinBase.java | 80 ++++++--- .../tab/ContractTabSkinSubContract.java | 18 +- .../controller/tab/ContractUpdater.java | 60 +++---- .../controller/tab/SalesOrderTabSkinBase.java | 8 +- .../tab/SalesOrderTabSkinBillVoucher.java | 58 +++--- .../tab/SalesOrderTabSkinItems.java | 25 ++- .../controller/tab/VendorBidTabSkinBase.java | 57 +++--- .../controller/table/cell/BankTableCell.java | 4 +- .../table/cell/CompanyVendorTableCell.java | 6 +- .../table/cell/ContractTableCell.java | 4 +- .../table/cell/DepartmentTableCell.java | 4 +- .../table/cell/EvaluationFileTableCell.java | 2 +- .../table/cell/InventoryTableCell.java | 4 +- .../table/cell/InvoiceTableCell.java | 4 +- .../cell/PurchaseOrderItemTableCell.java | 8 +- .../vendor/CompanyVendorManagerSkin.java | 19 +- .../CompanyVendorManagerWindowController.java | 31 ++-- .../vendor/CompanyVendorTabSkinBase.java | 8 +- .../vendor/CompanyVendorTabSkinEntity.java | 28 +-- .../PurchaseBillVoucherWindowController.java | 7 +- .../vendor/PurchaseOrderWindowController.java | 9 +- .../controller/vendor/VendorTabSkinFile.java | 8 +- .../CompanyVendorApprovedListManagerSkin.java | 2 +- ...orApprovedListManagerWindowController.java | 4 +- ...CompanyVendorApprovedListTabSkinFiles.java | 20 +-- ...mpanyVendorApprovedListTabSkinVendors.java | 37 ++-- ...anyVendorApprovedListVendorExportTask.java | 92 +++++----- ...anyVendorApprovedListVendorImportTask.java | 65 +++---- ...anyVendorApprovedListWindowController.java | 6 +- .../group/AbstVendorGroupBasedTabSkin.java | 2 +- .../vendor/group/VendorGroupManagerSkin.java | 24 +-- .../VendorGroupManagerWindowController.java | 4 +- .../group/VendorGroupRequireFilesTabSkin.java | 4 +- .../order/PurchaseOrderTabSkinBase.java | 8 +- .../PurchaseOrderTabSkinBillVoucher.java | 127 +++++++------- .../order/PurchaseOrderTabSkinItems.java | 31 ++-- .../PurchaseBillVoucherTabSkinItems.java | 35 ++-- .../CompanyStringConverter.java | 4 +- .../ContractGroupStringConverter.java | 2 +- .../ContractTypeStringConverter.java | 20 +++ .../ecep/contract/service/CloudRkService.java | 22 +++ .../contract/service/CloudTycService.java | 2 +- .../service/CompanyBankAccountService.java | 14 ++ .../service/CompanyBlackReasonService.java | 9 + .../service/CompanyContactService.java | 13 ++ .../service/CompanyCustomerEntityService.java | 6 +- .../service/CompanyCustomerFileService.java | 50 +++++- .../service/CompanyCustomerService.java | 5 + .../service/CompanyExtendInfoService.java | 11 ++ .../contract/service/CompanyFileService.java | 21 ++- .../service/CompanyOldNameService.java | 19 ++ .../ecep/contract/service/CompanyService.java | 27 +++ .../CompanyVendorApprovedFileService.java | 20 +++ .../CompanyVendorApprovedItemService.java | 18 ++ .../CompanyVendorApprovedListService.java | 25 +++ .../service/CompanyVendorFileService.java | 9 + .../service/CompanyVendorService.java | 37 ++++ .../service/ContractBidVendorService.java | 8 + .../contract/service/ContractFileService.java | 21 +++ .../service/ContractGroupService.java | 5 + .../contract/service/ContractItemService.java | 16 ++ .../service/ContractPayPlanService.java | 16 ++ .../contract/service/ContractService.java | 50 ++++++ .../contract/service/ContractTypeService.java | 15 ++ .../service/DeliverySignMethodService.java | 8 + .../contract/service/DepartmentService.java | 15 ++ .../service/EmployeeAuthBindService.java | 17 ++ .../service/EmployeeLoginHistoryService.java | 9 + .../contract/service/EmployeeRoleService.java | 8 + .../contract/service/EmployeeService.java | 7 + .../service/ExtendVendorInfoService.java | 10 ++ .../contract/service/FunctionService.java | 8 + .../service/InventoryCatalogService.java | 20 +++ .../service/InventoryHistoryPriceService.java | 15 ++ .../contract/service/InventoryService.java | 31 ++++ .../ecep/contract/service/InvoiceService.java | 8 + .../contract/service/PermissionService.java | 15 ++ .../contract/service/ProductTypeService.java | 13 ++ .../contract/service/ProductUsageService.java | 8 + .../contract/service/ProjectBidService.java | 8 + .../service/ProjectCostItemService.java | 16 ++ .../contract/service/ProjectCostService.java | 29 +++ .../service/ProjectFundPlanService.java | 21 +++ .../service/ProjectIndustryService.java | 8 + .../service/ProjectQuotationService.java | 11 ++ ...ProjectSaleTypeRequireFileTypeService.java | 21 +++ .../service/ProjectSaleTypeService.java | 5 + .../ecep/contract/service/ProjectService.java | 24 +++ .../contract/service/ProjectTypeService.java | 13 ++ .../PurchaseBillVoucherItemService.java | 9 + .../service/PurchaseBillVoucherService.java | 8 + .../service/PurchaseOrderItemService.java | 8 + .../service/PurchaseOrdersService.java | 8 + .../contract/service/SaleTypeService.java | 13 ++ .../service/SalesBillVoucherService.java | 8 + .../service/SalesOrderItemService.java | 8 + .../ecep/contract/service/SysConfService.java | 9 +- .../VendorGroupRequireFileTypeService.java | 7 + .../contract/service/VendorGroupService.java | 5 + .../contract/service/ViewModelService.java | 2 + .../contract/service/YongYouU8Service.java | 4 +- .../task/ContractFilesRebuildAllTasker.java | 21 +++ .../task/ContractRepairAllTasker.java | 14 ++ .../contract/task/ContractVerifyComm.java | 31 ++-- .../contract/task/ContractVerifyTasker.java | 18 ++ .../ecep/contract/task/EmployeesSyncTask.java | 13 ++ .../ecep/contract/task/InventorySyncTask.java | 13 ++ .../contract/task/VendorVerifyAllTasker.java | 13 ++ .../contract/util/AbstractConfigBounder.java | 2 +- .../com/ecep/contract/util/BeanCacher.java | 22 +++ .../ecep/contract/util/LocalDateConfig.java | 8 + .../com/ecep/contract/util/ParamUtils.java | 87 +++++++++ .../contract/vm/CompanyContactViewModel.java | 49 ++++-- .../vm/CompanyExtendInfoViewModel.java | 8 +- .../contract/vm/CompanyFileViewModel.java | 7 +- .../vm/CompanyInvoiceInfoViewModel.java | 62 +++++++ .../contract/vm/CompanyOldNameViewModel.java | 39 ++++- .../CompanyVendorApprovedFileViewModel.java | 25 ++- .../vm/InventoryCatalogViewModel.java | 38 ++++ .../ecep/contract/vm/PermissionViewModel.java | 1 - .../vm/PurchaseOrderItemViewModel.java | 8 - .../contract/vm/PurchaseOrderViewModel.java | 8 +- .../contract/constant/CloudYuConstant.java | 27 +++ .../constant/CompanyCustomerConstant.java | 7 + .../contract/constant/ContractConstant.java | 27 +++ .../contract/constant/ProjectConstant.java | 7 + .../contract/cloud/u8/ContractSyncTask.java | 12 +- .../contract/cloud/u8/ctx/CompanyCtx.java | 8 +- .../contract/cloud/u8/ctx/ContractCtx.java | 18 -- .../ecep/contract/config/SecurityConfig.java | 4 + .../CompanyContactStringConverter.java | 2 +- .../company/controller/CompanyController.java | 50 ++++++ .../ds/company/service/CompanyService.java | 3 +- .../ds/contract/ContractStringConverter.java | 2 +- .../contract/service/ContractFileService.java | 21 --- .../ds/contract/service/ContractService.java | 4 +- .../contract/tasker/ContractVerifyComm.java | 20 +-- .../converter}/EntityStringConverter.java | 2 +- .../ds/{ => converter}/MonthDayConverter.java | 2 +- .../converter}/NumberStringConverter.java | 2 +- .../CustomerClassStringConverter.java | 2 +- .../service/CompanyCustomerFileService.java | 7 +- .../service/CompanyCustomerService.java | 5 +- .../other/controller/CloudRkController.java | 50 ++++++ .../other/controller/CloudTycController.java | 50 ++++++ .../other/controller/CloudYuController.java | 50 ++++++ .../other/controller/EmployeeController.java | 5 +- .../controller/EmployeeRoleController.java | 80 +++++++++ .../CustomerSatisfactionSurveyService.java | 2 - .../service/ProjectStringConverter.java | 2 +- .../com/ecep/contract/util/SecurityUtils.java | 15 ++ 253 files changed, 2920 insertions(+), 1646 deletions(-) create mode 100644 client/src/main/java/com/ecep/contract/controller/project/CompanyInvoiceInfoService.java create mode 100644 client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostImportItemsFromContractsTasker.java rename client/src/main/java/com/ecep/contract/{service => converter}/CompanyStringConverter.java (87%) create mode 100644 client/src/main/java/com/ecep/contract/converter/ContractTypeStringConverter.java create mode 100644 client/src/main/java/com/ecep/contract/service/CompanyBankAccountService.java create mode 100644 client/src/main/java/com/ecep/contract/service/CompanyBlackReasonService.java create mode 100644 client/src/main/java/com/ecep/contract/service/CompanyExtendInfoService.java create mode 100644 client/src/main/java/com/ecep/contract/service/CompanyVendorApprovedFileService.java create mode 100644 client/src/main/java/com/ecep/contract/service/CompanyVendorApprovedItemService.java create mode 100644 client/src/main/java/com/ecep/contract/service/CompanyVendorApprovedListService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ContractItemService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ContractPayPlanService.java create mode 100644 client/src/main/java/com/ecep/contract/service/DeliverySignMethodService.java create mode 100644 client/src/main/java/com/ecep/contract/service/DepartmentService.java create mode 100644 client/src/main/java/com/ecep/contract/service/EmployeeAuthBindService.java create mode 100644 client/src/main/java/com/ecep/contract/service/EmployeeLoginHistoryService.java create mode 100644 client/src/main/java/com/ecep/contract/service/FunctionService.java create mode 100644 client/src/main/java/com/ecep/contract/service/InventoryCatalogService.java create mode 100644 client/src/main/java/com/ecep/contract/service/InventoryHistoryPriceService.java create mode 100644 client/src/main/java/com/ecep/contract/service/InventoryService.java create mode 100644 client/src/main/java/com/ecep/contract/service/InvoiceService.java create mode 100644 client/src/main/java/com/ecep/contract/service/PermissionService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ProductTypeService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ProductUsageService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ProjectCostItemService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ProjectFundPlanService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ProjectIndustryService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ProjectTypeService.java create mode 100644 client/src/main/java/com/ecep/contract/service/PurchaseBillVoucherItemService.java create mode 100644 client/src/main/java/com/ecep/contract/service/PurchaseBillVoucherService.java create mode 100644 client/src/main/java/com/ecep/contract/service/PurchaseOrderItemService.java create mode 100644 client/src/main/java/com/ecep/contract/service/PurchaseOrdersService.java create mode 100644 client/src/main/java/com/ecep/contract/service/SaleTypeService.java create mode 100644 client/src/main/java/com/ecep/contract/service/SalesBillVoucherService.java create mode 100644 client/src/main/java/com/ecep/contract/service/SalesOrderItemService.java create mode 100644 client/src/main/java/com/ecep/contract/task/ContractFilesRebuildAllTasker.java create mode 100644 client/src/main/java/com/ecep/contract/task/ContractRepairAllTasker.java create mode 100644 client/src/main/java/com/ecep/contract/task/ContractVerifyTasker.java create mode 100644 client/src/main/java/com/ecep/contract/task/EmployeesSyncTask.java create mode 100644 client/src/main/java/com/ecep/contract/task/InventorySyncTask.java create mode 100644 client/src/main/java/com/ecep/contract/task/VendorVerifyAllTasker.java create mode 100644 client/src/main/java/com/ecep/contract/util/BeanCacher.java create mode 100644 client/src/main/java/com/ecep/contract/util/ParamUtils.java create mode 100644 client/src/main/java/com/ecep/contract/vm/CompanyInvoiceInfoViewModel.java create mode 100644 client/src/main/java/com/ecep/contract/vm/InventoryCatalogViewModel.java create mode 100644 common/src/main/java/com/ecep/contract/constant/CloudYuConstant.java create mode 100644 common/src/main/java/com/ecep/contract/constant/ContractConstant.java create mode 100644 common/src/main/java/com/ecep/contract/constant/ProjectConstant.java create mode 100644 server/src/main/java/com/ecep/contract/ds/company/controller/CompanyController.java rename server/src/main/java/com/ecep/contract/{util => ds/converter}/EntityStringConverter.java (97%) rename server/src/main/java/com/ecep/contract/ds/{ => converter}/MonthDayConverter.java (95%) rename server/src/main/java/com/ecep/contract/{util => ds/converter}/NumberStringConverter.java (98%) create mode 100644 server/src/main/java/com/ecep/contract/ds/other/controller/CloudRkController.java create mode 100644 server/src/main/java/com/ecep/contract/ds/other/controller/CloudTycController.java create mode 100644 server/src/main/java/com/ecep/contract/ds/other/controller/CloudYuController.java create mode 100644 server/src/main/java/com/ecep/contract/ds/other/controller/EmployeeRoleController.java create mode 100644 server/src/main/java/com/ecep/contract/util/SecurityUtils.java diff --git a/client/src/main/java/com/ecep/contract/controller/CloudTycManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/CloudTycManagerSkin.java index a69f525..97ea2dc 100644 --- a/client/src/main/java/com/ecep/contract/controller/CloudTycManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/CloudTycManagerSkin.java @@ -1,23 +1,23 @@ package com.ecep.contract.controller; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.hibernate.Hibernate; import org.springframework.data.domain.Page; -import org.springframework.data.jpa.domain.Specification; import org.springframework.util.StringUtils; import com.ecep.contract.SpringApp; -import com.ecep.contract.cloud.tyc.CloudTycService; import com.ecep.contract.controller.company.CompanyWindowController; -import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.controller.table.cell.CompanyTableCell; +import com.ecep.contract.controller.table.cell.LocalDateTimeTableCell; import com.ecep.contract.model.CloudTyc; import com.ecep.contract.model.Company; -import com.ecep.contract.ui.table.cell.CompanyTableCell; -import com.ecep.contract.ui.table.cell.LocalDateTimeTableCell; +import com.ecep.contract.service.CloudTycService; +import com.ecep.contract.service.CompanyService; import com.ecep.contract.vm.CloudTycInfoViewModel; -import jakarta.persistence.criteria.Path; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.scene.control.ContextMenu; @@ -54,23 +54,10 @@ public class CloudTycManagerSkin @Override protected List loadTableData() { String searchText = controller.searchKeyField.getText(); - Specification spec = null; + Map spec = new HashMap<>(); if (StringUtils.hasText(searchText)) { - - Specification companySpec = (root, query, builder) -> { - Path company = root.get("company"); - return builder.or( - builder.like(company.get("name"), "%" + searchText + "%"), - builder.like(company.get("shortName"), "%" + searchText + "%")); - }; - - Specification cloudIdSpec = (root, query, builder) -> { - return builder.like(root.get("cloudId"), "%" + searchText + "%"); - }; - - spec = Specification.anyOf(companySpec, cloudIdSpec); + spec.put("searchText", searchText); } - Page page = getCloudTycService().findAll(spec, getPageable()); updateFooter(page); return page.map(CloudTycInfoViewModel::from).toList(); diff --git a/client/src/main/java/com/ecep/contract/controller/CloudTycManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/CloudTycManagerWindowController.java index 25b311e..633d553 100644 --- a/client/src/main/java/com/ecep/contract/controller/CloudTycManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/CloudTycManagerWindowController.java @@ -1,20 +1,17 @@ package com.ecep.contract.controller; import java.time.LocalDateTime; -import java.util.Objects; -import com.ecep.contract.util.FxmlPath; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import com.ecep.contract.cloud.CloudBaseInfo; -import com.ecep.contract.cloud.CloudInfo; -import com.ecep.contract.cloud.tyc.CloudTycService; -import com.ecep.contract.ds.company.service.CompanyService; import com.ecep.contract.model.CloudTyc; import com.ecep.contract.model.Company; +import com.ecep.contract.service.CloudTycService; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.CloudTycInfoViewModel; import javafx.fxml.FXML; @@ -73,24 +70,4 @@ public class CloudTycManagerWindowController super.show(stage); getTitle().set("数据源:天眼查"); } - - boolean copyTo(CloudInfo v, CloudBaseInfo cloudRk) { - boolean modified = false; - if (!Objects.equals(cloudRk.getLatestUpdate(), v.getLatestUpdate())) { - cloudRk.setLatestUpdate(v.getLatestUpdate()); - modified = true; - } - - if (!Objects.equals(cloudRk.getCloudId(), v.getCloudId())) { - cloudRk.setCloudId(v.getCloudId()); - modified = true; - } - - if (!Objects.equals(cloudRk.getCompany(), v.getCompany())) { - cloudRk.setCompany(v.getCompany()); - modified = true; - } - return modified; - } - } diff --git a/client/src/main/java/com/ecep/contract/controller/HomeWindowController.java b/client/src/main/java/com/ecep/contract/controller/HomeWindowController.java index 8305b1d..c13b486 100644 --- a/client/src/main/java/com/ecep/contract/controller/HomeWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/HomeWindowController.java @@ -5,8 +5,6 @@ import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.util.FxmlUtils; import org.controlsfx.control.TaskProgressView; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -16,27 +14,24 @@ import org.springframework.context.annotation.Scope; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; -import com.ecep.contract.CurrentEmployeeInitialedEvent; import com.ecep.contract.Desktop; import com.ecep.contract.DesktopUtils; -import com.ecep.contract.cloud.old.OldVersionService; -import com.ecep.contract.cloud.rk.CloudRkManagerWindowController; -import com.ecep.contract.cloud.rk.CloudRkService; -import com.ecep.contract.cloud.tyc.CloudTycManagerWindowController; -import com.ecep.contract.cloud.u8.ContractSyncTask; -import com.ecep.contract.cloud.u8.YongYouU8ManagerWindowController; -import com.ecep.contract.cloud.u8.YongYouU8Service; -import com.ecep.contract.ds.company.controller.CompanyManagerWindowController; -import com.ecep.contract.ds.contract.controller.ContractManagerWindowController; -import com.ecep.contract.ds.customer.controller.CompanyCustomerManagerWindowController; -import com.ecep.contract.ds.other.controller.bank.BankManagerWindowController; -import com.ecep.contract.ds.other.controller.department.DepartmentManagerWindowController; -import com.ecep.contract.ds.other.controller.employee.EmployeeManagerWindowController; -import com.ecep.contract.ds.other.controller.inventory.InventoryManagerWindowController; -import com.ecep.contract.ds.other.controller.permission.EmployeeFunctionsManagerWindowController; -import com.ecep.contract.ds.other.controller.permission.EmployeeRoleManagerWindowController; -import com.ecep.contract.ds.project.controller.ProjectManagerWindowController; -import com.ecep.contract.ds.vendor.controller.CompanyVendorManagerWindowController; +import com.ecep.contract.controller.bank.BankManagerWindowController; +import com.ecep.contract.controller.company.CompanyManagerWindowController; +import com.ecep.contract.controller.contract.ContractManagerWindowController; +import com.ecep.contract.controller.customer.CompanyCustomerManagerWindowController; +import com.ecep.contract.controller.department.DepartmentManagerWindowController; +import com.ecep.contract.controller.employee.EmployeeManagerWindowController; +import com.ecep.contract.controller.inventory.InventoryManagerWindowController; +import com.ecep.contract.controller.permission.EmployeeFunctionsManagerWindowController; +import com.ecep.contract.controller.permission.EmployeeRoleManagerWindowController; +import com.ecep.contract.controller.project.ProjectManagerWindowController; +import com.ecep.contract.controller.vendor.CompanyVendorManagerWindowController; +import com.ecep.contract.service.CloudRkService; +import com.ecep.contract.service.YongYouU8Service; +import com.ecep.contract.task.ContractSyncTask; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.FxmlUtils; import com.ecep.contract.vm.CurrentEmployee; import javafx.concurrent.Task; @@ -110,10 +105,6 @@ public class HomeWindowController extends BaseController { logger.info("You are administrator, try schedule sync tasks."); } Desktop.instance.getExecutorService().schedule(() -> { - try { - getBean(OldVersionService.class).scheduledTasks(taskProgressView); - } catch (BeansException ignored) { - } try { getBean(YongYouU8Service.class).scheduledTasks(taskProgressView); } catch (BeansException ignored) { diff --git a/client/src/main/java/com/ecep/contract/controller/LoginWidowController.java b/client/src/main/java/com/ecep/contract/controller/LoginWidowController.java index 6c2123a..c700da6 100644 --- a/client/src/main/java/com/ecep/contract/controller/LoginWidowController.java +++ b/client/src/main/java/com/ecep/contract/controller/LoginWidowController.java @@ -1,11 +1,5 @@ package com.ecep.contract.controller; -import static com.ecep.contract.AppV2.DEFAULT_DB_DATABASE; -import static com.ecep.contract.AppV2.DEFAULT_DB_HOST; -import static com.ecep.contract.AppV2.DEFAULT_DB_PASSWORD; -import static com.ecep.contract.AppV2.DEFAULT_DB_PORT; -import static com.ecep.contract.AppV2.DEFAULT_DB_USERNAME; - import java.io.FileOutputStream; import java.net.Inet4Address; import java.net.InetAddress; @@ -36,7 +30,6 @@ import org.springframework.util.StringUtils; import com.ecep.contract.Desktop; import com.ecep.contract.MessageHolder; import com.ecep.contract.SpringApp; -import com.ecep.contract.ds.other.controller.HomeWindowController; import com.zaxxer.hikari.HikariDataSource; import javafx.application.Platform; @@ -82,24 +75,9 @@ public class LoginWidowController implements MessageHolder { } String getHost() { - return properties.getProperty("db.server.host", DEFAULT_DB_HOST); + return properties.getProperty("server.host"); } - String getPort() { - return properties.getProperty("db.server.port", DEFAULT_DB_PORT); - } - - String getDatabase() { - return properties.getProperty("db.server.database", DEFAULT_DB_DATABASE); - } - - public String getUserName() { - return properties.getProperty("db.server.username", DEFAULT_DB_USERNAME); - } - - public String getPassword() { - return properties.getProperty("db.server.password", DEFAULT_DB_PASSWORD); - } public void tryLogin() { // CompletableFuture future = new CompletableFuture<>(); @@ -122,6 +100,16 @@ public class LoginWidowController implements MessageHolder { } + private String getPassword() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getPassword'"); + } + + private String getUserName() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getUserName'"); + } + CompletableFuture> getMacAndIP() { return CompletableFuture.supplyAsync(() -> { // mac ip @@ -204,6 +192,16 @@ public class LoginWidowController implements MessageHolder { } + private String getDatabase() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getDatabase'"); + } + + private String getPort() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getPort'"); + } + private void createSession(Connection connection, EmployeeInfo employeeInfo) { employeeInfo.sessionId = addHistory(connection, employeeInfo.employeeId, employeeInfo.binds.getFirst()); } diff --git a/client/src/main/java/com/ecep/contract/controller/SysConfWindowController.java b/client/src/main/java/com/ecep/contract/controller/SysConfWindowController.java index 98deaa0..13fcb45 100644 --- a/client/src/main/java/com/ecep/contract/controller/SysConfWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/SysConfWindowController.java @@ -8,15 +8,16 @@ import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import com.ecep.contract.cloud.u8.YongYouU8Service; +import com.ecep.contract.constant.CompanyCustomerConstant; import com.ecep.contract.constant.CompanyVendorConstant; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.customer.service.CompanyCustomerFileService; -import com.ecep.contract.ds.customer.service.CompanyCustomerService; +import com.ecep.contract.constant.ContractConstant; +import com.ecep.contract.service.CompanyCustomerFileService; +import com.ecep.contract.service.CompanyCustomerService; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.YongYouU8Service; import com.ecep.contract.util.StringConfig; import jakarta.annotation.PreDestroy; -import javafx.beans.property.SimpleStringProperty; import javafx.event.ActionEvent; import javafx.scene.Node; import javafx.scene.control.Label; @@ -44,19 +45,14 @@ public class SysConfWindowController extends BaseController { public Label customerEvaluationFormTemplateLabel; public Label customerSaleBookPathLabel; - StringConfig contractPathConfig = new StringConfig(ContractService.CONTRACT_BASE_PATH); + StringConfig contractPathConfig = new StringConfig(ContractConstant.KEY_BASE_PATH); StringConfig vendorPathConfig = new StringConfig(CompanyVendorConstant.KEY_BASE_PATH); StringConfig vendorEvaluationFormTemplateConfig = new StringConfig( CompanyVendorConstant.KEY_EVALUATION_FORM_TEMPLATE); - StringConfig customerPathConfig = new StringConfig(CompanyCustomerService.KEY_BASE_PATH); + StringConfig customerPathConfig = new StringConfig(CompanyCustomerConstant.KEY_BASE_PATH); StringConfig customerEvaluationFormTemplateConfig = new StringConfig( - CompanyCustomerFileService.KEY_EVALUATION_FORM_TEMPLATE); - StringConfig customerSaleBookPathConfig = new StringConfig(CompanyCustomerService.KEY_SALEBOOK_PATH); - - StringConfig u8DataBaseServerHostConfig = new StringConfig(YongYouU8Service.KEY_HOST_IP); - StringConfig u8DataBaseCatalogConfig = new StringConfig(YongYouU8Service.KEY_DATABASE); - StringConfig u8DataBaseUserNameConfig = new StringConfig(YongYouU8Service.KEY_USER_NAME); - StringConfig u8DataBasePasswordConfig = new StringConfig(YongYouU8Service.KEY_PASSWORD); + CompanyCustomerConstant.KEY_EVALUATION_FORM_TEMPLATE); + StringConfig customerSaleBookPathConfig = new StringConfig(CompanyCustomerConstant.KEY_SALEBOOK_PATH); public void initialize() { contractPathConfig.setControl(companyContractPathLabel); @@ -74,15 +70,6 @@ public class SysConfWindowController extends BaseController { customerSaleBookPathConfig.setControl(customerSaleBookPathLabel); customerSaleBookPathConfig.initialize(); - u8DataBaseServerHostConfig.setControl(u8DataBaseServerHostField); - u8DataBaseServerHostConfig.initialize(); - u8DataBaseCatalogConfig.setControl(u8DataBaseCatalogField); - u8DataBaseCatalogConfig.initialize(); - u8DataBaseUserNameConfig.setControl(u8DataBaseUserNameField); - u8DataBaseUserNameConfig.initialize(); - u8DataBasePasswordConfig.setControl(u8DataBasePasswordField); - u8DataBasePasswordConfig.initialize(); - logger.debug("#initialize()"); } @@ -101,7 +88,7 @@ public class SysConfWindowController extends BaseController { } public void changeCompanyContractPath(ActionEvent actionEvent) { - directoryChoose(contractPathConfig, "请选择合同目录", ContractService.CONTRACT_BASE_PATH, actionEvent); + directoryChoose(contractPathConfig, "请选择合同目录", ContractConstant.KEY_BASE_PATH, actionEvent); } public void changeVendorPath(ActionEvent actionEvent) { @@ -109,11 +96,11 @@ public class SysConfWindowController extends BaseController { } public void changeCustomerPath(ActionEvent actionEvent) { - directoryChoose(customerPathConfig, "请选择客户目录", CompanyCustomerService.KEY_BASE_PATH, actionEvent); + directoryChoose(customerPathConfig, "请选择客户目录", CompanyCustomerConstant.KEY_BASE_PATH, actionEvent); } public void changeCustomerSaleBookPath(ActionEvent actionEvent) { - directoryChoose(customerSaleBookPathConfig, "请选择销售台账目录", "customer.salebook.path", actionEvent); + directoryChoose(customerSaleBookPathConfig, "请选择销售台账目录", CompanyCustomerConstant.KEY_SALEBOOK_PATH, actionEvent); } // 模拟销毁方法 @@ -139,7 +126,7 @@ public class SysConfWindowController extends BaseController { public void changeCustomerEvaluationFormTemplate(ActionEvent actionEvent) { fileChoose(customerEvaluationFormTemplateConfig, "请选择客户资信评估表模板", - CompanyCustomerFileService.KEY_EVALUATION_FORM_TEMPLATE, actionEvent); + CompanyCustomerConstant.KEY_EVALUATION_FORM_TEMPLATE, actionEvent); } public void changeVendorEvaluationFormTemplate(ActionEvent actionEvent) { diff --git a/client/src/main/java/com/ecep/contract/controller/YongYouU8ConfigWindowController.java b/client/src/main/java/com/ecep/contract/controller/YongYouU8ConfigWindowController.java index c8b82aa..6524b07 100644 --- a/client/src/main/java/com/ecep/contract/controller/YongYouU8ConfigWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/YongYouU8ConfigWindowController.java @@ -1,17 +1,16 @@ package com.ecep.contract.controller; -import com.ecep.contract.util.FxmlPath; import org.controlsfx.control.ToggleSwitch; import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import com.ecep.contract.cloud.u8.ctx.CompanyCtx; -import com.ecep.contract.cloud.u8.ctx.ContractCtx; -import com.ecep.contract.ds.other.BooleanConfig; -import com.ecep.contract.ds.other.LocalDateConfig; -import com.ecep.contract.ds.other.LocalDateTimeConfig; -import com.ecep.contract.ds.other.StringConfig; +import com.ecep.contract.constant.CloudYuConstant; +import com.ecep.contract.util.BooleanConfig; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.LocalDateConfig; +import com.ecep.contract.util.LocalDateTimeConfig; +import com.ecep.contract.util.StringConfig; import javafx.fxml.FXML; import javafx.scene.control.DatePicker; @@ -37,11 +36,11 @@ public class YongYouU8ConfigWindowController extends BaseController { @FXML private ToggleSwitch use_latest_id; - LocalDateConfig config1 = new LocalDateConfig(CompanyCtx.AUTO_CREATE_COMPANY_AFTER); - LocalDateTimeConfig config2 = new LocalDateTimeConfig(ContractCtx.KEY_SYNC_BY_LATEST_DATE); - StringConfig config3 = new StringConfig(ContractCtx.KEY_SYNC_BY_LATEST_ID); - StringConfig config4 = new StringConfig(ContractCtx.KEY_SYNC_ELAPSE); - BooleanConfig config5 = new BooleanConfig(ContractCtx.KEY_SYNC_USE_LATEST_ID); + LocalDateConfig config1 = new LocalDateConfig(CloudYuConstant.KEY_AUTO_CREATE_COMPANY_AFTER); + LocalDateTimeConfig config2 = new LocalDateTimeConfig(CloudYuConstant.KEY_SYNC_BY_LATEST_DATE); + StringConfig config3 = new StringConfig(CloudYuConstant.KEY_SYNC_BY_LATEST_ID); + StringConfig config4 = new StringConfig(CloudYuConstant.KEY_SYNC_ELAPSE); + BooleanConfig config5 = new BooleanConfig(CloudYuConstant.KEY_SYNC_USE_LATEST_ID); @Override public void onShown(WindowEvent windowEvent) { diff --git a/client/src/main/java/com/ecep/contract/controller/YongYouU8ManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/YongYouU8ManagerSkin.java index d2d401d..90ee999 100644 --- a/client/src/main/java/com/ecep/contract/controller/YongYouU8ManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/YongYouU8ManagerSkin.java @@ -1,23 +1,23 @@ package com.ecep.contract.controller; import java.util.List; +import java.util.Map; import org.hibernate.Hibernate; import org.springframework.data.domain.Page; -import org.springframework.data.jpa.domain.Specification; import org.springframework.util.StringUtils; import com.ecep.contract.SpringApp; -import com.ecep.contract.cloud.u8.YongYouU8Service; import com.ecep.contract.controller.company.CompanyWindowController; -import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.controller.table.cell.CompanyTableCell; +import com.ecep.contract.controller.table.cell.LocalDateTimeTableCell; import com.ecep.contract.model.CloudYu; import com.ecep.contract.model.Company; -import com.ecep.contract.ui.table.cell.CompanyTableCell; -import com.ecep.contract.ui.table.cell.LocalDateTimeTableCell; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.YongYouU8Service; +import com.ecep.contract.util.ParamUtils; import com.ecep.contract.vm.CloudYuInfoViewModel; -import jakarta.persistence.criteria.Path; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.scene.control.ContextMenu; @@ -54,27 +54,11 @@ public class YongYouU8ManagerSkin @Override protected List loadTableData() { String searchText = controller.searchKeyField.getText(); - Specification spec = null; + Map params = ParamUtils.builder().build(); if (StringUtils.hasText(searchText)) { - - Specification companySpec = (root, query, builder) -> { - Path company = root.get("company"); - return builder.or( - builder.like(company.get("name"), "%" + searchText + "%"), - builder.like(company.get("shortName"), "%" + searchText + "%")); - }; - - Specification cloudIdSpec = (root, query, builder) -> { - return builder.like(root.get("cloudId"), "%" + searchText + "%"); - }; - - Specification exceptionSpec = (root, query, builder) -> { - return builder.like(root.get("exceptionMessage"), "%" + searchText + "%"); - }; - spec = Specification.anyOf(companySpec, cloudIdSpec, exceptionSpec); + params.put("searchText", searchText); } - - Page page = getU8Service().findAll(spec, getPageable()); + Page page = getU8Service().findAll(params, getPageable()); updateFooter(page); return page.map(CloudYuInfoViewModel::from).toList(); } 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 1cf72d3..26e9559 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,9 +6,9 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstManagerWindowController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.other.service.BankService; 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 javafx.event.ActionEvent; 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 0373617..22fdbf5 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 @@ -5,11 +5,11 @@ 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.service.CompanyStringConverter; import com.ecep.contract.util.UITools; import com.ecep.contract.vm.CompanyBankAccountViewModel; 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 7a39f15..9ff9541 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 @@ -6,9 +6,9 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstEntityController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.company.service.CompanyBankAccountService; 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 javafx.scene.control.Button; diff --git a/client/src/main/java/com/ecep/contract/controller/company/CompanyContactWindowController.java b/client/src/main/java/com/ecep/contract/controller/company/CompanyContactWindowController.java index 9b951dc..7f19ab7 100644 --- a/client/src/main/java/com/ecep/contract/controller/company/CompanyContactWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/company/CompanyContactWindowController.java @@ -12,11 +12,11 @@ import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import com.ecep.contract.UITools; import com.ecep.contract.controller.BaseController; -import com.ecep.contract.util.FxmlUtils; -import com.ecep.contract.ds.company.repository.CompanyContactRepository; import com.ecep.contract.model.CompanyContact; +import com.ecep.contract.service.CompanyContactService; +import com.ecep.contract.util.FxmlUtils; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.CompanyContactViewModel; import javafx.application.Platform; @@ -35,11 +35,13 @@ import javafx.stage.WindowEvent; import javafx.util.converter.LocalDateStringConverter; import lombok.Getter; import lombok.Setter; + @Lazy @Scope("prototype") @Component public class CompanyContactWindowController extends BaseController { private static final Logger logger = LoggerFactory.getLogger(CompanyContactWindowController.class); + /** * 显示界面 */ @@ -67,8 +69,9 @@ public class CompanyContactWindowController extends BaseController { @Getter @Setter private CompanyContactViewModel viewModel; + @Autowired - private CompanyContactRepository companyContactRepository; + private CompanyContactService companyContactService; public TextField nameField; public TextField positionField; @@ -86,7 +89,8 @@ public class CompanyContactWindowController extends BaseController { @Override public void show(Stage stage) { super.show(stage); - getTitle().bind(viewModel.getName().map(v -> "[" + viewModel.getId().get() + "] " + viewModel.getName().getValue() + " 曾用名详情")); + getTitle().bind(viewModel.getName() + .map(v -> "[" + viewModel.getId().get() + "] " + viewModel.getName().getValue() + " 曾用名详情")); } @Override @@ -99,24 +103,19 @@ public class CompanyContactWindowController extends BaseController { initializeBaseTab(); companyContactLoadedFuture = CompletableFuture.supplyAsync(() -> { - Optional optional = companyContactRepository.findById(viewModel.getId().get()); - if (optional.isPresent()) { - CompanyContact oldName = optional.get(); - Platform.runLater(() -> { - viewModel.update(oldName); - viewModel.bindListener(); - if (logger.isDebugEnabled()) { - logger.debug("bind ViewModel({}) Listener", viewModel.getName().get()); - } - tabPane.getSelectionModel().getSelectedItem().getOnSelectionChanged().handle(null); - }); - return oldName; - } - return null; + CompanyContact oldName = companyContactService.findById(viewModel.getId().get()); + Platform.runLater(() -> { + viewModel.update(oldName); + viewModel.bindListener(); + if (logger.isDebugEnabled()) { + logger.debug("bind ViewModel({}) Listener", viewModel.getName().get()); + } + tabPane.getSelectionModel().getSelectedItem().getOnSelectionChanged().handle(null); + }); + return oldName; }); } - private void initializeBaseTab() { baseInfoTab.setOnSelectionChanged(event -> { if (logger.isDebugEnabled()) { @@ -131,7 +130,7 @@ public class CompanyContactWindowController extends BaseController { try { CompanyContact contact = companyContactLoadedFuture.join(); viewModel.copyTo(contact); - CompanyContact saved = companyContactRepository.save(contact); + CompanyContact saved = companyContactService.save(contact); viewModel.update(saved); companyContactLoadedFuture = CompletableFuture.completedFuture(saved); } catch (Exception e) { @@ -163,7 +162,7 @@ public class CompanyContactWindowController extends BaseController { if (logger.isDebugEnabled()) { logger.debug("onBaseTabShown company contact {}", contact.getName()); } -// viewModel.update(contact); + // viewModel.update(contact); }).exceptionally(ex -> { UITools.showExceptionAndWait(ex.getMessage(), ex); return null; @@ -184,4 +183,3 @@ public class CompanyContactWindowController extends BaseController { super.onHidden(windowEvent); } } - diff --git a/client/src/main/java/com/ecep/contract/controller/company/CompanyManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/company/CompanyManagerSkin.java index 80b3294..3d6fc85 100644 --- a/client/src/main/java/com/ecep/contract/controller/company/CompanyManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/company/CompanyManagerSkin.java @@ -3,11 +3,10 @@ package com.ecep.contract.controller.company; import java.util.List; import java.util.Optional; -import com.ecep.contract.ds.company.controller.CompanyWindowController; -import com.ecep.contract.ds.company.service.CompanyOldNameService; -import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.controller.AbstEntityManagerSkin; import com.ecep.contract.model.Company; -import com.ecep.contract.ui.AbstEntityManagerSkin; +import com.ecep.contract.service.CompanyOldNameService; +import com.ecep.contract.service.CompanyService; import com.ecep.contract.vm.CompanyViewModel; import javafx.application.Platform; diff --git a/client/src/main/java/com/ecep/contract/controller/company/CompanyManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/company/CompanyManagerWindowController.java index 79977ac..33aa112 100644 --- a/client/src/main/java/com/ecep/contract/controller/company/CompanyManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/company/CompanyManagerWindowController.java @@ -7,13 +7,11 @@ import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.company.controller.CompanyManagerSkin; -import com.ecep.contract.ds.company.controller.CompanyVerifyWindowController; -import com.ecep.contract.ds.company.tasker.CompanyFilesRebuildTasker; +import com.ecep.contract.controller.AbstManagerWindowController; import com.ecep.contract.model.Company; import com.ecep.contract.service.CompanyService; -import com.ecep.contract.ui.AbstManagerWindowController; +import com.ecep.contract.task.CompanyFilesRebuildTasker; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.util.UITools; import com.ecep.contract.vm.CompanyViewModel; 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 c8556c8..3b3e8e1 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 @@ -15,7 +15,6 @@ import org.springframework.util.StringUtils; import com.ecep.contract.DesktopUtils; import com.ecep.contract.SpringApp; import com.ecep.contract.controller.AbstEntityController; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.customer.CompanyCustomerWindowController; import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; import com.ecep.contract.controller.tab.CompanyTabSkinBankAccount; @@ -37,6 +36,9 @@ import com.ecep.contract.service.CompanyFileService; import com.ecep.contract.service.CompanyService; import com.ecep.contract.service.CompanyVendorService; import com.ecep.contract.service.ContractService; +import com.ecep.contract.task.CompanyCompositeUpdateTasker; +import com.ecep.contract.task.CompanyVerifyTasker; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.util.UITools; import com.ecep.contract.vm.CompanyViewModel; diff --git a/client/src/main/java/com/ecep/contract/controller/company_old_name/CompanyOldNameTabSkinFile.java b/client/src/main/java/com/ecep/contract/controller/company_old_name/CompanyOldNameTabSkinFile.java index f881dbd..8d15516 100644 --- a/client/src/main/java/com/ecep/contract/controller/company_old_name/CompanyOldNameTabSkinFile.java +++ b/client/src/main/java/com/ecep/contract/controller/company_old_name/CompanyOldNameTabSkinFile.java @@ -1,20 +1,20 @@ package com.ecep.contract.controller.company_old_name; import java.io.File; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.function.Consumer; -import org.springframework.data.jpa.domain.Specification; import org.springframework.util.StringUtils; import com.ecep.contract.CompanyFileType; import com.ecep.contract.DesktopUtils; -import com.ecep.contract.MyProperties; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.table.AbstEntityTableTabSkin; -import com.ecep.contract.ds.company.service.CompanyFileService; import com.ecep.contract.model.CompanyFile; import com.ecep.contract.model.CompanyOldName; +import com.ecep.contract.service.CompanyFileService; import com.ecep.contract.service.CompanyOldNameService; import com.ecep.contract.util.UITools; import com.ecep.contract.vm.CompanyFileViewModel; @@ -39,8 +39,6 @@ public class CompanyOldNameTabSkinFile private CompanyOldNameService companyOldNameService; @Setter private CompanyFileService companyFileService; - @Setter - private MyProperties myProperties; public CompanyOldNameTabSkinFile(CompanyOldNameWindowController controller) { super(controller); @@ -64,10 +62,10 @@ public class CompanyOldNameTabSkinFile } @Override - public Specification getSpecification(CompanyOldName parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.equal(root.get("company").get("id"), parent.getCompanyId()); - }); + public Map getSpecification(CompanyOldName parent) { + Map params = new HashMap<>(); + params.put("company", parent.getCompanyId()); + return params; } @Override @@ -354,13 +352,6 @@ public class CompanyOldNameTabSkinFile } } - public MyProperties getMyProperties() { - if (myProperties == null) { - myProperties = getBean(MyProperties.class); - } - return myProperties; - } - private CompanyFileService getCompanyFileService() { if (companyFileService == null) { companyFileService = getBean(CompanyFileService.class); diff --git a/client/src/main/java/com/ecep/contract/controller/company_old_name/CompanyOldNameWindowController.java b/client/src/main/java/com/ecep/contract/controller/company_old_name/CompanyOldNameWindowController.java index b9f2ca7..14f649c 100644 --- a/client/src/main/java/com/ecep/contract/controller/company_old_name/CompanyOldNameWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/company_old_name/CompanyOldNameWindowController.java @@ -12,9 +12,9 @@ import org.springframework.util.StringUtils; import com.ecep.contract.DesktopUtils; import com.ecep.contract.controller.AbstEntityController; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.model.CompanyOldName; import com.ecep.contract.service.CompanyOldNameService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.util.UITools; import com.ecep.contract.vm.CompanyFileViewModel; import com.ecep.contract.vm.CompanyOldNameViewModel; @@ -95,13 +95,13 @@ public class CompanyOldNameWindowController extends AbstEntityController> @@ -26,9 +25,9 @@ public abstract class AbstContractTableTabSkin getSpecification(Contract parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.equal(root.get("contract"), parent); - }); + public Map getSpecification(Contract parent) { + Map params = new HashMap<>(); + params.put("contract", parent.getId()); + return params; } } diff --git a/client/src/main/java/com/ecep/contract/controller/contract/ContractManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/contract/ContractManagerWindowController.java index 4d4be65..2d7689f 100644 --- a/client/src/main/java/com/ecep/contract/controller/contract/ContractManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/contract/ContractManagerWindowController.java @@ -8,20 +8,20 @@ import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import com.ecep.contract.UITools; -import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.controller.AbstManagerWindowController; import com.ecep.contract.controller.tab.ContractManagerSkin; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.contract.tasker.ContractFilesRebuildAllTasker; -import com.ecep.contract.ds.contract.tasker.ContractRepairAllTasker; -import com.ecep.contract.ds.contract.vo.ContractViewModel; import com.ecep.contract.model.Company; import com.ecep.contract.model.Contract; import com.ecep.contract.model.ContractGroup; import com.ecep.contract.model.ContractKind; import com.ecep.contract.model.ContractType; import com.ecep.contract.model.Employee; -import com.ecep.contract.ui.AbstManagerWindowController; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.task.ContractFilesRebuildAllTasker; +import com.ecep.contract.task.ContractRepairAllTasker; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.UITools; +import com.ecep.contract.vm.ContractViewModel; import javafx.event.ActionEvent; import javafx.scene.control.CheckBox; diff --git a/client/src/main/java/com/ecep/contract/controller/contract/ContractTabSkinExtendVendorInfo.java b/client/src/main/java/com/ecep/contract/controller/contract/ContractTabSkinExtendVendorInfo.java index 7fe9e3b..386b34e 100644 --- a/client/src/main/java/com/ecep/contract/controller/contract/ContractTabSkinExtendVendorInfo.java +++ b/client/src/main/java/com/ecep/contract/controller/contract/ContractTabSkinExtendVendorInfo.java @@ -6,15 +6,15 @@ import java.util.concurrent.CompletableFuture; import org.hibernate.Hibernate; import com.ecep.contract.SpringApp; -import com.ecep.contract.UITools; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.contract.service.ExtendVendorInfoService; -import com.ecep.contract.ds.contract.vo.ExtendVendorInfoViewModel; -import com.ecep.contract.ds.vendor.service.VendorGroupService; +import com.ecep.contract.controller.ComboBoxUtils; import com.ecep.contract.model.Contract; import com.ecep.contract.model.ExtendVendorInfo; import com.ecep.contract.model.VendorGroup; -import com.ecep.contract.ui.ComboBoxUtils; +import com.ecep.contract.service.ExtendVendorInfoService; +import com.ecep.contract.service.VendorGroupService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.UITools; +import com.ecep.contract.vm.ExtendVendorInfoViewModel; import javafx.application.Platform; import javafx.beans.binding.Bindings; diff --git a/client/src/main/java/com/ecep/contract/controller/contract/ContractVerifyWindowController.java b/client/src/main/java/com/ecep/contract/controller/contract/ContractVerifyWindowController.java index 034d62a..ecec7a4 100644 --- a/client/src/main/java/com/ecep/contract/controller/contract/ContractVerifyWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/contract/ContractVerifyWindowController.java @@ -6,7 +6,9 @@ import static com.ecep.contract.util.TableViewUtils.bindEnterPressed; import java.io.File; import java.time.LocalDate; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; @@ -19,25 +21,24 @@ import org.springframework.context.annotation.Scope; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; -import com.ecep.contract.ContractPayWay; import com.ecep.contract.Message; import com.ecep.contract.MessageHolder; -import com.ecep.contract.UITools; import com.ecep.contract.controller.BaseController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.contract.tasker.ContractVerifyComm; -import com.ecep.contract.ds.contract.tasker.ContractVerifyResultExportAsExcelFile; -import com.ecep.contract.ds.other.service.EmployeeService; -import com.ecep.contract.ds.project.service.SaleTypeService; -import com.ecep.contract.ds.vendor.service.VendorGroupService; +import com.ecep.contract.controller.table.cell.EmployeeTableCell; import com.ecep.contract.model.Contract; import com.ecep.contract.model.Employee; -import com.ecep.contract.ui.table.cell.EmployeeTableCell; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.EmployeeService; +import com.ecep.contract.service.ProjectSaleTypeService; +import com.ecep.contract.service.VendorGroupService; +import com.ecep.contract.task.ContractVerifyComm; +import com.ecep.contract.task.ContractVerifyResultExportAsExcelFileTasker; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.ParamUtils; +import com.ecep.contract.util.UITools; import javafx.application.Platform; import javafx.beans.property.SimpleListProperty; @@ -262,19 +263,11 @@ public class ContractVerifyWindowController extends BaseController { viewTableDataSet.clear(); Pageable pageRequest = PageRequest.ofSize(200); AtomicInteger counter = new AtomicInteger(0); - Specification spec = (root, query, builder) -> { - return builder.and( - builder.or( - builder.equal(root.get("payWay"), ContractPayWay.RECEIVE), - builder.and( - builder.equal(root.get("payWay"), ContractPayWay.PAY), - builder.or( - builder.isNull(root.get("parentCode")), - builder.equal(root.get("parentCode"), "")))), - builder.between(root.get("setupDate"), setupDateBeginSelector.getValue(), - setupDateEndSelector.getValue())); - }; - long total = contractService.count(spec); + Map params = new HashMap<>(); + params.put("setupDate", + ParamUtils.between(setupDateBeginSelector.getValue(), setupDateEndSelector.getValue())); + + long total = contractService.count(params); setStatus("合同:" + total + " 条"); while (true) { @@ -282,7 +275,7 @@ public class ContractVerifyWindowController extends BaseController { break; } - Page page = contractService.findAll(spec, pageRequest); + Page page = contractService.findAll(params, pageRequest); for (Contract contract : page) { if (isCloseRequested()) { break; diff --git a/client/src/main/java/com/ecep/contract/controller/contract/ContractWindowController.java b/client/src/main/java/com/ecep/contract/controller/contract/ContractWindowController.java index 7bf0f54..8ec95db 100644 --- a/client/src/main/java/com/ecep/contract/controller/contract/ContractWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/contract/ContractWindowController.java @@ -10,7 +10,6 @@ import org.springframework.util.StringUtils; import com.ecep.contract.DesktopUtils; import com.ecep.contract.controller.AbstEntityController; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.company.CompanyWindowController; import com.ecep.contract.controller.tab.ContractTabSkinBase; import com.ecep.contract.controller.tab.ContractTabSkinFiles; @@ -21,13 +20,14 @@ import com.ecep.contract.controller.tab.ContractTabSkinPurchaseOrders; import com.ecep.contract.controller.tab.ContractTabSkinSaleOrders; import com.ecep.contract.controller.tab.ContractTabSkinSubContract; import com.ecep.contract.controller.tab.ContractTabSkinVendorBid; -import com.ecep.contract.ds.contract.tasker.ContractVerifyTasker; import com.ecep.contract.model.Company; import com.ecep.contract.model.Contract; import com.ecep.contract.service.CompanyService; import com.ecep.contract.service.ContractService; import com.ecep.contract.service.ProjectService; import com.ecep.contract.task.ContractRepairTask; +import com.ecep.contract.task.ContractVerifyTasker; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.util.UITools; import com.ecep.contract.vm.ContractViewModel; @@ -213,7 +213,6 @@ public class ContractWindowController public void onSyncContractAction(ActionEvent event) { ContractRepairTask task = new ContractRepairTask(); - task.setContractService(contractService); task.setContract(getEntity()); UITools.showTaskDialogAndWait("同步合同", task, null); if (task.isRepaired()) { @@ -251,7 +250,6 @@ public class ContractWindowController public void onContractVerifyAction(ActionEvent event) { Contract contract = getEntity(); ContractVerifyTasker task = new ContractVerifyTasker(); - task.setContractService(contractService); task.setContract(contract); UITools.showTaskDialogAndWait("同步合规性验证", task, null); } diff --git a/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerEvaluationFormFileWindowController.java b/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerEvaluationFormFileWindowController.java index f57b440..7c7c30b 100644 --- a/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerEvaluationFormFileWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerEvaluationFormFileWindowController.java @@ -18,13 +18,11 @@ import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; import com.ecep.contract.controller.BaseController; -import com.ecep.contract.util.FxmlUtils; -import com.ecep.contract.ds.company.CompanyFileUtils; -import com.ecep.contract.ds.customer.repository.CompanyCustomerEvaluationFormFileRepository; -import com.ecep.contract.ds.customer.repository.CompanyCustomerFileRepository; -import com.ecep.contract.ds.customer.service.CompanyCustomerFileService; import com.ecep.contract.model.CompanyCustomerEvaluationFormFile; import com.ecep.contract.model.CompanyCustomerFile; +import com.ecep.contract.service.CompanyCustomerFileService; +import com.ecep.contract.util.FileUtils; +import com.ecep.contract.util.FxmlUtils; import com.ecep.contract.vm.CompanyCustomerFileViewModel; import javafx.application.Platform; @@ -108,10 +106,6 @@ public class CompanyCustomerEvaluationFormFileWindowController extends BaseContr private SimpleObjectProperty imageProperty = new SimpleObjectProperty<>(); private CompletableFuture loadedFuture; - @Autowired - private CompanyCustomerFileRepository companyCustomerFileRepository; - @Autowired - private CompanyCustomerEvaluationFormFileRepository companyCustomerEvaluationFormFileRepository; @Lazy @Autowired private CompanyCustomerFileService companyCustomerFileService; @@ -303,7 +297,7 @@ public class CompanyCustomerEvaluationFormFileWindowController extends BaseContr imageView.imageProperty().bind(viewModel.getFilePath().map(path -> { - if (CompanyFileUtils.withExtensions(path, CompanyFileUtils.PDF)) { + if (FileUtils.withExtensions(path, FileUtils.PDF)) { File pdfFile = new File(path); try (PDDocument pdDocument = Loader.loadPDF(pdfFile)) { PDFRenderer pdfRenderer = new PDFRenderer(pdDocument); diff --git a/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerTabSkinBase.java index b302280..021b052 100644 --- a/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerTabSkinBase.java @@ -5,18 +5,18 @@ import java.time.format.DateTimeFormatter; import com.ecep.contract.MyDateTimeUtils; import com.ecep.contract.SpringApp; -import com.ecep.contract.UITools; 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.CompanyStringConverter; import com.ecep.contract.converter.EntityStringConverter; -import com.ecep.contract.ds.company.service.CompanyContactService; -import com.ecep.contract.ds.company.service.CompanyService; -import com.ecep.contract.ds.customer.service.CompanyCustomerService; import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyContact; import com.ecep.contract.model.CompanyCustomer; -import com.ecep.contract.service.CompanyStringConverter; +import com.ecep.contract.service.CompanyContactService; +import com.ecep.contract.service.CompanyCustomerService; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.CompanyCustomerViewModel; import javafx.beans.binding.Bindings; @@ -54,8 +54,7 @@ public class CompanyCustomerTabSkinBase controller.createdField.textProperty().bind( Bindings.createStringBinding( () -> localDateTimeFormatter(viewModel.getCreated()), - viewModel.getCreated()) - ); + viewModel.getCreated())); controller.versionLabel.textProperty().bind(viewModel.getVersion().asString()); controller.relativeCompanyBtn.disableProperty().bind(viewModel.getCompany().isNull()); @@ -66,7 +65,6 @@ public class CompanyCustomerTabSkinBase } }); - controller.createPathBtn.setOnAction(this::onCompanyCustomerCreatePathAction); controller.changePathBtn.setOnAction(this::onCompanyCustomerChangePathAction); controller.pathAsNameBtn.setOnAction(this::onCompanyCustomerPathSameAsNameAction); @@ -83,7 +81,9 @@ public class CompanyCustomerTabSkinBase private void initializeContactFieldAutoCompletion(TextField textField) { EntityStringConverter stringConverter = new EntityStringConverter<>(); stringConverter.setInitialized(cc -> getCompanyContactService().findById(cc.getId())); - UITools.autoCompletion(textField, viewModel.getContact(), p -> getCompanyContactService().searchByCompany(viewModel.getCompany().get(), p.getUserText()), stringConverter); + UITools.autoCompletion(textField, viewModel.getContact(), + p -> getCompanyContactService().searchByCompany(viewModel.getCompany().get(), p.getUserText()), + stringConverter); } private void initializeCompanyFieldAutoCompletion(TextField textField) { @@ -101,7 +101,6 @@ public class CompanyCustomerTabSkinBase } } - public void onCompanyCustomerChangePathAction(ActionEvent event) { setStatus("未实现"); } @@ -111,14 +110,14 @@ public class CompanyCustomerTabSkinBase } public CompanyCustomerService getCompanyCustomerService() { - return controller.companyCustomerService; + return controller.getCachedBean(CompanyCustomerService.class); } public CompanyContactService getCompanyContactService() { - return controller.companyContactService; + return controller.getCachedBean(CompanyContactService.class); } public CompanyService getCompanyService() { - return controller.companyService; + return controller.getCachedBean(CompanyService.class); } } diff --git a/client/src/main/java/com/ecep/contract/controller/customer/CustomerTabSkinEntity.java b/client/src/main/java/com/ecep/contract/controller/customer/CustomerTabSkinEntity.java index b899e65..99bfd9e 100644 --- a/client/src/main/java/com/ecep/contract/controller/customer/CustomerTabSkinEntity.java +++ b/client/src/main/java/com/ecep/contract/controller/customer/CustomerTabSkinEntity.java @@ -2,19 +2,17 @@ package com.ecep.contract.controller.customer; import java.time.LocalDate; import java.time.LocalDateTime; - -import org.springframework.data.jpa.domain.Specification; +import java.util.Map; import com.ecep.contract.SpringApp; -import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.controller.table.cell.LocalDateTimeTableCell; import com.ecep.contract.converter.EmployeeStringConverter; import com.ecep.contract.converter.EntityStringConverter; -import com.ecep.contract.ds.customer.service.CompanyCustomerEntityService; import com.ecep.contract.model.CompanyCustomer; import com.ecep.contract.model.CompanyCustomerEntity; import com.ecep.contract.model.CustomerCatalog; -import com.ecep.contract.ui.table.cell.LocalDateTimeTableCell; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.service.CompanyCustomerEntityService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.CustomerEntityViewModel; import javafx.scene.control.MenuItem; @@ -54,7 +52,6 @@ public class CustomerTabSkinEntity return controller.entityTab; } - @Override public void initializeTab() { super.initializeTab(); @@ -68,8 +65,10 @@ public class CustomerTabSkinEntity EmployeeStringConverter stringConverter = SpringApp.getBean(EmployeeStringConverter.class); entityTable_developDateColumn.setCellValueFactory(param -> param.getValue().getDevelopDate()); entityTable_modifyDateColumn.setCellValueFactory(param -> param.getValue().getModifyDate()); - entityTable_creatorColumn.setCellValueFactory(param -> param.getValue().getCreator().map(stringConverter::toString)); - entityTable_modifierColumn.setCellValueFactory(param -> param.getValue().getModifier().map(stringConverter::toString)); + entityTable_creatorColumn + .setCellValueFactory(param -> param.getValue().getCreator().map(stringConverter::toString)); + entityTable_modifierColumn + .setCellValueFactory(param -> param.getValue().getModifier().map(stringConverter::toString)); entityTable_updatedDateColumn.setCellValueFactory(param -> param.getValue().getUpdatedDate()); fetchedTimeColumn.setCellValueFactory(param -> param.getValue().getFetchedTime()); @@ -79,7 +78,6 @@ public class CustomerTabSkinEntity entityTable_menu_del.setOnAction(this::onTableDeleteAction); } - private void initializeEntityTabCatalogColumn(TableColumn column) { EntityStringConverter converter = new EntityStringConverter<>(); converter.setInitialized(v -> getCompanyCustomerService().findCatalogById(v.getId())); @@ -99,10 +97,10 @@ public class CustomerTabSkinEntity } @Override - public Specification getSpecification(CompanyCustomer parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.equal(root.get("customer"), parent); - }); + public Map getSpecification(CompanyCustomer parent) { + Map params = getSpecification(); + params.put("customer", parent.getId()); + return params; } } diff --git a/client/src/main/java/com/ecep/contract/controller/customer/CustomerTabSkinFile.java b/client/src/main/java/com/ecep/contract/controller/customer/CustomerTabSkinFile.java index bec0710..400620a 100644 --- a/client/src/main/java/com/ecep/contract/controller/customer/CustomerTabSkinFile.java +++ b/client/src/main/java/com/ecep/contract/controller/customer/CustomerTabSkinFile.java @@ -1,27 +1,5 @@ package com.ecep.contract.controller.customer; -import com.ecep.contract.*; -import com.ecep.contract.constant.CompanyCustomerConstant; -import com.ecep.contract.controller.table.EditableEntityTableTabSkin; -import com.ecep.contract.model.*; -import com.ecep.contract.service.CompanyCustomerFileService; -import com.ecep.contract.service.CompanyCustomerService; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.util.UITools; -import com.ecep.contract.vm.CompanyCustomerFileViewModel; -import javafx.application.Platform; -import javafx.beans.binding.Bindings; -import javafx.collections.ObservableMap; -import javafx.concurrent.Task; -import javafx.event.ActionEvent; -import javafx.scene.control.*; -import javafx.scene.control.cell.CheckBoxTableCell; -import javafx.scene.input.Dragboard; -import javafx.scene.input.TransferMode; -import lombok.Setter; -import org.hibernate.Hibernate; -import org.springframework.util.StringUtils; - import java.io.File; import java.time.LocalDate; import java.util.ArrayList; @@ -31,6 +9,46 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ScheduledExecutorService; import java.util.function.Consumer; +import org.hibernate.Hibernate; +import org.springframework.util.StringUtils; + +import com.ecep.contract.CompanyCustomerFileType; +import com.ecep.contract.DesktopUtils; +import com.ecep.contract.Message; +import com.ecep.contract.MyDateTimeUtils; +import com.ecep.contract.SpringApp; +import com.ecep.contract.constant.CompanyCustomerConstant; +import com.ecep.contract.controller.table.EditableEntityTableTabSkin; +import com.ecep.contract.model.BaseEnumEntity; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyCustomerFile; +import com.ecep.contract.model.CompanyCustomerFileTypeLocal; +import com.ecep.contract.service.CompanyCustomerFileService; +import com.ecep.contract.service.CompanyCustomerService; +import com.ecep.contract.util.FileUtils; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.UITools; +import com.ecep.contract.vm.CompanyCustomerFileViewModel; + +import javafx.application.Platform; +import javafx.beans.binding.Bindings; +import javafx.collections.FXCollections; +import javafx.collections.ObservableMap; +import javafx.concurrent.Task; +import javafx.event.ActionEvent; +import javafx.scene.control.Button; +import javafx.scene.control.ButtonType; +import javafx.scene.control.MenuItem; +import javafx.scene.control.Tab; +import javafx.scene.control.TableCell; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TableView; +import javafx.scene.control.cell.CheckBoxTableCell; +import javafx.scene.input.Dragboard; +import javafx.scene.input.TransferMode; +import lombok.Setter; + @FxmlPath("/ui/company/customer/customer-tab-file.fxml") public class CustomerTabSkinFile extends AbstCompanyCustomerTableTabSkin @@ -87,8 +105,8 @@ public class CustomerTabSkinFile table.disableProperty().bind(viewModel.getPath().isEmpty()); fileTable_idColumn.setCellValueFactory(param -> param.getValue().getId()); - ObservableMap observableMapByLocal = SpringApp - .getBean(CompanyCustomerFileTypeLocalRepository.class).getObservableMapByLocal(); + ObservableMap observableMapByLocal = FXCollections + .observableMap(companyCustomerFileService.getFileTypeLocalMap(getLocale())); fileTable_typeColumn.setCellValueFactory(param -> Bindings.valueAt(observableMapByLocal, param.getValue().getType()).map(BaseEnumEntity::getValue)); @@ -140,8 +158,8 @@ public class CustomerTabSkinFile CompanyCustomerFileType fileType = item.getType().get(); if (fileType == CompanyCustomerFileType.EvaluationForm) { // 文件不是 Excel 文件时,打开编辑UI - if (!CompanyFileUtils.withExtensions(item.getFilePath().get(), CompanyFileUtils.XLS, - CompanyFileUtils.XLSX)) { + if (!FileUtils.withExtensions(item.getFilePath().get(), FileUtils.XLS, + FileUtils.XLSX)) { CompanyCustomerEvaluationFormFileWindowController.show(item, controller.root.getScene().getWindow()); return; } @@ -166,7 +184,8 @@ public class CustomerTabSkinFile return; } CompanyCustomer companyCustomer = getParent(); - LocalDate nextSignDate = getCompanyCustomerFileService().getNextSignDate(companyCustomer, ((level, message) -> setStatus(message))); + LocalDate nextSignDate = getCompanyCustomerFileService().getNextSignDate(companyCustomer, + ((level, message) -> setStatus(message))); if (nextSignDate != null && files.size() == 1) { File file = files.getFirst(); String fileName = file.getName(); diff --git a/client/src/main/java/com/ecep/contract/controller/department/DepartmentManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/department/DepartmentManagerSkin.java index 5e45ec3..0ed083a 100644 --- a/client/src/main/java/com/ecep/contract/controller/department/DepartmentManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/department/DepartmentManagerSkin.java @@ -11,6 +11,7 @@ import com.ecep.contract.controller.table.EditableEntityTableTabSkin; import com.ecep.contract.converter.EmployeeStringConverter; import com.ecep.contract.model.Department; import com.ecep.contract.model.Employee; +import com.ecep.contract.util.ParamUtils; import com.ecep.contract.vm.DepartmentViewModel; import javafx.collections.FXCollections; @@ -33,10 +34,7 @@ public class DepartmentManagerSkin public void initializeTable() { getTableView().setEditable(true); - Specification spec = (root, query, cb) -> { - return cb.equal(root.get("isActive"), true); - }; - List employees = controller.getEmployeeService().findAll(spec, Pageable.ofSize(30)).getContent(); + List employees = controller.getEmployeeService().findAll(ParamUtils.equal("isActive", true), Pageable.ofSize(30)).getContent(); controller.idColumn.setCellValueFactory(param -> param.getValue().getId()); diff --git a/client/src/main/java/com/ecep/contract/controller/department/DepartmentManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/department/DepartmentManagerWindowController.java index 1b87e72..df5528e 100644 --- a/client/src/main/java/com/ecep/contract/controller/department/DepartmentManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/department/DepartmentManagerWindowController.java @@ -7,10 +7,10 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstManagerWindowController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.other.service.DepartmentService; import com.ecep.contract.model.Department; import com.ecep.contract.model.Employee; +import com.ecep.contract.service.DepartmentService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.DepartmentViewModel; import javafx.event.ActionEvent; diff --git a/client/src/main/java/com/ecep/contract/controller/employee/AbstEmployeeBasedTabSkin.java b/client/src/main/java/com/ecep/contract/controller/employee/AbstEmployeeBasedTabSkin.java index dd34380..758ee6c 100644 --- a/client/src/main/java/com/ecep/contract/controller/employee/AbstEmployeeBasedTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/employee/AbstEmployeeBasedTabSkin.java @@ -2,10 +2,10 @@ package com.ecep.contract.controller.employee; import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; import com.ecep.contract.controller.tab.TabSkin; -import com.ecep.contract.ds.other.service.EmployeeRoleService; -import com.ecep.contract.ds.other.service.EmployeeService; -import com.ecep.contract.ds.other.service.PermissionService; import com.ecep.contract.model.Employee; +import com.ecep.contract.service.EmployeeRoleService; +import com.ecep.contract.service.EmployeeService; +import com.ecep.contract.service.PermissionService; import com.ecep.contract.vm.EmployeeViewModel; import lombok.Setter; diff --git a/client/src/main/java/com/ecep/contract/controller/employee/AbstEmployeeTableTabSkin.java b/client/src/main/java/com/ecep/contract/controller/employee/AbstEmployeeTableTabSkin.java index 98806ce..65d87fe 100644 --- a/client/src/main/java/com/ecep/contract/controller/employee/AbstEmployeeTableTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/employee/AbstEmployeeTableTabSkin.java @@ -1,14 +1,12 @@ package com.ecep.contract.controller.employee; -import org.apache.poi.ss.formula.functions.T; -import org.springframework.data.jpa.domain.Specification; +import java.util.Map; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.table.AbstEntityTableTabSkin; -import com.ecep.contract.ds.other.service.EmployeeService; import com.ecep.contract.model.Employee; import com.ecep.contract.model.IdentityEntity; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.service.EmployeeService; import com.ecep.contract.vm.EmployeeBasedViewModel; import com.ecep.contract.vm.EmployeeViewModel; import com.ecep.contract.vm.IdentityViewModel; @@ -36,9 +34,9 @@ public abstract class AbstEmployeeTableTabSkin getSpecification(Employee parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.equal(root.get("employee"), parent); - }); + public Map getSpecification(Employee parent) { + Map params = getSpecification(); + params.put("employee", parent.getId()); + return params; } } diff --git a/client/src/main/java/com/ecep/contract/controller/employee/EmployeeManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeManagerSkin.java index 29f7ad7..bcfbb0a 100644 --- a/client/src/main/java/com/ecep/contract/controller/employee/EmployeeManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeManagerSkin.java @@ -1,13 +1,12 @@ package com.ecep.contract.controller.employee; -import org.springframework.data.jpa.domain.Specification; +import java.util.Map; import com.ecep.contract.controller.AbstEntityManagerSkin; import com.ecep.contract.controller.ManagerSkin; -import com.ecep.contract.ds.other.service.DepartmentService; +import com.ecep.contract.controller.table.cell.DepartmentTableCell; import com.ecep.contract.model.Employee; -import com.ecep.contract.ui.table.cell.DepartmentTableCell; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.service.DepartmentService; import com.ecep.contract.vm.EmployeeViewModel; import javafx.event.ActionEvent; @@ -30,14 +29,12 @@ public class EmployeeManagerSkin } @Override - public Specification getSpecification() { - Specification spec = super.getSpecification(); + public Map getSpecification() { + Map params = super.getSpecification(); if (controller.activeCheckBox.isSelected()) { - spec = SpecificationUtils.and(spec, (root, query, builder) -> { - return builder.isTrue(root.get("isActive")); - }); + params.put("isActive", true); } - return spec; + return params; } @Override @@ -51,7 +48,6 @@ public class EmployeeManagerSkin controller.departmentColumn.setCellValueFactory(param -> param.getValue().getDepartment()); controller.departmentColumn.setCellFactory(param -> new DepartmentTableCell<>(getDepartmentService())); - controller.emailColumn.setCellValueFactory(param -> param.getValue().getEmail()); controller.createdColumn.setCellValueFactory(param -> param.getValue().getCreated()); controller.entryDateColumn.setCellValueFactory(param -> param.getValue().getEntryDate()); diff --git a/client/src/main/java/com/ecep/contract/controller/employee/EmployeeManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeManagerWindowController.java index b896988..1d7143e 100644 --- a/client/src/main/java/com/ecep/contract/controller/employee/EmployeeManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeManagerWindowController.java @@ -6,17 +6,16 @@ import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import com.ecep.contract.UITools; -import com.ecep.contract.cloud.u8.EmployeesSyncTask; import com.ecep.contract.constant.CloudServiceConstant; import com.ecep.contract.controller.AbstManagerWindowController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.other.service.EmployeeService; import com.ecep.contract.model.Department; import com.ecep.contract.model.Employee; +import com.ecep.contract.service.EmployeeService; +import com.ecep.contract.task.EmployeesSyncTask; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.EmployeeViewModel; -import javafx.concurrent.Task; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.CheckBox; @@ -70,7 +69,7 @@ public class EmployeeManagerWindowController * 从 U8系统 同步员工数据 */ public void onSyncFromU8Action(ActionEvent event) { - Task task = new EmployeesSyncTask(); + EmployeesSyncTask task = new EmployeesSyncTask(); UITools.showTaskDialogAndWait("从 " + CloudServiceConstant.U8_NAME + " 同步员工数据", task, null); } diff --git a/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinAuthBind.java b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinAuthBind.java index 9150578..5627412 100644 --- a/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinAuthBind.java +++ b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinAuthBind.java @@ -5,11 +5,11 @@ import java.util.List; import org.springframework.data.domain.Sort; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.other.service.EmployeeAuthBindService; +import com.ecep.contract.controller.table.cell.EmployeeTableCell; import com.ecep.contract.model.Employee; import com.ecep.contract.model.EmployeeAuthBind; -import com.ecep.contract.ui.table.cell.EmployeeTableCell; +import com.ecep.contract.service.EmployeeAuthBindService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.EmployeeAuthBindViewModel; import javafx.application.Platform; diff --git a/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinBase.java index f4e9a97..0431cc5 100644 --- a/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinBase.java @@ -2,11 +2,11 @@ package com.ecep.contract.controller.employee; import java.time.format.DateTimeFormatter; -import com.ecep.contract.UITools; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.converter.EntityStringConverter; -import com.ecep.contract.ds.other.service.DepartmentService; import com.ecep.contract.model.Department; +import com.ecep.contract.service.DepartmentService; +import com.ecep.contract.util.UITools; import javafx.scene.control.Tab; import javafx.util.converter.LocalDateStringConverter; diff --git a/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinLoginHistory.java b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinLoginHistory.java index 5592830..f6ca3ef 100644 --- a/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinLoginHistory.java +++ b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinLoginHistory.java @@ -2,11 +2,11 @@ package com.ecep.contract.controller.employee; import java.time.LocalDateTime; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.tab.TabSkin; -import com.ecep.contract.ds.other.service.EmployeeLoginHistoryService; +import com.ecep.contract.controller.table.cell.LocalDateTimeTableCell; import com.ecep.contract.model.EmployeeLoginHistory; -import com.ecep.contract.ui.table.cell.LocalDateTimeTableCell; +import com.ecep.contract.service.EmployeeLoginHistoryService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.EmployeeLoginHistoryViewModel; import javafx.application.Platform; diff --git a/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinRole.java b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinRole.java index 7aa56bd..eada64c 100644 --- a/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinRole.java +++ b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinRole.java @@ -1,5 +1,6 @@ package com.ecep.contract.controller.employee; +import java.util.HashMap; import java.util.List; import org.springframework.data.domain.Pageable; @@ -50,11 +51,8 @@ public class EmployeeTabSkinRole private void initializeListView() { // 非系统内置账户 - Specification spec = null; - if (!Desktop.instance.getActiveEmployee().isSystemAdministrator()) { - spec = (root, query, cb) -> cb.equal(root.get("systemAdministrator"), false); - } - List roles = getEmployeeRoleService().findAll(spec, Pageable.ofSize(500)).getContent(); + HashMap params = new HashMap<>(); + List roles = getEmployeeRoleService().findAll(params, Pageable.ofSize(500)).getContent(); controller.rolesField.getSourceItems().setAll(roles); controller.rolesField.setCellFactory(param -> { diff --git a/client/src/main/java/com/ecep/contract/controller/employee/EmployeeWindowController.java b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeWindowController.java index 42c10cb..be4fe09 100644 --- a/client/src/main/java/com/ecep/contract/controller/employee/EmployeeWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeWindowController.java @@ -9,10 +9,10 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstEntityController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.other.service.EmployeeService; import com.ecep.contract.model.Employee; import com.ecep.contract.model.EmployeeRole; +import com.ecep.contract.service.EmployeeService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.EmployeeViewModel; import javafx.scene.control.CheckBox; diff --git a/client/src/main/java/com/ecep/contract/controller/inventory/InventoryManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryManagerSkin.java index 4d1f9e1..23da9a2 100644 --- a/client/src/main/java/com/ecep/contract/controller/inventory/InventoryManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryManagerSkin.java @@ -3,13 +3,13 @@ package com.ecep.contract.controller.inventory; import java.util.function.Function; import com.ecep.contract.controller.AbstEntityManagerSkin; -import com.ecep.contract.controller.table.LocalDateFieldTableCell; +import com.ecep.contract.controller.table.cell.LocalDateFieldTableCell; +import com.ecep.contract.controller.table.cell.LocalDateTimeTableCell; import com.ecep.contract.converter.EntityStringConverter; -import com.ecep.contract.ds.other.service.InventoryCatalogService; -import com.ecep.contract.ds.other.service.InventoryService; import com.ecep.contract.model.Inventory; import com.ecep.contract.model.InventoryCatalog; -import com.ecep.contract.ui.table.cell.LocalDateTimeTableCell; +import com.ecep.contract.service.InventoryCatalogService; +import com.ecep.contract.service.InventoryService; import com.ecep.contract.vm.InventoryViewModel; import javafx.beans.property.Property; diff --git a/client/src/main/java/com/ecep/contract/controller/inventory/InventoryManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryManagerWindowController.java index aecee83..d1886fc 100644 --- a/client/src/main/java/com/ecep/contract/controller/inventory/InventoryManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryManagerWindowController.java @@ -8,13 +8,13 @@ import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import com.ecep.contract.UITools; import com.ecep.contract.controller.AbstManagerWindowController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.other.controller.InventorySyncTask; -import com.ecep.contract.ds.other.service.InventoryService; import com.ecep.contract.model.Inventory; import com.ecep.contract.model.InventoryCatalog; +import com.ecep.contract.service.InventoryService; +import com.ecep.contract.task.InventorySyncTask; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.InventoryViewModel; import javafx.event.ActionEvent; diff --git a/client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinBase.java index 80f00d0..8a8649e 100644 --- a/client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinBase.java @@ -8,17 +8,16 @@ import org.springframework.util.StringUtils; import com.ecep.contract.MessageHolder; import com.ecep.contract.MyDateTimeUtils; -import com.ecep.contract.UITools; -import com.ecep.contract.cloud.u8.ctx.InventoryCtx; import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.table.EditableEntityTableTabSkin; import com.ecep.contract.converter.EmployeeStringConverter; import com.ecep.contract.converter.EntityStringConverter; -import com.ecep.contract.ds.other.service.InventoryCatalogService; -import com.ecep.contract.ds.other.service.InventoryService; import com.ecep.contract.model.Inventory; import com.ecep.contract.model.InventoryCatalog; +import com.ecep.contract.service.InventoryCatalogService; +import com.ecep.contract.service.InventoryService; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.InventoryViewModel; import javafx.beans.binding.Bindings; @@ -30,32 +29,21 @@ import javafx.util.converter.CurrencyStringConverter; import javafx.util.converter.LocalDateStringConverter; import javafx.util.converter.LocalDateTimeStringConverter; import javafx.util.converter.NumberStringConverter; -import lombok.Setter; public class InventoryTabSkinBase extends AbstEntityBasedTabSkin implements TabSkin, EditableEntityTableTabSkin { - @Setter - private InventoryService service; - @Setter - private InventoryCatalogService catalogService; public InventoryTabSkinBase(InventoryWindowController controller) { super(controller); } InventoryService getService() { - if (service == null) { - service = getBean(InventoryService.class); - } - return service; + return getCachedBean(InventoryService.class); } InventoryCatalogService getCatalogService() { - if (catalogService == null) { - catalogService = getBean(InventoryCatalogService.class); - } - return catalogService; + return getCachedBean(InventoryCatalogService.class); } @Override @@ -185,15 +173,8 @@ public class InventoryTabSkinBase return; } setStatus("正在同步数据..."); - InventoryCtx ctx = new InventoryCtx(); MessageHolder holder = (lv, msg) -> setStatus(msg); - ctx.initializeRepository(holder); - if (ctx.syncInventoryDetailByCode(inventory, inventory.getCode(), holder)) { - save(inventory); - setStatus("同步数据完成."); - } else { - setStatus("没有数据更新."); - } + getService().syncInventory(inventory, holder); } diff --git a/client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinContracts.java b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinContracts.java index 0259095..60e1962 100644 --- a/client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinContracts.java +++ b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinContracts.java @@ -2,25 +2,20 @@ package com.ecep.contract.controller.inventory; import java.text.NumberFormat; import java.time.LocalDate; +import java.util.Map; -import org.springframework.data.jpa.domain.Specification; - -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.controller.controller.ContractWindowController; +import com.ecep.contract.controller.contract.ContractWindowController; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.table.AbstEntityTableTabSkin; -import com.ecep.contract.ds.contract.service.ContractItemService; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.other.service.InventoryHistoryPriceService; import com.ecep.contract.model.Contract; -import com.ecep.contract.model.ContractItem; import com.ecep.contract.model.Inventory; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.service.ContractItemService; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.InventoryHistoryPriceService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.ContractViewModel; import com.ecep.contract.vm.InventoryViewModel; -import jakarta.persistence.criteria.Root; -import jakarta.persistence.criteria.Subquery; import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; import javafx.scene.control.Tab; @@ -95,18 +90,22 @@ public class InventoryTabSkinContracts } @Override - public Specification getSpecification(Inventory parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - // 创建ContractItem的子查询 - Subquery subquery = query.subquery(Integer.class); - Root from = subquery.from(ContractItem.class); - // 子查询选择与指定库存相关的合同ID - subquery.select(from.get("contract").get("id")) - .where(builder.equal(from.get("inventory"), parent)); + public Map getSpecification(Inventory parent) { + Map params = getSpecification(); + params.put("inventory", parent); - // 主查询筛选ID在子查询结果中的合同 - return builder.in(root.get("id")).value(subquery); - }); + // return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { + // // 创建ContractItem的子查询 + // Subquery subquery = query.subquery(Integer.class); + // Root from = subquery.from(ContractItem.class); + // // 子查询选择与指定库存相关的合同ID + // subquery.select(from.get("contract").get("id")) + // .where(builder.equal(from.get("inventory"), parent)); + + // // 主查询筛选ID在子查询结果中的合同 + // return builder.in(root.get("id")).value(subquery); + // }); + return params; } @Override diff --git a/client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinHistoryPrice.java b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinHistoryPrice.java index 1389f6f..e253b04 100644 --- a/client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinHistoryPrice.java +++ b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinHistoryPrice.java @@ -6,24 +6,23 @@ import java.time.Year; import java.util.Comparator; import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; import org.hibernate.Hibernate; -import org.springframework.data.jpa.domain.Specification; import com.ecep.contract.ContractPayWay; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.table.AbstEntityTableTabSkin; -import com.ecep.contract.ds.contract.service.ContractItemService; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.other.service.InventoryHistoryPriceService; import com.ecep.contract.model.Contract; import com.ecep.contract.model.ContractItem; import com.ecep.contract.model.HistoryPrice; import com.ecep.contract.model.Inventory; import com.ecep.contract.model.InventoryHistoryPrice; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.service.ContractItemService; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.InventoryHistoryPriceService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.InventoryHistoryPriceViewModel; import com.ecep.contract.vm.InventoryViewModel; @@ -265,10 +264,10 @@ public class InventoryTabSkinHistoryPrice } @Override - public Specification getSpecification(Inventory parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.equal(root.get("inventory"), parent); - }); + public Map getSpecification(Inventory parent) { + Map params = getSpecification(); + params.put("inventory", parent.getId()); + return params; } @Override diff --git a/client/src/main/java/com/ecep/contract/controller/inventory/InventoryWindowController.java b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryWindowController.java index ac0c618..b771745 100644 --- a/client/src/main/java/com/ecep/contract/controller/inventory/InventoryWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryWindowController.java @@ -6,9 +6,9 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstEntityController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.other.service.InventoryService; import com.ecep.contract.model.Inventory; +import com.ecep.contract.service.InventoryService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.InventoryViewModel; import javafx.beans.binding.Bindings; diff --git a/client/src/main/java/com/ecep/contract/controller/permission/AbstEmployeeRoleBasedTabSkin.java b/client/src/main/java/com/ecep/contract/controller/permission/AbstEmployeeRoleBasedTabSkin.java index 3027faf..899358f 100644 --- a/client/src/main/java/com/ecep/contract/controller/permission/AbstEmployeeRoleBasedTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/AbstEmployeeRoleBasedTabSkin.java @@ -1,35 +1,26 @@ package com.ecep.contract.controller.permission; import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.ds.other.service.EmployeeRoleService; -import com.ecep.contract.ds.other.service.FunctionService; -import com.ecep.contract.ds.other.service.PermissionService; import com.ecep.contract.model.EmployeeRole; +import com.ecep.contract.service.EmployeeRoleService; +import com.ecep.contract.service.FunctionService; +import com.ecep.contract.service.PermissionService; import com.ecep.contract.vm.EmployeeRoleViewModel; public abstract class AbstEmployeeRoleBasedTabSkin extends AbstEntityBasedTabSkin { - private EmployeeRoleService roleService; - private FunctionService functionService; - public AbstEmployeeRoleBasedTabSkin(EmployeeRoleWindowController controller) { super(controller); viewModel = controller.getViewModel(); } EmployeeRoleService getRoleService() { - if (roleService == null) { - roleService = getBean(EmployeeRoleService.class); - } - return roleService; + return getCachedBean(EmployeeRoleService.class); } FunctionService getFunctionService() { - if (functionService == null) { - functionService = getBean(FunctionService.class); - } - return functionService; + return getCachedBean(FunctionService.class); } public PermissionService getPermissionService() { diff --git a/client/src/main/java/com/ecep/contract/controller/permission/EmployeeFunctionsManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeFunctionsManagerWindowController.java index 19ec478..c8f6fc6 100644 --- a/client/src/main/java/com/ecep/contract/controller/permission/EmployeeFunctionsManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeFunctionsManagerWindowController.java @@ -7,10 +7,10 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstManagerWindowController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.other.service.FunctionService; -import com.ecep.contract.ds.other.service.PermissionService; import com.ecep.contract.model.Function; +import com.ecep.contract.service.FunctionService; +import com.ecep.contract.service.PermissionService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.FunctionViewModel; import javafx.event.ActionEvent; diff --git a/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleManagerSkin.java index 7be03dc..8842657 100644 --- a/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleManagerSkin.java @@ -3,8 +3,8 @@ package com.ecep.contract.controller.permission; import com.ecep.contract.controller.AbstEntityManagerSkin; import com.ecep.contract.controller.ManagerSkin; import com.ecep.contract.controller.table.EditableEntityTableTabSkin; -import com.ecep.contract.ds.other.service.PermissionService; import com.ecep.contract.model.EmployeeRole; +import com.ecep.contract.service.PermissionService; import com.ecep.contract.vm.EmployeeRoleViewModel; import javafx.scene.control.cell.CheckBoxTableCell; diff --git a/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleManagerWindowController.java index c3364c7..16b107d 100644 --- a/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleManagerWindowController.java @@ -8,10 +8,10 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstManagerWindowController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.other.service.EmployeeRoleService; -import com.ecep.contract.ds.other.service.PermissionService; import com.ecep.contract.model.EmployeeRole; +import com.ecep.contract.service.EmployeeRoleService; +import com.ecep.contract.service.PermissionService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.EmployeeRoleViewModel; import javafx.event.ActionEvent; diff --git a/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleTabSkinFunctions.java b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleTabSkinFunctions.java index 3388409..27872a5 100644 --- a/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleTabSkinFunctions.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleTabSkinFunctions.java @@ -8,6 +8,7 @@ import org.springframework.data.jpa.domain.Specification; import com.ecep.contract.model.EmployeeRole; import com.ecep.contract.model.Function; +import com.ecep.contract.util.ParamUtils; import javafx.beans.property.SimpleBooleanProperty; import javafx.collections.ListChangeListener; @@ -59,8 +60,8 @@ public class EmployeeRoleTabSkinFunctions extends AbstEmployeeRoleBasedTabSkin { private void initializeListView() { // 非系统内置账户 - Specification spec = (root, query, cb) -> cb.equal(root.get("active"), true); - List roles = getFunctionService().findAll(spec, Pageable.ofSize(500)).getContent(); + List roles = getFunctionService() + .findAll(ParamUtils.builder().equals("active", true).build(), Pageable.ofSize(500)).getContent(); functionsField.getSourceItems().setAll(roles); functionsField.setCellFactory(param -> { diff --git a/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleWindowController.java b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleWindowController.java index 99a7811..c4b2b4b 100644 --- a/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleWindowController.java @@ -9,10 +9,10 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstEntityController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.other.service.EmployeeRoleService; -import com.ecep.contract.ds.other.service.PermissionService; import com.ecep.contract.model.EmployeeRole; +import com.ecep.contract.service.EmployeeRoleService; +import com.ecep.contract.service.PermissionService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.EmployeeRoleViewModel; import javafx.fxml.FXML; diff --git a/client/src/main/java/com/ecep/contract/controller/permission/FunctionManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/permission/FunctionManagerSkin.java index b0442ac..914597a 100644 --- a/client/src/main/java/com/ecep/contract/controller/permission/FunctionManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/FunctionManagerSkin.java @@ -1,9 +1,9 @@ package com.ecep.contract.controller.permission; import com.ecep.contract.controller.AbstEntityManagerSkin; -import com.ecep.contract.ds.other.service.FunctionService; -import com.ecep.contract.ds.other.service.PermissionService; import com.ecep.contract.model.Function; +import com.ecep.contract.service.FunctionService; +import com.ecep.contract.service.PermissionService; import com.ecep.contract.vm.FunctionViewModel; import javafx.scene.control.TableColumn; diff --git a/client/src/main/java/com/ecep/contract/controller/permission/FunctionTabSkinPermission.java b/client/src/main/java/com/ecep/contract/controller/permission/FunctionTabSkinPermission.java index 42cb507..0094d03 100644 --- a/client/src/main/java/com/ecep/contract/controller/permission/FunctionTabSkinPermission.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/FunctionTabSkinPermission.java @@ -1,14 +1,14 @@ package com.ecep.contract.controller.permission; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.jpa.domain.Specification; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.table.AbstEntityTableTabSkin; -import com.ecep.contract.ds.other.service.PermissionService; import com.ecep.contract.model.Function; import com.ecep.contract.model.Permission; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.service.PermissionService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.FunctionViewModel; import com.ecep.contract.vm.PermissionViewModel; @@ -61,10 +61,10 @@ public class FunctionTabSkinPermission } @Override - public Specification getSpecification(Function parent) { - return SpecificationUtils.and(getSpecification(), (root, query, criteriaBuilder) -> { - return criteriaBuilder.equal(root.get("function"), parent); - }); + public Map getSpecification(Function parent) { + Map params = getSpecification(); + params.put("function", parent.getId()); + return params; } } diff --git a/client/src/main/java/com/ecep/contract/controller/permission/FunctionWindowController.java b/client/src/main/java/com/ecep/contract/controller/permission/FunctionWindowController.java index 5089164..6cb06d3 100644 --- a/client/src/main/java/com/ecep/contract/controller/permission/FunctionWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/FunctionWindowController.java @@ -8,9 +8,9 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstEntityController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.other.service.FunctionService; import com.ecep.contract.model.Function; +import com.ecep.contract.service.FunctionService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.FunctionViewModel; import javafx.fxml.FXML; diff --git a/client/src/main/java/com/ecep/contract/controller/permission/PermissionManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/permission/PermissionManagerSkin.java index c3c5329..7baf1bf 100644 --- a/client/src/main/java/com/ecep/contract/controller/permission/PermissionManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/PermissionManagerSkin.java @@ -1,18 +1,19 @@ package com.ecep.contract.controller.permission; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.function.Function; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.data.jpa.domain.Specification; -import com.ecep.contract.UITools; import com.ecep.contract.controller.ManagerSkin; import com.ecep.contract.controller.table.TableTabSkin; import com.ecep.contract.model.Permission; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.FunctionViewModel; import com.ecep.contract.vm.PermissionViewModel; @@ -58,7 +59,6 @@ public class PermissionManagerSkin implements ManagerSkin, TableTabSkin param.getValue().getDescription()); -// controller.permissionTable_descriptionColumn.setCellFactory(TextFieldTableCell.forTableColumn()); -// controller.permissionTable_descriptionColumn.setOnEditCommit(this::onSignMethodTableDescriptionColumnEditCommitAction); + // controller.permissionTable_descriptionColumn.setCellValueFactory(param -> + // param.getValue().getDescription()); + // controller.permissionTable_descriptionColumn.setCellFactory(TextFieldTableCell.forTableColumn()); + // controller.permissionTable_descriptionColumn.setOnEditCommit(this::onSignMethodTableDescriptionColumnEditCommitAction); table.setItems(dataSet); @@ -143,7 +143,8 @@ public class PermissionManagerSkin implements ManagerSkin, TableTabSkin getSpecification() { - - return controller.permissionService.getSpecification(null); + public Map getSpecification() { + Map params = new HashMap<>(); + // 使用permissionService的specification逻辑 + return params; } - private void acceptSignMethodCellEditEvent(TableColumn.CellEditEvent event, Function> function) { + private void acceptSignMethodCellEditEvent(TableColumn.CellEditEvent event, + Function> function) { PermissionViewModel row = event.getRowValue(); Property property = function.apply(row); property.setValue(event.getNewValue()); @@ -188,5 +191,4 @@ public class PermissionManagerSkin implements ManagerSkin, TableTabSkin getSpecification(Project parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.equal(root.get("project"), parent); - }); + public Map getSpecification(Project parent) { + Map params = getSpecification(); + params.put("project", parent.getId()); + return params; } } diff --git a/client/src/main/java/com/ecep/contract/controller/project/ApplyNewProjectWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/ApplyNewProjectWindowController.java index 87d2c0c..bf43700 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/ApplyNewProjectWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/ApplyNewProjectWindowController.java @@ -11,14 +11,14 @@ import org.springframework.stereotype.Component; import com.ecep.contract.Desktop; import com.ecep.contract.controller.BaseController; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.converter.EntityStringConverter; -import com.ecep.contract.ds.other.service.EmployeeService; -import com.ecep.contract.ds.project.service.ProjectService; -import com.ecep.contract.ds.project.service.SaleTypeService; import com.ecep.contract.model.Employee; import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectSaleType; +import com.ecep.contract.service.EmployeeService; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.service.SaleTypeService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.ProjectViewModel; import javafx.beans.binding.Bindings; diff --git a/client/src/main/java/com/ecep/contract/controller/project/CompanyInvoiceInfoService.java b/client/src/main/java/com/ecep/contract/controller/project/CompanyInvoiceInfoService.java new file mode 100644 index 0000000..3db57ab --- /dev/null +++ b/client/src/main/java/com/ecep/contract/controller/project/CompanyInvoiceInfoService.java @@ -0,0 +1,15 @@ +package com.ecep.contract.controller.project; + +import java.util.List; + +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyInvoiceInfo; +import com.ecep.contract.service.ViewModelService; +import com.ecep.contract.vm.CompanyInvoiceInfoViewModel; + +public class CompanyInvoiceInfoService implements ViewModelService { + + public List searchByCompany(Company company, String searchText) { + throw new UnsupportedOperationException("未实现"); + } +} diff --git a/client/src/main/java/com/ecep/contract/controller/project/ProjectManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/project/ProjectManagerSkin.java index d8485e2..d139f51 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/ProjectManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/ProjectManagerSkin.java @@ -1,24 +1,23 @@ package com.ecep.contract.controller.project; -import org.springframework.data.jpa.domain.Specification; +import java.util.Map; import com.ecep.contract.controller.AbstEntityManagerSkin; import com.ecep.contract.controller.BaseController; import com.ecep.contract.controller.ComboBoxUtils; import com.ecep.contract.controller.ManagerSkin; +import com.ecep.contract.controller.table.cell.CompanyTableCell; import com.ecep.contract.converter.EntityStringConverter; -import com.ecep.contract.ds.company.service.CompanyService; -import com.ecep.contract.ds.project.service.ProductTypeService; -import com.ecep.contract.ds.project.service.ProjectService; -import com.ecep.contract.ds.project.service.ProjectTypeService; -import com.ecep.contract.ds.project.service.SaleTypeService; import com.ecep.contract.model.Company; import com.ecep.contract.model.ProductType; import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectSaleType; import com.ecep.contract.model.ProjectType; -import com.ecep.contract.ui.table.cell.CompanyTableCell; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.ProductTypeService; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.service.ProjectTypeService; +import com.ecep.contract.service.SaleTypeService; import com.ecep.contract.vm.ProjectViewModel; import javafx.application.Platform; @@ -41,7 +40,6 @@ public class ProjectManagerSkin @Setter private ProductTypeService productTypeService; - public ProjectManagerSkin(ProjectManagerWindowController controller) { super(controller); } @@ -50,7 +48,7 @@ public class ProjectManagerSkin return controller.getViewModelService(); } - public CompanyService getCompanyService(){ + public CompanyService getCompanyService() { if (companyService == null) { companyService = getBean(CompanyService.class); } @@ -78,16 +76,13 @@ public class ProjectManagerSkin return productTypeService; } - @Override - public Specification getSpecification() { - Specification spec = super.getSpecification(); + public Map getSpecification() { + Map params = super.getSpecification(); if (controller.saleTypeSelector.getValue() != null) { - spec = SpecificationUtils.and(spec, (root, query, builder) -> { - return builder.equal(root.get("saleType"), controller.saleTypeSelector.getValue()); - }); + params.put("saleType", controller.saleTypeSelector.getValue()); } - return spec; + return params; } @Override @@ -102,7 +97,9 @@ public class ProjectManagerSkin controller.nameColumn.setCellValueFactory(param -> param.getValue().getName()); controller.amountColumn.setCellValueFactory(param -> param.getValue().getAmount()); - controller.amountColumn.setCellFactory(TextFieldTableCell.forTableColumn(new CurrencyStringConverter(getLocale())));//, "#,##0" + controller.amountColumn + .setCellFactory(TextFieldTableCell.forTableColumn(new CurrencyStringConverter(getLocale())));// , + // "#,##0" initializeSaleTypeColumn(controller.saleTypeColumn); initializeCustomerColumn(controller.customerColumn); @@ -114,7 +111,6 @@ public class ProjectManagerSkin controller.useOfferColumn.setCellValueFactory(param -> param.getValue().getUseOffer()); controller.useOfferColumn.setCellFactory(CheckBoxTableCell.forTableColumn(controller.useOfferColumn)); - controller.createdColumn.setCellValueFactory(param -> param.getValue().getCreated()); Platform.runLater(() -> { @@ -122,10 +118,9 @@ public class ProjectManagerSkin }); } - private void initializeCustomerColumn(TableColumn column) { column.setCellValueFactory(param -> param.getValue().getCustomer()); - column.setCellFactory(param-> new CompanyTableCell<>(getCompanyService())); + column.setCellFactory(param -> new CompanyTableCell<>(getCompanyService())); } private void initializeProductTypeColumn(TableColumn column) { @@ -156,13 +151,14 @@ public class ProjectManagerSkin @Override protected void onTableCreateNewAction(ActionEvent event) { - BaseController.show(ApplyNewProjectWindowController.class, getTableView().getScene().getWindow(), controller -> { - controller.setOnApplied(project -> { - ProjectViewModel viewModel = ProjectViewModel.from(project); - dataSet.addFirst(viewModel); - showInOwner(viewModel); - }); - }); + BaseController.show(ApplyNewProjectWindowController.class, getTableView().getScene().getWindow(), + controller -> { + controller.setOnApplied(project -> { + ProjectViewModel viewModel = ProjectViewModel.from(project); + dataSet.addFirst(viewModel); + showInOwner(viewModel); + }); + }); } private void showInOwner(ProjectViewModel model) { diff --git a/client/src/main/java/com/ecep/contract/controller/project/ProjectManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/ProjectManagerWindowController.java index 1f60d75..b94b043 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/ProjectManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/ProjectManagerWindowController.java @@ -11,16 +11,16 @@ import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstManagerWindowController; import com.ecep.contract.controller.BaseController; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.project.industry.ProjectIndustryManagerWindowController; import com.ecep.contract.controller.project.product_type.ProductTypeManagerWindowController; import com.ecep.contract.controller.project.project_type.ProjectTypeManagerWindowController; import com.ecep.contract.controller.project.sale_type.ProjectSaleTypeManagerWindowController; import com.ecep.contract.controller.project.usage.ProductUsageManagerWindowController; -import com.ecep.contract.ds.project.service.ProjectService; import com.ecep.contract.model.Company; import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectSaleType; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.ProjectViewModel; import javafx.event.ActionEvent; diff --git a/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinBase.java index 814116c..017dfa9 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinBase.java @@ -5,19 +5,10 @@ import java.util.stream.Stream; import org.springframework.util.StringUtils; -import com.ecep.contract.UITools; import com.ecep.contract.controller.ComboBoxUtils; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.converter.EmployeeStringConverter; import com.ecep.contract.converter.EntityStringConverter; -import com.ecep.contract.ds.other.service.EmployeeService; -import com.ecep.contract.ds.project.service.DeliverySignMethodService; -import com.ecep.contract.ds.project.service.ProductTypeService; -import com.ecep.contract.ds.project.service.ProductUsageService; -import com.ecep.contract.ds.project.service.ProjectCostService; -import com.ecep.contract.ds.project.service.ProjectIndustryService; -import com.ecep.contract.ds.project.service.ProjectTypeService; -import com.ecep.contract.ds.project.service.SaleTypeService; import com.ecep.contract.model.DeliverySignMethod; import com.ecep.contract.model.Employee; import com.ecep.contract.model.ProductType; @@ -27,6 +18,15 @@ import com.ecep.contract.model.ProjectCost; import com.ecep.contract.model.ProjectIndustry; import com.ecep.contract.model.ProjectSaleType; import com.ecep.contract.model.ProjectType; +import com.ecep.contract.service.DeliverySignMethodService; +import com.ecep.contract.service.EmployeeService; +import com.ecep.contract.service.ProductTypeService; +import com.ecep.contract.service.ProductUsageService; +import com.ecep.contract.service.ProjectCostService; +import com.ecep.contract.service.ProjectIndustryService; +import com.ecep.contract.service.ProjectTypeService; +import com.ecep.contract.service.SaleTypeService; +import com.ecep.contract.util.UITools; import javafx.beans.binding.Bindings; import javafx.beans.property.SimpleObjectProperty; diff --git a/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinBid.java b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinBid.java index 2df8e1c..5cf8621 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinBid.java +++ b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinBid.java @@ -5,22 +5,22 @@ import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.project.bid.ProjectBidWindowController; import com.ecep.contract.controller.tab.RefreshableSkin; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.table.EditableEntityTableTabSkin; +import com.ecep.contract.controller.table.cell.EmployeeTableCell; +import com.ecep.contract.converter.CompanyStringConverter; import com.ecep.contract.converter.EmployeeStringConverter; -import com.ecep.contract.ds.company.service.CompanyService; -import com.ecep.contract.ds.customer.service.CompanyCustomerFileService; -import com.ecep.contract.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.ds.project.service.ProjectBidService; import com.ecep.contract.model.CompanyCustomerEvaluationFormFile; import com.ecep.contract.model.Employee; import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectBid; -import com.ecep.contract.service.CompanyStringConverter; -import com.ecep.contract.ui.table.cell.EmployeeTableCell; +import com.ecep.contract.service.CompanyCustomerFileService; +import com.ecep.contract.service.CompanyCustomerService; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.ProjectBidService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.ProjectBidViewModel; import javafx.scene.control.Tab; diff --git a/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinContract.java b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinContract.java index 347e80e..ca1b2ff 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinContract.java +++ b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinContract.java @@ -2,11 +2,11 @@ package com.ecep.contract.controller.project; import java.time.LocalDate; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.controller.project.ContractWindowController; +import com.ecep.contract.controller.contract.ContractWindowController; import com.ecep.contract.controller.tab.TabSkin; -import com.ecep.contract.ds.contract.service.ContractService; import com.ecep.contract.model.Contract; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.ContractViewModel; import javafx.application.Platform; diff --git a/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCost.java b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCost.java index e52dadd..d57535c 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCost.java +++ b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCost.java @@ -3,18 +3,18 @@ package com.ecep.contract.controller.project; import java.text.NumberFormat; import java.time.LocalDateTime; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.project.cost.ProjectCostWindowController; import com.ecep.contract.controller.tab.TabSkin; -import com.ecep.contract.ds.contract.service.ContractItemService; -import com.ecep.contract.ds.project.service.ProjectCostItemService; -import com.ecep.contract.ds.project.service.ProjectCostService; +import com.ecep.contract.controller.table.cell.EmployeeTableCell; +import com.ecep.contract.controller.table.cell.LocalDateTimeTableCell; import com.ecep.contract.model.Employee; import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectCost; import com.ecep.contract.model.ProjectCostItem; -import com.ecep.contract.ui.table.cell.EmployeeTableCell; -import com.ecep.contract.ui.table.cell.LocalDateTimeTableCell; +import com.ecep.contract.service.ContractItemService; +import com.ecep.contract.service.ProjectCostItemService; +import com.ecep.contract.service.ProjectCostService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.ProjectCostItemViewModel; import com.ecep.contract.vm.ProjectCostViewModel; 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 7fdaacf..3d67506 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 @@ -8,22 +8,21 @@ import org.hibernate.Hibernate; import org.springframework.util.StringUtils; import com.ecep.contract.SpringApp; -import com.ecep.contract.UITools; -import com.ecep.contract.util.FxmlPath; 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.ds.company.service.CompanyBankAccountService; -import com.ecep.contract.ds.company.service.CompanyContactService; -import com.ecep.contract.ds.company.service.CompanyInvoiceInfoService; -import com.ecep.contract.ds.company.service.CompanyService; -import com.ecep.contract.ds.other.service.BankService; 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.CompanyStringConverter; +import com.ecep.contract.service.BankService; +import com.ecep.contract.service.CompanyBankAccountService; +import com.ecep.contract.service.CompanyContactService; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.UITools; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.StringProperty; diff --git a/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCustomerSatisfactionSurvey.java b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCustomerSatisfactionSurvey.java index d0fe385..5fb42db 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCustomerSatisfactionSurvey.java +++ b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCustomerSatisfactionSurvey.java @@ -5,19 +5,19 @@ import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.project.satisfaction_survey.CustomerSatisfactionSurveyWindowController; import com.ecep.contract.controller.tab.RefreshableSkin; +import com.ecep.contract.controller.table.cell.EmployeeTableCell; +import com.ecep.contract.converter.CompanyStringConverter; import com.ecep.contract.converter.EmployeeStringConverter; -import com.ecep.contract.ds.company.service.CompanyService; -import com.ecep.contract.ds.customer.service.CompanyCustomerFileService; -import com.ecep.contract.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.ds.project.service.CustomerSatisfactionSurveyService; import com.ecep.contract.model.CustomerSatisfactionSurvey; import com.ecep.contract.model.Employee; import com.ecep.contract.model.Project; -import com.ecep.contract.service.CompanyStringConverter; -import com.ecep.contract.ui.table.cell.EmployeeTableCell; +import com.ecep.contract.service.CompanyCustomerFileService; +import com.ecep.contract.service.CompanyCustomerService; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.CustomerSatisfactionSurveyService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.CustomerSatisfactionSurveyViewModel; import javafx.scene.control.Tab; diff --git a/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinFundPlan.java b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinFundPlan.java index 77ecf17..e6a1468 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinFundPlan.java +++ b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinFundPlan.java @@ -10,17 +10,17 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.ecep.contract.ContractPayWay; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.table.EditableEntityTableTabSkin; -import com.ecep.contract.ds.contract.service.ContractPayPlanService; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.project.service.ProjectFundPlanService; +import com.ecep.contract.controller.table.cell.NumberTableCell; import com.ecep.contract.model.Contract; import com.ecep.contract.model.ContractPayPlan; import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectFundPlan; -import com.ecep.contract.ui.table.cell.NumberTableCell; +import com.ecep.contract.service.ContractPayPlanService; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.ProjectFundPlanService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.util.NumberUtils; import com.ecep.contract.vm.ProjectFundPlanViewModel; diff --git a/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinQuotation.java b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinQuotation.java index c70189b..87ab5a8 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinQuotation.java +++ b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinQuotation.java @@ -5,24 +5,24 @@ import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.project.quotation.ProjectQuotationWindowController; import com.ecep.contract.controller.tab.RefreshableSkin; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.table.EditableEntityTableTabSkin; +import com.ecep.contract.controller.table.cell.EmployeeTableCell; +import com.ecep.contract.controller.table.cell.EvaluationFileTableCell; +import com.ecep.contract.controller.table.cell.LocalDateTimeTableCell; +import com.ecep.contract.converter.CompanyStringConverter; import com.ecep.contract.converter.EmployeeStringConverter; -import com.ecep.contract.ds.company.service.CompanyService; -import com.ecep.contract.ds.customer.service.CompanyCustomerFileService; -import com.ecep.contract.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.ds.project.service.ProjectQuotationService; import com.ecep.contract.model.CompanyCustomerEvaluationFormFile; import com.ecep.contract.model.Employee; import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectQuotation; -import com.ecep.contract.service.CompanyStringConverter; -import com.ecep.contract.ui.table.cell.EmployeeTableCell; -import com.ecep.contract.ui.table.cell.EvaluationFileTableCell; -import com.ecep.contract.ui.table.cell.LocalDateTimeTableCell; +import com.ecep.contract.service.CompanyCustomerFileService; +import com.ecep.contract.service.CompanyCustomerService; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.ProjectQuotationService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.ProjectQuotationViewModel; import javafx.scene.control.Tab; diff --git a/client/src/main/java/com/ecep/contract/controller/project/ProjectWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/ProjectWindowController.java index ec17e55..b1555be 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/ProjectWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/ProjectWindowController.java @@ -12,10 +12,6 @@ import org.springframework.stereotype.Component; import com.ecep.contract.SpringApp; import com.ecep.contract.controller.AbstEntityController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.other.service.EmployeeService; -import com.ecep.contract.ds.project.service.ProjectService; import com.ecep.contract.model.DeliverySignMethod; import com.ecep.contract.model.ProductType; import com.ecep.contract.model.ProductUsage; @@ -23,6 +19,10 @@ 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.service.ContractService; +import com.ecep.contract.service.EmployeeService; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.ProjectViewModel; import javafx.beans.binding.Bindings; diff --git a/client/src/main/java/com/ecep/contract/controller/project/bid/ProjectBidTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/project/bid/ProjectBidTabSkinBase.java index 281f1b4..8134834 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/bid/ProjectBidTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/project/bid/ProjectBidTabSkinBase.java @@ -17,21 +17,13 @@ import com.ecep.contract.CompanyCustomerFileType; import com.ecep.contract.ContractFileType; import com.ecep.contract.DesktopUtils; import com.ecep.contract.MyDateTimeUtils; -import com.ecep.contract.UITools; import com.ecep.contract.controller.customer.CompanyCustomerEvaluationFormFileWindowController; import com.ecep.contract.controller.project.cost.ProjectCostWindowController; import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; import com.ecep.contract.controller.tab.TabSkin; +import com.ecep.contract.converter.CompanyStringConverter; import com.ecep.contract.converter.EmployeeStringConverter; import com.ecep.contract.converter.EntityStringConverter; -import com.ecep.contract.ds.company.service.CompanyService; -import com.ecep.contract.ds.contract.service.ContractFileService; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.customer.service.CompanyCustomerFileService; -import com.ecep.contract.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.ds.project.service.ProjectCostService; -import com.ecep.contract.ds.project.service.ProjectQuotationService; -import com.ecep.contract.ds.project.service.ProjectService; import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyCustomer; import com.ecep.contract.model.CompanyCustomerEvaluationFormFile; @@ -42,7 +34,15 @@ import com.ecep.contract.model.Employee; import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectBid; import com.ecep.contract.model.ProjectCost; -import com.ecep.contract.service.CompanyStringConverter; +import com.ecep.contract.service.CompanyCustomerFileService; +import com.ecep.contract.service.CompanyCustomerService; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.ContractFileService; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.ProjectCostService; +import com.ecep.contract.service.ProjectQuotationService; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.ProjectBidViewModel; import javafx.application.Platform; diff --git a/client/src/main/java/com/ecep/contract/controller/project/bid/ProjectBidWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/bid/ProjectBidWindowController.java index 2b5c608..eda2a63 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/bid/ProjectBidWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/bid/ProjectBidWindowController.java @@ -6,11 +6,11 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstEntityController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.project.service.ProjectBidService; -import com.ecep.contract.ds.project.service.ProjectService; import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectBid; +import com.ecep.contract.service.ProjectBidService; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.ProjectBidViewModel; import javafx.event.ActionEvent; diff --git a/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostExportExcelTasker.java b/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostExportExcelTasker.java index 6e1d061..9917e81 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostExportExcelTasker.java +++ b/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostExportExcelTasker.java @@ -1,6 +1,11 @@ package com.ecep.contract.controller.project.cost; -import static com.ecep.contract.util.ExcelUtils.*; +import static com.ecep.contract.util.ExcelUtils.copyStyle; +import static com.ecep.contract.util.ExcelUtils.getCell; +import static com.ecep.contract.util.ExcelUtils.getCellValue; +import static com.ecep.contract.util.ExcelUtils.getRow; +import static com.ecep.contract.util.ExcelUtils.mergedCells; +import static com.ecep.contract.util.ExcelUtils.setCellValue; import java.io.File; import java.io.FileInputStream; @@ -27,14 +32,7 @@ import org.slf4j.LoggerFactory; import org.springframework.util.StringUtils; import com.ecep.contract.MessageHolder; -import com.ecep.contract.ds.contract.service.ContractFileService; -import com.ecep.contract.ds.project.service.ProductTypeService; -import com.ecep.contract.ds.project.service.ProjectCostItemService; -import com.ecep.contract.ds.project.service.ProjectCostService; -import com.ecep.contract.ds.project.service.ProjectIndustryService; -import com.ecep.contract.ds.project.service.ProjectService; -import com.ecep.contract.ds.project.service.ProjectTypeService; -import com.ecep.contract.ds.project.service.SaleTypeService; +import com.ecep.contract.constant.ContractConstant; import com.ecep.contract.model.Company; import com.ecep.contract.model.Employee; import com.ecep.contract.model.ProductType; @@ -44,7 +42,14 @@ import com.ecep.contract.model.ProjectCostItem; import com.ecep.contract.model.ProjectIndustry; import com.ecep.contract.model.ProjectSaleType; import com.ecep.contract.model.ProjectType; -import com.ecep.contract.ui.Tasker; +import com.ecep.contract.service.ProductTypeService; +import com.ecep.contract.service.ProjectCostItemService; +import com.ecep.contract.service.ProjectCostService; +import com.ecep.contract.service.ProjectIndustryService; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.service.ProjectTypeService; +import com.ecep.contract.service.SaleTypeService; +import com.ecep.contract.task.Tasker; import lombok.Setter; @@ -73,6 +78,7 @@ public class ProjectCostExportExcelTasker extends Tasker { } return costService; } + ProjectCostItemService getItemService() { if (itemService == null) { itemService = getBean(ProjectCostItemService.class); @@ -85,7 +91,7 @@ public class ProjectCostExportExcelTasker extends Tasker { updateTitle("根据模板导出" + name); // \\10.84.209.8\规章制度\ISO9000\01-最新发布版\4_JL_记录文件\ECEP-JL-XS-01-E_设备销售成本核算审批表.xlsx - String path = getConfService().getString(ContractFileService.KEY_CUSTOMER_COST_TEMPLATE); + String path = getConfService().getString(ContractConstant.KEY_CUSTOMER_COST_TEMPLATE); if (!StringUtils.hasText(path)) { holder.error(name + "模板文件未设置,请先设置" + name + "模板文件"); return null; @@ -117,8 +123,7 @@ public class ProjectCostExportExcelTasker extends Tasker { try ( InputStream inp = new FileInputStream(template); - Workbook wb = WorkbookFactory.create(inp) - ) { + Workbook wb = WorkbookFactory.create(inp)) { updateProjectCost(wb, destFile, holder); holder.info(name + "保存到" + destFile.getName() + "!"); } catch (Exception e) { @@ -239,7 +244,6 @@ public class ProjectCostExportExcelTasker extends Tasker { setCellValue(sheet, "D39", cost.getStampTax() / 100); setCellValue(sheet, "D40", cost.getTaxAndSurcharges() / 100); - List items = getItemService().findByCost(cost); if (items.size() > 27) { holder.warn("读取到 " + items.size() + " 行, 超出最大行数27行,已截断导出到附加表中"); @@ -248,17 +252,25 @@ public class ProjectCostExportExcelTasker extends Tasker { setCellValue(sheet, row, 2, ""); setCellValue(sheet, row, 3, 1); // 含税售价 - setCellValue(sheet, row, 4, items.stream().mapToDouble(v -> v.getInQuantity() * v.getInExclusiveTaxPrice() * (100 + v.getInTaxRate()) / 100).sum()); + setCellValue(sheet, row, 4, + items.stream().mapToDouble( + v -> v.getInQuantity() * v.getInExclusiveTaxPrice() * (100 + v.getInTaxRate()) / 100) + .sum()); Cell cellTax = getCell(sheet, row, 6, false); if (cellTax != null) { cellTax.setBlank(); } -// setCellValue(sheet, row, 6, 0); - setCellValue(sheet, row, 7, items.stream().mapToDouble(v -> v.getInQuantity() * v.getInExclusiveTaxPrice()).sum()); + // setCellValue(sheet, row, 6, 0); + setCellValue(sheet, row, 7, + items.stream().mapToDouble(v -> v.getInQuantity() * v.getInExclusiveTaxPrice()).sum()); // 含税进价 - setCellValue(sheet, row, 8, items.stream().mapToDouble(v -> v.getOutQuantity() * v.getOutExclusiveTaxPrice() * (100 + v.getOutTaxRate()) / 100).sum()); + setCellValue(sheet, row, 8, + items.stream().mapToDouble( + v -> v.getOutQuantity() * v.getOutExclusiveTaxPrice() * (100 + v.getOutTaxRate()) / 100) + .sum()); setCellValue(sheet, row, 10, 0); - setCellValue(sheet, row, 11, items.stream().mapToDouble(v -> v.getOutQuantity() * v.getOutExclusiveTaxPrice()).sum()); + setCellValue(sheet, row, 11, + items.stream().mapToDouble(v -> v.getOutQuantity() * v.getOutExclusiveTaxPrice()).sum()); writeItem2Detail(sheet, items, holder); return; @@ -325,7 +337,6 @@ public class ProjectCostExportExcelTasker extends Tasker { detailSheet.setColumnWidth(6, 13 * 256); copyStyle(sheet, "H10", detailSheet, "G3"); - setCellValue(detailSheet, "H3", "数量"); detailSheet.setColumnWidth(7, 8 * 256); copyStyle(sheet, "D10", detailSheet, "H3"); @@ -354,7 +365,6 @@ public class ProjectCostExportExcelTasker extends Tasker { copyStyle(sheet, "N10", detailSheet, "N3"); } - for (int i = 0; i < items.size(); i++) { ProjectCostItem item = items.get(i); int rowIndex = 3 + i; @@ -388,7 +398,6 @@ public class ProjectCostExportExcelTasker extends Tasker { copyStyle(sheet, "A42", setCellValue(theRow, 1, "")); theRow.setHeight((short) (28 * 20)); - int rowIndex = theRow.getRowNum() - 1; Cell cell2 = getCell(theRow, 2, true); if (cell2 != null) { @@ -493,7 +502,7 @@ public class ProjectCostExportExcelTasker extends Tasker { detailSheet.setVerticallyCenter(false); // 设置页边距(单位:英寸) - detailSheet.setMargin(PageMargin.LEFT, 1.8 / 2.54); // 将厘米转换为英寸 + detailSheet.setMargin(PageMargin.LEFT, 1.8 / 2.54); // 将厘米转换为英寸 detailSheet.setMargin(PageMargin.RIGHT, 1.8 / 2.54); detailSheet.setMargin(PageMargin.TOP, 1.9 / 2.54); detailSheet.setMargin(PageMargin.BOTTOM, 1.9 / 2.54); @@ -559,7 +568,8 @@ public class ProjectCostExportExcelTasker extends Tasker { // =IF(G4=0,IF(L4=0,0,G4-L4),G4-L4) CellAddress g$4 = new CellAddress(row.getRowNum(), 6); CellAddress l$4 = new CellAddress(row.getRowNum(), 11); - cell4.setCellFormula("IF(" + g$4 + "=0,IF(" + l$4 + "=0,0," + g$4 + "-" + l$4 + ")," + g$4 + "-" + l$4 + ")"); + cell4.setCellFormula( + "IF(" + g$4 + "=0,IF(" + l$4 + "=0,0," + g$4 + "-" + l$4 + ")," + g$4 + "-" + l$4 + ")"); } // 毛利率GM% diff --git a/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostImportItemsFromContractsTasker.java b/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostImportItemsFromContractsTasker.java new file mode 100644 index 0000000..38badb6 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostImportItemsFromContractsTasker.java @@ -0,0 +1,19 @@ +package com.ecep.contract.controller.project.cost; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.model.ProjectCost; +import com.ecep.contract.task.Tasker; + +import lombok.Setter; + +public class ProjectCostImportItemsFromContractsTasker extends Tasker { + @Setter + private ProjectCost cost; + + @Override + protected Object execute(MessageHolder holder) throws Exception { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'execute'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostTabSkinBase.java index f18c131..0acbbee 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostTabSkinBase.java @@ -14,17 +14,17 @@ import org.hibernate.Hibernate; import com.ecep.contract.ContractFileType; import com.ecep.contract.DesktopUtils; import com.ecep.contract.MyDateTimeUtils; -import com.ecep.contract.UITools; import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.converter.EmployeeStringConverter; -import com.ecep.contract.ds.contract.service.ContractFileService; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.project.service.ProjectService; import com.ecep.contract.model.Contract; import com.ecep.contract.model.ContractFile; import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectCost; +import com.ecep.contract.service.ContractFileService; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.ProjectCostViewModel; import javafx.application.Platform; diff --git a/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostTabSkinItems.java b/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostTabSkinItems.java index 05b727f..f9ed430 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostTabSkinItems.java +++ b/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostTabSkinItems.java @@ -5,35 +5,33 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Comparator; import java.util.List; +import java.util.Map; import java.util.function.Function; import org.controlsfx.control.textfield.AutoCompletionBinding; import org.controlsfx.control.textfield.TextFields; import org.hibernate.Hibernate; -import org.springframework.data.jpa.domain.Specification; import org.springframework.util.StringUtils; import com.ecep.contract.Desktop; -import com.ecep.contract.UITools; -import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.controller.inventory.InventoryWindowController; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.table.AbstEntityTableTabSkin; +import com.ecep.contract.controller.table.cell.EmployeeTableCell; +import com.ecep.contract.controller.table.cell.LocalDateTimeTableCell; import com.ecep.contract.converter.EntityStringConverter; -import com.ecep.contract.ds.contract.service.ContractItemService; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.other.controller.inventory.InventoryWindowController; -import com.ecep.contract.ds.other.service.InventoryService; -import com.ecep.contract.ds.project.ProjectCostImportItemsFromContractsTasker; -import com.ecep.contract.ds.project.service.ProjectCostItemService; -import com.ecep.contract.ds.project.service.ProjectCostService; import com.ecep.contract.model.Employee; import com.ecep.contract.model.Inventory; import com.ecep.contract.model.Price; import com.ecep.contract.model.ProjectCost; import com.ecep.contract.model.ProjectCostItem; -import com.ecep.contract.ui.table.cell.EmployeeTableCell; -import com.ecep.contract.ui.table.cell.LocalDateTimeTableCell; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.service.ContractItemService; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.InventoryService; +import com.ecep.contract.service.ProjectCostItemService; +import com.ecep.contract.service.ProjectCostService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.InventoryViewModel; import com.ecep.contract.vm.ProjectCostItemViewModel; import com.ecep.contract.vm.ProjectCostViewModel; @@ -166,10 +164,10 @@ public class ProjectCostTabSkinItems } @Override - public Specification getSpecification(ProjectCost parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.equal(root.get("cost"), parent); - }); + public Map getSpecification(ProjectCost parent) { + Map params = getSpecification(); + params.put("cost", parent); + return params; } static class AutoCompletionInventoryTableCell extends TableCell { @@ -509,7 +507,6 @@ public class ProjectCostTabSkinItems private void importFromSalesContractAction(ActionEvent event) { ProjectCostImportItemsFromContractsTasker tasker = new ProjectCostImportItemsFromContractsTasker(); tasker.setCost(getEntity()); - tasker.setCurrentUser(controller::getCurrentUser); UITools.showTaskDialogAndWait("从合同(销售和采购)导入项目成本", tasker, null); loadTableDataSet(getEntity()); } diff --git a/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostWindowController.java index 5d217b3..39e57a9 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostWindowController.java @@ -6,13 +6,13 @@ import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import com.ecep.contract.UITools; import com.ecep.contract.controller.AbstEntityController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.project.service.ProjectCostService; -import com.ecep.contract.ds.project.service.ProjectService; import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectCost; +import com.ecep.contract.service.ProjectCostService; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.ProjectCostViewModel; import javafx.event.ActionEvent; diff --git a/client/src/main/java/com/ecep/contract/controller/project/industry/ProjectIndustryManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/project/industry/ProjectIndustryManagerSkin.java index 6ebb786..98a1b03 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/industry/ProjectIndustryManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/industry/ProjectIndustryManagerSkin.java @@ -3,8 +3,8 @@ package com.ecep.contract.controller.project.industry; import com.ecep.contract.controller.AbstEntityManagerSkin; import com.ecep.contract.controller.ManagerSkin; import com.ecep.contract.controller.table.EditableEntityTableTabSkin; -import com.ecep.contract.ds.project.service.ProjectService; import com.ecep.contract.model.ProjectIndustry; +import com.ecep.contract.service.ProjectService; import com.ecep.contract.vm.ProjectIndustryViewModel; import javafx.scene.control.TableColumn; diff --git a/client/src/main/java/com/ecep/contract/controller/project/industry/ProjectIndustryManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/industry/ProjectIndustryManagerWindowController.java index 0612fc7..0d4974f 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/industry/ProjectIndustryManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/industry/ProjectIndustryManagerWindowController.java @@ -8,10 +8,10 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstManagerWindowController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.project.service.ProjectIndustryService; -import com.ecep.contract.ds.project.service.ProjectService; import com.ecep.contract.model.ProjectIndustry; +import com.ecep.contract.service.ProjectIndustryService; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.ProjectIndustryViewModel; import javafx.scene.control.TableColumn; diff --git a/client/src/main/java/com/ecep/contract/controller/project/product_type/ProductTypeManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/product_type/ProductTypeManagerWindowController.java index 598c313..0b8a134 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/product_type/ProductTypeManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/product_type/ProductTypeManagerWindowController.java @@ -10,10 +10,10 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstManagerWindowController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.project.service.ProductTypeService; -import com.ecep.contract.ds.project.service.ProjectService; import com.ecep.contract.model.ProductType; +import com.ecep.contract.service.ProductTypeService; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.ProductTypeViewModel; import javafx.event.ActionEvent; diff --git a/client/src/main/java/com/ecep/contract/controller/project/project_type/ProjectTypeManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/project/project_type/ProjectTypeManagerSkin.java index 60324f9..0061608 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/project_type/ProjectTypeManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/project_type/ProjectTypeManagerSkin.java @@ -3,9 +3,9 @@ package com.ecep.contract.controller.project.project_type; import com.ecep.contract.controller.AbstEntityManagerSkin; import com.ecep.contract.controller.ManagerSkin; import com.ecep.contract.controller.table.EditableEntityTableTabSkin; -import com.ecep.contract.ds.project.service.ProjectService; -import com.ecep.contract.ds.project.service.ProjectTypeService; import com.ecep.contract.model.ProjectType; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.service.ProjectTypeService; import com.ecep.contract.vm.ProjectTypeViewModel; import javafx.scene.control.TableColumn; diff --git a/client/src/main/java/com/ecep/contract/controller/project/project_type/ProjectTypeManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/project_type/ProjectTypeManagerWindowController.java index 6f6631b..ac39ad6 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/project_type/ProjectTypeManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/project_type/ProjectTypeManagerWindowController.java @@ -8,10 +8,10 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstManagerWindowController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.project.service.ProjectService; -import com.ecep.contract.ds.project.service.ProjectTypeService; import com.ecep.contract.model.ProjectType; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.service.ProjectTypeService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.ProjectTypeViewModel; import javafx.scene.control.TableColumn; diff --git a/client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationExportAsExcelFile.java b/client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationExportAsExcelFile.java index 1b594fd..66b0f7c 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationExportAsExcelFile.java +++ b/client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationExportAsExcelFile.java @@ -21,13 +21,13 @@ import org.slf4j.LoggerFactory; import org.springframework.util.StringUtils; import com.ecep.contract.MessageHolder; -import com.ecep.contract.ds.contract.service.ContractFileService; -import com.ecep.contract.ds.project.service.ProjectService; +import com.ecep.contract.constant.ContractConstant; import com.ecep.contract.model.Company; import com.ecep.contract.model.Employee; import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectQuotation; -import com.ecep.contract.ui.Tasker; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.task.Tasker; import lombok.Data; import lombok.EqualsAndHashCode; @@ -59,7 +59,7 @@ public class ProjectQuotationExportAsExcelFile extends Tasker { updateTitle("根据模板导出" + name); // \\10.84.209.8\规章制度\ISO9000\01-最新发布版\4_JL_记录文件\ECEP-JL-XS-06-B_项目报价审批表.xlsx - String path = getConfService().getString(ContractFileService.KEY_QUOTATION_TEMPLATE); + String path = getConfService().getString(ContractConstant.KEY_QUOTATION_TEMPLATE); if (!StringUtils.hasText(path)) { holder.error(name + "模板文件未设置,请先设置" + name + "模板文件"); return null; diff --git a/client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationTabSkinBase.java index 0b0281c..d4877c2 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationTabSkinBase.java @@ -15,19 +15,12 @@ import com.ecep.contract.CompanyCustomerFileType; import com.ecep.contract.ContractFileType; import com.ecep.contract.DesktopUtils; import com.ecep.contract.MyDateTimeUtils; -import com.ecep.contract.UITools; import com.ecep.contract.controller.customer.CompanyCustomerEvaluationFormFileWindowController; import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; import com.ecep.contract.controller.tab.TabSkin; +import com.ecep.contract.converter.CompanyStringConverter; import com.ecep.contract.converter.EmployeeStringConverter; import com.ecep.contract.converter.EntityStringConverter; -import com.ecep.contract.ds.company.service.CompanyService; -import com.ecep.contract.ds.contract.service.ContractFileService; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.customer.service.CompanyCustomerFileService; -import com.ecep.contract.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.ds.project.service.ProjectQuotationService; -import com.ecep.contract.ds.project.service.ProjectService; import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyCustomer; import com.ecep.contract.model.CompanyCustomerEvaluationFormFile; @@ -37,7 +30,14 @@ import com.ecep.contract.model.ContractFile; import com.ecep.contract.model.Employee; import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectQuotation; -import com.ecep.contract.service.CompanyStringConverter; +import com.ecep.contract.service.CompanyCustomerFileService; +import com.ecep.contract.service.CompanyCustomerService; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.ContractFileService; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.ProjectQuotationService; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.ProjectQuotationViewModel; import javafx.application.Platform; diff --git a/client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationWindowController.java index 1057031..d081a23 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationWindowController.java @@ -6,13 +6,13 @@ import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import com.ecep.contract.UITools; import com.ecep.contract.controller.AbstEntityController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.project.service.ProjectQuotationService; -import com.ecep.contract.ds.project.service.ProjectService; import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectQuotation; +import com.ecep.contract.service.ProjectQuotationService; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.ProjectQuotationViewModel; import javafx.event.ActionEvent; diff --git a/client/src/main/java/com/ecep/contract/controller/project/sale_type/AbstProjectSaleTypeBasedTabSkin.java b/client/src/main/java/com/ecep/contract/controller/project/sale_type/AbstProjectSaleTypeBasedTabSkin.java index 41a3cc1..9474cdb 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/sale_type/AbstProjectSaleTypeBasedTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/sale_type/AbstProjectSaleTypeBasedTabSkin.java @@ -2,12 +2,12 @@ package com.ecep.contract.controller.project.sale_type; import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; import com.ecep.contract.controller.tab.TabSkin; -import com.ecep.contract.ds.project.service.SaleTypeService; import com.ecep.contract.model.ProjectSaleType; -import com.ecep.contract.vm.SaleTypeViewModel; +import com.ecep.contract.service.SaleTypeService; +import com.ecep.contract.vm.ProjectSaleTypeViewModel; public abstract class AbstProjectSaleTypeBasedTabSkin - extends AbstEntityBasedTabSkin + extends AbstEntityBasedTabSkin implements TabSkin { public AbstProjectSaleTypeBasedTabSkin(ProjectSaleTypeWindowController controller) { diff --git a/client/src/main/java/com/ecep/contract/controller/project/sale_type/AbstProjectSaleTypeTableTabSkin.java b/client/src/main/java/com/ecep/contract/controller/project/sale_type/AbstProjectSaleTypeTableTabSkin.java index bb1ca87..2735b6e 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/sale_type/AbstProjectSaleTypeTableTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/sale_type/AbstProjectSaleTypeTableTabSkin.java @@ -1,19 +1,17 @@ package com.ecep.contract.controller.project.sale_type; -import org.apache.poi.ss.formula.functions.T; -import org.springframework.data.jpa.domain.Specification; +import java.util.Map; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.table.AbstEntityTableTabSkin; -import com.ecep.contract.ds.project.service.SaleTypeService; import com.ecep.contract.model.IdentityEntity; import com.ecep.contract.model.ProjectSaleType; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.service.SaleTypeService; import com.ecep.contract.vm.IdentityViewModel; -import com.ecep.contract.vm.SaleTypeViewModel; +import com.ecep.contract.vm.ProjectSaleTypeViewModel; public abstract class AbstProjectSaleTypeTableTabSkin> - extends AbstEntityTableTabSkin + extends AbstEntityTableTabSkin implements TabSkin { public AbstProjectSaleTypeTableTabSkin(ProjectSaleTypeWindowController controller) { @@ -25,9 +23,9 @@ public abstract class AbstProjectSaleTypeTableTabSkin getSpecification(ProjectSaleType parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.equal(root.get("saleType"), parent); - }); + public Map getSpecification(ProjectSaleType parent) { + Map params = getSpecification(); + params.put("saleType", parent.getId()); + return params; } } diff --git a/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeManagerSkin.java index 44c0cfc..5e5027a 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeManagerSkin.java @@ -1,17 +1,17 @@ package com.ecep.contract.controller.project.sale_type; import java.util.List; +import java.util.Map; import org.springframework.data.domain.Page; -import org.springframework.data.jpa.domain.Specification; import com.ecep.contract.controller.AbstEntityManagerSkin; import com.ecep.contract.controller.ManagerSkin; import com.ecep.contract.controller.table.EditableEntityTableTabSkin; -import com.ecep.contract.ds.project.service.SaleTypeService; import com.ecep.contract.model.ProjectSaleType; +import com.ecep.contract.service.SaleTypeService; import com.ecep.contract.service.ViewModelService; -import com.ecep.contract.vm.SaleTypeViewModel; +import com.ecep.contract.vm.ProjectSaleTypeViewModel; import javafx.scene.control.TableColumn; import javafx.scene.control.cell.CheckBoxTableCell; @@ -19,8 +19,9 @@ import javafx.scene.control.cell.TextFieldTableCell; import lombok.Setter; public class ProjectSaleTypeManagerSkin - extends AbstEntityManagerSkin - implements ManagerSkin, EditableEntityTableTabSkin { + extends + AbstEntityManagerSkin + implements ManagerSkin, EditableEntityTableTabSkin { @Setter private SaleTypeService saleTypeService; @@ -42,10 +43,10 @@ public class ProjectSaleTypeManagerSkin } @Override - protected List loadTableData() { - Specification spec = getSpecification(); - ViewModelService service = getViewModelService(); - Page page = service.findAll(spec, getPageable()); + protected List loadTableData() { + Map params = getSpecification(); + ViewModelService service = getViewModelService(); + Page page = service.findAll(params, getPageable()); updateFooter(page); return page.map(service::from).stream().peek(v -> { v.getStoreByYear().addListener((observable, oldValue, newValue) -> saveRowData(v)); @@ -90,7 +91,7 @@ public class ProjectSaleTypeManagerSkin } @Override - public ProjectSaleType loadRowData(SaleTypeViewModel row) { + public ProjectSaleType loadRowData(ProjectSaleTypeViewModel row) { ProjectSaleType type = super.loadRowData(row); if (type == null) { type = new ProjectSaleType(); @@ -99,32 +100,34 @@ public class ProjectSaleTypeManagerSkin return type; } - private void onDescriptionColumnEditCommitAction(TableColumn.CellEditEvent event) { - acceptCellEditEvent(event, SaleTypeViewModel::getDescription); + private void onDescriptionColumnEditCommitAction( + TableColumn.CellEditEvent event) { + acceptCellEditEvent(event, ProjectSaleTypeViewModel::getDescription); } - private void onNameColumnEditCommitAction(TableColumn.CellEditEvent event) { - acceptCellEditEvent(event, SaleTypeViewModel::getName); + private void onNameColumnEditCommitAction(TableColumn.CellEditEvent event) { + acceptCellEditEvent(event, ProjectSaleTypeViewModel::getName); } - private void onCodeColumnEditCommitAction(TableColumn.CellEditEvent event) { - acceptCellEditEvent(event, SaleTypeViewModel::getCode); + private void onCodeColumnEditCommitAction(TableColumn.CellEditEvent event) { + acceptCellEditEvent(event, ProjectSaleTypeViewModel::getCode); } - private void onPathColumnEditCommitAction(TableColumn.CellEditEvent event) { - acceptCellEditEvent(event, SaleTypeViewModel::getPath); + private void onPathColumnEditCommitAction(TableColumn.CellEditEvent event) { + acceptCellEditEvent(event, ProjectSaleTypeViewModel::getPath); } - private void onStoreByYearColumnEditCommitAction(TableColumn.CellEditEvent event) { - acceptCellEditEvent(event, SaleTypeViewModel::getStoreByYear); + private void onStoreByYearColumnEditCommitAction( + TableColumn.CellEditEvent event) { + acceptCellEditEvent(event, ProjectSaleTypeViewModel::getStoreByYear); } - private void onActiveColumnEditCommitAction(TableColumn.CellEditEvent event) { - acceptCellEditEvent(event, SaleTypeViewModel::getActive); + private void onActiveColumnEditCommitAction(TableColumn.CellEditEvent event) { + acceptCellEditEvent(event, ProjectSaleTypeViewModel::getActive); } @Override - protected void onTableRowDoubleClickedAction(SaleTypeViewModel item) { + protected void onTableRowDoubleClickedAction(ProjectSaleTypeViewModel item) { showInOwner(ProjectSaleTypeWindowController.class, item); } } diff --git a/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeManagerWindowController.java index 965cc44..c87b975 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeManagerWindowController.java @@ -8,10 +8,10 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstManagerWindowController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.project.service.SaleTypeService; import com.ecep.contract.model.ProjectSaleType; -import com.ecep.contract.vm.SaleTypeViewModel; +import com.ecep.contract.service.SaleTypeService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.vm.ProjectSaleTypeViewModel; import javafx.scene.control.TableColumn; import javafx.stage.Stage; @@ -21,19 +21,19 @@ import javafx.stage.Stage; @Component @FxmlPath("/ui/project/sale-type-manager.fxml") public class ProjectSaleTypeManagerWindowController - extends AbstManagerWindowController { + extends AbstManagerWindowController { @Autowired private SaleTypeService saleTypeService; - public TableColumn idColumn; - public TableColumn nameColumn; - public TableColumn codeColumn; - public TableColumn pathColumn; - public TableColumn storeByYearColumn; - public TableColumn descriptionColumn; - public TableColumn createdColumn; - public TableColumn activeColumn; + public TableColumn idColumn; + public TableColumn nameColumn; + public TableColumn codeColumn; + public TableColumn pathColumn; + public TableColumn storeByYearColumn; + public TableColumn descriptionColumn; + public TableColumn createdColumn; + public TableColumn activeColumn; @Override public void show(Stage stage) { diff --git a/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeRequireFilesTabSkin.java b/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeRequireFilesTabSkin.java index 12fa52f..b8bbc33 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeRequireFilesTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeRequireFilesTabSkin.java @@ -8,10 +8,10 @@ import org.controlsfx.control.ListSelectionView; import com.ecep.contract.ContractFileType; import com.ecep.contract.SpringApp; import com.ecep.contract.controller.tab.TabSkin; -import com.ecep.contract.ds.contract.service.ContractFileService; -import com.ecep.contract.ds.project.service.ProjectSaleTypeRequireFileTypeService; import com.ecep.contract.model.ContractFileTypeLocal; import com.ecep.contract.model.ProjectSaleTypeRequireFileType; +import com.ecep.contract.service.ContractFileService; +import com.ecep.contract.service.ProjectSaleTypeRequireFileTypeService; import impl.org.controlsfx.skin.ListSelectionViewSkin; import javafx.beans.property.SimpleBooleanProperty; diff --git a/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeWindowController.java index 0cb17ff..8136ff1 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeWindowController.java @@ -12,11 +12,11 @@ import org.springframework.stereotype.Component; import com.ecep.contract.ContractFileType; import com.ecep.contract.controller.AbstEntityController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.project.service.SaleTypeService; import com.ecep.contract.model.ProjectSaleType; +import com.ecep.contract.service.SaleTypeService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.DeliverySignMethodViewModel; -import com.ecep.contract.vm.SaleTypeViewModel; +import com.ecep.contract.vm.ProjectSaleTypeViewModel; import javafx.scene.control.CheckBox; import javafx.scene.control.DatePicker; @@ -38,11 +38,11 @@ import javafx.stage.Window; @Component @FxmlPath("/ui/project/sale-type.fxml") public class ProjectSaleTypeWindowController - extends AbstEntityController { + extends AbstEntityController { private static final Logger logger = LoggerFactory.getLogger(ProjectSaleTypeWindowController.class); - public static void show(SaleTypeViewModel viewModel, Window window) { + public static void show(ProjectSaleTypeViewModel viewModel, Window window) { show(ProjectSaleTypeWindowController.class, viewModel, window); } diff --git a/client/src/main/java/com/ecep/contract/controller/project/sale_type/SignMethodTabSkin.java b/client/src/main/java/com/ecep/contract/controller/project/sale_type/SignMethodTabSkin.java index 6b9d30b..b21fc8b 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/sale_type/SignMethodTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/sale_type/SignMethodTabSkin.java @@ -2,8 +2,8 @@ package com.ecep.contract.controller.project.sale_type; import com.ecep.contract.SpringApp; import com.ecep.contract.controller.tab.TabSkin; -import com.ecep.contract.ds.project.service.DeliverySignMethodService; import com.ecep.contract.model.DeliverySignMethod; +import com.ecep.contract.service.DeliverySignMethodService; import com.ecep.contract.vm.DeliverySignMethodViewModel; import javafx.scene.control.Tab; diff --git a/client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/CustomerSatisfactionSurveyTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/CustomerSatisfactionSurveyTabSkinBase.java index d72f12f..c82918e 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/CustomerSatisfactionSurveyTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/CustomerSatisfactionSurveyTabSkinBase.java @@ -13,16 +13,10 @@ import org.springframework.util.StringUtils; import com.ecep.contract.CompanyCustomerFileType; import com.ecep.contract.MyDateTimeUtils; -import com.ecep.contract.UITools; import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; import com.ecep.contract.controller.tab.TabSkin; +import com.ecep.contract.converter.CompanyStringConverter; import com.ecep.contract.converter.EmployeeStringConverter; -import com.ecep.contract.ds.company.service.CompanyService; -import com.ecep.contract.ds.customer.service.CompanyCustomerFileService; -import com.ecep.contract.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.ds.project.service.ProjectCostService; -import com.ecep.contract.ds.project.service.ProjectQuotationService; -import com.ecep.contract.ds.project.service.ProjectService; import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyCustomer; import com.ecep.contract.model.CompanyCustomerEvaluationFormFile; @@ -30,7 +24,13 @@ import com.ecep.contract.model.CompanyCustomerFile; import com.ecep.contract.model.CustomerSatisfactionSurvey; import com.ecep.contract.model.Employee; import com.ecep.contract.model.Project; -import com.ecep.contract.service.CompanyStringConverter; +import com.ecep.contract.service.CompanyCustomerFileService; +import com.ecep.contract.service.CompanyCustomerService; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.ProjectCostService; +import com.ecep.contract.service.ProjectQuotationService; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.CustomerSatisfactionSurveyViewModel; import javafx.application.Platform; diff --git a/client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/CustomerSatisfactionSurveyWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/CustomerSatisfactionSurveyWindowController.java index 0dcb78e..1184185 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/CustomerSatisfactionSurveyWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/CustomerSatisfactionSurveyWindowController.java @@ -6,11 +6,11 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstEntityController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.project.service.CustomerSatisfactionSurveyService; -import com.ecep.contract.ds.project.service.ProjectService; import com.ecep.contract.model.CustomerSatisfactionSurvey; import com.ecep.contract.model.Project; +import com.ecep.contract.service.CustomerSatisfactionSurveyService; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.CustomerSatisfactionSurveyViewModel; import javafx.event.ActionEvent; diff --git a/client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/ProjectCustomerSatisfactionSurveyExportAsExcelFile.java b/client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/ProjectCustomerSatisfactionSurveyExportAsExcelFile.java index 47f98ec..87493ff 100644 --- a/client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/ProjectCustomerSatisfactionSurveyExportAsExcelFile.java +++ b/client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/ProjectCustomerSatisfactionSurveyExportAsExcelFile.java @@ -1,6 +1,8 @@ package com.ecep.contract.controller.project.satisfaction_survey; -import static com.ecep.contract.util.ExcelUtils.*; +import static com.ecep.contract.util.ExcelUtils.getCellValue; +import static com.ecep.contract.util.ExcelUtils.getRow; +import static com.ecep.contract.util.ExcelUtils.setCellValue; import java.io.File; import java.io.FileInputStream; @@ -22,13 +24,14 @@ import org.springframework.util.StringUtils; import com.ecep.contract.MessageHolder; import com.ecep.contract.MyDateTimeUtils; -import com.ecep.contract.ds.project.service.CustomerSatisfactionSurveyService; -import com.ecep.contract.ds.project.service.ProjectService; +import com.ecep.contract.constant.ProjectConstant; import com.ecep.contract.model.Company; import com.ecep.contract.model.CustomerSatisfactionSurvey; import com.ecep.contract.model.Employee; import com.ecep.contract.model.Project; -import com.ecep.contract.ui.Tasker; +import com.ecep.contract.service.CustomerSatisfactionSurveyService; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.task.Tasker; import lombok.Setter; @@ -60,7 +63,7 @@ public class ProjectCustomerSatisfactionSurveyExportAsExcelFile extends Tasker { if (event.getCode() == KeyCode.ENTER) { contractSearchBtn.fire(); @@ -200,7 +192,6 @@ public class CompanyTabSkinContract private void onTableUpdateAction(ActionEvent event) { ContractRepairByCompanyTask task = new ContractRepairByCompanyTask(); - task.setContractService(getViewModelService()); task.setCompany(getParent()); UITools.showTaskDialogAndWait("同步合同", task, null); if (task.isRepaired()) { @@ -258,9 +249,4 @@ public class CompanyTabSkinContract private ContractGroupService getContractGroupService() { return getCachedBean(ContractGroupService.class); } - - private EmployeeStringConverter getEmployeeStringConverter() { - return getCachedBean(EmployeeStringConverter.class); - } - } diff --git a/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinFile.java b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinFile.java index bff6549..a070254 100644 --- a/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinFile.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinFile.java @@ -6,20 +6,23 @@ import java.time.LocalDate; import java.util.List; import java.util.function.Consumer; -import com.ecep.contract.controller.table.EditableEntityTableTabSkin; -import com.ecep.contract.service.CompanyFileService; import org.springframework.util.FileSystemUtils; import org.springframework.util.StringUtils; import com.ecep.contract.CompanyFileType; import com.ecep.contract.DesktopUtils; import com.ecep.contract.MyDateTimeUtils; -import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.constant.CloudServiceConstant; import com.ecep.contract.controller.company.AbstCompanyTableTabSkin; import com.ecep.contract.controller.company.CompanyWindowController; +import com.ecep.contract.controller.table.EditableEntityTableTabSkin; import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyFile; import com.ecep.contract.model.CompanyFileTypeLocal; +import com.ecep.contract.service.CloudTycService; +import com.ecep.contract.service.CompanyFileService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.CompanyFileViewModel; import javafx.application.Platform; @@ -59,9 +62,8 @@ public class CompanyTabSkinFile @Setter private CompanyFileService companyFileService; - @Setter - private MyProperties myProperties; - private final ObservableMap fileTypeLocalMap = FXCollections.observableHashMap(); + private final ObservableMap fileTypeLocalMap = FXCollections + .observableHashMap(); public CompanyTabSkinFile(CompanyWindowController controller) { super(controller); @@ -88,16 +90,15 @@ public class CompanyTabSkinFile fileTable_file_retrieve_from_download_dir_btn.setOnAction(this::onTableRetrieveFromDownloadDirAction); fileTable_file_reset_btn.setOnAction(this::onTableResetAction); - idColumn.setCellValueFactory(param -> param.getValue().getId()); - typeColumn.setCellValueFactory(param -> Bindings.valueAt(fileTypeLocalMap, param.getValue().getType()).map(CompanyFileTypeLocal::getValue)); + typeColumn.setCellValueFactory(param -> Bindings.valueAt(fileTypeLocalMap, param.getValue().getType()) + .map(CompanyFileTypeLocal::getValue)); filePathColumn.setCellValueFactory(param -> param.getValue().getFilePath()); filePathColumn.setCellFactory(param -> new FileTableFilePathTableCell()); applyDateColumn.setCellValueFactory(param -> param.getValue().getApplyDate()); expiringDateColumn.setCellValueFactory(param -> param.getValue().getExpiringDate()); - fileTable_menu_refresh.setOnAction(this::onTableRefreshAction); fileTable_menu_del.setOnAction(this::onTableDeleteAction); fileTable_menu_copy_as_matched_by_contract.setOnAction(this::onTableCopyAsMatchedByContractAction); @@ -108,7 +109,7 @@ public class CompanyTabSkinFile private void onTableResetAction(ActionEvent event) { runAsync(() -> { - if (getViewModelService().reBuildingFiles(getParent(), (level, msg)-> setStatus(msg))) { + if (getViewModelService().reBuildingFiles(getParent(), (level, msg) -> setStatus(msg))) { loadTableDataSet(); } }); @@ -189,6 +190,8 @@ public class CompanyTabSkinFile */ private void onTableCopyAsMatchedByContractAction(ActionEvent event) { UITools.showDialogAndWait("复制资信评估报告", "按当前评估报告复制一个合同中最匹配的", list -> { + getViewModelService().copyAsMatchedByContract(getParent(), list); + onTableCopyAsMatchedAction_(msg -> { Platform.runLater(() -> { list.add(msg); @@ -229,7 +232,6 @@ public class CompanyTabSkinFile return; } - File src = new File(selectedItem.getFilePath().get()); if (!src.exists()) { state.accept("当前选择行的文件不存在"); @@ -244,7 +246,7 @@ public class CompanyTabSkinFile // 天眼查的报告 if (CloudTycService.isTycReport(srcFileName)) { state.accept("天眼查的报告按标准格式命名"); - String name = company.getName() + "_" + CloudTycService.NAME; + String name = company.getName() + "_" + CloudServiceConstant.TYC_NAME; if (srcFileName.contains(CloudTycService.TYC_ENTERPRISE_BASIC_REPORT)) { name = name + "_" + CloudTycService.TYC_ENTERPRISE_BASIC_REPORT; } else if (srcFileName.contains(CloudTycService.TYC_ENTERPRISE_MAJOR_REPORT)) { @@ -259,7 +261,8 @@ public class CompanyTabSkinFile destFileName = srcFileName.replace(srcDate, destDate + "_cp"); } else { // 如果文件名中不包含日期,则添加日期 - destFileName = company.getName() + "_" + destDate + "_cp." + StringUtils.getFilenameExtension(srcFileName); + destFileName = company.getName() + "_" + destDate + "_cp." + + StringUtils.getFilenameExtension(srcFileName); } } @@ -293,7 +296,7 @@ public class CompanyTabSkinFile * @param event event */ public void onTableCopyAsMatchedMenuValidation(Event event) { - //当fileTable选中的行是咨询评估时,可用 + // 当fileTable选中的行是咨询评估时,可用 CompanyFileViewModel selectedItem = getSelectedItem(); if (selectedItem == null) { event.consume(); @@ -325,7 +328,6 @@ public class CompanyTabSkinFile return false; } - private void moveFileToCompany(List files) { String path = viewModel.getPath().get(); if (!StringUtils.hasText(path)) { @@ -370,13 +372,6 @@ public class CompanyTabSkinFile } } - public MyProperties getMyProperties() { - if (myProperties == null) { - myProperties = getBean(MyProperties.class); - } - return myProperties; - } - protected CompanyFileService getViewModelService() { return getCompanyFileService(); } diff --git a/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinOther.java b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinOther.java index 30469ac..ce479ac 100644 --- a/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinOther.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinOther.java @@ -2,9 +2,7 @@ package com.ecep.contract.controller.tab; import java.io.File; import java.io.IOException; -import java.time.Instant; import java.util.List; -import java.util.Optional; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; import java.util.logging.Level; @@ -18,22 +16,22 @@ import org.w3c.dom.html.HTMLDocument; import com.ecep.contract.DesktopUtils; import com.ecep.contract.MessageHolder; import com.ecep.contract.MyDateTimeUtils; -import com.ecep.contract.UITools; -import com.ecep.contract.cloud.rk.CloudRkService; -import com.ecep.contract.cloud.rk.ctx.CloudRkCtx; -import com.ecep.contract.cloud.tyc.CloudTycService; -import com.ecep.contract.cloud.u8.YongYouU8Service; -import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.constant.CloudServiceConstant; import com.ecep.contract.controller.company.AbstCompanyBasedTabSkin; import com.ecep.contract.controller.company.CompanyWindowController; -import com.ecep.contract.ds.company.service.CompanyExtendInfoService; import com.ecep.contract.model.CloudRk; import com.ecep.contract.model.CloudTyc; import com.ecep.contract.model.CloudYu; import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyExtendInfo; -import com.ecep.contract.ui.util.DelayOnceExecutor; -import com.ecep.contract.vm.CloudRkInfoViewModel; +import com.ecep.contract.service.CloudRkService; +import com.ecep.contract.service.CloudTycService; +import com.ecep.contract.service.CompanyExtendInfoService; +import com.ecep.contract.service.YongYouU8Service; +import com.ecep.contract.util.DelayOnceExecutor; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.UITools; +import com.ecep.contract.vm.CloudRkViewModel; import com.ecep.contract.vm.CloudTycInfoViewModel; import com.ecep.contract.vm.CloudYuInfoViewModel; import com.ecep.contract.vm.CompanyExtendInfoViewModel; @@ -87,19 +85,17 @@ public class CompanyTabSkinOther public Label cloudRkVersionLabel; public CheckBox cloudRkAutoUpdateField; - - // Tyc // + // Tyc // public TitledPane tycCloudPane; public TextField cloudTycIdField; public TextField cloudTycCloudIdField; public TextField cloudTycLatestField; public Label cloudTycVersionLabel; public TextField tycCloudPaneCloudScore; - // public Hyperlink tycCloudPaneHyperLink; + // public Hyperlink tycCloudPaneHyperLink; public Button tycCloudPaneSaveButton; - - // Yu // + // Yu // public TitledPane yuCloudPane; public TextField cloudYuIdField; public TextField cloudYuCloudIdField; @@ -107,7 +103,7 @@ public class CompanyTabSkinOther public Label cloudYuVersionLabel; public Button yuCloudPaneSaveButton; - // Extend Info // + // Extend Info // public TitledPane extendInfoPane; public TextField extendInfoIdField; public TextField extendInfoLatestField; @@ -115,13 +111,11 @@ public class CompanyTabSkinOther public CheckBox extendInfoDisableVerifyField; public Button extendInfoPaneSaveButton; - private final CloudRkInfoViewModel rkCloudInfoViewModel = new CloudRkInfoViewModel(); + private final CloudRkViewModel rkCloudInfoViewModel = new CloudRkViewModel(); private final CloudTycInfoViewModel tycCloudInfoViewModel = new CloudTycInfoViewModel(); private final CloudYuInfoViewModel yuCloudInfoViewModel = new CloudYuInfoViewModel(); private final CompanyExtendInfoViewModel extendInfoViewModel = new CompanyExtendInfoViewModel(); - - @Setter private CloudRkService cloudRkService; @Setter @@ -158,7 +152,6 @@ public class CompanyTabSkinOther updateExtendInfoPane(parent, extendInfoPane); } - /** * 初始化 相关方平台信息 Titled Pane */ @@ -167,7 +160,7 @@ public class CompanyTabSkinOther cloudRkIdField.textProperty().bind(rkCloudInfoViewModel.getId().asString()); // 平台编号 cloudRkCloudIdField.textProperty().bindBidirectional(rkCloudInfoViewModel.getCloudId()); - cloudRkLatestField.textProperty().bind(rkCloudInfoViewModel.getLatest().map(MyDateTimeUtils::format)); + cloudRkLatestField.textProperty().bind(rkCloudInfoViewModel.getLatestUpdate().map(MyDateTimeUtils::format)); cloudRkVersionLabel.textProperty().bind(rkCloudInfoViewModel.getVersion().asString("Ver:%s")); cloudRkAutoUpdateField.selectedProperty().bindBidirectional(rkCloudInfoViewModel.getAutoUpdate()); @@ -183,8 +176,10 @@ public class CompanyTabSkinOther cloudRkCreditRankField.textProperty().bind(rkCloudInfoViewModel.getRank()); cloudRkCreditRankDescriptionField.textProperty().bind(rkCloudInfoViewModel.getRankDescription()); cloudRkCloudLatestField.textProperty().bind(rkCloudInfoViewModel.getCloudLatest().map(MyDateTimeUtils::format)); - cloudRkEntUpdateField.textProperty().bind(rkCloudInfoViewModel.getCloudEntUpdate().map(MyDateTimeUtils::format)); - cloudRkBlackListUpdatedField.textProperty().bind(rkCloudInfoViewModel.getCloudBlackListUpdated().map(MyDateTimeUtils::format)); + cloudRkEntUpdateField.textProperty() + .bind(rkCloudInfoViewModel.getCloudEntUpdate().map(MyDateTimeUtils::format)); + cloudRkBlackListUpdatedField.textProperty() + .bind(rkCloudInfoViewModel.getCloudBlackListUpdated().map(MyDateTimeUtils::format)); DelayOnceExecutor saveExecutor = new DelayOnceExecutor(() -> { save(rkCloudInfoViewModel); @@ -196,7 +191,7 @@ public class CompanyTabSkinOther }); } - public void save(CloudRkInfoViewModel viewModel) { + public void save(CloudRkViewModel viewModel) { int infoId = viewModel.getId().get(); CloudRkService service = getCloudRkService(); CloudRk cloudRk = service.findById(infoId); @@ -239,13 +234,7 @@ public class CompanyTabSkinOther */ private void onCloudRkUpdateButtonClicked(ActionEvent actionEvent) throws IOException { Button button = (Button) actionEvent.getSource(); - Company company = getEntity(); - - CloudRkCtx cloudRkCtx = new CloudRkCtx(); - cloudRkCtx.setCloudRkService(getCloudRkService()); - CloudRk cloudRk = cloudRkCtx.getOrCreateCloudRk(company); - MessageHolder holder = (level, message) -> { setStatus(message); if (level == Level.WARNING) { @@ -256,106 +245,17 @@ public class CompanyTabSkinOther } }; - if (!StringUtils.hasText(rkCloudInfoViewModel.getCloudId().get())) { - holder.info("没有 " + CloudRkService.NAME + " 编号,准备使用模糊查询接口获取编号..."); - // use fuzzy to find cloud id - try { - // - List entInfos = cloudRkCtx.queryEnterpriseWithFuzzy(company, cloudRk, holder); - if (entInfos.isEmpty()) { - cloudRk.setCloudId("-"); - cloudRkCtx.save(cloudRk); - holder.error("没有查询到相关企业信息"); - return; - } - String companyName = company.getName(); - Optional optional = entInfos.stream() - .filter(n -> n.getName().equals(companyName)).findAny(); - if (optional.isPresent()) { - // 查询接口中返回的结果中有跟公司名称相同的,则直接使用 - cloudRk.setCloudId(optional.get().getId()); - } else { - // 手动选择 - CloudRkService.EntInfo selectedItem = showEnterpriseChooser(entInfos); - if (selectedItem != null) { - cloudRk.setCloudId(selectedItem.getId()); - rkCloudInfoViewModel.update(cloudRkCtx.save(cloudRk)); - // 重新发起 - button.getOnAction().handle(actionEvent); - } - - Platform.runLater(() -> { - - - }); - return; - } - - } catch (Exception e) { - // 异常 - UITools.showExceptionAndWait(CloudRkService.NAME + " 中使用模糊查询接口获取企业平台编号发生错误", e); - return; - } - - } - - if (!StringUtils.hasText(cloudRk.getCloudId())) { - setStatus("没有平台编号, 无法更新"); - return; - } - if (cloudRk.getCloudId().equals("-")) { - setStatus("更新已经屏蔽"); - return; - } - - - try { - rkCloudInfoViewModel.getLatest().set(null); - setStatus("尝试从 " + CloudRkService.NAME + " 中更新企业信息..."); - if (cloudRkCtx.updateEnterpriseInfo(company, cloudRk, holder)) { - company = save(company); - } - - setStatus("尝试从 " + CloudRkService.NAME + " 中更新黑名单..."); - if (cloudRkCtx.updateBlackList(company, cloudRk, holder)) { - CompanyTabSkinOldName tabSkin = controller.getTabSkin(CompanyTabSkinOldName.class); - if (tabSkin != null) { - tabSkin.loadTableDataSet(); - } - } - - setStatus("尝试从 " + CloudRkService.NAME + " 中更新企业评分..."); - if (cloudRkCtx.updateEnterpriseCredit(company, cloudRk, holder)) { - // cloudRk modified - } - setStatus("尝试从 " + CloudRkService.NAME + " 中更新客户评级..."); - if (cloudRkCtx.updateCustomerScore(company, cloudRk, holder)) { - // cloudRk modified - } - setStatus("尝试从 " + CloudRkService.NAME + " 中更新供应商评分..."); - if (cloudRkCtx.updateVendorScore(company, cloudRk, holder)) { - // cloudRk modified - } - setStatus(""); - } catch (Exception e) { - // 异常 - logger.error("更新 {} 时发生错误", company.getName(), e); - UITools.showExceptionAndWait(CloudRkService.NAME + " 中使用报表接口更新企业基本注册信息时发生错误", e); - return; - } finally { - cloudRk.setLatestUpdate(Instant.now()); - CloudRk cloudRk1 = cloudRkCtx.save(cloudRk); - Platform.runLater(() -> { - rkCloudInfoViewModel.update(cloudRk1); - }); - } + CloudRk cloudRk = getCloudRkService().updateCloudRk(company, holder); + Platform.runLater(() -> { + rkCloudInfoViewModel.update(cloudRk); + }); } private CloudRkService.EntInfo showEnterpriseChooser(List entInfos) { // TODO 转换为 独立窗口类,通过 getResult() 返回操作 Alert alert = new Alert(Alert.AlertType.CONFIRMATION); alert.setWidth(350); - alert.setHeaderText(CloudRkService.NAME + " 返回多个结果, 请选择确认"); + alert.setHeaderText(CloudServiceConstant.RK_NAME + " 返回多个结果, 请选择确认"); ListView listView = new ListView<>(); listView.setCellFactory(param -> new ListCell<>() { @Override @@ -378,7 +278,6 @@ public class CompanyTabSkinOther return listView.getSelectionModel().getSelectedItem(); } - public void onTycCloudPaneHyperLinkClickedAction(ActionEvent event) { String cloudId = tycCloudInfoViewModel.getCloudId().get(); String url = null; @@ -436,7 +335,7 @@ public class CompanyTabSkinOther HTMLDocument doc = (HTMLDocument) newValue; setStatus("Open Url : " + doc.getURL()); stage.setTitle(doc.getTitle()); - // updateByTycSearch(company, doc); + // updateByTycSearch(company, doc); })); StackPane root = new StackPane(); root.getChildren().add(webView); @@ -470,12 +369,11 @@ public class CompanyTabSkinOther private void onCloudTycUpdateButtonClicked(ActionEvent event) { // TODO 待实现 setStatus("待实现"); -// CompletableFuture.delayedExecutor(2, TimeUnit.SECONDS).execute(() -> { -// button.setDisable(false); -// }); + // CompletableFuture.delayedExecutor(2, TimeUnit.SECONDS).execute(() -> { + // button.setDisable(false); + // }); } - /** * 初始化 天眼查平台 Titled Pane */ @@ -487,7 +385,6 @@ public class CompanyTabSkinOther cloudTycLatestField.textProperty().bind(tycCloudInfoViewModel.getLatest().map(MyDateTimeUtils::format)); cloudTycVersionLabel.textProperty().bind(tycCloudInfoViewModel.getVersion().asString("Ver:%s")); - TextField cloudIdField = cloudTycCloudIdField; TextField cloudScoreField = tycCloudPaneCloudScore; @@ -510,14 +407,12 @@ public class CompanyTabSkinOther saveExecutor.tick(); }); - cloudScoreField.textProperty().bindBidirectional(tycCloudInfoViewModel.getScore(), new NumberStringConverter()); tycCloudPaneSaveButton.setOnAction(event -> { saveExecutor.tickNow(); }); } - private void initializeCloudYuPane() { try { yongYouU8Service = getBean(YongYouU8Service.class); @@ -530,7 +425,6 @@ public class CompanyTabSkinOther cloudYuLatestField.textProperty().bind(yuCloudInfoViewModel.getLatest().map(MyDateTimeUtils::format)); cloudYuVersionLabel.textProperty().bind(yuCloudInfoViewModel.getVersion().asString("Ver:%s")); - Button button = yuCloudPaneSaveButton; // 更新 @@ -555,7 +449,6 @@ public class CompanyTabSkinOther } - private void initializeExtendInfoPane() { // 记录编号 extendInfoIdField.textProperty().bind(extendInfoViewModel.getId().asString()); diff --git a/client/src/main/java/com/ecep/contract/controller/tab/ContractManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/tab/ContractManagerSkin.java index 870d068..8c23a53 100644 --- a/client/src/main/java/com/ecep/contract/controller/tab/ContractManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/ContractManagerSkin.java @@ -1,32 +1,29 @@ package com.ecep.contract.controller.tab; import java.time.format.DateTimeFormatter; - -import org.springframework.data.jpa.domain.Specification; +import java.util.Map; import com.ecep.contract.ContractPayWay; import com.ecep.contract.MyDateTimeUtils; import com.ecep.contract.controller.AbstEntityManagerSkin; +import com.ecep.contract.controller.ComboBoxUtils; +import com.ecep.contract.controller.ManagerSkin; import com.ecep.contract.controller.contract.ContractManagerWindowController; import com.ecep.contract.controller.contract.ContractWindowController; -import com.ecep.contract.ds.company.service.CompanyService; -import com.ecep.contract.ds.contract.service.ContractGroupService; -import com.ecep.contract.ds.contract.service.ContractKindService; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.contract.service.ContractTypeService; -import com.ecep.contract.ds.contract.vo.ContractViewModel; +import com.ecep.contract.controller.table.cell.CompanyTableCell; +import com.ecep.contract.controller.table.cell.ContractGroupTableCell; +import com.ecep.contract.controller.table.cell.ContractKindTableCell; +import com.ecep.contract.controller.table.cell.ContractTypeTableCell; +import com.ecep.contract.controller.table.cell.EmployeeTableCell; import com.ecep.contract.model.Contract; import com.ecep.contract.model.ContractGroup; -import com.ecep.contract.ui.ComboBoxUtils; -import com.ecep.contract.ui.ManagerSkin; -import com.ecep.contract.ui.table.cell.CompanyTableCell; -import com.ecep.contract.ui.table.cell.ContractGroupTableCell; -import com.ecep.contract.ui.table.cell.ContractKindTableCell; -import com.ecep.contract.ui.table.cell.ContractTypeTableCell; -import com.ecep.contract.ui.table.cell.EmployeeTableCell; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.ContractGroupService; +import com.ecep.contract.service.ContractKindService; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.ContractTypeService; +import com.ecep.contract.vm.ContractViewModel; -import jakarta.persistence.criteria.Path; import javafx.application.Platform; import javafx.scene.control.cell.TextFieldTableCell; import javafx.util.converter.CurrencyStringConverter; @@ -81,30 +78,31 @@ public class ContractManagerSkin return contractGroupService; } - @Override - public Specification getSpecification() { - Specification spec = super.getSpecification(); + public Map getSpecification() { + Map params = super.getSpecification(); if (controller.composeViewBtn.isSelected()) { - spec = SpecificationUtils.and(spec, (root, query, builder) -> { - Path parentCode = root.get("parentCode"); - Path payWay = root.get("payWay"); - return builder.or( - builder.equal(payWay, ContractPayWay.RECEIVE), - builder.and( - builder.equal(payWay, ContractPayWay.PAY), - builder.or( - builder.equal(parentCode, ""), - parentCode.isNull()))); - }); - } + // TODO 完善查询条件 + params.put("payWay", ContractPayWay.RECEIVE); + + // spec = SpecificationUtils.and(spec, (root, query, builder) -> { + // Path parentCode = root.get("parentCode"); + // Path payWay = root.get("payWay"); + // return builder.or( + // builder.equal(payWay, ContractPayWay.RECEIVE), + // builder.and( + // builder.equal(payWay, ContractPayWay.PAY), + // builder.or( + // builder.equal(parentCode, ""), + // parentCode.isNull()))); + // }); + + } ContractGroup selectedGroup = controller.groupSelector.getValue(); if (selectedGroup != null) { - spec = SpecificationUtils.and(spec, (root, query, builder) -> { - return builder.equal(root.get("group"), selectedGroup); - }); + params.put("group", selectedGroup); } - return spec; + return params; } @SuppressWarnings("unchecked") diff --git a/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinBase.java index 6d1322a..aa2edca 100644 --- a/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinBase.java @@ -1,5 +1,18 @@ package com.ecep.contract.controller.tab; +import java.io.File; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Objects; +import java.util.Optional; + +import org.controlsfx.control.textfield.TextFields; +import org.controlsfx.glyphfont.Glyph; +import org.hibernate.Hibernate; +import org.springframework.util.StringUtils; + import com.ecep.contract.ContractPayWay; import com.ecep.contract.SpringApp; import com.ecep.contract.controller.contract.AbstContractBasedTabSkin; @@ -7,12 +20,30 @@ import com.ecep.contract.controller.contract.ContractWindowController; import com.ecep.contract.controller.customer.CompanyCustomerWindowController; import com.ecep.contract.controller.project.ProjectWindowController; import com.ecep.contract.controller.vendor.CompanyVendorWindowController; +import com.ecep.contract.converter.CompanyStringConverter; import com.ecep.contract.converter.ContractStringConverter; import com.ecep.contract.converter.EmployeeStringConverter; import com.ecep.contract.converter.ProjectStringConverter; -import com.ecep.contract.model.*; -import com.ecep.contract.service.*; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractType; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectSaleType; +import com.ecep.contract.service.CompanyCustomerService; +import com.ecep.contract.service.CompanyVendorService; +import com.ecep.contract.service.ContractGroupService; +import com.ecep.contract.service.ContractKindService; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.ContractTypeService; +import com.ecep.contract.service.ExtendVendorInfoService; +import com.ecep.contract.service.ProjectSaleTypeService; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.service.VendorGroupService; import com.ecep.contract.util.UITools; + import javafx.beans.binding.Bindings; import javafx.event.ActionEvent; import javafx.scene.control.Tab; @@ -22,14 +53,6 @@ import javafx.stage.DirectoryChooser; import javafx.util.StringConverter; import javafx.util.converter.LocalDateStringConverter; import javafx.util.converter.NumberStringConverter; -import org.controlsfx.control.textfield.TextFields; -import org.controlsfx.glyphfont.Glyph; -import org.hibernate.Hibernate; -import org.springframework.util.StringUtils; - -import java.io.File; -import java.time.LocalDate; -import java.util.*; /** * 合同基础信息标签页 @@ -86,23 +109,26 @@ public class ContractTabSkinBase extends AbstContractBasedTabSkin { initializeBaseTabCompanyFieldAutoCompletion(controller.companyField); controller.groupField.textProperty().bind(viewModel.getGroup().map(group -> { + ContractGroupService groupService = controller.getCachedBean(ContractGroupService.class); if (!Hibernate.isInitialized(group)) { - group = getContractService().findGroupById(group.getId()); + group = groupService.findById(group.getId()); } return group.getCode() + " " + group.getName() + " " + group.getTitle(); })); controller.typeField.textProperty().bind(viewModel.getType().map(type -> { + ContractTypeService typeService = controller.getCachedBean(ContractTypeService.class); if (!Hibernate.isInitialized(type)) { - type = getContractService().findTypeById(type.getId()); + type = typeService.findById(type.getId()); } return type.getCode() + " " + type.getCatalog() + " " + type.getName() + " " + type.getTitle() + "(" + type.getDirection() + ")"; })); controller.kindField.textProperty().bind(viewModel.getKind().map(kind -> { + ContractKindService kindService = controller.getCachedBean(ContractKindService.class); if (!Hibernate.isInitialized(kind)) { - kind = getContractService().findKindById(kind.getId()); + kind = kindService.findById(kind.getId()); } return kind.getCode() + " " + kind.getName() + " " + kind.getTitle(); })); @@ -110,6 +136,7 @@ public class ContractTabSkinBase extends AbstContractBasedTabSkin { // as customer controller.openRelativeCompanyCustomerBtn.setOnAction(this::onContractOpenRelativeCompanyCustomerAction); controller.openRelativeCompanyCustomerBtn.disableProperty().bind(Bindings.createBooleanBinding(() -> { + ContractType type = viewModel.getType().get(); if (type == null) { return true; @@ -119,7 +146,8 @@ public class ContractTabSkinBase extends AbstContractBasedTabSkin { return true; } if (!Hibernate.isInitialized(type)) { - type = getContractService().findTypeById(type.getId()); + ContractTypeService typeService = controller.getCachedBean(ContractTypeService.class); + type = typeService.findById(type.getId()); } return !Objects.equals(type.getDirection(), "收"); }, viewModel.getType())); @@ -140,7 +168,8 @@ public class ContractTabSkinBase extends AbstContractBasedTabSkin { return true; } if (!Hibernate.isInitialized(type)) { - type = getContractService().findTypeById(type.getId()); + ContractTypeService typeService = controller.getCachedBean(ContractTypeService.class); + type = typeService.findById(type.getId()); } return !Objects.equals(type.getDirection(), "付"); }, viewModel.getType())); @@ -311,19 +340,20 @@ public class ContractTabSkinBase extends AbstContractBasedTabSkin { */ public void onContractCreatePathAction(ActionEvent event) { Contract contract = getEntity(); - ContractRepairComm comm = new ContractRepairComm(); - if (CompanyFileUtils.exists(contract.getPath())) { + ContractService contractService = getContractService(); + if (contractService.existsContractPath(contract)) { File dir = new File(contract.getPath()); if (!dir.exists()) { - dir = comm.makePath(contract, (level, message) -> controller.setStatus(message)); - contract.setPath(dir.getAbsolutePath()); - save(contract); + if (contractService.makePathAbsent(contract)) { + // update ? + } } - } - if (comm.makePathAbsent(contract, (level, message) -> controller.setStatus(message))) { - save(contract); } else { - controller.setStatus("目录存在或创建失败"); + if (contractService.makePathAbsent(contract)) { + // update ? + } else { + setStatus("目录存在或创建失败"); + } } } @@ -480,7 +510,7 @@ public class ContractTabSkinBase extends AbstContractBasedTabSkin { } public ProjectService getProjectService() { - return controller.projectService; + return controller.getCachedBean(ProjectService.class); } public ProjectSaleTypeService getSaleTypeService() { diff --git a/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinSubContract.java b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinSubContract.java index 960c682..0688a2b 100644 --- a/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinSubContract.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinSubContract.java @@ -1,17 +1,15 @@ package com.ecep.contract.controller.tab; import java.time.LocalDate; - -import org.springframework.data.jpa.domain.Specification; +import java.util.Map; import com.ecep.contract.ContractPayWay; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.contract.AbstContractTableTabSkin; import com.ecep.contract.controller.contract.ContractWindowController; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.contract.vo.ContractViewModel; import com.ecep.contract.model.Contract; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.vm.ContractViewModel; import javafx.application.Platform; import javafx.scene.control.Button; @@ -62,10 +60,10 @@ public class ContractTabSkinSubContract } @Override - public Specification getSpecification(Contract parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.equal(root.get("parentCode"), parent.getCode()); - }); + public Map getSpecification(Contract parent) { + Map params = getSpecification(); + params.put("parentCode", parent.getCode()); + return params; } @Override diff --git a/client/src/main/java/com/ecep/contract/controller/tab/ContractUpdater.java b/client/src/main/java/com/ecep/contract/controller/tab/ContractUpdater.java index 9c139f7..cad5ef7 100644 --- a/client/src/main/java/com/ecep/contract/controller/tab/ContractUpdater.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/ContractUpdater.java @@ -6,7 +6,6 @@ import java.util.logging.Level; import org.springframework.beans.BeansException; import com.ecep.contract.MessageHolder; -import com.ecep.contract.SpringApp; import com.ecep.contract.model.ContractGroup; import com.ecep.contract.model.ContractKind; import com.ecep.contract.model.ContractType; @@ -14,9 +13,13 @@ import com.ecep.contract.model.Employee; import com.ecep.contract.service.CompanyCustomerService; import com.ecep.contract.service.CompanyService; import com.ecep.contract.service.CompanyVendorService; +import com.ecep.contract.service.ContractGroupService; +import com.ecep.contract.service.ContractKindService; import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.ContractTypeService; import com.ecep.contract.service.EmployeeService; import com.ecep.contract.service.YongYouU8Service; +import com.ecep.contract.util.BeanCacher; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.Data; @@ -88,14 +91,9 @@ public class ContractUpdater implements MessageHolder { return updater; } - private ObjectMapper objectMapper; + private BeanCacher beanCacher = new BeanCacher(); + private MessageHolder holder; - private ContractService contractService; - private EmployeeService employeeService; - private CompanyService companyService; - private CompanyVendorService vendorService; - private CompanyCustomerService customerService; - private YongYouU8Service u8Service; public T convertValue(Object fromValue, Class toValueType) throws IllegalArgumentException { return getObjectMapper().convertValue(fromValue, toValueType); @@ -114,40 +112,34 @@ public class ContractUpdater implements MessageHolder { } T getBean(Class requiredType) throws BeansException { - return SpringApp.getBean(requiredType); + return beanCacher.getBean(requiredType); } private ObjectMapper getObjectMapper() { - if (objectMapper == null) { - objectMapper = getBean(ObjectMapper.class); - } - return objectMapper; + return getBean(ObjectMapper.class); } private ContractService getContractService() { - if (contractService == null) { - contractService = getBean(ContractService.class); - } - return contractService; + return getBean(ContractService.class); } private EmployeeService getEmployeeService() { - if (employeeService == null) { - employeeService = getBean(EmployeeService.class); - } - return employeeService; + return getBean(EmployeeService.class); } private ContractType getTypeByCode(String typeCode) { - return getContractService().findTypeByCode(typeCode); + ContractType type = getBean(ContractTypeService.class).findByCode(typeCode); + return type; } private ContractGroup getGroupByCode(String groupCode) { - return getContractService().findGroupByCode(groupCode); + ContractGroup group = getBean(ContractGroupService.class).findByCode(groupCode); + return group; } private ContractKind getKindByName(String kindName) { - return getContractService().findKindByName(kindName); + ContractKind kind = getBean(ContractKindService.class).findByName(kindName); + return kind; } private Employee findEmployeeByCode(String personCode) { @@ -162,31 +154,19 @@ public class ContractUpdater implements MessageHolder { } private CompanyVendorService getVendorService() { - if (vendorService == null) { - vendorService = SpringApp.getBean(CompanyVendorService.class); - } - return vendorService; + return getBean(CompanyVendorService.class); } private CompanyCustomerService getCustomerService() { - if (customerService == null) { - customerService = SpringApp.getBean(CompanyCustomerService.class); - } - return customerService; + return getBean(CompanyCustomerService.class); } private CompanyService getCompanyService() { - if (companyService == null) { - companyService = SpringApp.getBean(CompanyService.class); - } - return companyService; + return getBean(CompanyService.class); } private YongYouU8Service getU8Service() { - if (u8Service == null) { - u8Service = SpringApp.getBean(YongYouU8Service.class); - } - return u8Service; + return getBean(YongYouU8Service.class); } } diff --git a/client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinBase.java index fab2afa..467244b 100644 --- a/client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinBase.java @@ -4,14 +4,14 @@ import java.time.LocalDateTime; import com.ecep.contract.MyDateTimeUtils; import com.ecep.contract.SpringApp; -import com.ecep.contract.UITools; import com.ecep.contract.controller.customer.SalesOrderWindowController; import com.ecep.contract.converter.EmployeeStringConverter; -import com.ecep.contract.ds.company.service.CompanyService; -import com.ecep.contract.ds.contract.service.ContractFileService; -import com.ecep.contract.ds.contract.vo.SalesOrderViewModel; import com.ecep.contract.model.Employee; import com.ecep.contract.model.SalesOrder; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.ContractFileService; +import com.ecep.contract.util.UITools; +import com.ecep.contract.vm.SalesOrderViewModel; import javafx.beans.property.SimpleObjectProperty; import javafx.scene.control.Tab; diff --git a/client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinBillVoucher.java b/client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinBillVoucher.java index 9ffab76..c83a67f 100644 --- a/client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinBillVoucher.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinBillVoucher.java @@ -2,30 +2,29 @@ package com.ecep.contract.controller.tab; import java.time.LocalDateTime; import java.util.HashMap; +import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; import org.hibernate.Hibernate; -import org.springframework.data.jpa.domain.Specification; import org.springframework.util.StringUtils; import com.ecep.contract.SpringApp; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.customer.SalesOrderWindowController; import com.ecep.contract.controller.table.AbstEntityTableTabSkin; import com.ecep.contract.converter.EmployeeStringConverter; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.contract.service.SaleOrdersService; -import com.ecep.contract.ds.contract.service.SalesBillVoucherService; -import com.ecep.contract.ds.contract.vo.ContractItemComposeViewModel; -import com.ecep.contract.ds.contract.vo.SalesBillVoucherViewModel; -import com.ecep.contract.ds.contract.vo.SalesOrderViewModel; import com.ecep.contract.model.Contract; import com.ecep.contract.model.ContractItem; import com.ecep.contract.model.Employee; import com.ecep.contract.model.SalesBillVoucher; import com.ecep.contract.model.SalesOrder; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.SaleOrdersService; +import com.ecep.contract.service.SalesBillVoucherService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.vm.ContractItemComposeViewModel; +import com.ecep.contract.vm.SalesBillVoucherViewModel; +import com.ecep.contract.vm.SalesOrderViewModel; import javafx.application.Platform; import javafx.collections.ObservableList; @@ -43,7 +42,8 @@ import lombok.Setter; @FxmlPath("/ui/contract/sale-orders-tab-bill-voucher.fxml") public class SalesOrderTabSkinBillVoucher - extends AbstEntityTableTabSkin + extends + AbstEntityTableTabSkin implements TabSkin { @Setter @@ -53,7 +53,7 @@ public class SalesOrderTabSkinBillVoucher @Setter private EmployeeStringConverter employeeStringConverter; - /* 以下是合同内容 */ + /* 以下是合同内容 */ public TableColumn itemTable_idColumn; public TableColumn refIdColumn; public TableColumn codeColumn; @@ -81,10 +81,10 @@ public class SalesOrderTabSkinBillVoucher } @Override - public Specification getSpecification(SalesOrder parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.equal(root.get("order"), parent); - }); + public Map getSpecification(SalesOrder parent) { + Map params = getSpecification(); + params.put("order", parent.getId()); + return params; } @Override @@ -140,24 +140,30 @@ public class SalesOrderTabSkinBillVoucher return employeeStringConverter; } - - private void sum(ContractItemComposeViewModel model, Contract contract, HashMap map) { - double inQuantity = map.values().stream().map(ContractItemComposeViewModel::getIn).mapToDouble(v -> v.getQuantity().get()).sum(); + private void sum(ContractItemComposeViewModel model, Contract contract, + HashMap map) { + double inQuantity = map.values().stream().map(ContractItemComposeViewModel::getIn) + .mapToDouble(v -> v.getQuantity().get()).sum(); Platform.runLater(() -> model.getIn().getQuantity().set(inQuantity)); - double inTaxAmount = map.values().stream().map(ContractItemComposeViewModel::getIn).mapToDouble(v -> v.getTaxAmount().get()).sum(); + double inTaxAmount = map.values().stream().map(ContractItemComposeViewModel::getIn) + .mapToDouble(v -> v.getTaxAmount().get()).sum(); Platform.runLater(() -> model.getIn().getTaxAmount().set(inTaxAmount)); - double inExclusiveTaxAmount = map.values().stream().map(ContractItemComposeViewModel::getIn).mapToDouble(v -> v.getExclusiveTaxAmount().get()).sum(); + double inExclusiveTaxAmount = map.values().stream().map(ContractItemComposeViewModel::getIn) + .mapToDouble(v -> v.getExclusiveTaxAmount().get()).sum(); Platform.runLater(() -> model.getIn().getExclusiveTaxAmount().set(inExclusiveTaxAmount)); - double outQuantity = map.values().stream().map(ContractItemComposeViewModel::getOut).mapToDouble(v -> v.getQuantity().get()).sum(); + double outQuantity = map.values().stream().map(ContractItemComposeViewModel::getOut) + .mapToDouble(v -> v.getQuantity().get()).sum(); Platform.runLater(() -> model.getOut().getQuantity().set(outQuantity)); - double outTaxAmount = map.values().stream().map(ContractItemComposeViewModel::getOut).mapToDouble(v -> v.getTaxAmount().get()).sum(); + double outTaxAmount = map.values().stream().map(ContractItemComposeViewModel::getOut) + .mapToDouble(v -> v.getTaxAmount().get()).sum(); Platform.runLater(() -> model.getOut().getTaxAmount().set(outTaxAmount)); - double outExclusiveTaxAmount = map.values().stream().map(ContractItemComposeViewModel::getOut).mapToDouble(v -> v.getExclusiveTaxAmount().get()).sum(); + double outExclusiveTaxAmount = map.values().stream().map(ContractItemComposeViewModel::getOut) + .mapToDouble(v -> v.getExclusiveTaxAmount().get()).sum(); Platform.runLater(() -> model.getOut().getExclusiveTaxAmount().set(outExclusiveTaxAmount)); } @@ -194,7 +200,8 @@ public class SalesOrderTabSkinBillVoucher } Double price = getPrice.apply(v); double quantity = v.getQuantity(); - return contract.getCode() + " " + String.format(format, price) + " x " + quantity + " = " + String.format(format, (price * quantity)); + return contract.getCode() + " " + String.format(format, price) + " x " + quantity + " = " + + String.format(format, (price * quantity)); }).collect(Collectors.joining("\n")); setTooltip(text); } @@ -217,7 +224,8 @@ public class SalesOrderTabSkinBillVoucher } } - static class NumberCellFactory implements Callback, TableCell> { + static class NumberCellFactory implements + Callback, TableCell> { private final String format; private final String styleClass; diff --git a/client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinItems.java b/client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinItems.java index 8bf73dd..747bdde 100644 --- a/client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinItems.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinItems.java @@ -3,28 +3,27 @@ package com.ecep.contract.controller.tab; import java.time.LocalDate; import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; import org.hibernate.Hibernate; -import org.springframework.data.jpa.domain.Specification; import org.springframework.util.StringUtils; import com.ecep.contract.SpringApp; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.customer.SalesOrderWindowController; import com.ecep.contract.controller.table.AbstEntityTableTabSkin; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.contract.service.SaleOrdersService; -import com.ecep.contract.ds.contract.service.SalesOrderItemService; -import com.ecep.contract.ds.contract.vo.ContractItemComposeViewModel; -import com.ecep.contract.ds.contract.vo.SalesOrderItemViewModel; -import com.ecep.contract.ds.contract.vo.SalesOrderViewModel; import com.ecep.contract.model.Contract; import com.ecep.contract.model.ContractItem; import com.ecep.contract.model.SalesOrder; import com.ecep.contract.model.SalesOrderItem; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.SaleOrdersService; +import com.ecep.contract.service.SalesOrderItemService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.vm.ContractItemComposeViewModel; +import com.ecep.contract.vm.SalesOrderItemViewModel; +import com.ecep.contract.vm.SalesOrderViewModel; import javafx.application.Platform; import javafx.collections.ObservableList; @@ -105,10 +104,10 @@ public class SalesOrderTabSkinItems } @Override - public Specification getSpecification(SalesOrder parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.equal(root.get("order"), parent); - }); + public Map getSpecification(SalesOrder parent) { + Map params = getSpecification(); + params.put("order", parent); + return params; } ContractItemComposeViewModel createNew(String key, ContractItem item) { diff --git a/client/src/main/java/com/ecep/contract/controller/tab/VendorBidTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/tab/VendorBidTabSkinBase.java index f15cf15..101999a 100644 --- a/client/src/main/java/com/ecep/contract/controller/tab/VendorBidTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/VendorBidTabSkinBase.java @@ -3,27 +3,29 @@ package com.ecep.contract.controller.tab; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.Map; -import org.springframework.data.domain.Sort; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; import com.ecep.contract.ContractFileType; import com.ecep.contract.MyDateTimeUtils; import com.ecep.contract.SpringApp; -import com.ecep.contract.UITools; import com.ecep.contract.controller.company.CompanyWindowController; import com.ecep.contract.controller.vendor.VendorBidWindowController; +import com.ecep.contract.converter.CompanyStringConverter; import com.ecep.contract.converter.EntityStringConverter; -import com.ecep.contract.ds.company.CompanyStringConverter; -import com.ecep.contract.ds.company.service.CompanyService; -import com.ecep.contract.ds.contract.service.ContractFileService; -import com.ecep.contract.ds.contract.vo.ContractBidVendorViewModel; -import com.ecep.contract.ds.contract.vo.ContractFileViewModel; import com.ecep.contract.model.Company; import com.ecep.contract.model.Contract; import com.ecep.contract.model.ContractBidVendor; import com.ecep.contract.model.ContractFile; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.ContractFileService; +import com.ecep.contract.util.ParamUtils; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.BaseViewModel; +import com.ecep.contract.vm.ContractBidVendorViewModel; +import com.ecep.contract.vm.ContractFileViewModel; import javafx.beans.binding.Bindings; import javafx.beans.property.BooleanProperty; @@ -46,7 +48,6 @@ public class VendorBidTabSkinBase private final SimpleBooleanProperty changed = new SimpleBooleanProperty(false); - public VendorBidTabSkinBase(VendorBidWindowController controller) { super(controller); } @@ -76,20 +77,21 @@ public class VendorBidTabSkinBase controller.developDateField.setConverter(converter); controller.developDateField.valueProperty().bindBidirectional(quotationSheetViewModel.getApplyDate()); - viewModel.getQuotationSheet().addListener((observable, oldValue, newValue) -> quotationSheetViewModel.update(newValue)); - quotationSheetViewModel.getApplyDate().addListener((observable, oldValue, newValue) -> quotationSheetViewModel.getChanged().set(true)); + viewModel.getQuotationSheet() + .addListener((observable, oldValue, newValue) -> quotationSheetViewModel.update(newValue)); + quotationSheetViewModel.getApplyDate() + .addListener((observable, oldValue, newValue) -> quotationSheetViewModel.getChanged().set(true)); -// controller.pathField.textProperty().bind(viewModel.getPath()); + // controller.pathField.textProperty().bind(viewModel.getPath()); -// controller.descriptionField.textProperty().bindBidirectional(viewModel.getDescription()); - -// controller.createdField.textProperty().bind( -// Bindings.createStringBinding( -// () -> localDateTimeFormatter(viewModel.getCreated()), -// viewModel.getCreated()) -// ); -// controller.versionLabel.textProperty().bind(viewModel.getVersion().asString()); + // controller.descriptionField.textProperty().bindBidirectional(viewModel.getDescription()); + // controller.createdField.textProperty().bind( + // Bindings.createStringBinding( + // () -> localDateTimeFormatter(viewModel.getCreated()), + // viewModel.getCreated()) + // ); + // controller.versionLabel.textProperty().bind(viewModel.getVersion().asString()); controller.relativeCompanyBtn.disableProperty().bind(viewModel.getCompany().isNull()); controller.relativeCompanyBtn.setOnAction(event -> { @@ -121,20 +123,9 @@ public class VendorBidTabSkinBase if (contract == null) { return new ArrayList<>(); } - Specification spec = (root, query, builder) -> { - return builder.and( - builder.equal(root.get("contract"), contract), - builder.or( - builder.isNull(root.get("type")), - builder.equal(root.get("type"), ContractFileType.General), - builder.equal(root.get("type"), ContractFileType.QuotationSheet)) - , - builder.or( - builder.like(root.get("fileName"), "%" + p + "%"), - builder.like(root.get("description"), "%" + p + "%") - )); - }; - return getContractFileService().findAll(spec, Sort.unsorted()); + Map params = ParamUtils.builder().equals("contract", contract.getId()).build(); + params.put("searchText", p); + return getContractFileService().findAll(params, Pageable.ofSize(10)).getContent(); }); UITools.autoCompletion(textField, viewModel.getQuotationSheet(), stringConverter::suggest, stringConverter); } diff --git a/client/src/main/java/com/ecep/contract/controller/table/cell/BankTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/BankTableCell.java index 90fa324..6569452 100644 --- a/client/src/main/java/com/ecep/contract/controller/table/cell/BankTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/BankTableCell.java @@ -1,9 +1,9 @@ package com.ecep.contract.controller.table.cell; -import com.ecep.contract.IEntityService; import com.ecep.contract.SpringApp; -import com.ecep.contract.ds.other.service.BankService; import com.ecep.contract.model.Bank; +import com.ecep.contract.service.BankService; +import com.ecep.contract.service.IEntityService; import lombok.NoArgsConstructor; diff --git a/client/src/main/java/com/ecep/contract/controller/table/cell/CompanyVendorTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/CompanyVendorTableCell.java index 89d6be8..90913ee 100644 --- a/client/src/main/java/com/ecep/contract/controller/table/cell/CompanyVendorTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/CompanyVendorTableCell.java @@ -2,12 +2,12 @@ package com.ecep.contract.controller.table.cell; import org.hibernate.Hibernate; -import com.ecep.contract.IEntityService; import com.ecep.contract.SpringApp; -import com.ecep.contract.ds.company.service.CompanyService; -import com.ecep.contract.ds.vendor.service.CompanyVendorService; import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.CompanyVendorService; +import com.ecep.contract.service.IEntityService; import javafx.scene.control.TableCell; import javafx.scene.control.TableColumn; diff --git a/client/src/main/java/com/ecep/contract/controller/table/cell/ContractTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/ContractTableCell.java index 32af53b..78aaa19 100644 --- a/client/src/main/java/com/ecep/contract/controller/table/cell/ContractTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/ContractTableCell.java @@ -1,9 +1,9 @@ package com.ecep.contract.controller.table.cell; -import com.ecep.contract.IEntityService; import com.ecep.contract.SpringApp; -import com.ecep.contract.ds.contract.service.ContractService; import com.ecep.contract.model.Contract; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.IEntityService; public class ContractTableCell extends AsyncUpdateTableCell { public ContractTableCell() { diff --git a/client/src/main/java/com/ecep/contract/controller/table/cell/DepartmentTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/DepartmentTableCell.java index 55daab0..2584c6b 100644 --- a/client/src/main/java/com/ecep/contract/controller/table/cell/DepartmentTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/DepartmentTableCell.java @@ -1,9 +1,9 @@ package com.ecep.contract.controller.table.cell; -import com.ecep.contract.IEntityService; import com.ecep.contract.SpringApp; -import com.ecep.contract.ds.other.service.DepartmentService; import com.ecep.contract.model.Department; +import com.ecep.contract.service.DepartmentService; +import com.ecep.contract.service.IEntityService; import lombok.NoArgsConstructor; diff --git a/client/src/main/java/com/ecep/contract/controller/table/cell/EvaluationFileTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/EvaluationFileTableCell.java index 762c1ac..6cf26f5 100644 --- a/client/src/main/java/com/ecep/contract/controller/table/cell/EvaluationFileTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/EvaluationFileTableCell.java @@ -5,9 +5,9 @@ import java.io.File; import org.springframework.util.StringUtils; import com.ecep.contract.SpringApp; -import com.ecep.contract.ds.customer.service.CompanyCustomerFileService; import com.ecep.contract.model.CompanyCustomerEvaluationFormFile; import com.ecep.contract.model.CompanyCustomerFile; +import com.ecep.contract.service.CompanyCustomerFileService; import lombok.NoArgsConstructor; diff --git a/client/src/main/java/com/ecep/contract/controller/table/cell/InventoryTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/InventoryTableCell.java index a717a20..cc14f51 100644 --- a/client/src/main/java/com/ecep/contract/controller/table/cell/InventoryTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/InventoryTableCell.java @@ -3,10 +3,10 @@ package com.ecep.contract.controller.table.cell; import org.hibernate.Hibernate; import com.ecep.contract.SpringApp; -import com.ecep.contract.ds.other.service.InventoryCatalogService; -import com.ecep.contract.ds.other.service.InventoryService; import com.ecep.contract.model.Inventory; import com.ecep.contract.model.InventoryCatalog; +import com.ecep.contract.service.InventoryCatalogService; +import com.ecep.contract.service.InventoryService; import lombok.NoArgsConstructor; diff --git a/client/src/main/java/com/ecep/contract/controller/table/cell/InvoiceTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/InvoiceTableCell.java index 1d041de..53b8fc9 100644 --- a/client/src/main/java/com/ecep/contract/controller/table/cell/InvoiceTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/InvoiceTableCell.java @@ -1,9 +1,9 @@ package com.ecep.contract.controller.table.cell; -import com.ecep.contract.IEntityService; import com.ecep.contract.SpringApp; -import com.ecep.contract.ds.company.service.InvoiceService; import com.ecep.contract.model.Invoice; +import com.ecep.contract.service.IEntityService; +import com.ecep.contract.service.InvoiceService; public class InvoiceTableCell extends AsyncUpdateTableCell { diff --git a/client/src/main/java/com/ecep/contract/controller/table/cell/PurchaseOrderItemTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/PurchaseOrderItemTableCell.java index c3606dd..3033db8 100644 --- a/client/src/main/java/com/ecep/contract/controller/table/cell/PurchaseOrderItemTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/PurchaseOrderItemTableCell.java @@ -3,12 +3,12 @@ package com.ecep.contract.controller.table.cell; import org.hibernate.Hibernate; import com.ecep.contract.SpringApp; -import com.ecep.contract.ds.contract.service.PurchaseOrderItemService; -import com.ecep.contract.ds.contract.service.PurchaseOrdersService; -import com.ecep.contract.ds.other.service.InventoryCatalogService; -import com.ecep.contract.ds.other.service.InventoryService; import com.ecep.contract.model.Inventory; import com.ecep.contract.model.PurchaseOrderItem; +import com.ecep.contract.service.InventoryCatalogService; +import com.ecep.contract.service.InventoryService; +import com.ecep.contract.service.PurchaseOrderItemService; +import com.ecep.contract.service.PurchaseOrdersService; import lombok.NoArgsConstructor; diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorManagerSkin.java index ca2047f..1aed3d5 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorManagerSkin.java @@ -10,13 +10,12 @@ import org.springframework.data.jpa.domain.Specification; import com.ecep.contract.MyDateTimeUtils; import com.ecep.contract.controller.AbstEntityManagerSkin; import com.ecep.contract.controller.ComboBoxUtils; -import com.ecep.contract.ds.company.service.CompanyService; -import com.ecep.contract.ds.vendor.service.CompanyVendorService; +import com.ecep.contract.controller.table.cell.CompanyTableCell; import com.ecep.contract.model.CompanyVendor; import com.ecep.contract.model.VendorCatalog; import com.ecep.contract.model.VendorTypeLocal; -import com.ecep.contract.ui.table.cell.CompanyTableCell; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.CompanyVendorService; import com.ecep.contract.vm.CompanyVendorViewModel; import javafx.application.Platform; @@ -52,21 +51,19 @@ public class CompanyVendorManagerSkin } @Override - public Specification getSpecification() { - Specification spec = super.getSpecification(); + public Map getSpecification() { + Map params = super.getSpecification(); if (controller.typeSelector.getValue() != null) { - spec = SpecificationUtils.and(spec, (root, query, builder) -> { - return builder.equal(root.get("type"), controller.typeSelector.getValue().getType()); - }); + params.put("type", controller.typeSelector.getValue().getType()); } - return spec; + return params; } @Override public void initializeTable() { List vendorTypeLocals = getCompanyVendorService() - .findAllTypes(controller.getLocale().toLanguageTag()); + .findAllTypes(controller.getLocale()); ComboBoxUtils.initialComboBox(controller.typeSelector, vendorTypeLocals, true); controller.typeSelector.valueProperty().addListener((observable, oldValue, newValue) -> { loadTableDataSet(true); diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorManagerWindowController.java index d3b8a1c..06cfe9e 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorManagerWindowController.java @@ -2,7 +2,6 @@ package com.ecep.contract.controller.vendor; import java.time.LocalDate; import java.util.concurrent.CompletableFuture; -import java.util.function.Consumer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; @@ -12,18 +11,18 @@ import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Component; -import com.ecep.contract.UITools; +import com.ecep.contract.MessageHolder; import com.ecep.contract.controller.AbstManagerWindowController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.company.service.CompanyService; -import com.ecep.contract.ds.vendor.controller.CompanyVendorManagerSkin; -import com.ecep.contract.ds.vendor.controller.approved_list.CompanyVendorApprovedListManagerWindowController; -import com.ecep.contract.ds.vendor.controller.group.VendorGroupManagerWindowController; -import com.ecep.contract.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.ds.vendor.task.VendorVerifyAllTasker; +import com.ecep.contract.controller.vendor.approved_list.CompanyVendorApprovedListManagerWindowController; +import com.ecep.contract.controller.vendor.group.VendorGroupManagerWindowController; import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyVendor; import com.ecep.contract.model.VendorTypeLocal; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.CompanyVendorService; +import com.ecep.contract.task.VendorVerifyAllTasker; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.CompanyVendorViewModel; import javafx.event.ActionEvent; @@ -38,7 +37,6 @@ import javafx.stage.Stage; public class CompanyVendorManagerWindowController extends AbstManagerWindowController { - // columns public TableColumn idColumn; public TableColumn companyColumn; @@ -52,7 +50,6 @@ public class CompanyVendorManagerWindowController public ComboBox typeSelector; - @Autowired private CompanyService companyService; @Autowired @@ -73,21 +70,22 @@ public class CompanyVendorManagerWindowController CompletableFuture.runAsync(() -> { Pageable pageRequest = PageRequest.ofSize(25); + MessageHolder messageHolder = (level, msg) -> { + System.out.println(level + ">" + msg); + }; while (true) { Page page = companyVendorService.findAll(null, pageRequest); for (CompanyVendor companyVendor : page) { - Consumer status = (msg) -> { - System.out.println(page.getNumber() + "/" + page.getTotalPages() + " #" + companyVendor.getId() + ">" + msg); - }; - companyVendorService.reBuildingFiles(companyVendor, status); + MessageHolder sub = messageHolder + .sub(page.getNumber() + "/" + page.getTotalPages() + " #" + companyVendor.getId() + ">"); + companyVendorService.reBuildingFiles(companyVendor, sub); } if (!page.hasNext()) { break; } pageRequest = page.nextPageable(); } - }); } @@ -109,7 +107,6 @@ public class CompanyVendorManagerWindowController getSkin().loadTableDataSet(true); } - public void onOpenVendorGroupManagerAction(ActionEvent event) { show(VendorGroupManagerWindowController.class, null); } diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorTabSkinBase.java index ae4f7bd..52a7851 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorTabSkinBase.java @@ -5,18 +5,18 @@ import java.util.List; import com.ecep.contract.MyDateTimeUtils; import com.ecep.contract.SpringApp; -import com.ecep.contract.UITools; import com.ecep.contract.controller.ComboBoxUtils; import com.ecep.contract.controller.company.CompanyWindowController; import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.converter.CompanyStringConverter; import com.ecep.contract.converter.EntityStringConverter; -import com.ecep.contract.ds.company.service.CompanyContactService; -import com.ecep.contract.ds.vendor.service.CompanyVendorService; import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyContact; import com.ecep.contract.model.CompanyVendor; import com.ecep.contract.model.VendorTypeLocal; -import com.ecep.contract.service.CompanyStringConverter; +import com.ecep.contract.service.CompanyContactService; +import com.ecep.contract.service.CompanyVendorService; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.CompanyVendorViewModel; import com.ecep.contract.vm.CompanyViewModel; diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorTabSkinEntity.java b/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorTabSkinEntity.java index dac68b3..b1da0ac 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorTabSkinEntity.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorTabSkinEntity.java @@ -2,7 +2,6 @@ package com.ecep.contract.controller.vendor; import java.time.LocalDate; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.table.cell.EmployeeTableCell; import com.ecep.contract.converter.EntityStringConverter; @@ -10,6 +9,8 @@ import com.ecep.contract.model.CompanyVendorEntity; import com.ecep.contract.model.Employee; import com.ecep.contract.model.VendorCatalog; import com.ecep.contract.service.CompanyVendorEntityService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.vm.CompanyVendorEntityViewModel; import com.ecep.contract.vm.VendorEntityViewModel; import javafx.scene.control.MenuItem; @@ -18,25 +19,24 @@ import javafx.scene.control.TableColumn; @FxmlPath("/ui/company/vendor/vendor-tab-entity.fxml") public class CompanyVendorTabSkinEntity - extends AbstCompanyVendorTableTabSkin + extends AbstCompanyVendorTableTabSkin implements TabSkin { // 关联项 tab - public TableColumn entityTable_idColumn; - public TableColumn entityTable_catalogColumn; - public TableColumn entityTable_nameColumn; - public TableColumn entityTable_abbNameColumn; - public TableColumn entityTable_codeColumn; - public TableColumn entityTable_creatorColumn; - public TableColumn entityTable_modifyDateColumn; - public TableColumn entityTable_modifierColumn; - public TableColumn entityTable_developDateColumn; - public TableColumn entityTable_updatedDateColumn; + public TableColumn entityTable_idColumn; + public TableColumn entityTable_catalogColumn; + public TableColumn entityTable_nameColumn; + public TableColumn entityTable_abbNameColumn; + public TableColumn entityTable_codeColumn; + public TableColumn entityTable_creatorColumn; + public TableColumn entityTable_modifyDateColumn; + public TableColumn entityTable_modifierColumn; + public TableColumn entityTable_developDateColumn; + public TableColumn entityTable_updatedDateColumn; public MenuItem entityTable_menu_refresh; public MenuItem entityTable_menu_del; - public CompanyVendorTabSkinEntity(CompanyVendorWindowController controller) { super(controller); } @@ -77,7 +77,7 @@ public class CompanyVendorTabSkinEntity entityTable_menu_del.setOnAction(this::onTableDeleteAction); } - private void initializeEntityTabCatalogColumn(TableColumn column) { + private void initializeEntityTabCatalogColumn(TableColumn column) { EntityStringConverter converter = new EntityStringConverter<>(); converter.setInitialized(v -> getCompanyVendorService().findCatalogById(v.getId())); column.setCellValueFactory(param -> param.getValue().getCatalog().map(converter::toString)); diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/PurchaseBillVoucherWindowController.java b/client/src/main/java/com/ecep/contract/controller/vendor/PurchaseBillVoucherWindowController.java index d8c2fc2..1a5e0da 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/PurchaseBillVoucherWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/PurchaseBillVoucherWindowController.java @@ -6,10 +6,11 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstEntityController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.contract.service.PurchaseBillVoucherService; -import com.ecep.contract.ds.contract.vo.PurchaseBillVoucherViewModel; +import com.ecep.contract.controller.vendor.purchase.purchase_bill.PurchaseBillVoucherTabSkinItems; import com.ecep.contract.model.PurchaseBillVoucher; +import com.ecep.contract.service.PurchaseBillVoucherService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.vm.PurchaseBillVoucherViewModel; import javafx.scene.control.Tab; import javafx.scene.control.TabPane; diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/PurchaseOrderWindowController.java b/client/src/main/java/com/ecep/contract/controller/vendor/PurchaseOrderWindowController.java index b416578..e54be42 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/PurchaseOrderWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/PurchaseOrderWindowController.java @@ -8,10 +8,13 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstEntityController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.contract.service.PurchaseOrdersService; -import com.ecep.contract.ds.contract.vo.PurchaseOrderViewModel; +import com.ecep.contract.controller.vendor.purchase.order.PurchaseOrderTabSkinBase; +import com.ecep.contract.controller.vendor.purchase.order.PurchaseOrderTabSkinBillVoucher; +import com.ecep.contract.controller.vendor.purchase.order.PurchaseOrderTabSkinItems; import com.ecep.contract.model.PurchaseOrder; +import com.ecep.contract.service.PurchaseOrdersService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.vm.PurchaseOrderViewModel; import javafx.scene.control.Button; import javafx.scene.control.Label; diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/VendorTabSkinFile.java b/client/src/main/java/com/ecep/contract/controller/vendor/VendorTabSkinFile.java index a6e47d6..4427df5 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/VendorTabSkinFile.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/VendorTabSkinFile.java @@ -14,9 +14,7 @@ import com.ecep.contract.DesktopUtils; import com.ecep.contract.MyDateTimeUtils; import com.ecep.contract.SpringApp; import com.ecep.contract.constant.CompanyVendorConstant; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.tab.TabSkin; -import com.ecep.contract.ds.vendor.repository.CompanyVendorFileTypeLocalRepository; import com.ecep.contract.model.BaseEnumEntity; import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyVendor; @@ -24,11 +22,13 @@ import com.ecep.contract.model.CompanyVendorFile; import com.ecep.contract.model.CompanyVendorFileTypeLocal; import com.ecep.contract.service.CompanyVendorFileService; import com.ecep.contract.task.CompanyVendorEvaluationFormUpdateTask; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.util.UITools; import com.ecep.contract.vm.CompanyVendorFileViewModel; import javafx.application.Platform; import javafx.beans.binding.Bindings; +import javafx.collections.FXCollections; import javafx.collections.ObservableMap; import javafx.event.ActionEvent; import javafx.scene.control.Button; @@ -91,8 +91,8 @@ public class VendorTabSkinFile table.disableProperty().bind(viewModel.getPath().isEmpty()); fileTable_idColumn.setCellValueFactory(param -> param.getValue().getId()); - ObservableMap observableMapByLocal = SpringApp - .getBean(CompanyVendorFileTypeLocalRepository.class).getObservableMapByLocal(); + ObservableMap observableMapByLocal = FXCollections + .observableMap(companyVendorFileService.getFileTypeLocalMap(getLocale())); fileTable_typeColumn.setCellValueFactory(param -> Bindings.valueAt(observableMapByLocal, param.getValue().getType()).map(BaseEnumEntity::getValue)); diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListManagerSkin.java index e7510c7..07f4303 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListManagerSkin.java @@ -1,8 +1,8 @@ package com.ecep.contract.controller.vendor.approved_list; import com.ecep.contract.controller.AbstEntityManagerSkin; -import com.ecep.contract.ds.vendor.service.CompanyVendorApprovedListService; import com.ecep.contract.model.CompanyVendorApprovedList; +import com.ecep.contract.service.CompanyVendorApprovedListService; import com.ecep.contract.vm.CompanyVendorApprovedListViewModel; import javafx.event.ActionEvent; diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListManagerWindowController.java index a9e8f91..d513650 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListManagerWindowController.java @@ -8,9 +8,9 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstManagerWindowController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.vendor.service.CompanyVendorApprovedListService; import com.ecep.contract.model.CompanyVendorApprovedList; +import com.ecep.contract.service.CompanyVendorApprovedListService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.CompanyVendorApprovedListViewModel; import javafx.event.ActionEvent; diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListTabSkinFiles.java b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListTabSkinFiles.java index acde89f..ef8717d 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListTabSkinFiles.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListTabSkinFiles.java @@ -2,20 +2,18 @@ package com.ecep.contract.controller.vendor.approved_list; import java.io.File; import java.time.LocalDate; +import java.util.Map; import java.util.concurrent.CompletableFuture; -import org.springframework.data.jpa.domain.Specification; import org.springframework.util.StringUtils; import com.ecep.contract.DesktopUtils; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.table.AbstEntityTableTabSkin; -import com.ecep.contract.ds.company.CompanyFileUtils; -import com.ecep.contract.ds.vendor.service.CompanyVendorApprovedFileService; import com.ecep.contract.model.CompanyVendorApprovedFile; import com.ecep.contract.model.CompanyVendorApprovedList; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.service.CompanyVendorApprovedFileService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.CompanyVendorApprovedFileViewModel; import com.ecep.contract.vm.CompanyVendorApprovedListViewModel; @@ -54,10 +52,10 @@ public class CompanyVendorApprovedListTabSkinFiles } @Override - public Specification getSpecification(CompanyVendorApprovedList parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.equal(root.get("list"), parent); - }); + public Map getSpecification(CompanyVendorApprovedList parent) { + Map params = getSpecification(); + params.put("list", parent); + return params; } @Override @@ -80,7 +78,7 @@ public class CompanyVendorApprovedListTabSkinFiles int id = viewModel.getId().get(); CompanyVendorApprovedList list = controller.getViewModelService().findById(id); try { - if (controller.getViewModelService().reBuildingFiles(list, this::setStatus)) { + if (getViewModelService().reBuildingFiles(list, (level, msg) -> setStatus(msg))) { loadTableDataSet(); } } catch (Exception e) { @@ -92,7 +90,7 @@ public class CompanyVendorApprovedListTabSkinFiles @Override protected void onTableRowDoubleClickedAction(CompanyVendorApprovedFileViewModel item) { String parent = viewModel.getPath().get(); - if (!CompanyFileUtils.exists(parent)) { + if (!controller.getViewModelService().existPath(getEntity())) { setStatus("合同的目录未设置或者无效,请检查!"); return; } diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListTabSkinVendors.java b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListTabSkinVendors.java index 68cbbb4..1b4e33c 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListTabSkinVendors.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListTabSkinVendors.java @@ -2,31 +2,30 @@ package com.ecep.contract.controller.vendor.approved_list; import java.util.ArrayList; import java.util.List; +import java.util.Map; import org.hibernate.Hibernate; -import org.springframework.data.jpa.domain.Specification; import org.springframework.util.StringUtils; -import com.ecep.contract.UITools; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.table.AbstEntityTableTabSkin; +import com.ecep.contract.controller.table.cell.CompanyVendorTableCell; import com.ecep.contract.controller.vendor.CompanyVendorWindowController; -import com.ecep.contract.ds.company.service.CompanyOldNameService; -import com.ecep.contract.ds.company.service.CompanyService; -import com.ecep.contract.ds.other.service.SysConfService; -import com.ecep.contract.ds.vendor.service.CompanyVendorApprovedItemService; -import com.ecep.contract.ds.vendor.service.CompanyVendorService; import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyOldName; import com.ecep.contract.model.CompanyVendor; import com.ecep.contract.model.CompanyVendorApprovedItem; import com.ecep.contract.model.CompanyVendorApprovedList; import com.ecep.contract.model.VendorTypeLocal; -import com.ecep.contract.ui.table.cell.CompanyVendorTableCell; +import com.ecep.contract.service.CompanyOldNameService; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.CompanyVendorApprovedItemService; +import com.ecep.contract.service.CompanyVendorService; +import com.ecep.contract.service.SysConfService; import com.ecep.contract.util.BooleanConfigProperty; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.util.IntegerConfigProperty; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.CompanyVendorApprovedItemViewModel; import com.ecep.contract.vm.CompanyVendorApprovedListViewModel; @@ -112,22 +111,20 @@ public class CompanyVendorApprovedListTabSkinVendors } @Override - public Specification getSpecification() { - Specification spec = super.getSpecification(); + public Map getSpecification() { + Map params = super.getSpecification(); VendorTypeLocal selectorType = typeSelector.getValue(); if (selectorType != null) { - spec = SpecificationUtils.and(spec, (root, query, builder) -> { - return builder.equal(root.get("type"), selectorType.getType()); - }); + params.put("type", selectorType.getType()); } - return spec; + return params; } @Override - public Specification getSpecification(CompanyVendorApprovedList parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.equal(root.get("list"), parent); - }); + public Map getSpecification(CompanyVendorApprovedList parent) { + Map params = getSpecification(); + params.put("list", parent.getId()); + return params; } @Override diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListVendorExportTask.java b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListVendorExportTask.java index 19393a9..748a51c 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListVendorExportTask.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListVendorExportTask.java @@ -35,20 +35,13 @@ import org.apache.poi.ss.util.CellRangeAddress; import org.hibernate.Hibernate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.util.StringUtils; import com.ecep.contract.MessageHolder; import com.ecep.contract.MyDateTimeUtils; import com.ecep.contract.VendorType; -import com.ecep.contract.ds.company.service.CompanyContactService; -import com.ecep.contract.ds.company.service.CompanyOldNameService; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.vendor.service.CompanyVendorApprovedFileService; -import com.ecep.contract.ds.vendor.service.CompanyVendorApprovedItemService; -import com.ecep.contract.ds.vendor.service.CompanyVendorApprovedListService; -import com.ecep.contract.ds.vendor.service.CompanyVendorFileService; -import com.ecep.contract.ds.vendor.service.CompanyVendorService; import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyContact; import com.ecep.contract.model.CompanyVendor; @@ -56,8 +49,17 @@ import com.ecep.contract.model.CompanyVendorApprovedFile; import com.ecep.contract.model.CompanyVendorApprovedItem; import com.ecep.contract.model.CompanyVendorApprovedList; import com.ecep.contract.model.Contract; -import com.ecep.contract.ui.Tasker; +import com.ecep.contract.service.CompanyContactService; +import com.ecep.contract.service.CompanyOldNameService; +import com.ecep.contract.service.CompanyVendorApprovedFileService; +import com.ecep.contract.service.CompanyVendorApprovedItemService; +import com.ecep.contract.service.CompanyVendorApprovedListService; +import com.ecep.contract.service.CompanyVendorFileService; +import com.ecep.contract.service.CompanyVendorService; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.task.Tasker; import com.ecep.contract.util.ExcelUtils; +import com.ecep.contract.util.ParamUtils; import lombok.Setter; @@ -80,7 +82,6 @@ public class CompanyVendorApprovedListVendorExportTask extends Tasker { private CompanyVendorService companyVendorService; private CompanyContactService companyContactService; - private static final String FILE_NAME = "供方名录-%s.xlsx"; private CompanyVendorApprovedListService getService() { @@ -173,8 +174,7 @@ public class CompanyVendorApprovedListVendorExportTask extends Tasker { holder.warn("供方名录文件已经存在," + destFile.getName()); try ( InputStream inp = new FileInputStream(destFile); - Workbook wb = WorkbookFactory.create(inp) - ) { + Workbook wb = WorkbookFactory.create(inp)) { updateVendorApprovedList(wb, destFile, holder); holder.info("评估表已更新"); } catch (Exception e) { @@ -186,8 +186,7 @@ public class CompanyVendorApprovedListVendorExportTask extends Tasker { holder.debug("根据模板 " + template_file_name + " 创建供方名录 " + destFile.getName()); try ( InputStream inp = new FileInputStream(template); - Workbook wb = WorkbookFactory.create(inp) - ) { + Workbook wb = WorkbookFactory.create(inp)) { updateVendorApprovedList(wb, destFile, holder); holder.info("供方名录已创建"); } catch (Exception e) { @@ -216,7 +215,6 @@ public class CompanyVendorApprovedListVendorExportTask extends Tasker { CellStyle dateCellStyle = null; CellStyle amountCellStyle = null; - AtomicInteger meetRow = new AtomicInteger(0); LocalDate endDate = null; @@ -226,7 +224,8 @@ public class CompanyVendorApprovedListVendorExportTask extends Tasker { endDate = approvedList.getPublishDate(); beginDate = LocalDate.of(endDate.getYear() - 2, 1, 1); - Font venodrNameCellFont = wb.findFont(true, IndexedColors.BLACK.getIndex(), (short) 16, "微软雅黑", false, false, Font.SS_NONE, Font.U_NONE); + Font venodrNameCellFont = wb.findFont(true, IndexedColors.BLACK.getIndex(), (short) 16, "微软雅黑", false, false, + Font.SS_NONE, Font.U_NONE); if (venodrNameCellFont == null) { venodrNameCellFont = wb.createFont(); venodrNameCellFont.setBold(true); @@ -242,18 +241,17 @@ public class CompanyVendorApprovedListVendorExportTask extends Tasker { // 遍历已有的样式,寻找匹配的 for (int i = 0; i < wb.getNumCellStyles(); i++) { CellStyle existing = wb.getCellStyleAt(i); -// updateMessage("existing CellStyle[" + i + "]"); -// updateMessage("[" + i + "] DataFormat = " + existing.getDataFormat() + -// ", FormatString = " + existing.getDataFormatString()); -// updateMessage("[" + i + "] Fill Pattern = " + existing.getFillPattern() + -// ", ForegroundColor = " + existing.getFillForegroundColor() + -// ", BackgroundColor = " + existing.getFillBackgroundColor()); -// updateMessage("[" + i + "] Alignment = " + existing.getAlignment()); -// updateMessage("[" + i + "] Border Bottom = " + existing.getBorderBottom() + -// ", Top = " + existing.getBorderTop() + -// ", Left = " + existing.getBorderLeft() + -// ", Right = " + existing.getBorderRight()); - + // updateMessage("existing CellStyle[" + i + "]"); + // updateMessage("[" + i + "] DataFormat = " + existing.getDataFormat() + + // ", FormatString = " + existing.getDataFormatString()); + // updateMessage("[" + i + "] Fill Pattern = " + existing.getFillPattern() + + // ", ForegroundColor = " + existing.getFillForegroundColor() + + // ", BackgroundColor = " + existing.getFillBackgroundColor()); + // updateMessage("[" + i + "] Alignment = " + existing.getAlignment()); + // updateMessage("[" + i + "] Border Bottom = " + existing.getBorderBottom() + + // ", Top = " + existing.getBorderTop() + + // ", Left = " + existing.getBorderLeft() + + // ", Right = " + existing.getBorderRight()); if (existing.getDataFormat() == 0) { @@ -280,7 +278,6 @@ public class CompanyVendorApprovedListVendorExportTask extends Tasker { } } - if (existing.getDataFormat() > 0) { String formatString = existing.getDataFormatString(); if ("yyyy-mm-dd".equals(formatString)) { @@ -337,7 +334,6 @@ public class CompanyVendorApprovedListVendorExportTask extends Tasker { sheet = wb.getSheetAt(1); updateTypicallySheet(wb, sheet, holder); - // 输出到文件 try (OutputStream fileOut = new FileOutputStream(destFile)) { wb.write(fileOut); @@ -349,11 +345,11 @@ public class CompanyVendorApprovedListVendorExportTask extends Tasker { private void updateTypicallySheet(Workbook wb, Sheet sheet, MessageHolder holder) { updateTitle("更新一般供方 Sheet"); - List items = getItemService().findAll((root, query, cb) -> { - return cb.and( - cb.equal(root.get("type"), VendorType.TYPICALLY), - cb.equal(root.get("list").get("id"), approvedList.getId())); - }, Sort.by("vendor")); + List items = getItemService() + .findAll(ParamUtils.builder().equals("type", VendorType.TYPICALLY) + .equals("list", approvedList.getId()).build(), Pageable.unpaged(Sort.by("vendor"))) + .getContent(); + holder.debug("载入新一般供方:" + items.size() + " 条"); int prefixRow = 2; @@ -364,7 +360,6 @@ public class CompanyVendorApprovedListVendorExportTask extends Tasker { borderStyle.setBorderLeft(BorderStyle.THIN); // 左边框 borderStyle.setBorderRight(BorderStyle.THIN); // 右边框 - List meetQualified = new ArrayList<>(); for (int i = 0; i < items.size(); i++) { @@ -419,7 +414,6 @@ public class CompanyVendorApprovedListVendorExportTask extends Tasker { sheet.removeRow(sheet.getRow(i)); } - if (!meetQualified.isEmpty()) { // 移除旧数据 Sheet changeSheet = wb.getSheet(STR_CHANGE_VENDOR_TYPE_SHEET); @@ -465,7 +459,8 @@ public class CompanyVendorApprovedListVendorExportTask extends Tasker { holder.info("详情输出到 " + sheet.getSheetName() + " Sheet 中,请查看"); } - private void outputMeetQualified(Sheet sheet, CompanyVendor vendor, String vendorName, CompanyVendorApprovedItem item) { + private void outputMeetQualified(Sheet sheet, CompanyVendor vendor, String vendorName, + CompanyVendorApprovedItem item) { AtomicInteger row = meetRow; setCellValue(sheet, row.get(), 1, "供方:" + vendorName).setCellStyle(venodrNameCellStyle); sheet.getRow(row.get()).setHeight((short) (30 * 20)); @@ -477,8 +472,8 @@ public class CompanyVendorApprovedListVendorExportTask extends Tasker { List contractList = getContractService().findAllByCompanyVendor(vendor, beginDate, endDate); - Map> collected = contractList.stream().collect(Collectors.groupingBy(v -> v.getSetupDate().getYear())); - + Map> collected = contractList.stream() + .collect(Collectors.groupingBy(v -> v.getSetupDate().getYear())); // 输出统计 setCellValue(sheet, row.get(), 1, "按年份统计分析"); @@ -499,8 +494,7 @@ public class CompanyVendorApprovedListVendorExportTask extends Tasker { setCellValue(sheet, row.get(), 2, contracts.size()).setCellStyle(cellStyle); setCellValue(sheet, row.get(), 3, contracts.stream() .filter(v -> v.getAmount() != null) - .mapToDouble(Contract::getAmount).sum() - ).setCellStyle(amountCellStyle); + .mapToDouble(Contract::getAmount).sum()).setCellStyle(amountCellStyle); } row.getAndIncrement(); } @@ -531,18 +525,17 @@ public class CompanyVendorApprovedListVendorExportTask extends Tasker { }); setCellValue(sheet, row.get(), 1, "-- 结束 --"); - //增加分页符 + // 增加分页符 sheet.setRowBreak(row.get()); row.getAndIncrement(); } private void updateQualifiedSheet(Sheet sheet, MessageHolder holder) { updateTitle("更新合格供方 Sheet"); - List items = getItemService().findAll((root, query, cb) -> { - return cb.and( - cb.equal(root.get("type"), VendorType.QUALIFIED), - cb.equal(root.get("list").get("id"), approvedList.getId())); - }, Sort.by("vendor")); + + List items = getItemService().findAll( + ParamUtils.builder().equals("type", VendorType.QUALIFIED).equals("list", approvedList.getId()).build(), + Pageable.unpaged(Sort.by("vendor.name"))).getContent(); holder.debug("载入合共供方:" + items.size() + " 条"); int prefixRow = 6; @@ -608,10 +601,8 @@ public class CompanyVendorApprovedListVendorExportTask extends Tasker { sheet.shiftRows(endRow + 1, totalRows, -rows, true, true); } - } - for (int i = 0; i < items.size(); i++) { CompanyVendorApprovedItem item = items.get(i); updateProgress(i, items.size()); @@ -673,7 +664,6 @@ public class CompanyVendorApprovedListVendorExportTask extends Tasker { } } - // setCellValue(sheet, "B" + (prefixRow + 2), "编制/日期"); } diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListVendorImportTask.java b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListVendorImportTask.java index efe84d9..4de1ba0 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListVendorImportTask.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListVendorImportTask.java @@ -15,18 +15,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; import org.springframework.util.StringUtils; import com.ecep.contract.CompanyVendorFileType; import com.ecep.contract.MessageHolder; import com.ecep.contract.VendorType; -import com.ecep.contract.ds.company.service.CompanyOldNameService; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.vendor.service.CompanyVendorApprovedItemService; -import com.ecep.contract.ds.vendor.service.CompanyVendorApprovedListService; -import com.ecep.contract.ds.vendor.service.CompanyVendorFileService; -import com.ecep.contract.ds.vendor.service.CompanyVendorService; import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyOldName; import com.ecep.contract.model.CompanyVendor; @@ -34,11 +27,17 @@ import com.ecep.contract.model.CompanyVendorApprovedItem; import com.ecep.contract.model.CompanyVendorApprovedList; import com.ecep.contract.model.CompanyVendorFile; import com.ecep.contract.model.Contract; -import com.ecep.contract.ui.Tasker; +import com.ecep.contract.service.CompanyOldNameService; +import com.ecep.contract.service.CompanyVendorApprovedItemService; +import com.ecep.contract.service.CompanyVendorApprovedListService; +import com.ecep.contract.service.CompanyVendorFileService; +import com.ecep.contract.service.CompanyVendorService; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.task.Tasker; +import com.ecep.contract.util.ParamUtils; import lombok.Setter; - /** * 从现有的供应商中导入 */ @@ -102,13 +101,12 @@ public class CompanyVendorApprovedListVendorImportTask extends Tasker { service = getBean(CompanyVendorApprovedListService.class); CompanyVendorService vendorService = getBean(CompanyVendorService.class); - Page page = vendorService.findAll((root, query, builder) -> { - return builder.and( - builder.isNotNull(root.get("created")), - builder.lessThan(root.get("developDate"), endDate) - ); - }, Pageable.unpaged()); - + Page page = vendorService.findAll( + ParamUtils.builder() + .isNotNull("created") + .lessThan("developDate", endDate) + .build(), + Pageable.unpaged()); holder.debug("读取到" + page.getTotalElements()); try (Stream stream = page.stream()) { stream.forEach(v -> { @@ -128,7 +126,6 @@ public class CompanyVendorApprovedListVendorImportTask extends Tasker { return null; } - /** * 是否输出不合格供应商 */ @@ -148,7 +145,6 @@ public class CompanyVendorApprovedListVendorImportTask extends Tasker { return; } - MessageHolder subHolder = holder.sub(company.getName() + " "); VendorType vendorType = vendor.getType(); @@ -173,7 +169,6 @@ public class CompanyVendorApprovedListVendorImportTask extends Tasker { item.setList(approvedList); item.setVendor(vendor); - // 当前供应商分类是不合格供应商时 if (vendorType == VendorType.UNQUALIFIED) { // 检索查看供方的评价表, 看与发布日期期间是否有评价表 @@ -258,7 +253,6 @@ public class CompanyVendorApprovedListVendorImportTask extends Tasker { item.setDescription("未知供方分类"); } - // 匹配的历史名称 updateVendorNameWithOldName(vendor, item); getItemService().save(item); @@ -286,7 +280,8 @@ public class CompanyVendorApprovedListVendorImportTask extends Tasker { if (company == null) { return; } - CompanyOldName companyOldName = getCompanyOldNameService().findMatchByDate(company, approvedList.getPublishDate()); + CompanyOldName companyOldName = getCompanyOldNameService().findMatchByDate(company, + approvedList.getPublishDate()); if (companyOldName != null) { item.setVendorName(companyOldName.getName()); } @@ -299,8 +294,7 @@ public class CompanyVendorApprovedListVendorImportTask extends Tasker { private boolean logUnqualifiedVendorRemove = true; private void updateItem( - CompanyVendor vendor, CompanyVendorApprovedItem item, MessageHolder holder - ) { + CompanyVendor vendor, CompanyVendorApprovedItem item, MessageHolder holder) { VendorType t1 = item.getType(); VendorType vendorType = vendor.getType(); CompanyVendorApprovedItemService itemService = getItemService(); @@ -421,8 +415,7 @@ public class CompanyVendorApprovedListVendorImportTask extends Tasker { * @see #findAllEvaluationFormFiles(CompanyVendor, LocalDate) */ private boolean checkAsQualifiedVendorByEvaluationFormFiles( - CompanyVendor vendor, CompanyVendorApprovedItem item, MessageHolder holder - ) { + CompanyVendor vendor, CompanyVendorApprovedItem item, MessageHolder holder) { List files = findAllEvaluationFormFiles(vendor, approvedList.getPublishDate()); if (files.isEmpty()) { return false; @@ -491,10 +484,8 @@ public class CompanyVendorApprovedListVendorImportTask extends Tasker { return true; } - private boolean checkAsTypicallyVendorByContracts( - CompanyVendor vendor, CompanyVendorApprovedItem item, Consumer consumer - ) { + CompanyVendor vendor, CompanyVendorApprovedItem item, Consumer consumer) { // 查看供方的合同,看近3年期间是否有合同 List contracts = findAllVendorContracts(vendor, approvedList.getPublishDate()); if (contracts.isEmpty()) { @@ -502,7 +493,8 @@ public class CompanyVendorApprovedListVendorImportTask extends Tasker { } // 合同按年份分组 - Map> collect = contracts.stream().collect(Collectors.groupingBy(v -> v.getSetupDate().getYear())); + Map> collect = contracts.stream() + .collect(Collectors.groupingBy(v -> v.getSetupDate().getYear())); // 3年都有合同, 看是否符合合格供方标准 if (collect.size() == vendorContractMinusYear) { // 每年的合同都超过1个合同 @@ -520,7 +512,8 @@ public class CompanyVendorApprovedListVendorImportTask extends Tasker { } } else { if (logTypicallyVendorNoThreeYearContractDetail) { - Map m = collect.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, v -> v.getValue().size())); + Map m = collect.entrySet().stream() + .collect(Collectors.toMap(Map.Entry::getKey, v -> v.getValue().size())); consumer.accept("供方近" + vendorContractMinusYear + "年合作情况" + m + ", 不符合合格供方标准"); } } @@ -580,14 +573,8 @@ public class CompanyVendorApprovedListVendorImportTask extends Tasker { private List findAllEvaluationFormFiles(CompanyVendor vendor, LocalDate publishDate) { CompanyVendorFileService fileService = getCompanyVendorFileService(); LocalDate miniDate = publishDate.minusYears(vendorFileMinusYear); - - return fileService.findAll((root, query, builder) -> { - return builder.and( - builder.equal(root.get("vendor"), vendor), - builder.isTrue(root.get("valid")), - builder.equal(root.get("type"), CompanyVendorFileType.EvaluationForm), - builder.between(root.get("signDate"), miniDate, publishDate) - ); - }, Sort.unsorted()); + return fileService.findAll(ParamUtils.builder().equals("vendor", vendor.getId()).equals("valid", true) + .equals("type", CompanyVendorFileType.EvaluationForm).between("signDate", miniDate, publishDate) + .build(), Pageable.unpaged()).getContent(); } } diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListWindowController.java b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListWindowController.java index c836aab..abd9c09 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListWindowController.java @@ -11,11 +11,11 @@ import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; import com.ecep.contract.DesktopUtils; -import com.ecep.contract.UITools; import com.ecep.contract.controller.AbstEntityController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.vendor.service.CompanyVendorApprovedListService; import com.ecep.contract.model.CompanyVendorApprovedList; +import com.ecep.contract.service.CompanyVendorApprovedListService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.UITools; import com.ecep.contract.vm.CompanyVendorApprovedListViewModel; import javafx.event.ActionEvent; diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/group/AbstVendorGroupBasedTabSkin.java b/client/src/main/java/com/ecep/contract/controller/vendor/group/AbstVendorGroupBasedTabSkin.java index ae0e9dd..244db60 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/group/AbstVendorGroupBasedTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/group/AbstVendorGroupBasedTabSkin.java @@ -2,8 +2,8 @@ package com.ecep.contract.controller.vendor.group; import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; import com.ecep.contract.controller.tab.TabSkin; -import com.ecep.contract.ds.vendor.service.VendorGroupService; import com.ecep.contract.model.VendorGroup; +import com.ecep.contract.service.VendorGroupService; import com.ecep.contract.vm.VendorGroupViewModel; public abstract class AbstVendorGroupBasedTabSkin diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupManagerSkin.java index 665468c..db563e9 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupManagerSkin.java @@ -1,16 +1,17 @@ package com.ecep.contract.controller.vendor.group; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.springframework.data.domain.Page; -import org.springframework.data.jpa.domain.Specification; import org.springframework.util.StringUtils; import com.ecep.contract.controller.AbstEntityManagerSkin; import com.ecep.contract.controller.ManagerSkin; import com.ecep.contract.controller.table.EditableEntityTableTabSkin; -import com.ecep.contract.ds.vendor.service.VendorGroupService; import com.ecep.contract.model.VendorGroup; +import com.ecep.contract.service.VendorGroupService; import com.ecep.contract.vm.VendorGroupViewModel; import javafx.scene.control.TableColumn; @@ -18,7 +19,8 @@ import javafx.scene.control.cell.TextFieldTableCell; import lombok.Setter; public class VendorGroupManagerSkin - extends AbstEntityManagerSkin + extends + AbstEntityManagerSkin implements ManagerSkin, EditableEntityTableTabSkin { @Setter @@ -42,25 +44,18 @@ public class VendorGroupManagerSkin @Override protected List loadTableData() { - Specification spec = null; + Map params = new HashMap<>(); String searchText = controller.searchKeyField.getText(); if (StringUtils.hasText(searchText)) { - spec = (root, query, builder) -> { - return builder.or( - builder.like(root.get("name"), "%" + searchText + "%"), - builder.like(root.get("code"), "%" + searchText + "%"), - builder.like(root.get("description"), "%" + searchText + "%") - ); - }; + params.put("searchText", searchText); } - - Page page = getVendorGroupService().findAll(spec, getPageable()); + Page page = getVendorGroupService().findAll(params, getPageable()); updateFooter(page); return page.map(VendorGroupViewModel::from).toList(); } private void initializeSaleTypeTable() { -// table.setEditable(true); + // table.setEditable(true); controller.idColumn.setCellValueFactory(param -> param.getValue().getId()); controller.idColumn.setEditable(false); @@ -104,5 +99,4 @@ public class VendorGroupManagerSkin acceptCellEditEvent(event, VendorGroupViewModel::getCode); } - } diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupManagerWindowController.java index 3ccbf34..4c82571 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupManagerWindowController.java @@ -6,9 +6,9 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.ecep.contract.controller.AbstManagerWindowController; -import com.ecep.contract.util.FxmlPath; -import com.ecep.contract.ds.vendor.service.VendorGroupService; import com.ecep.contract.model.VendorGroup; +import com.ecep.contract.service.VendorGroupService; +import com.ecep.contract.util.FxmlPath; import com.ecep.contract.vm.VendorGroupViewModel; import javafx.scene.control.TableColumn; diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupRequireFilesTabSkin.java b/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupRequireFilesTabSkin.java index b846c0c..3497d8e 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupRequireFilesTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupRequireFilesTabSkin.java @@ -8,10 +8,10 @@ import org.controlsfx.control.ListSelectionView; import com.ecep.contract.ContractFileType; import com.ecep.contract.SpringApp; import com.ecep.contract.controller.tab.TabSkin; -import com.ecep.contract.ds.contract.service.ContractFileService; -import com.ecep.contract.ds.vendor.service.VendorGroupRequireFileTypeService; import com.ecep.contract.model.ContractFileTypeLocal; import com.ecep.contract.model.VendorGroupRequireFileType; +import com.ecep.contract.service.ContractFileService; +import com.ecep.contract.service.VendorGroupRequireFileTypeService; import impl.org.controlsfx.skin.ListSelectionViewSkin; import javafx.beans.property.SimpleBooleanProperty; diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinBase.java index 8b05d50..7839879 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinBase.java @@ -2,16 +2,16 @@ package com.ecep.contract.controller.vendor.purchase.order; import com.ecep.contract.MyDateTimeUtils; import com.ecep.contract.SpringApp; -import com.ecep.contract.UITools; import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.vendor.PurchaseOrderWindowController; import com.ecep.contract.converter.EmployeeStringConverter; -import com.ecep.contract.ds.company.service.CompanyService; -import com.ecep.contract.ds.contract.service.ContractFileService; -import com.ecep.contract.ds.contract.vo.PurchaseOrderViewModel; import com.ecep.contract.model.Employee; import com.ecep.contract.model.PurchaseOrder; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.ContractFileService; +import com.ecep.contract.util.UITools; +import com.ecep.contract.vm.PurchaseOrderViewModel; import javafx.beans.property.SimpleObjectProperty; import javafx.scene.control.Tab; diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinBillVoucher.java b/client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinBillVoucher.java index 9dd472a..8799ed0 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinBillVoucher.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinBillVoucher.java @@ -1,34 +1,26 @@ package com.ecep.contract.controller.vendor.purchase.order; import java.time.LocalDateTime; - -import org.springframework.data.jpa.domain.Specification; +import java.util.Map; import com.ecep.contract.SpringApp; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.table.AbstEntityTableTabSkin; +import com.ecep.contract.controller.table.cell.LocalDateTimeTableCell; import com.ecep.contract.controller.vendor.PurchaseBillVoucherWindowController; import com.ecep.contract.controller.vendor.PurchaseOrderWindowController; import com.ecep.contract.converter.EmployeeStringConverter; import com.ecep.contract.converter.EntityStringConverter; -import com.ecep.contract.ds.company.service.InvoiceService; -import com.ecep.contract.ds.contract.service.PurchaseBillVoucherService; -import com.ecep.contract.ds.contract.vo.PurchaseBillVoucherViewModel; -import com.ecep.contract.ds.contract.vo.PurchaseOrderViewModel; import com.ecep.contract.model.Employee; import com.ecep.contract.model.Invoice; import com.ecep.contract.model.PurchaseBillVoucher; -import com.ecep.contract.model.PurchaseBillVoucherItem; import com.ecep.contract.model.PurchaseOrder; -import com.ecep.contract.model.PurchaseOrderItem; -import com.ecep.contract.ui.table.cell.LocalDateTimeTableCell; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.service.InvoiceService; +import com.ecep.contract.service.PurchaseBillVoucherService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.vm.PurchaseBillVoucherViewModel; +import com.ecep.contract.vm.PurchaseOrderViewModel; -import jakarta.persistence.criteria.Join; -import jakarta.persistence.criteria.JoinType; -import jakarta.persistence.criteria.Root; -import jakarta.persistence.criteria.Subquery; import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; import javafx.scene.control.Tab; @@ -39,7 +31,8 @@ import lombok.Setter; @FxmlPath("/ui/contract/purchase-orders-tab-bill-voucher.fxml") public class PurchaseOrderTabSkinBillVoucher - extends AbstEntityTableTabSkin + extends + AbstEntityTableTabSkin implements TabSkin { @Setter @@ -49,7 +42,7 @@ public class PurchaseOrderTabSkinBillVoucher @Setter private InvoiceService invoiceService; - /* 以下是合同内容 */ + /* 以下是合同内容 */ public TableColumn idColumn; public TableColumn refIdColumn; public TableColumn codeColumn; @@ -77,51 +70,67 @@ public class PurchaseOrderTabSkinBillVoucher return getPurchaseBillVoucherService(); } -// @Override -// protected List loadTableData(PurchaseOrder order) { -// List list = getPurchaseBillVoucherService().findAll((root, q, cb) -> { -// // 创建子查询:获取 voucher_id 列表 -// Subquery subquery = q.subquery(Long.class); -// Root vi = subquery.from(PurchaseBillVoucherItem.class); -// Join oi = vi.join("orderItem", JoinType.LEFT); -// -// subquery.select(vi.get("voucher").get("id")) -// .where(cb.equal(oi.get("order"), order)) -// .distinct(true); -// -// // 主查询:筛选出 voucher.id 在子查询结果中的记录 -// return cb.in(root.get("id")).value(subquery); -// -//// Subquery subquery = q.subquery(PurchaseBillVoucher.class); -//// Root vi = subquery.from(PurchaseBillVoucherItem.class); -//// Join oi = vi.join("orderItem", JoinType.LEFT); -//// -//// subquery.select(vi.get("voucher")) -//// .where(cb.equal(oi.get("order"), order)) -//// .distinct(true); -//// -//// // 主查询:筛选 root 在子查询结果中的记录 -//// return cb.equal(root, subquery.getSelection()); -// }, getSortByTable()); -// -// return list.stream().map(PurchaseBillVoucherViewModel::from).toList(); -// } + // @Override + // protected List loadTableData(PurchaseOrder + // order) { + // List list = + // getPurchaseBillVoucherService().findAll((root, q, cb) -> { + // // 创建子查询:获取 voucher_id 列表 + // Subquery subquery = q.subquery(Long.class); + // Root vi = + // subquery.from(PurchaseBillVoucherItem.class); + // Join oi = vi.join("orderItem", + // JoinType.LEFT); + // + // subquery.select(vi.get("voucher").get("id")) + // .where(cb.equal(oi.get("order"), order)) + // .distinct(true); + // + // // 主查询:筛选出 voucher.id 在子查询结果中的记录 + // return cb.in(root.get("id")).value(subquery); + // + //// Subquery subquery = + // q.subquery(PurchaseBillVoucher.class); + //// Root vi = + // subquery.from(PurchaseBillVoucherItem.class); + //// Join oi = vi.join("orderItem", + // JoinType.LEFT); + //// + //// subquery.select(vi.get("voucher")) + //// .where(cb.equal(oi.get("order"), order)) + //// .distinct(true); + //// + //// // 主查询:筛选 root 在子查询结果中的记录 + //// return cb.equal(root, subquery.getSelection()); + // }, getSortByTable()); + // + // return list.stream().map(PurchaseBillVoucherViewModel::from).toList(); + // } - @Override - public Specification getSpecification(PurchaseOrder parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - // 创建子查询:获取 voucher_id 列表 - Subquery subquery = query.subquery(Long.class); - Root vi = subquery.from(PurchaseBillVoucherItem.class); - Join oi = vi.join("orderItem", JoinType.LEFT); + // @Override + // public Specification getSpecification(PurchaseOrder + // parent) { + // return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { + // // 创建子查询:获取 voucher_id 列表 + // Subquery subquery = query.subquery(Long.class); + // Root vi = + // subquery.from(PurchaseBillVoucherItem.class); + // Join oi = vi.join("orderItem", + // JoinType.LEFT); - subquery.select(vi.get("voucher").get("id")) - .where(builder.equal(oi.get("order"), parent)) - .distinct(true); + // subquery.select(vi.get("voucher").get("id")) + // .where(builder.equal(oi.get("order"), parent)) + // .distinct(true); - // 主查询:筛选出 voucher.id 在子查询结果中的记录 - return builder.in(root.get("id")).value(subquery); - }); + // // 主查询:筛选出 voucher.id 在子查询结果中的记录 + // return builder.in(root.get("id")).value(subquery); + // }); + // } + + public Map getSpecification(PurchaseOrder parent) { + Map params = getSpecification(); + params.put("purchaseOrder", parent); + return params; } @Override diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinItems.java b/client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinItems.java index 6c24077..8f0e2e2 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinItems.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinItems.java @@ -3,32 +3,32 @@ package com.ecep.contract.controller.vendor.purchase.order; import java.time.LocalDate; import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; import org.hibernate.Hibernate; -import org.springframework.data.jpa.domain.Specification; import org.springframework.util.StringUtils; import com.ecep.contract.SpringApp; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.table.AbstEntityTableTabSkin; +import com.ecep.contract.controller.table.cell.InventoryTableCell; import com.ecep.contract.controller.vendor.PurchaseOrderWindowController; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.contract.service.PurchaseOrderItemService; -import com.ecep.contract.ds.contract.service.PurchaseOrdersService; -import com.ecep.contract.ds.contract.vo.ContractItemComposeViewModel; -import com.ecep.contract.ds.contract.vo.PurchaseOrderItemViewModel; -import com.ecep.contract.ds.contract.vo.PurchaseOrderViewModel; -import com.ecep.contract.ds.other.service.InventoryService; +import com.ecep.contract.controller.vendor.purchase.order.PurchaseOrderTabSkinItems.UnitTableCell; import com.ecep.contract.model.Contract; import com.ecep.contract.model.ContractItem; import com.ecep.contract.model.Inventory; import com.ecep.contract.model.PurchaseOrder; import com.ecep.contract.model.PurchaseOrderItem; -import com.ecep.contract.ui.table.cell.InventoryTableCell; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.InventoryService; +import com.ecep.contract.service.PurchaseOrderItemService; +import com.ecep.contract.service.PurchaseOrdersService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.vm.ContractItemComposeViewModel; +import com.ecep.contract.vm.PurchaseOrderItemViewModel; +import com.ecep.contract.vm.PurchaseOrderViewModel; import javafx.application.Platform; import javafx.collections.ObservableList; @@ -130,11 +130,10 @@ public class PurchaseOrderTabSkinItems } @Override - public Specification getSpecification(PurchaseOrder parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.and( - builder.equal(root.get("order"), parent)); - }); + public Map getSpecification(PurchaseOrder parent) { + Map params = getSpecification(); + params.put("order", parent); + return params; } ContractItemComposeViewModel createNew(String key, ContractItem item) { diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/purchase/purchase_bill/PurchaseBillVoucherTabSkinItems.java b/client/src/main/java/com/ecep/contract/controller/vendor/purchase/purchase_bill/PurchaseBillVoucherTabSkinItems.java index 781358f..a532a28 100644 --- a/client/src/main/java/com/ecep/contract/controller/vendor/purchase/purchase_bill/PurchaseBillVoucherTabSkinItems.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/purchase/purchase_bill/PurchaseBillVoucherTabSkinItems.java @@ -1,30 +1,29 @@ package com.ecep.contract.controller.vendor.purchase.purchase_bill; -import org.springframework.data.jpa.domain.Specification; +import java.util.Map; import com.ecep.contract.SpringApp; -import com.ecep.contract.util.FxmlPath; import com.ecep.contract.controller.tab.TabSkin; import com.ecep.contract.controller.table.AbstEntityTableTabSkin; +import com.ecep.contract.controller.table.cell.ContractTableCell; +import com.ecep.contract.controller.table.cell.InventoryTableCell; +import com.ecep.contract.controller.table.cell.InvoiceTableCell; +import com.ecep.contract.controller.table.cell.PurchaseOrderItemTableCell; import com.ecep.contract.controller.vendor.PurchaseBillVoucherWindowController; -import com.ecep.contract.ds.company.service.InvoiceService; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.ds.contract.service.PurchaseBillVoucherItemService; -import com.ecep.contract.ds.contract.service.PurchaseOrderItemService; -import com.ecep.contract.ds.contract.vo.PurchaseBillVoucherItemViewModel; -import com.ecep.contract.ds.contract.vo.PurchaseBillVoucherViewModel; -import com.ecep.contract.ds.other.service.InventoryService; import com.ecep.contract.model.Contract; import com.ecep.contract.model.Inventory; import com.ecep.contract.model.Invoice; import com.ecep.contract.model.PurchaseBillVoucher; import com.ecep.contract.model.PurchaseBillVoucherItem; import com.ecep.contract.model.PurchaseOrderItem; -import com.ecep.contract.ui.table.cell.ContractTableCell; -import com.ecep.contract.ui.table.cell.InventoryTableCell; -import com.ecep.contract.ui.table.cell.InvoiceTableCell; -import com.ecep.contract.ui.table.cell.PurchaseOrderItemTableCell; -import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.InventoryService; +import com.ecep.contract.service.InvoiceService; +import com.ecep.contract.service.PurchaseBillVoucherItemService; +import com.ecep.contract.service.PurchaseOrderItemService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.vm.PurchaseBillVoucherItemViewModel; +import com.ecep.contract.vm.PurchaseBillVoucherViewModel; import javafx.geometry.Pos; import javafx.scene.control.Tab; @@ -102,10 +101,10 @@ public class PurchaseBillVoucherTabSkinItems } @Override - public Specification getSpecification(PurchaseBillVoucher parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.equal(root.get("voucher"), parent); - }); + public Map getSpecification(PurchaseBillVoucher parent) { + Map params = getSpecification(); + params.put("voucher", parent.getId()); + return params; } @Override diff --git a/client/src/main/java/com/ecep/contract/service/CompanyStringConverter.java b/client/src/main/java/com/ecep/contract/converter/CompanyStringConverter.java similarity index 87% rename from client/src/main/java/com/ecep/contract/service/CompanyStringConverter.java rename to client/src/main/java/com/ecep/contract/converter/CompanyStringConverter.java index cae0620..dc990a1 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyStringConverter.java +++ b/client/src/main/java/com/ecep/contract/converter/CompanyStringConverter.java @@ -1,11 +1,11 @@ -package com.ecep.contract.service; +package com.ecep.contract.converter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; -import com.ecep.contract.converter.EntityStringConverter; import com.ecep.contract.model.Company; +import com.ecep.contract.service.CompanyService; import jakarta.annotation.PostConstruct; diff --git a/client/src/main/java/com/ecep/contract/converter/ContractGroupStringConverter.java b/client/src/main/java/com/ecep/contract/converter/ContractGroupStringConverter.java index ec0d2f3..b6508d6 100644 --- a/client/src/main/java/com/ecep/contract/converter/ContractGroupStringConverter.java +++ b/client/src/main/java/com/ecep/contract/converter/ContractGroupStringConverter.java @@ -8,7 +8,7 @@ import com.ecep.contract.model.ContractGroup; import javafx.util.StringConverter; -public class ContractGroupStringConverter extends StringConverter { +public class ContractGroupStringConverter extends EntityStringConverter { private List dataset; diff --git a/client/src/main/java/com/ecep/contract/converter/ContractTypeStringConverter.java b/client/src/main/java/com/ecep/contract/converter/ContractTypeStringConverter.java new file mode 100644 index 0000000..e70b8a5 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/converter/ContractTypeStringConverter.java @@ -0,0 +1,20 @@ +package com.ecep.contract.converter; + +import com.ecep.contract.model.ContractType; +import com.ecep.contract.service.ContractTypeService; + +public class ContractTypeStringConverter extends EntityStringConverter { + ContractTypeService contractTypeService; + + public ContractTypeStringConverter(ContractTypeService contractTypeService) { + this.contractTypeService = contractTypeService; + init(); + } + + private void init() { + setInitialized(project -> contractTypeService.findById(project.getId())); + setSuggestion(contractTypeService::search); + setFromString(contractTypeService::findByName); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/CloudRkService.java b/client/src/main/java/com/ecep/contract/service/CloudRkService.java index 69146a7..51afd74 100644 --- a/client/src/main/java/com/ecep/contract/service/CloudRkService.java +++ b/client/src/main/java/com/ecep/contract/service/CloudRkService.java @@ -6,7 +6,9 @@ import java.util.concurrent.TimeUnit; import org.controlsfx.control.TaskProgressView; import com.ecep.contract.Desktop; +import com.ecep.contract.MessageHolder; import com.ecep.contract.model.CloudRk; +import com.ecep.contract.model.Company; import com.ecep.contract.task.CloudRkSyncTask; import com.ecep.contract.vm.CloudRkViewModel; @@ -29,4 +31,24 @@ public class CloudRkService implements ViewModelService { +public class CloudTycService implements ViewModelService { public void save(CloudTycInfoViewModel viewModel) { int infoId = viewModel.getId().get(); diff --git a/client/src/main/java/com/ecep/contract/service/CompanyBankAccountService.java b/client/src/main/java/com/ecep/contract/service/CompanyBankAccountService.java new file mode 100644 index 0000000..419cdae --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/CompanyBankAccountService.java @@ -0,0 +1,14 @@ +package com.ecep.contract.service; + +import java.util.List; + +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyBankAccount; +import com.ecep.contract.vm.CompanyBankAccountViewModel; + +public class CompanyBankAccountService implements ViewModelService { + + public List searchByCompany(Company company, String searchText) { + throw new UnsupportedOperationException("未实现"); + } +} diff --git a/client/src/main/java/com/ecep/contract/service/CompanyBlackReasonService.java b/client/src/main/java/com/ecep/contract/service/CompanyBlackReasonService.java new file mode 100644 index 0000000..f6381fc --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/CompanyBlackReasonService.java @@ -0,0 +1,9 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.CompanyBlackReason; +import com.ecep.contract.vm.CompanyBlackReasonViewModel; + +public class CompanyBlackReasonService + implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/CompanyContactService.java b/client/src/main/java/com/ecep/contract/service/CompanyContactService.java index 9bd01ac..80fe853 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyContactService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyContactService.java @@ -1,8 +1,21 @@ package com.ecep.contract.service; +import java.util.List; + +import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyContact; import com.ecep.contract.vm.CompanyContactViewModel; public class CompanyContactService implements ViewModelService { + public List searchByCompany(Company company, String userText) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'searchByCompany'"); + } + + public CompanyContact findFirstByCompany(Company company) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findFirstByCompany'"); + } + } diff --git a/client/src/main/java/com/ecep/contract/service/CompanyCustomerEntityService.java b/client/src/main/java/com/ecep/contract/service/CompanyCustomerEntityService.java index 372a288..3ac5bce 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyCustomerEntityService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyCustomerEntityService.java @@ -8,15 +8,15 @@ import org.springframework.data.domain.Pageable; import com.ecep.contract.model.CompanyCustomer; import com.ecep.contract.model.CompanyCustomerEntity; -import com.ecep.contract.vm.CompanyCustomerViewModel; +import com.ecep.contract.vm.CustomerEntityViewModel; -public class CompanyCustomerEntityService implements ViewModelService { +public class CompanyCustomerEntityService implements ViewModelService { public List findAllByCustomer(CompanyCustomer customer) { throw new UnsupportedOperationException(); } @Override - public Page findAll(Map params, Pageable pageable) { + public Page findAll(Map params, Pageable pageable) { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'findAll'"); } diff --git a/client/src/main/java/com/ecep/contract/service/CompanyCustomerFileService.java b/client/src/main/java/com/ecep/contract/service/CompanyCustomerFileService.java index 37011a7..3eb0a35 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyCustomerFileService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyCustomerFileService.java @@ -1,16 +1,19 @@ package com.ecep.contract.service; +import java.io.File; +import java.time.LocalDate; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import com.ecep.contract.CompanyCustomerFileType; import com.ecep.contract.MessageHolder; import com.ecep.contract.model.CompanyCustomer; import com.ecep.contract.model.CompanyCustomerEvaluationFormFile; import com.ecep.contract.model.CompanyCustomerFile; +import com.ecep.contract.model.CompanyCustomerFileTypeLocal; import com.ecep.contract.vm.CompanyCustomerFileViewModel; -import java.io.File; -import java.time.LocalDate; -import java.util.Collection; -import java.util.List; - public class CompanyCustomerFileService implements ViewModelService { public List findAllCustomerEvaluationFormFiles(CompanyCustomer customer) { throw new UnsupportedOperationException(); @@ -27,4 +30,41 @@ public class CompanyCustomerFileService implements ViewModelService companyCustomerFiles) { throw new UnsupportedOperationException(); } + + public List findAllByCustomer(CompanyCustomer companyCustomer) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllByCustomer'"); + } + + public CompanyCustomerEvaluationFormFile findCustomerEvaluationFormFileByCustomerFile( + CompanyCustomerFile customerFile) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findCustomerEvaluationFormFileByCustomerFile'"); + } + + public CompanyCustomerEvaluationFormFile findCustomerEvaluationFormFileById(int id) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findCustomerEvaluationFormFileById'"); + } + + public void save(CompanyCustomerEvaluationFormFile formFile) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'save'"); + } + + public Map getFileTypeLocalMap(Locale locale) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getFileTypeLocalMap'"); + } + + public List findAllByCustomerAndType(CompanyCustomer customer, + CompanyCustomerFileType evaluationform) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllByCustomerAndType'"); + } + + public List searchEvaluationFile(CompanyCustomer customer, String searchText) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'searchEvaluationFile'"); + } } 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 6b2bfd4..75cc82a 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyCustomerService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyCustomerService.java @@ -27,4 +27,9 @@ public class CompanyCustomerService implements ViewModelService { + public CompanyExtendInfo findByCompany(Company company) { + throw new UnsupportedOperationException("Unimplemented method 'findByCompany'"); + } +} 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 cd8d42d..c80633d 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyFileService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyFileService.java @@ -1,14 +1,33 @@ package com.ecep.contract.service; +import java.time.LocalDate; +import java.util.function.Consumer; + +import com.ecep.contract.MessageHolder; import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyFile; import com.ecep.contract.vm.CompanyFileViewModel; public class CompanyFileService implements ViewModelService { - public void reBuildingFiles(Company company, Object object) { + public void reBuildingFiles(Company company, MessageHolder holder) { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'reBuildingFiles'"); } + public void verify(Company company, LocalDate setupDate, MessageHolder holder) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'verify'"); + } + + public LocalDate getNextCreditReportDate(Company company, Consumer state) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getNextCreditReportDate'"); + } + + public void copyAsMatched(Company company, LocalDate applyDate, Consumer state) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'copyAsMatched'"); + } + } diff --git a/client/src/main/java/com/ecep/contract/service/CompanyOldNameService.java b/client/src/main/java/com/ecep/contract/service/CompanyOldNameService.java index dcb3e81..f82feff 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyOldNameService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyOldNameService.java @@ -1,7 +1,26 @@ package com.ecep.contract.service; +import java.time.LocalDate; +import java.util.List; + +import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyOldName; import com.ecep.contract.vm.CompanyOldNameViewModel; public class CompanyOldNameService implements ViewModelService { + + public boolean makePathAbsent(CompanyOldName companyOldName) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'makePathAbsent'"); + } + + public CompanyOldName findMatchByDate(Company 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'"); + } } 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 72eb606..d9fa228 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyService.java @@ -1,7 +1,9 @@ package com.ecep.contract.service; +import java.time.LocalDate; import java.util.List; +import com.ecep.contract.MessageHolder; import com.ecep.contract.model.Company; import com.ecep.contract.vm.CompanyViewModel; @@ -27,5 +29,30 @@ public class CompanyService implements ViewModelService { + + public CompanyVendorApprovedFile findByName(CompanyVendorApprovedList approvedList, String name) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findByName'"); + } + + public boolean reBuildingFiles(CompanyVendorApprovedList list, MessageHolder holder) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'reBuildingFiles'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/CompanyVendorApprovedItemService.java b/client/src/main/java/com/ecep/contract/service/CompanyVendorApprovedItemService.java new file mode 100644 index 0000000..479a583 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/CompanyVendorApprovedItemService.java @@ -0,0 +1,18 @@ +package com.ecep.contract.service; + +import java.util.List; + +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.CompanyVendorApprovedItem; +import com.ecep.contract.model.CompanyVendorApprovedList; +import com.ecep.contract.vm.CompanyVendorApprovedItemViewModel; + +public class CompanyVendorApprovedItemService implements ViewModelService { + + public List findAllByListAndVendor(CompanyVendorApprovedList approvedList, + CompanyVendor vendor) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllByListAndVendor'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/CompanyVendorApprovedListService.java b/client/src/main/java/com/ecep/contract/service/CompanyVendorApprovedListService.java new file mode 100644 index 0000000..53c4171 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/CompanyVendorApprovedListService.java @@ -0,0 +1,25 @@ +package com.ecep.contract.service; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.model.CompanyVendorApprovedList; +import com.ecep.contract.vm.CompanyVendorApprovedListViewModel; + +public class CompanyVendorApprovedListService + implements ViewModelService { + + public boolean makePathAbsent(CompanyVendorApprovedList list) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'makePathAbsent'"); + } + + public boolean reBuildingFiles(CompanyVendorApprovedList list, MessageHolder holder) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'reBuildingFiles'"); + } + + public boolean existPath(CompanyVendorApprovedList entity) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'existPath'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/CompanyVendorFileService.java b/client/src/main/java/com/ecep/contract/service/CompanyVendorFileService.java index 5488098..c7436f3 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyVendorFileService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyVendorFileService.java @@ -2,10 +2,14 @@ package com.ecep.contract.service; import java.time.LocalDate; import java.util.List; +import java.util.Locale; +import java.util.Map; import java.util.function.Consumer; +import com.ecep.contract.CompanyVendorFileType; import com.ecep.contract.model.CompanyVendor; import com.ecep.contract.model.CompanyVendorFile; +import com.ecep.contract.model.CompanyVendorFileTypeLocal; import com.ecep.contract.vm.CompanyVendorFileViewModel; public class CompanyVendorFileService implements ViewModelService { @@ -18,4 +22,9 @@ public class CompanyVendorFileService implements ViewModelService companyVendorFiles) { throw new UnsupportedOperationException("Unimplemented method 'saveAll'"); } + + public Map getFileTypeLocalMap(Locale locale) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getFileTypeLocalMap'"); + } } 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 cbaa674..de88643 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyVendorService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyVendorService.java @@ -1,9 +1,16 @@ package com.ecep.contract.service; +import java.io.File; +import java.util.Collection; +import java.util.List; +import java.util.Locale; + import com.ecep.contract.MessageHolder; 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.vm.CompanyVendorViewModel; public class CompanyVendorService implements ViewModelService { @@ -22,4 +29,34 @@ public class CompanyVendorService implements ViewModelService findAllTypes(Locale locale) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllTypes'"); + } + + public Collection findAllCatalogs() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllCatalogs'"); + } + + public List findAllTypes(String languageTag) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllTypes'"); + } + + public File getVendorApprovedListTemplate() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getVendorApprovedListTemplate'"); + } + + public boolean makePathAbsent(CompanyVendor companyVendor) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'makePathAbsent'"); + } } diff --git a/client/src/main/java/com/ecep/contract/service/ContractBidVendorService.java b/client/src/main/java/com/ecep/contract/service/ContractBidVendorService.java index a9d9504..f5af8d4 100644 --- a/client/src/main/java/com/ecep/contract/service/ContractBidVendorService.java +++ b/client/src/main/java/com/ecep/contract/service/ContractBidVendorService.java @@ -1,8 +1,16 @@ package com.ecep.contract.service; +import java.util.List; + +import com.ecep.contract.model.Contract; import com.ecep.contract.model.ContractBidVendor; import com.ecep.contract.vm.ContractBidVendorViewModel; public class ContractBidVendorService implements ViewModelService { + public List findByContract(Contract contract) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findByContract'"); + } + } diff --git a/client/src/main/java/com/ecep/contract/service/ContractFileService.java b/client/src/main/java/com/ecep/contract/service/ContractFileService.java index a871431..ed76b64 100644 --- a/client/src/main/java/com/ecep/contract/service/ContractFileService.java +++ b/client/src/main/java/com/ecep/contract/service/ContractFileService.java @@ -1,8 +1,29 @@ package com.ecep.contract.service; +import java.util.List; +import java.util.Map; + +import com.ecep.contract.ContractFileType; +import com.ecep.contract.model.Contract; import com.ecep.contract.model.ContractFile; +import com.ecep.contract.model.ContractFileTypeLocal; import com.ecep.contract.vm.ContractFileViewModel; public class ContractFileService implements ViewModelService { + public List findAllByContract(Contract contract) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllByContract'"); + } + + public Map findAllFileTypes(String languageTag) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllFileTypes'"); + } + + public List findAllByContractAndFileType(Contract contract, ContractFileType type) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllByContractAndFileType'"); + } + } diff --git a/client/src/main/java/com/ecep/contract/service/ContractGroupService.java b/client/src/main/java/com/ecep/contract/service/ContractGroupService.java index 3cb8ca0..e36a4f4 100644 --- a/client/src/main/java/com/ecep/contract/service/ContractGroupService.java +++ b/client/src/main/java/com/ecep/contract/service/ContractGroupService.java @@ -4,4 +4,9 @@ import com.ecep.contract.model.ContractGroup; import com.ecep.contract.vm.ContractGroupViewModel; public class ContractGroupService implements ViewModelService { + + public ContractGroup findByCode(String groupCode) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findByCode'"); + } } \ No newline at end of file diff --git a/client/src/main/java/com/ecep/contract/service/ContractItemService.java b/client/src/main/java/com/ecep/contract/service/ContractItemService.java new file mode 100644 index 0000000..a486cd6 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ContractItemService.java @@ -0,0 +1,16 @@ +package com.ecep.contract.service; + +import java.util.List; + +import com.ecep.contract.model.ContractItem; +import com.ecep.contract.model.Inventory; +import com.ecep.contract.vm.ContractItemViewModel; + +public class ContractItemService implements ViewModelService { + + public List findAllByInventory(Inventory parent) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllByInventory'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/ContractPayPlanService.java b/client/src/main/java/com/ecep/contract/service/ContractPayPlanService.java new file mode 100644 index 0000000..6cb621f --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ContractPayPlanService.java @@ -0,0 +1,16 @@ +package com.ecep.contract.service; + +import java.util.List; + +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractPayPlan; +import com.ecep.contract.vm.ContractPayPlanViewModel; + +public class ContractPayPlanService implements ViewModelService { + + public List findAllByContract(Contract contract) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllByContract'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/ContractService.java b/client/src/main/java/com/ecep/contract/service/ContractService.java index 1aeeed5..33493fe 100644 --- a/client/src/main/java/com/ecep/contract/service/ContractService.java +++ b/client/src/main/java/com/ecep/contract/service/ContractService.java @@ -1,9 +1,13 @@ package com.ecep.contract.service; +import java.io.File; +import java.time.LocalDate; import java.util.List; +import com.ecep.contract.model.CompanyVendor; import com.ecep.contract.model.Contract; import com.ecep.contract.model.ContractGroup; +import com.ecep.contract.model.Project; import com.ecep.contract.vm.ContractViewModel; public class ContractService implements ViewModelService { @@ -29,4 +33,50 @@ public class ContractService implements ViewModelService findAllBySaleContract(Contract contract) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllBySaleContract'"); + } + + public boolean checkContractPathInBasePath(Contract v) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'checkContractPathInBasePath'"); + } + + public boolean existsContractPath(Contract v) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'existsContractPath'"); + } + + + public boolean makePathAbsent(Contract contract) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'makePathAbsent'"); + } + + public List findAllByCompanyVendor(CompanyVendor vendor, LocalDate miniDate, LocalDate date) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllByCompanyVendor'"); + } + + public Contract[] findAllSalesByProject(Project project) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllSalesByProject'"); + } + + public Contract findSalesByProject(Project project) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findSalesByProject'"); + } + + public File getBasePath() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getBasePath'"); + } + + public List findAllByProject(Project project) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllByProject'"); + } } diff --git a/client/src/main/java/com/ecep/contract/service/ContractTypeService.java b/client/src/main/java/com/ecep/contract/service/ContractTypeService.java index e850e33..d13fd45 100644 --- a/client/src/main/java/com/ecep/contract/service/ContractTypeService.java +++ b/client/src/main/java/com/ecep/contract/service/ContractTypeService.java @@ -1,8 +1,23 @@ package com.ecep.contract.service; +import java.util.List; + import com.ecep.contract.model.ContractType; import com.ecep.contract.vm.ContractTypeViewModel; public class ContractTypeService implements ViewModelService { + public ContractType findByName(String name) { + throw new UnsupportedOperationException("Unimplemented method 'findByName'"); + } + + public List search(String searchText) { + throw new UnsupportedOperationException("Unimplemented method 'search'"); + } + + public ContractType findByCode(String typeCode) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findByCode'"); + } + } diff --git a/client/src/main/java/com/ecep/contract/service/DeliverySignMethodService.java b/client/src/main/java/com/ecep/contract/service/DeliverySignMethodService.java new file mode 100644 index 0000000..7bd4537 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/DeliverySignMethodService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.DeliverySignMethod; +import com.ecep.contract.vm.DeliverySignMethodViewModel; + +public class DeliverySignMethodService implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/DepartmentService.java b/client/src/main/java/com/ecep/contract/service/DepartmentService.java new file mode 100644 index 0000000..132d2f4 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/DepartmentService.java @@ -0,0 +1,15 @@ +package com.ecep.contract.service; + +import java.util.List; + +import com.ecep.contract.model.Department; +import com.ecep.contract.vm.DepartmentViewModel; + +public class DepartmentService implements ViewModelService { + + public List search(String searchText) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'search'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/EmployeeAuthBindService.java b/client/src/main/java/com/ecep/contract/service/EmployeeAuthBindService.java new file mode 100644 index 0000000..da425bc --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/EmployeeAuthBindService.java @@ -0,0 +1,17 @@ +package com.ecep.contract.service; + +import java.util.List; + +import org.springframework.data.domain.Sort; + +import com.ecep.contract.model.EmployeeAuthBind; +import com.ecep.contract.vm.EmployeeAuthBindViewModel; + +public class EmployeeAuthBindService implements ViewModelService { + + public List findAllByEmployee(Object object, Sort unsorted) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllByEmployee'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/EmployeeLoginHistoryService.java b/client/src/main/java/com/ecep/contract/service/EmployeeLoginHistoryService.java new file mode 100644 index 0000000..3a855fd --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/EmployeeLoginHistoryService.java @@ -0,0 +1,9 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.EmployeeLoginHistory; +import com.ecep.contract.vm.EmployeeLoginHistoryViewModel; + +public class EmployeeLoginHistoryService + implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/EmployeeRoleService.java b/client/src/main/java/com/ecep/contract/service/EmployeeRoleService.java index 24b526d..11462bf 100644 --- a/client/src/main/java/com/ecep/contract/service/EmployeeRoleService.java +++ b/client/src/main/java/com/ecep/contract/service/EmployeeRoleService.java @@ -1,10 +1,18 @@ package com.ecep.contract.service; +import java.util.List; + import com.ecep.contract.model.EmployeeRole; +import com.ecep.contract.model.Function; import com.ecep.contract.vm.EmployeeRoleViewModel; public class EmployeeRoleService implements ViewModelService { + public List getFunctionsByRoleId(int i) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getFunctionsByRoleId'"); + } + } diff --git a/client/src/main/java/com/ecep/contract/service/EmployeeService.java b/client/src/main/java/com/ecep/contract/service/EmployeeService.java index 5dcfed9..e8e6a80 100644 --- a/client/src/main/java/com/ecep/contract/service/EmployeeService.java +++ b/client/src/main/java/com/ecep/contract/service/EmployeeService.java @@ -8,6 +8,8 @@ import com.ecep.contract.vm.EmployeeViewModel; public class EmployeeService implements ViewModelService { + public static final int DEFAULT_SYSTEM_EMPLOYEE_ID = 26; + public Employee findByName(String name) { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'findByName'"); @@ -28,5 +30,10 @@ public class EmployeeService implements ViewModelService { + public ExtendVendorInfo findByContract(Contract contract) { + throw new UnsupportedOperationException("Unimplemented method 'findByContract'"); + } + + public ExtendVendorInfo newInstanceByContract(Contract contract) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'newInstanceByContract'"); + } + } diff --git a/client/src/main/java/com/ecep/contract/service/FunctionService.java b/client/src/main/java/com/ecep/contract/service/FunctionService.java new file mode 100644 index 0000000..3145a8f --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/FunctionService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.Function; +import com.ecep.contract.vm.FunctionViewModel; + +public class FunctionService implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/InventoryCatalogService.java b/client/src/main/java/com/ecep/contract/service/InventoryCatalogService.java new file mode 100644 index 0000000..ace0e39 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/InventoryCatalogService.java @@ -0,0 +1,20 @@ +package com.ecep.contract.service; + +import java.util.List; + +import com.ecep.contract.model.InventoryCatalog; +import com.ecep.contract.vm.InventoryCatalogViewModel; + +public class InventoryCatalogService implements ViewModelService { + + public InventoryCatalog findByName(String v) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findByName'"); + } + + public List search(String searchText) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAll'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/InventoryHistoryPriceService.java b/client/src/main/java/com/ecep/contract/service/InventoryHistoryPriceService.java new file mode 100644 index 0000000..fb87650 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/InventoryHistoryPriceService.java @@ -0,0 +1,15 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.Inventory; +import com.ecep.contract.model.InventoryHistoryPrice; +import com.ecep.contract.vm.InventoryHistoryPriceViewModel; + +public class InventoryHistoryPriceService + implements ViewModelService { + + public InventoryHistoryPrice[] findAllByInventory(Inventory parent) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllByInventory'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/InventoryService.java b/client/src/main/java/com/ecep/contract/service/InventoryService.java new file mode 100644 index 0000000..f542477 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/InventoryService.java @@ -0,0 +1,31 @@ +package com.ecep.contract.service; + +import java.util.List; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.model.Inventory; +import com.ecep.contract.vm.InventoryViewModel; + +public class InventoryService implements ViewModelService { + + public Inventory createNewInstance() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'createNewInstance'"); + } + + public void syncInventory(Inventory inventory, MessageHolder holder) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'syncInventory'"); + } + + public List search(String searchText) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllByProject'"); + } + + public Inventory findByCode(String code) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findByCode'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/InvoiceService.java b/client/src/main/java/com/ecep/contract/service/InvoiceService.java new file mode 100644 index 0000000..9009afa --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/InvoiceService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.Invoice; +import com.ecep.contract.vm.InvoiceViewModel; + +public class InvoiceService implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/PermissionService.java b/client/src/main/java/com/ecep/contract/service/PermissionService.java new file mode 100644 index 0000000..d48f1cd --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/PermissionService.java @@ -0,0 +1,15 @@ +package com.ecep.contract.service; + +import java.util.List; + +import com.ecep.contract.model.Permission; +import com.ecep.contract.vm.PermissionViewModel; + +public class PermissionService implements ViewModelService { + + public List findByFunctionId(int i) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findByFunctionId'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/ProductTypeService.java b/client/src/main/java/com/ecep/contract/service/ProductTypeService.java new file mode 100644 index 0000000..6eea634 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ProductTypeService.java @@ -0,0 +1,13 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.ProductType; +import com.ecep.contract.vm.ProductTypeViewModel; + +public class ProductTypeService implements ViewModelService { + + public ProductType findByName(String name) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findByName'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/ProductUsageService.java b/client/src/main/java/com/ecep/contract/service/ProductUsageService.java new file mode 100644 index 0000000..f49bdb6 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ProductUsageService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.ProductUsage; +import com.ecep.contract.vm.ProductUsageViewModel; + +public class ProductUsageService implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/ProjectBidService.java b/client/src/main/java/com/ecep/contract/service/ProjectBidService.java index 9990f73..ecf1afa 100644 --- a/client/src/main/java/com/ecep/contract/service/ProjectBidService.java +++ b/client/src/main/java/com/ecep/contract/service/ProjectBidService.java @@ -1,8 +1,16 @@ package com.ecep.contract.service; +import java.util.List; + +import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectBid; import com.ecep.contract.vm.ProjectBidViewModel; public class ProjectBidService implements ViewModelService { + public List findAllByProject(Project project) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllByProject'"); + } + } diff --git a/client/src/main/java/com/ecep/contract/service/ProjectCostItemService.java b/client/src/main/java/com/ecep/contract/service/ProjectCostItemService.java new file mode 100644 index 0000000..15159ea --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ProjectCostItemService.java @@ -0,0 +1,16 @@ +package com.ecep.contract.service; + +import java.util.List; + +import com.ecep.contract.model.ProjectCost; +import com.ecep.contract.model.ProjectCostItem; +import com.ecep.contract.vm.ProjectCostItemViewModel; + +public class ProjectCostItemService implements ViewModelService { + + public List findByCost(ProjectCost cost) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findByCost'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/ProjectCostService.java b/client/src/main/java/com/ecep/contract/service/ProjectCostService.java index 69b2a6a..6cde910 100644 --- a/client/src/main/java/com/ecep/contract/service/ProjectCostService.java +++ b/client/src/main/java/com/ecep/contract/service/ProjectCostService.java @@ -1,8 +1,37 @@ package com.ecep.contract.service; +import java.util.List; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.model.Project; import com.ecep.contract.model.ProjectCost; import com.ecep.contract.vm.ProjectCostViewModel; public class ProjectCostService implements ViewModelService { + public ProjectCost findAutoCostByProject(Project project) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAutoCostByProject'"); + } + + public ProjectCost newInstanceByProject(Project project) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'newInstanceByProject'"); + } + + public ProjectCost findLatestByProject(Project project) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findLatestByProject'"); + } + + public void updateAutoCost(Project project, MessageHolder holder) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'updateAutoCost'"); + } + + public List findAllByProject(Project project) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllByProject'"); + } + } diff --git a/client/src/main/java/com/ecep/contract/service/ProjectFundPlanService.java b/client/src/main/java/com/ecep/contract/service/ProjectFundPlanService.java new file mode 100644 index 0000000..7e2bf13 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ProjectFundPlanService.java @@ -0,0 +1,21 @@ +package com.ecep.contract.service; + +import java.util.List; + +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectFundPlan; +import com.ecep.contract.vm.ProjectFundPlanViewModel; + +public class ProjectFundPlanService implements ViewModelService { + + public List findAllByProject(Project project) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllByProject'"); + } + + public ProjectFundPlan newInstanceByProject(Project project) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'newInstanceByProject'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/ProjectIndustryService.java b/client/src/main/java/com/ecep/contract/service/ProjectIndustryService.java new file mode 100644 index 0000000..5658d92 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ProjectIndustryService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.ProjectIndustry; +import com.ecep.contract.vm.ProjectIndustryViewModel; + +public class ProjectIndustryService implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/ProjectQuotationService.java b/client/src/main/java/com/ecep/contract/service/ProjectQuotationService.java index 2e0850b..7eefc18 100644 --- a/client/src/main/java/com/ecep/contract/service/ProjectQuotationService.java +++ b/client/src/main/java/com/ecep/contract/service/ProjectQuotationService.java @@ -1,5 +1,16 @@ package com.ecep.contract.service; +import java.util.List; + +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectQuotation; +import com.ecep.contract.vm.ProjectQuotationViewModel; + public class ProjectQuotationService implements ViewModelService{ + public List findAllByProject(Project project) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllByProject'"); + } + } diff --git a/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeRequireFileTypeService.java b/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeRequireFileTypeService.java index c8161ac..4a80276 100644 --- a/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeRequireFileTypeService.java +++ b/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeRequireFileTypeService.java @@ -1,5 +1,26 @@ package com.ecep.contract.service; +import java.util.List; + +import com.ecep.contract.model.ProjectSaleType; +import com.ecep.contract.model.ProjectSaleTypeRequireFileType; +import com.ecep.contract.vm.ProjectSaleTypeViewModel; + public class ProjectSaleTypeRequireFileTypeService implements ViewModelService{ + public List findBySaleTypeId(Integer id) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findBySaleTypeId'"); + } + + public void save(ProjectSaleTypeRequireFileType entity) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'save'"); + } + + public void delete(ProjectSaleTypeRequireFileType entity) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'delete'"); + } + } diff --git a/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeService.java b/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeService.java index c2acf0e..1da1e9e 100644 --- a/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeService.java +++ b/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeService.java @@ -5,4 +5,9 @@ import com.ecep.contract.vm.ProjectSaleTypeViewModel; public class ProjectSaleTypeService implements ViewModelService { + public ProjectSaleType findByCode(String substring) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findByCode'"); + } + } diff --git a/client/src/main/java/com/ecep/contract/service/ProjectService.java b/client/src/main/java/com/ecep/contract/service/ProjectService.java index f53f8b2..5246022 100644 --- a/client/src/main/java/com/ecep/contract/service/ProjectService.java +++ b/client/src/main/java/com/ecep/contract/service/ProjectService.java @@ -1,8 +1,11 @@ package com.ecep.contract.service; +import com.ecep.contract.model.Contract; import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectSaleType; import com.ecep.contract.vm.ProjectViewModel; +import java.io.File; import java.util.List; public class ProjectService implements ViewModelService { @@ -23,4 +26,25 @@ public class ProjectService implements ViewModelService { + + public ProjectType findByName(String name) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findByName'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/PurchaseBillVoucherItemService.java b/client/src/main/java/com/ecep/contract/service/PurchaseBillVoucherItemService.java new file mode 100644 index 0000000..ce716bb --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/PurchaseBillVoucherItemService.java @@ -0,0 +1,9 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.PurchaseBillVoucherItem; +import com.ecep.contract.vm.PurchaseBillVoucherItemViewModel; + +public class PurchaseBillVoucherItemService + implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/PurchaseBillVoucherService.java b/client/src/main/java/com/ecep/contract/service/PurchaseBillVoucherService.java new file mode 100644 index 0000000..f683fba --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/PurchaseBillVoucherService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.PurchaseBillVoucher; +import com.ecep.contract.vm.PurchaseBillVoucherViewModel; + +public class PurchaseBillVoucherService implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/PurchaseOrderItemService.java b/client/src/main/java/com/ecep/contract/service/PurchaseOrderItemService.java new file mode 100644 index 0000000..3ede1c9 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/PurchaseOrderItemService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.PurchaseOrderItem; +import com.ecep.contract.vm.PurchaseOrderItemViewModel; + +public class PurchaseOrderItemService implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/PurchaseOrdersService.java b/client/src/main/java/com/ecep/contract/service/PurchaseOrdersService.java new file mode 100644 index 0000000..26247be --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/PurchaseOrdersService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.PurchaseOrder; +import com.ecep.contract.vm.PurchaseOrderViewModel; + +public class PurchaseOrdersService implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/SaleTypeService.java b/client/src/main/java/com/ecep/contract/service/SaleTypeService.java new file mode 100644 index 0000000..b902f90 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/SaleTypeService.java @@ -0,0 +1,13 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.ProjectSaleType; +import com.ecep.contract.vm.ProjectSaleTypeViewModel; + +public class SaleTypeService implements ViewModelService { + + public ProjectSaleType findByName(String name) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findByName'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/SalesBillVoucherService.java b/client/src/main/java/com/ecep/contract/service/SalesBillVoucherService.java new file mode 100644 index 0000000..2e75971 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/SalesBillVoucherService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.SalesBillVoucher; +import com.ecep.contract.vm.SalesBillVoucherViewModel; + +public class SalesBillVoucherService implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/SalesOrderItemService.java b/client/src/main/java/com/ecep/contract/service/SalesOrderItemService.java new file mode 100644 index 0000000..bdddfa2 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/SalesOrderItemService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.SalesOrderItem; +import com.ecep.contract.vm.SalesOrderItemViewModel; + +public class SalesOrderItemService implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/SysConfService.java b/client/src/main/java/com/ecep/contract/service/SysConfService.java index 1493a54..7f5f633 100644 --- a/client/src/main/java/com/ecep/contract/service/SysConfService.java +++ b/client/src/main/java/com/ecep/contract/service/SysConfService.java @@ -8,33 +8,28 @@ import org.springframework.data.domain.Pageable; import com.ecep.contract.model.SysConf; -public class SysConfService implements IEntityService { +public class SysConfService { - @Override - public SysConf findById(Integer id) { + public SysConf findById(String id) { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'findById'"); } - @Override public SysConf save(SysConf entity) { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'save'"); } - @Override public void delete(SysConf entity) { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'delete'"); } - @Override public List findAll() { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'findAll'"); } - @Override public Page findAll(Map params, Pageable pageable) { // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'findAll'"); diff --git a/client/src/main/java/com/ecep/contract/service/VendorGroupRequireFileTypeService.java b/client/src/main/java/com/ecep/contract/service/VendorGroupRequireFileTypeService.java index 3e562d6..8f95ede 100644 --- a/client/src/main/java/com/ecep/contract/service/VendorGroupRequireFileTypeService.java +++ b/client/src/main/java/com/ecep/contract/service/VendorGroupRequireFileTypeService.java @@ -1,9 +1,16 @@ package com.ecep.contract.service; +import java.util.List; + import com.ecep.contract.model.VendorGroupRequireFileType; import com.ecep.contract.vm.VendorGroupRequireFileTypeViewModel; public class VendorGroupRequireFileTypeService implements ViewModelService { + public List findByGroupId(Integer id) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findByGroupId'"); + } + } diff --git a/client/src/main/java/com/ecep/contract/service/VendorGroupService.java b/client/src/main/java/com/ecep/contract/service/VendorGroupService.java index bc5ad55..15013c7 100644 --- a/client/src/main/java/com/ecep/contract/service/VendorGroupService.java +++ b/client/src/main/java/com/ecep/contract/service/VendorGroupService.java @@ -5,4 +5,9 @@ import com.ecep.contract.vm.VendorGroupViewModel; public class VendorGroupService implements ViewModelService { + public VendorGroup newInstance() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'newInstance'"); + } + } diff --git a/client/src/main/java/com/ecep/contract/service/ViewModelService.java b/client/src/main/java/com/ecep/contract/service/ViewModelService.java index aabd741..cca36fc 100644 --- a/client/src/main/java/com/ecep/contract/service/ViewModelService.java +++ b/client/src/main/java/com/ecep/contract/service/ViewModelService.java @@ -104,4 +104,6 @@ public interface ViewModelService { /** * 生成定时同步任务 diff --git a/client/src/main/java/com/ecep/contract/task/ContractFilesRebuildAllTasker.java b/client/src/main/java/com/ecep/contract/task/ContractFilesRebuildAllTasker.java new file mode 100644 index 0000000..ba673c0 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/task/ContractFilesRebuildAllTasker.java @@ -0,0 +1,21 @@ +package com.ecep.contract.task; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.model.ContractGroup; +import com.ecep.contract.service.ContractService; + +import lombok.Setter; + +public class ContractFilesRebuildAllTasker extends Tasker{ + @Setter + private ContractService contractService; + + @Setter + private ContractGroup group; + + @Override + protected Object execute(MessageHolder holder) throws Exception { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'execute'"); + } +} diff --git a/client/src/main/java/com/ecep/contract/task/ContractRepairAllTasker.java b/client/src/main/java/com/ecep/contract/task/ContractRepairAllTasker.java new file mode 100644 index 0000000..31eb0b9 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/task/ContractRepairAllTasker.java @@ -0,0 +1,14 @@ +package com.ecep.contract.task; + +import com.ecep.contract.MessageHolder; + +public class ContractRepairAllTasker extends Tasker{ + + @Override + protected Object execute(MessageHolder holder) throws Exception { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'execute'"); + } + + +} diff --git a/client/src/main/java/com/ecep/contract/task/ContractVerifyComm.java b/client/src/main/java/com/ecep/contract/task/ContractVerifyComm.java index 0963a3f..cfec4cf 100644 --- a/client/src/main/java/com/ecep/contract/task/ContractVerifyComm.java +++ b/client/src/main/java/com/ecep/contract/task/ContractVerifyComm.java @@ -19,11 +19,9 @@ import org.springframework.util.StringUtils; import com.ecep.contract.CompanyCustomerFileType; import com.ecep.contract.ContractFileType; import com.ecep.contract.ContractPayWay; -import com.ecep.contract.Desktop; import com.ecep.contract.MessageHolder; import com.ecep.contract.MyDateTimeUtils; import com.ecep.contract.SpringApp; -import com.ecep.contract.ds.project.ProjectCostImportItemsFromContractsTasker; import com.ecep.contract.model.Company; import com.ecep.contract.model.CompanyCustomer; import com.ecep.contract.model.CompanyCustomerFile; @@ -42,7 +40,9 @@ import com.ecep.contract.model.ProjectSaleType; import com.ecep.contract.model.ProjectSaleTypeRequireFileType; import com.ecep.contract.model.VendorGroup; import com.ecep.contract.model.VendorGroupRequireFileType; +import com.ecep.contract.service.CompanyCustomerFileService; import com.ecep.contract.service.CompanyCustomerService; +import com.ecep.contract.service.CompanyExtendInfoService; import com.ecep.contract.service.CompanyFileService; import com.ecep.contract.service.CompanyService; import com.ecep.contract.service.CompanyVendorService; @@ -310,26 +310,21 @@ public class ContractVerifyComm { holder.debug("公司设定不做校验"); } else { if (verifyCompanyPath.get()) { - if (!CompanyFileUtils.exists(company.getPath())) { + if (!getCompanyService().existsCompanyPath(company)) { holder.error("公司目录未设置"); } else { - File basePath = getCompanyService().getBasePath(); - if (!company.getPath().startsWith(basePath.getAbsolutePath())) { + if (!getCompanyService().checkCompanyPathInBasePath(company)) { holder.error("公司目录未在规定目录下"); } } } if (verifyCompanyStatus.get()) { - getCompanyService().verifyEnterpriseStatus(company, setupDate, msg -> { - holder.error(company.getName() + ":" + msg); - }); + getCompanyService().verifyEnterpriseStatus(company, setupDate, holder); } if (verifyCompanyCredit.get()) { - getCompanyFileService().verify(company, contract.getSetupDate(), msg -> { - holder.error(company.getName() + ":" + msg); - }); + getCompanyFileService().verify(company, contract.getSetupDate(), holder); } } @@ -340,14 +335,14 @@ public class ContractVerifyComm { verifyAsCustomer(company, companyExtendInfo, contract, holder); // 销售合同下的采购合同 - List list = getContractService().findAllByParent(contract); + List list = getContractService().findAllBySaleContract(contract); if (!list.isEmpty()) { for (Contract v : list) { MessageHolder subHolder = holder.sub(v.getCode() + " -> "); subHolder.info("采购合同 : " + v.getName()); verify(v, subHolder); - if (CompanyFileUtils.exists(v.getPath())) { - if (!v.getPath().startsWith(contract.getPath())) { + if (getContractService().existsContractPath(v)) { + if (!getContractService().checkContractPathInBasePath(v)) { holder.error("合同目录未在规定目录下"); } } else { @@ -562,7 +557,7 @@ public class ContractVerifyComm { ProjectSaleType saleType = project.getSaleType(); if (saleType != null) { - if (CompanyFileUtils.exists(contract.getPath())) { + if (getContractService().existsContractPath(contract)) { if (!Hibernate.isInitialized(saleType)) { saleType = getSaleTypeService().findById(saleType.getId()); project.setSaleType(saleType); @@ -751,12 +746,8 @@ public class ContractVerifyComm { } if (needImport && !autoCost.isImportLock()) { - ProjectCostImportItemsFromContractsTasker tasker = new ProjectCostImportItemsFromContractsTasker(); - tasker.setCost(autoCost); - tasker.setCurrentUser(() -> getEmployeeService().findById(Desktop.instance.getActiveEmployeeId())); - autoCost.setApplyTime(LocalDateTime.now()); holder.debug("更新V0项目成本"); - Desktop.instance.getTaskMonitorCenter().registerAndStartTask(tasker); + getProjectCostService().updateAutoCost(project, holder); } // 检查最新的项目成本,默认 V1 diff --git a/client/src/main/java/com/ecep/contract/task/ContractVerifyTasker.java b/client/src/main/java/com/ecep/contract/task/ContractVerifyTasker.java new file mode 100644 index 0000000..ba1ff0a --- /dev/null +++ b/client/src/main/java/com/ecep/contract/task/ContractVerifyTasker.java @@ -0,0 +1,18 @@ +package com.ecep.contract.task; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.model.Contract; + +import lombok.Setter; + +public class ContractVerifyTasker extends Tasker { + @Setter + private Contract contract; + + @Override + protected Object execute(MessageHolder holder) throws Exception { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'execute'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/task/EmployeesSyncTask.java b/client/src/main/java/com/ecep/contract/task/EmployeesSyncTask.java new file mode 100644 index 0000000..b11e83f --- /dev/null +++ b/client/src/main/java/com/ecep/contract/task/EmployeesSyncTask.java @@ -0,0 +1,13 @@ +package com.ecep.contract.task; + +import com.ecep.contract.MessageHolder; + +public class EmployeesSyncTask extends Tasker { + + @Override + protected Object execute(MessageHolder holder) throws Exception { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'execute'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/task/InventorySyncTask.java b/client/src/main/java/com/ecep/contract/task/InventorySyncTask.java new file mode 100644 index 0000000..c09051a --- /dev/null +++ b/client/src/main/java/com/ecep/contract/task/InventorySyncTask.java @@ -0,0 +1,13 @@ +package com.ecep.contract.task; + +import com.ecep.contract.MessageHolder; + +public class InventorySyncTask extends Tasker { + + @Override + protected Object execute(MessageHolder holder) throws Exception { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'execute'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/task/VendorVerifyAllTasker.java b/client/src/main/java/com/ecep/contract/task/VendorVerifyAllTasker.java new file mode 100644 index 0000000..78507d4 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/task/VendorVerifyAllTasker.java @@ -0,0 +1,13 @@ +package com.ecep.contract.task; + +import com.ecep.contract.MessageHolder; + +public class VendorVerifyAllTasker extends Tasker { + + @Override + protected Object execute(MessageHolder holder) throws Exception { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'execute'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/util/AbstractConfigBounder.java b/client/src/main/java/com/ecep/contract/util/AbstractConfigBounder.java index 7784831..dbed480 100644 --- a/client/src/main/java/com/ecep/contract/util/AbstractConfigBounder.java +++ b/client/src/main/java/com/ecep/contract/util/AbstractConfigBounder.java @@ -5,8 +5,8 @@ import java.util.concurrent.CompletableFuture; import com.ecep.contract.Desktop; import com.ecep.contract.SpringApp; -import com.ecep.contract.ds.other.service.SysConfService; import com.ecep.contract.model.SysConf; +import com.ecep.contract.service.SysConfService; import javafx.beans.property.ObjectProperty; import javafx.beans.property.Property; diff --git a/client/src/main/java/com/ecep/contract/util/BeanCacher.java b/client/src/main/java/com/ecep/contract/util/BeanCacher.java new file mode 100644 index 0000000..3fc30c7 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/util/BeanCacher.java @@ -0,0 +1,22 @@ +package com.ecep.contract.util; + +import java.util.HashMap; + +import org.springframework.beans.BeansException; + +import com.ecep.contract.SpringApp; + +public class BeanCacher { + + private HashMap, Object> cachedBeans = new HashMap<>(); + + @SuppressWarnings("unchecked") + public T getBean(Class requiredType) throws BeansException { + Object object = cachedBeans.get(requiredType); + if (object == null) { + object = SpringApp.getBean(requiredType); + cachedBeans.put(requiredType, object); + } + return (T) object; + } +} diff --git a/client/src/main/java/com/ecep/contract/util/LocalDateConfig.java b/client/src/main/java/com/ecep/contract/util/LocalDateConfig.java index 5fea66e..81cd8d1 100644 --- a/client/src/main/java/com/ecep/contract/util/LocalDateConfig.java +++ b/client/src/main/java/com/ecep/contract/util/LocalDateConfig.java @@ -3,6 +3,8 @@ package com.ecep.contract.util; import java.time.LocalDate; import java.time.format.DateTimeFormatter; +import com.ecep.contract.service.SysConfService; + import javafx.beans.property.Property; import javafx.scene.control.DatePicker; import javafx.util.StringConverter; @@ -34,4 +36,10 @@ public class LocalDateConfig extends AbstractConfigBounder { getControl().valueProperty().bindBidirectional(property); } + @Override + public void setConfService(SysConfService confService) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'setConfService'"); + } + } \ No newline at end of file diff --git a/client/src/main/java/com/ecep/contract/util/ParamUtils.java b/client/src/main/java/com/ecep/contract/util/ParamUtils.java new file mode 100644 index 0000000..4a31bc0 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/util/ParamUtils.java @@ -0,0 +1,87 @@ +package com.ecep.contract.util; + +import java.time.LocalDate; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +public class ParamUtils { + public static Map between(LocalDate begin, LocalDate end) { + Map params = new HashMap<>(); + params.put("begin", begin); + params.put("end", end); + return params; + } + + public static Map equal(String key, boolean value) { + Map params = new HashMap<>(); + params.put(key, value); + return params; + } + + public static Map equal(String key, String value) { + Map params = new HashMap<>(); + params.put(key, value); + return params; + } + + public static Map like(String key, String value) { + Map params = new HashMap<>(); + params.put(key, "%" + value + "%"); + return params; + } + + public static Map like(String key, LocalDate value) { + Map params = new HashMap<>(); + params.put(key, "%" + value + "%"); + return params; + } + + public static Map isNotNull(String key) { + Map params = new HashMap<>(); + params.put(key, Map.of("isNotNull", true)); + return params; + } + + public static Map lessThan(String key, LocalDate value) { + Map params = new HashMap<>(); + params.put(key, Map.of("lessThan", value)); + return params; + } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private Map params = new HashMap<>(); + + private Builder() { + } + + public Builder isNotNull(String key) { + params.put(key, Map.of("isNotNull", true)); + return this; + } + + public Builder lessThan(String key, LocalDate value) { + params.put(key, Map.of("lessThan", value)); + return this; + } + + public Builder equals(String key, Object value) { + params.put(key, Map.of("equals", value)); + return this; + } + + public Builder between(String key, LocalDate begin, LocalDate end) { + params.put(key, Map.of("begin", begin, "end", end)); + return this; + } + + public Map build() { + return params; + } + + } +} diff --git a/client/src/main/java/com/ecep/contract/vm/CompanyContactViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyContactViewModel.java index 840e68e..fd5c2d4 100644 --- a/client/src/main/java/com/ecep/contract/vm/CompanyContactViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyContactViewModel.java @@ -1,6 +1,7 @@ package com.ecep.contract.vm; import java.time.LocalDate; +import java.util.Objects; import com.ecep.contract.model.CompanyContact; @@ -45,15 +46,43 @@ public class CompanyContactViewModel extends IdentityViewModel { } public boolean copyTo(CompanyContact v) { - v.setId(id.get()); - v.setName(name.get()); - v.setPosition(position.get()); - v.setPhone(phone.get()); - v.setEmail(email.get()); - v.setAddress(address.get()); - v.setU8Code(u8Code.get()); - v.setCreated(created.get()); - v.setMemo(memo.get()); - return true; + boolean modified = super.copyTo(v); + if (!Objects.equals(id.get(), v.getId())) { + v.setId(id.get()); + modified = true; + } + if (!Objects.equals(name.get(), v.getName())) { + v.setName(name.get()); + modified = true; + } + if (!Objects.equals(position.get(), v.getPosition())) { + v.setPosition(position.get()); + modified = true; + } + if (!Objects.equals(phone.get(), v.getPhone())) { + v.setPhone(phone.get()); + modified = true; + } + if (!Objects.equals(email.get(), v.getEmail())) { + v.setEmail(email.get()); + modified = true; + } + if (!Objects.equals(address.get(), v.getAddress())) { + v.setAddress(address.get()); + modified = true; + } + if (!Objects.equals(u8Code.get(), v.getU8Code())) { + v.setU8Code(u8Code.get()); + modified = true; + } + if (!Objects.equals(created.get(), v.getCreated())) { + v.setCreated(created.get()); + modified = true; + } + if (!Objects.equals(memo.get(), v.getMemo())) { + v.setMemo(memo.get()); + modified = true; + } + return modified; } } diff --git a/client/src/main/java/com/ecep/contract/vm/CompanyExtendInfoViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyExtendInfoViewModel.java index 23c4e3f..6d3d3da 100644 --- a/client/src/main/java/com/ecep/contract/vm/CompanyExtendInfoViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyExtendInfoViewModel.java @@ -13,8 +13,7 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = false) -public class CompanyExtendInfoViewModel extends BaseViewModel { - private SimpleIntegerProperty id = new SimpleIntegerProperty(); +public class CompanyExtendInfoViewModel extends IdentityViewModel { /** * 关联的公司 */ @@ -34,7 +33,6 @@ public class CompanyExtendInfoViewModel extends BaseViewModel @Override protected void updateFrom(CompanyExtendInfo v) { super.updateFrom(v); - getId().set(v.getId()); getCompany().set(v.getCompany()); getDisableVerify().set(v.isDisableVerify()); getVersion().set(v.getVersion()); @@ -43,10 +41,6 @@ public class CompanyExtendInfoViewModel extends BaseViewModel @Override public boolean copyTo(CompanyExtendInfo v) { boolean modified = super.copyTo(v); - if (!Objects.equals(id.get(), v.getId())) { - v.setId(id.get()); - modified = true; - } if (!Objects.equals(company.get(), v.getCompany())) { v.setCompany(company.get()); modified = true; diff --git a/client/src/main/java/com/ecep/contract/vm/CompanyFileViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyFileViewModel.java index ba4a54a..c77360e 100644 --- a/client/src/main/java/com/ecep/contract/vm/CompanyFileViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyFileViewModel.java @@ -19,7 +19,6 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = false) public class CompanyFileViewModel extends IdentityViewModel { - SimpleIntegerProperty id = new SimpleIntegerProperty(); SimpleObjectProperty company = new SimpleObjectProperty<>(); SimpleObjectProperty type = new SimpleObjectProperty<>(); SimpleObjectProperty applyDate = new SimpleObjectProperty<>(); @@ -29,7 +28,7 @@ public class CompanyFileViewModel extends IdentityViewModel { @Override protected void updateFrom(CompanyFile v) { - id.set(v.getId()); + super.updateFrom(v); company.set(v.getCompany()); type.set(v.getType()); applyDate.set(v.getApplyDate()); @@ -39,10 +38,6 @@ public class CompanyFileViewModel extends IdentityViewModel { public boolean copyTo(CompanyFile v) { boolean modified = super.copyTo(v); - if (!Objects.equals(id.get(), v.getId())) { - v.setId(id.get()); - modified = true; - } if (!Objects.equals(company.get(), v.getCompany())) { v.setCompany(company.get()); modified = true; diff --git a/client/src/main/java/com/ecep/contract/vm/CompanyInvoiceInfoViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyInvoiceInfoViewModel.java new file mode 100644 index 0000000..5d9a86d --- /dev/null +++ b/client/src/main/java/com/ecep/contract/vm/CompanyInvoiceInfoViewModel.java @@ -0,0 +1,62 @@ +package com.ecep.contract.vm; + +import java.util.Objects; + +import com.ecep.contract.model.CompanyInvoiceInfo; + +import javafx.beans.property.SimpleStringProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +public class CompanyInvoiceInfoViewModel extends IdentityViewModel { + private SimpleStringProperty name = new SimpleStringProperty(); + private SimpleStringProperty taxId = new SimpleStringProperty(); + private SimpleStringProperty address = new SimpleStringProperty(); + private SimpleStringProperty phone = new SimpleStringProperty(); + private SimpleStringProperty bankName = new SimpleStringProperty(); + private SimpleStringProperty bankAccount = new SimpleStringProperty(); + + @Override + protected void updateFrom(CompanyInvoiceInfo v) { + super.updateFrom(v); + name.set(v.getName()); + taxId.set(v.getTaxId()); + address.set(v.getAddress()); + phone.set(v.getPhone()); + bankName.set(v.getBankName()); + bankAccount.set(v.getBankAccount()); + } + + @Override + public boolean copyTo(CompanyInvoiceInfo v) { + boolean ret = super.copyTo(v); + if (!Objects.equals(name.get(), v.getName())) { + v.setName(name.get()); + ret = true; + } + if (!Objects.equals(taxId.get(), v.getTaxId())) { + v.setTaxId(taxId.get()); + ret = true; + } + if (!Objects.equals(address.get(), v.getAddress())) { + v.setAddress(address.get()); + ret = true; + } + if (!Objects.equals(phone.get(), v.getPhone())) { + v.setPhone(phone.get()); + ret = true; + } + if (!Objects.equals(bankName.get(), v.getBankName())) { + v.setBankName(bankName.get()); + ret = true; + } + if (!Objects.equals(bankAccount.get(), v.getBankAccount())) { + v.setBankAccount(bankAccount.get()); + ret = true; + } + return ret; + } + +} 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 52ea21d..665ffe2 100644 --- a/client/src/main/java/com/ecep/contract/vm/CompanyOldNameViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyOldNameViewModel.java @@ -1,6 +1,7 @@ package com.ecep.contract.vm; import java.time.LocalDate; +import java.util.Objects; import com.ecep.contract.model.CompanyOldName; @@ -47,13 +48,35 @@ public class CompanyOldNameViewModel extends IdentityViewModel { } public boolean copyTo(CompanyOldName c) { - c.setId(id.get()); - c.setName(name.get()); - c.setPath(path.get()); - c.setMemo(memo.get()); - c.setBeginDate(beginDate.get()); - c.setEndDate(endDate.get()); - c.setAmbiguity(ambiguity.get()); - return false; + boolean modified = super.copyTo(c); + if (!Objects.equals(id.get(), c.getId())) { + c.setId(id.get()); + modified = true; + } + if (!Objects.equals(name.get(), c.getName())) { + c.setName(name.get()); + modified = true; + } + if (!Objects.equals(path.get(), c.getPath())) { + c.setPath(path.get()); + modified = true; + } + if (!Objects.equals(memo.get(), c.getMemo())) { + c.setMemo(memo.get()); + modified = true; + } + if (!Objects.equals(beginDate.get(), c.getBeginDate())) { + c.setBeginDate(beginDate.get()); + modified = true; + } + if (!Objects.equals(endDate.get(), c.getEndDate())) { + c.setEndDate(endDate.get()); + modified = true; + } + if (!Objects.equals(ambiguity.get(), c.getAmbiguity())) { + c.setAmbiguity(ambiguity.get()); + modified = true; + } + return modified; } } diff --git a/client/src/main/java/com/ecep/contract/vm/CompanyVendorApprovedFileViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyVendorApprovedFileViewModel.java index 2dafba3..650ca26 100644 --- a/client/src/main/java/com/ecep/contract/vm/CompanyVendorApprovedFileViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyVendorApprovedFileViewModel.java @@ -1,6 +1,7 @@ package com.ecep.contract.vm; import java.time.LocalDate; +import java.util.Objects; import com.ecep.contract.model.CompanyVendorApprovedFile; import com.ecep.contract.model.CompanyVendorApprovedList; @@ -42,11 +43,23 @@ public class CompanyVendorApprovedFileViewModel extends IdentityViewModel { + private SimpleStringProperty name = new SimpleStringProperty(); + private SimpleStringProperty code = new SimpleStringProperty(); + + @Override + protected void updateFrom(InventoryCatalog v) { + super.updateFrom(v); + name.set(v.getName()); + code.set(v.getCode()); + } + + @Override + public boolean copyTo(InventoryCatalog v) { + boolean ret = super.copyTo(v); + if (!Objects.equals(name.get(), v.getName())) { + v.setName(name.get()); + ret = true; + } + if (!Objects.equals(code.get(), v.getCode())) { + v.setCode(code.get()); + ret = true; + } + return ret; + } + +} diff --git a/client/src/main/java/com/ecep/contract/vm/PermissionViewModel.java b/client/src/main/java/com/ecep/contract/vm/PermissionViewModel.java index a8a6c19..8c78fee 100644 --- a/client/src/main/java/com/ecep/contract/vm/PermissionViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/PermissionViewModel.java @@ -23,7 +23,6 @@ public class PermissionViewModel extends IdentityViewModel { return model; } - @Override protected void updateFrom(Permission v) { super.updateFrom(v); diff --git a/client/src/main/java/com/ecep/contract/vm/PurchaseOrderItemViewModel.java b/client/src/main/java/com/ecep/contract/vm/PurchaseOrderItemViewModel.java index 7d334eb..80f01cc 100644 --- a/client/src/main/java/com/ecep/contract/vm/PurchaseOrderItemViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/PurchaseOrderItemViewModel.java @@ -17,8 +17,6 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = false) public class PurchaseOrderItemViewModel extends IdentityViewModel { - - private SimpleIntegerProperty id = new SimpleIntegerProperty(); /** * 关联的销售订单 */ @@ -36,7 +34,6 @@ public class PurchaseOrderItemViewModel extends IdentityViewModel { - - SimpleIntegerProperty id = new SimpleIntegerProperty(); SimpleIntegerProperty refId = new SimpleIntegerProperty(); SimpleObjectProperty contract = new SimpleObjectProperty<>(); SimpleObjectProperty employee = new SimpleObjectProperty<>(); @@ -33,7 +31,7 @@ public class PurchaseOrderViewModel extends IdentityViewModel { @Override protected void updateFrom(PurchaseOrder v) { - getId().set(v.getId()); + super.updateFrom(v); getRefId().set(v.getRefId()); getContract().set(v.getContract()); getEmployee().set(v.getEmployee()); @@ -52,10 +50,6 @@ public class PurchaseOrderViewModel extends IdentityViewModel { @Override public boolean copyTo(PurchaseOrder v) { boolean modified = super.copyTo(v); - if (!Objects.equals(id.get(), v.getId())) { - v.setId(id.get()); - modified = true; - } if (!Objects.equals(refId.get(), v.getRefId())) { v.setRefId(refId.get()); modified = true; diff --git a/common/src/main/java/com/ecep/contract/constant/CloudYuConstant.java b/common/src/main/java/com/ecep/contract/constant/CloudYuConstant.java new file mode 100644 index 0000000..8aaac5c --- /dev/null +++ b/common/src/main/java/com/ecep/contract/constant/CloudYuConstant.java @@ -0,0 +1,27 @@ +package com.ecep.contract.constant; + +public class CloudYuConstant { + + public static final String KEY_PREFIX = "cloud.u8.contract."; + /** + * 合同同步后的最后一个日期 + */ + public static final String KEY_SYNC_BY_LATEST_DATE = KEY_PREFIX + "latestDate"; + /** + * 合同同步后的最后一个合同ID + */ + public static final String KEY_SYNC_BY_LATEST_ID = KEY_PREFIX + "latestId"; + /** + * 合同同步时是否使用最后更新的Id来判断更新范围,否则使用最后更新的合同日期来判断更新范围 + */ + public static final String KEY_SYNC_USE_LATEST_ID = KEY_PREFIX + "sync.use-latest-id"; + /** + * 合同同步时的时间间隔,单位:秒 + */ + public static final String KEY_SYNC_ELAPSE = KEY_PREFIX + "sync.elapse"; + /** + * 自动创建公司的时间 + */ + public static final String KEY_AUTO_CREATE_COMPANY_AFTER = KEY_PREFIX + "auto-create-company-after"; + +} diff --git a/common/src/main/java/com/ecep/contract/constant/CompanyCustomerConstant.java b/common/src/main/java/com/ecep/contract/constant/CompanyCustomerConstant.java index 63a30c5..896f851 100644 --- a/common/src/main/java/com/ecep/contract/constant/CompanyCustomerConstant.java +++ b/common/src/main/java/com/ecep/contract/constant/CompanyCustomerConstant.java @@ -3,4 +3,11 @@ package com.ecep.contract.constant; public class CompanyCustomerConstant { public static final String EVALUATION_FORM_NAME1 = "评定表"; public static final String EVALUATION_FORM_NAME2 = "评估表"; + + public static final String KEY_BASE_PATH = "customer.base.path"; + public static final String KEY_SALEBOOK_PATH = "customer.salebook.path"; + /** + * 客户资信评估表 + */ + public static final String KEY_EVALUATION_FORM_TEMPLATE = "customer.evaluation.form.template"; } diff --git a/common/src/main/java/com/ecep/contract/constant/ContractConstant.java b/common/src/main/java/com/ecep/contract/constant/ContractConstant.java new file mode 100644 index 0000000..322b154 --- /dev/null +++ b/common/src/main/java/com/ecep/contract/constant/ContractConstant.java @@ -0,0 +1,27 @@ +package com.ecep.contract.constant; + +public class ContractConstant { + + public static final String KEY_BASE_PATH = "contract.base.path"; + /** + * 销售成本核算审批表模板 + */ + public static final String KEY_CUSTOMER_COST_TEMPLATE = "customer.contract.cost.template"; + /** + * 项目投标审批表模板 + */ + public static final String KEY_CUSTOMER_BID_TEMPLATE = "customer.contract.bid.template"; + /** + * 销售合同审批表模板 + */ + public static final String KEY_CUSTOMER_APPLY_TEMPLATE = "customer.contract.apply.template"; + /** + * 投标报价表模板 + */ + public static final String KEY_QUOTATION_TEMPLATE = "customer.contract.quotation.template"; + /** + * 采购合同审批表模板 + */ + public static final String KEY_VENDOR_APPLY_TEMPLATE = "vendor.contract.apply.template"; + +} diff --git a/common/src/main/java/com/ecep/contract/constant/ProjectConstant.java b/common/src/main/java/com/ecep/contract/constant/ProjectConstant.java new file mode 100644 index 0000000..42db7e4 --- /dev/null +++ b/common/src/main/java/com/ecep/contract/constant/ProjectConstant.java @@ -0,0 +1,7 @@ +package com.ecep.contract.constant; + +public class ProjectConstant { + + public final static String KEY_CUSTOMER_SATISFACTION_SURVEY_TEMPLATE = "project.customer-satisfaction-survey.template"; + +} diff --git a/server/src/main/java/com/ecep/contract/cloud/u8/ContractSyncTask.java b/server/src/main/java/com/ecep/contract/cloud/u8/ContractSyncTask.java index 8a0ef1e..793b99d 100644 --- a/server/src/main/java/com/ecep/contract/cloud/u8/ContractSyncTask.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ContractSyncTask.java @@ -14,7 +14,7 @@ import org.springframework.util.StringUtils; import com.ecep.contract.MessageHolder; import com.ecep.contract.SpringApp; -import com.ecep.contract.cloud.u8.ctx.ContractCtx; +import com.ecep.contract.constant.CloudYuConstant; import com.ecep.contract.ds.contract.tasker.AbstContractRepairTasker; /** @@ -37,7 +37,7 @@ public class ContractSyncTask extends AbstContractRepairTasker { holder.error("无法获取 YongYouU8Repository " + e.getMessage()); return; } - if (getConfService().getBoolean(ContractCtx.KEY_SYNC_USE_LATEST_ID)) { + if (getConfService().getBoolean(CloudYuConstant.KEY_SYNC_USE_LATEST_ID)) { syncByLatestId(holder); } else { syncByLatestDate(holder); @@ -45,7 +45,7 @@ public class ContractSyncTask extends AbstContractRepairTasker { } private void syncByLatestId(MessageHolder holder) { - int latestId = getConfService().getInt(ContractCtx.KEY_SYNC_BY_LATEST_ID); + int latestId = getConfService().getInt(CloudYuConstant.KEY_SYNC_BY_LATEST_ID); updateTitle("用友U8系统-同步合同,从 " + latestId + " 开始"); Long total = repository.countAllContracts(latestId); @@ -81,11 +81,11 @@ public class ContractSyncTask extends AbstContractRepairTasker { updateProgress(counter.incrementAndGet(), total); }); } - getConfService().set(ContractCtx.KEY_SYNC_BY_LATEST_ID, String.valueOf(reference.get())); + getConfService().set(CloudYuConstant.KEY_SYNC_BY_LATEST_ID, String.valueOf(reference.get())); } private void syncByLatestDate(MessageHolder holder) { - String strDateTime = getConfService().getString(ContractCtx.KEY_SYNC_BY_LATEST_DATE); + String strDateTime = getConfService().getString(CloudYuConstant.KEY_SYNC_BY_LATEST_DATE); LocalDateTime latestDateTime = null; if (StringUtils.hasText(strDateTime)) { try { @@ -135,7 +135,7 @@ public class ContractSyncTask extends AbstContractRepairTasker { updateProgress(counter.incrementAndGet(), total); }); } - getConfService().set(ContractCtx.KEY_SYNC_BY_LATEST_DATE, String.valueOf(reference.get())); + getConfService().set(CloudYuConstant.KEY_SYNC_BY_LATEST_DATE, String.valueOf(reference.get())); } } diff --git a/server/src/main/java/com/ecep/contract/cloud/u8/ctx/CompanyCtx.java b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/CompanyCtx.java index 50eafa5..d2d93f9 100644 --- a/server/src/main/java/com/ecep/contract/cloud/u8/ctx/CompanyCtx.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/CompanyCtx.java @@ -10,6 +10,7 @@ import org.springframework.util.StringUtils; import com.ecep.contract.MessageHolder; import com.ecep.contract.constant.CloudServiceConstant; +import com.ecep.contract.constant.CloudYuConstant; import com.ecep.contract.ds.company.service.CompanyOldNameService; import com.ecep.contract.ds.company.service.CompanyService; import com.ecep.contract.model.Company; @@ -18,11 +19,6 @@ import com.ecep.contract.model.CompanyOldName; import lombok.Setter; public class CompanyCtx extends AbstractYongYouU8Ctx { - /** - * 自动创建公司的时间 - */ - public static final String AUTO_CREATE_COMPANY_AFTER = "cloud.u8.auto-create-company-after"; - @Setter private CompanyOldNameService companyOldNameService; @@ -114,7 +110,7 @@ public class CompanyCtx extends AbstractYongYouU8Ctx { return null; } CompanyService companyService = getCompanyService(); - String autoCreateAfter = getConfService().getString(AUTO_CREATE_COMPANY_AFTER); + String autoCreateAfter = getConfService().getString(CloudYuConstant.KEY_AUTO_CREATE_COMPANY_AFTER); // 当配置存在,且开发时间小于指定时间,不创建 if (StringUtils.hasText(autoCreateAfter)) { LocalDate miniDate = LocalDate.parse(autoCreateAfter); diff --git a/server/src/main/java/com/ecep/contract/cloud/u8/ctx/ContractCtx.java b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/ContractCtx.java index b64f34c..e02b1a2 100644 --- a/server/src/main/java/com/ecep/contract/cloud/u8/ctx/ContractCtx.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/ContractCtx.java @@ -66,24 +66,6 @@ import lombok.Setter; * 合同上下文 */ public class ContractCtx extends AbstractYongYouU8Ctx { - public static final String KEY_PREFIX = "cloud.u8.contract."; - /** - * 合同同步后的最后一个日期 - */ - public static final String KEY_SYNC_BY_LATEST_DATE = KEY_PREFIX + "latestDate"; - /** - * 合同同步后的最后一个合同ID - */ - public static final String KEY_SYNC_BY_LATEST_ID = KEY_PREFIX + "latestId"; - /** - * 合同同步时是否使用最后更新的Id来判断更新范围,否则使用最后更新的合同日期来判断更新范围 - */ - public static final String KEY_SYNC_USE_LATEST_ID = KEY_PREFIX + "sync.use-latest-id"; - /** - * 合同同步时的时间间隔,单位:秒 - */ - public static final String KEY_SYNC_ELAPSE = KEY_PREFIX + "sync.elapse"; - @Setter private ContractService contractService; @Setter diff --git a/server/src/main/java/com/ecep/contract/config/SecurityConfig.java b/server/src/main/java/com/ecep/contract/config/SecurityConfig.java index 932f910..90171de 100644 --- a/server/src/main/java/com/ecep/contract/config/SecurityConfig.java +++ b/server/src/main/java/com/ecep/contract/config/SecurityConfig.java @@ -132,6 +132,10 @@ public class SecurityConfig { return User.builder() .username(employee.getName()) .password(passwordEncoder().encode("default123")) // 使用默认密码进行加密 + .accountExpired(false) // 账户未过期 + .accountLocked(false) // 账户未锁定 + .credentialsExpired(false) // 凭证未过期 + .disabled(!employee.isActive()) // 根据员工状态设置是否禁用 .authorities(authorities) .build(); }; diff --git a/server/src/main/java/com/ecep/contract/ds/company/CompanyContactStringConverter.java b/server/src/main/java/com/ecep/contract/ds/company/CompanyContactStringConverter.java index 37c2c90..0a28113 100644 --- a/server/src/main/java/com/ecep/contract/ds/company/CompanyContactStringConverter.java +++ b/server/src/main/java/com/ecep/contract/ds/company/CompanyContactStringConverter.java @@ -1,8 +1,8 @@ package com.ecep.contract.ds.company; import com.ecep.contract.ds.company.service.CompanyContactService; +import com.ecep.contract.ds.converter.EntityStringConverter; import com.ecep.contract.model.CompanyContact; -import com.ecep.contract.util.EntityStringConverter; public class CompanyContactStringConverter extends EntityStringConverter { diff --git a/server/src/main/java/com/ecep/contract/ds/company/controller/CompanyController.java b/server/src/main/java/com/ecep/contract/ds/company/controller/CompanyController.java new file mode 100644 index 0000000..fefe7d4 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/company/controller/CompanyController.java @@ -0,0 +1,50 @@ +package com.ecep.contract.ds.company.controller; + +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.model.Company; + +@RestController +@RequestMapping("/company") +public class CompanyController { + @Autowired + private CompanyService companyService; + + @RequestMapping("/findById") + public Company findById(Integer id) { + return companyService.findById(id); + } + + @RequestMapping("/list") + public Page list( + Map params, + @RequestParam(defaultValue = "0", name = "page") int pageNumber, + @RequestParam(defaultValue = "10", name = "size") int pageSize) { + Specification spec = null; + Sort sort = Sort.by(Sort.Order.desc("id")); + Pageable pageable = PageRequest.of(pageNumber, pageSize, sort); + return companyService.findAll(spec, pageable); + } + + @RequestMapping("/save") + public Company save(Company company) { + return companyService.save(company); + } + + @RequestMapping("/delete") + public void delete(Integer id) { + Company company = companyService.findById(id); + companyService.delete(company); + } +} \ No newline at end of file diff --git a/server/src/main/java/com/ecep/contract/ds/company/service/CompanyService.java b/server/src/main/java/com/ecep/contract/ds/company/service/CompanyService.java index 896def9..ec3667b 100644 --- a/server/src/main/java/com/ecep/contract/ds/company/service/CompanyService.java +++ b/server/src/main/java/com/ecep/contract/ds/company/service/CompanyService.java @@ -33,6 +33,7 @@ import com.ecep.contract.MyDateTimeUtils; import com.ecep.contract.cloud.rk.CloudRkService; import com.ecep.contract.cloud.tyc.CloudTycService; import com.ecep.contract.cloud.u8.YongYouU8Service; +import com.ecep.contract.constant.CompanyCustomerConstant; import com.ecep.contract.constant.CompanyVendorConstant; import com.ecep.contract.ds.company.CompanyFileUtils; import com.ecep.contract.ds.company.repository.CompanyRepository; @@ -374,7 +375,7 @@ public class CompanyService implements IEntityService { } public File getCustomerBasePath() { - return new File(confService.getString(CompanyCustomerService.KEY_BASE_PATH)); + return new File(confService.getString(CompanyCustomerConstant.KEY_BASE_PATH)); } public File getBasePath() { diff --git a/server/src/main/java/com/ecep/contract/ds/contract/ContractStringConverter.java b/server/src/main/java/com/ecep/contract/ds/contract/ContractStringConverter.java index 905fbf7..22c22c7 100644 --- a/server/src/main/java/com/ecep/contract/ds/contract/ContractStringConverter.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/ContractStringConverter.java @@ -5,8 +5,8 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import com.ecep.contract.ds.contract.service.ContractService; +import com.ecep.contract.ds.converter.EntityStringConverter; import com.ecep.contract.model.Contract; -import com.ecep.contract.util.EntityStringConverter; import jakarta.annotation.PostConstruct; diff --git a/server/src/main/java/com/ecep/contract/ds/contract/service/ContractFileService.java b/server/src/main/java/com/ecep/contract/ds/contract/service/ContractFileService.java index 96c0f80..5a9f67c 100644 --- a/server/src/main/java/com/ecep/contract/ds/contract/service/ContractFileService.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/service/ContractFileService.java @@ -32,27 +32,6 @@ import com.ecep.contract.model.ContractFileTypeLocal; @CacheConfig(cacheNames = "contract-file") public class ContractFileService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(ContractFileService.class); - /** - * 销售成本核算审批表模板 - */ - public static final String KEY_CUSTOMER_COST_TEMPLATE = "customer.contract.cost.template"; - /** - * 项目投标审批表模板 - */ - public static final String KEY_CUSTOMER_BID_TEMPLATE = "customer.contract.bid.template"; - /** - * 销售合同审批表模板 - */ - public static final String KEY_CUSTOMER_APPLY_TEMPLATE = "customer.contract.apply.template"; - /** - * 投标报价表模板 - */ - public static final String KEY_QUOTATION_TEMPLATE = "customer.contract.quotation.template"; - /** - * 采购合同审批表模板 - */ - public static final String KEY_VENDOR_APPLY_TEMPLATE = "vendor.contract.apply.template"; - @Lazy @Autowired private ContractFileRepository contractFileRepository; diff --git a/server/src/main/java/com/ecep/contract/ds/contract/service/ContractService.java b/server/src/main/java/com/ecep/contract/ds/contract/service/ContractService.java index 3f134d6..8e2711b 100644 --- a/server/src/main/java/com/ecep/contract/ds/contract/service/ContractService.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/service/ContractService.java @@ -26,6 +26,7 @@ import org.springframework.util.StringUtils; import com.ecep.contract.ContractPayWay; import com.ecep.contract.IEntityService; +import com.ecep.contract.constant.ContractConstant; import com.ecep.contract.ds.contract.repository.ContractRepository; import com.ecep.contract.ds.other.service.SysConfService; import com.ecep.contract.model.Company; @@ -51,7 +52,6 @@ import jakarta.persistence.criteria.Predicate; @CacheConfig(cacheNames = "contract") public class ContractService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(ContractService.class); - public static final String CONTRACT_BASE_PATH = "contract.base.path"; @Lazy @Autowired private ContractCatalogService contractCatalogService; @@ -144,7 +144,7 @@ public class ContractService implements IEntityService { } public File getBasePath() { - return new File(confService.getString(CONTRACT_BASE_PATH)); + return new File(confService.getString(ContractConstant.KEY_BASE_PATH)); } public ContractGroup findGroupById(Integer id) { diff --git a/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractVerifyComm.java b/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractVerifyComm.java index 316d3a4..049c28b 100644 --- a/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractVerifyComm.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractVerifyComm.java @@ -9,6 +9,7 @@ import com.ecep.contract.ds.contract.service.ContractBidVendorService; import com.ecep.contract.ds.contract.service.ContractFileService; import com.ecep.contract.ds.contract.service.ContractService; import com.ecep.contract.ds.contract.service.ExtendVendorInfoService; +import com.ecep.contract.ds.converter.NumberStringConverter; import com.ecep.contract.ds.customer.service.CompanyCustomerFileService; import com.ecep.contract.ds.customer.service.CompanyCustomerService; import com.ecep.contract.ds.other.service.EmployeeService; @@ -18,10 +19,12 @@ import com.ecep.contract.ds.vendor.service.CompanyVendorService; import com.ecep.contract.ds.vendor.service.VendorGroupRequireFileTypeService; import com.ecep.contract.ds.vendor.service.VendorGroupService; import com.ecep.contract.model.*; -import com.ecep.contract.util.NumberStringConverter; +import com.ecep.contract.util.SecurityUtils; + import lombok.Data; import org.hibernate.Hibernate; import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.util.StringUtils; @@ -397,7 +400,7 @@ public class ContractVerifyComm { } private void verifyVendorFile(VendorGroup group, boolean assignedProvider, Contract contract, - MessageHolder holder) { + MessageHolder holder) { if (group == null) { return; } @@ -492,7 +495,7 @@ public class ContractVerifyComm { } private void verifyAsCustomer(Company company, CompanyExtendInfo companyExtendInfo, Contract contract, - MessageHolder holder) { + MessageHolder holder) { boolean valiad = true; Project project = contract.getProject(); if (project == null) { @@ -590,7 +593,7 @@ public class ContractVerifyComm { } private boolean verifyCustomerFileByContract(CompanyCustomer companyCustomer, Contract contract, - MessageHolder holder) { + MessageHolder holder) { List verifyDates = new ArrayList<>(); LocalDate minDate = LocalDate.of(2022, 1, 1); LocalDate developDate = companyCustomer.getDevelopDate(); @@ -724,13 +727,8 @@ public class ContractVerifyComm { // 以下代码替换原有的获取当前用户逻辑,假设用户名即为员工 ID // 需根据实际业务调整 UserDetails 中的信息获取方式 tasker.setCurrentUser(() -> { - Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); - String username; - if (principal instanceof UserDetails) { - username = ((UserDetails) principal).getUsername(); - } else { - username = principal.toString(); - } + User currentUser = SecurityUtils.getCurrentUser(); + String username = currentUser.getUsername(); try { return getEmployeeService().findByName(username); } catch (NumberFormatException e) { diff --git a/server/src/main/java/com/ecep/contract/util/EntityStringConverter.java b/server/src/main/java/com/ecep/contract/ds/converter/EntityStringConverter.java similarity index 97% rename from server/src/main/java/com/ecep/contract/util/EntityStringConverter.java rename to server/src/main/java/com/ecep/contract/ds/converter/EntityStringConverter.java index 09eca80..e432057 100644 --- a/server/src/main/java/com/ecep/contract/util/EntityStringConverter.java +++ b/server/src/main/java/com/ecep/contract/ds/converter/EntityStringConverter.java @@ -1,4 +1,4 @@ -package com.ecep.contract.util; +package com.ecep.contract.ds.converter; import java.util.List; import java.util.function.Function; diff --git a/server/src/main/java/com/ecep/contract/ds/MonthDayConverter.java b/server/src/main/java/com/ecep/contract/ds/converter/MonthDayConverter.java similarity index 95% rename from server/src/main/java/com/ecep/contract/ds/MonthDayConverter.java rename to server/src/main/java/com/ecep/contract/ds/converter/MonthDayConverter.java index 453117b..6ea0944 100644 --- a/server/src/main/java/com/ecep/contract/ds/MonthDayConverter.java +++ b/server/src/main/java/com/ecep/contract/ds/converter/MonthDayConverter.java @@ -1,4 +1,4 @@ -package com.ecep.contract.ds; +package com.ecep.contract.ds.converter; import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; diff --git a/server/src/main/java/com/ecep/contract/util/NumberStringConverter.java b/server/src/main/java/com/ecep/contract/ds/converter/NumberStringConverter.java similarity index 98% rename from server/src/main/java/com/ecep/contract/util/NumberStringConverter.java rename to server/src/main/java/com/ecep/contract/ds/converter/NumberStringConverter.java index 41effd0..f85321f 100644 --- a/server/src/main/java/com/ecep/contract/util/NumberStringConverter.java +++ b/server/src/main/java/com/ecep/contract/ds/converter/NumberStringConverter.java @@ -1,4 +1,4 @@ -package com.ecep.contract.util; +package com.ecep.contract.ds.converter; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; diff --git a/server/src/main/java/com/ecep/contract/ds/customer/CustomerClassStringConverter.java b/server/src/main/java/com/ecep/contract/ds/customer/CustomerClassStringConverter.java index 1079bf3..8cd39ed 100644 --- a/server/src/main/java/com/ecep/contract/ds/customer/CustomerClassStringConverter.java +++ b/server/src/main/java/com/ecep/contract/ds/customer/CustomerClassStringConverter.java @@ -4,8 +4,8 @@ import java.util.function.Function; import org.hibernate.Hibernate; +import com.ecep.contract.ds.converter.EntityStringConverter; import com.ecep.contract.model.CustomerCatalog; -import com.ecep.contract.util.EntityStringConverter; public class CustomerClassStringConverter extends EntityStringConverter { diff --git a/server/src/main/java/com/ecep/contract/ds/customer/service/CompanyCustomerFileService.java b/server/src/main/java/com/ecep/contract/ds/customer/service/CompanyCustomerFileService.java index e24c1b1..6ad3eb8 100644 --- a/server/src/main/java/com/ecep/contract/ds/customer/service/CompanyCustomerFileService.java +++ b/server/src/main/java/com/ecep/contract/ds/customer/service/CompanyCustomerFileService.java @@ -24,6 +24,7 @@ import org.springframework.stereotype.Service; import com.ecep.contract.CompanyCustomerFileType; import com.ecep.contract.IEntityService; import com.ecep.contract.SpringApp; +import com.ecep.contract.constant.CompanyCustomerConstant; import com.ecep.contract.ds.company.service.CompanyBasicService; import com.ecep.contract.ds.contract.service.ContractService; import com.ecep.contract.ds.customer.repository.CompanyCustomerEvaluationFormFileRepository; @@ -41,10 +42,6 @@ import jakarta.persistence.criteria.Path; @CacheConfig(cacheNames = "company-customer-file") public class CompanyCustomerFileService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(CompanyCustomerFileService.class); - /** - * 客户资信评估表 - */ - public static final String KEY_EVALUATION_FORM_TEMPLATE = "customer.evaluation.form.template"; @Lazy @Autowired private SysConfService confService; @@ -219,7 +216,7 @@ public class CompanyCustomerFileService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(CompanyCustomerService.class); - public static final String KEY_BASE_PATH = "customer.base.path"; - public static final String KEY_SALEBOOK_PATH = "customer.salebook.path"; - @Lazy @Autowired private CompanyCustomerRepository companyCustomerRepository; @@ -153,7 +150,7 @@ public class CompanyCustomerService extends CompanyBasicService } public File getBasePath() { - return new File(confService.getString(KEY_BASE_PATH)); + return new File(confService.getString(CompanyCustomerConstant.KEY_BASE_PATH)); } /** diff --git a/server/src/main/java/com/ecep/contract/ds/other/controller/CloudRkController.java b/server/src/main/java/com/ecep/contract/ds/other/controller/CloudRkController.java new file mode 100644 index 0000000..a8775ba --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/other/controller/CloudRkController.java @@ -0,0 +1,50 @@ +package com.ecep.contract.ds.other.controller; + +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import com.ecep.contract.cloud.rk.CloudRkService; +import com.ecep.contract.model.CloudRk; + +@RestController +@RequestMapping("/cloudRk") +public class CloudRkController { + @Autowired + private CloudRkService cloudRkService; + + @RequestMapping("/findById") + public CloudRk findById(Integer id) { + return cloudRkService.findById(id); + } + + @RequestMapping("/list") + public Page list( + Map params, + @RequestParam(defaultValue = "0", name = "page") int pageNumber, + @RequestParam(defaultValue = "10", name = "size") int pageSize) { + Specification spec = null; + Sort sort = Sort.by(Sort.Order.desc("id")); + Pageable pageable = PageRequest.of(pageNumber, pageSize, sort); + return cloudRkService.findAll(spec, pageable); + } + + @RequestMapping("/save") + public CloudRk save(CloudRk cloudRk) { + return cloudRkService.save(cloudRk); + } + + @RequestMapping("/delete") + public void delete(Integer id) { + CloudRk cloudRk = cloudRkService.findById(id); + cloudRkService.delete(cloudRk); + } +} \ No newline at end of file diff --git a/server/src/main/java/com/ecep/contract/ds/other/controller/CloudTycController.java b/server/src/main/java/com/ecep/contract/ds/other/controller/CloudTycController.java new file mode 100644 index 0000000..b03bd37 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/other/controller/CloudTycController.java @@ -0,0 +1,50 @@ +package com.ecep.contract.ds.other.controller; + +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import com.ecep.contract.cloud.tyc.CloudTycService; +import com.ecep.contract.model.CloudTyc; + +@RestController +@RequestMapping("/cloudTyc") +public class CloudTycController { + @Autowired + private CloudTycService cloudTycService; + + @RequestMapping("/findById") + public CloudTyc findById(Integer id) { + return cloudTycService.findById(id); + } + + @RequestMapping("/list") + public Page list( + Map params, + @RequestParam(defaultValue = "0", name = "page") int pageNumber, + @RequestParam(defaultValue = "10", name = "size") int pageSize) { + Specification spec = null; + Sort sort = Sort.by(Sort.Order.desc("id")); + Pageable pageable = PageRequest.of(pageNumber, pageSize, sort); + return cloudTycService.findAll(spec, pageable); + } + + @RequestMapping("/save") + public CloudTyc save(CloudTyc cloudTyc) { + return cloudTycService.save(cloudTyc); + } + + @RequestMapping("/delete") + public void delete(Integer id) { + CloudTyc cloudTyc = cloudTycService.findById(id); + cloudTycService.delete(cloudTyc); + } +} \ No newline at end of file diff --git a/server/src/main/java/com/ecep/contract/ds/other/controller/CloudYuController.java b/server/src/main/java/com/ecep/contract/ds/other/controller/CloudYuController.java new file mode 100644 index 0000000..aed47b7 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/other/controller/CloudYuController.java @@ -0,0 +1,50 @@ +package com.ecep.contract.ds.other.controller; + +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import com.ecep.contract.cloud.u8.YongYouU8Service; +import com.ecep.contract.model.CloudYu; + +@RestController +@RequestMapping("/cloudYu") +public class CloudYuController { + @Autowired + private YongYouU8Service yongYouU8Service; + + @RequestMapping("/findById") + public CloudYu findById(Integer id) { + return yongYouU8Service.findById(id); + } + + @RequestMapping("/list") + public Page list( + Map params, + @RequestParam(defaultValue = "0", name = "page") int pageNumber, + @RequestParam(defaultValue = "10", name = "size") int pageSize) { + Specification spec = null; + Sort sort = Sort.by(Sort.Order.desc("id")); + Pageable pageable = PageRequest.of(pageNumber, pageSize, sort); + return yongYouU8Service.findAll(spec, pageable); + } + + @RequestMapping("/save") + public CloudYu save(CloudYu cloudYu) { + return yongYouU8Service.save(cloudYu); + } + + @RequestMapping("/delete") + public void delete(Integer id) { + CloudYu cloudYu = yongYouU8Service.findById(id); + yongYouU8Service.delete(cloudYu); + } +} \ No newline at end of file diff --git a/server/src/main/java/com/ecep/contract/ds/other/controller/EmployeeController.java b/server/src/main/java/com/ecep/contract/ds/other/controller/EmployeeController.java index 1191704..7a886c3 100644 --- a/server/src/main/java/com/ecep/contract/ds/other/controller/EmployeeController.java +++ b/server/src/main/java/com/ecep/contract/ds/other/controller/EmployeeController.java @@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RestController; import com.ecep.contract.ds.other.service.EmployeeService; import com.ecep.contract.model.Employee; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.ecep.contract.util.SecurityUtils; @RestController @RequestMapping("/employee") @@ -31,8 +31,9 @@ public class EmployeeController { public Page list( Map params, @RequestParam(defaultValue = "0", name = "page") int pageNumber, - @RequestParam(defaultValue = "10") int pageSize) { + @RequestParam(defaultValue = "10", name = "size") int pageSize) { Specification spec = null; + Sort sort = Sort.by(Sort.Order.desc("id")); Pageable pageable = PageRequest.of(pageNumber, pageSize, sort); return employeeService.findAll(spec, pageable); diff --git a/server/src/main/java/com/ecep/contract/ds/other/controller/EmployeeRoleController.java b/server/src/main/java/com/ecep/contract/ds/other/controller/EmployeeRoleController.java new file mode 100644 index 0000000..119581d --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/other/controller/EmployeeRoleController.java @@ -0,0 +1,80 @@ +package com.ecep.contract.ds.other.controller; + +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import com.ecep.contract.ds.other.service.EmployeeRoleService; +import com.ecep.contract.model.EmployeeRole; +import com.ecep.contract.util.SecurityUtils; +import com.ecep.contract.util.SpecificationUtils; + +@RestController +@RequestMapping("/employeeRole") +public class EmployeeRoleController { + @Autowired + private EmployeeRoleService employeeRoleService; + + @RequestMapping("/findById") + public EmployeeRole findById(Integer id) { + return employeeRoleService.findById(id); + } + + @RequestMapping("/list") + public Page list( + Map params, + @RequestParam(defaultValue = "0", name = "page") int pageNumber, + @RequestParam(defaultValue = "10", name = "size") int pageSize) { + Specification spec = null; + if (!SecurityUtils.currentUserHasRole("ROLE_ADMIN")) { + spec = SpecificationUtils.and(spec, (root, query, cb) -> cb.equal(root.get("systemAdministrator"), false)); + } + + String searchText = (String) params.get("searchText"); + if (StringUtils.hasText(searchText)) { + spec = SpecificationUtils.andWith(searchText, (text) -> (root, query, cb) -> { + return cb.like(root.get("name"), "%" + text + "%"); + }); + } + + Sort sort = Sort.by(Sort.Order.desc("id")); + Pageable pageable = PageRequest.of(pageNumber, pageSize, sort); + return employeeRoleService.findAll(spec, pageable); + } + + @RequestMapping("/save") + public EmployeeRole save(EmployeeRole role) { + // 只有系统管理员才能保存角色 + if (!SecurityUtils.currentUserHasRole("ROLE_ADMIN")) { + throw new SecurityException("无权限执行此操作"); + } + return employeeRoleService.save(role); + } + + @RequestMapping("/delete") + public void delete(Integer id) { + // 只有系统管理员才能删除角色 + if (!SecurityUtils.currentUserHasRole("ROLE_ADMIN")) { + throw new SecurityException("无权限执行此操作"); + } + EmployeeRole role = employeeRoleService.findById(id); + if (role != null && role.isSystemAdministrator()) { + throw new SecurityException("不能删除系统管理员角色"); + } + employeeRoleService.delete(role); + } + + @RequestMapping("/getFunctionsByRoleId") + public java.util.List getFunctionsByRoleId(Integer roleId) { + return employeeRoleService.getFunctionsByRoleId(roleId); + } +} \ No newline at end of file diff --git a/server/src/main/java/com/ecep/contract/ds/project/service/CustomerSatisfactionSurveyService.java b/server/src/main/java/com/ecep/contract/ds/project/service/CustomerSatisfactionSurveyService.java index ce588da..abc2c89 100644 --- a/server/src/main/java/com/ecep/contract/ds/project/service/CustomerSatisfactionSurveyService.java +++ b/server/src/main/java/com/ecep/contract/ds/project/service/CustomerSatisfactionSurveyService.java @@ -21,8 +21,6 @@ import com.ecep.contract.model.CustomerSatisfactionSurvey; @Service public class CustomerSatisfactionSurveyService implements IEntityService { - public final static String KEY_TEMPLATE = "project.customer-satisfaction-survey.template"; - @Lazy @Autowired private CustomerSatisfactionSurveyRepository repository; diff --git a/server/src/main/java/com/ecep/contract/ds/project/service/ProjectStringConverter.java b/server/src/main/java/com/ecep/contract/ds/project/service/ProjectStringConverter.java index 5dcfb84..3bcf979 100644 --- a/server/src/main/java/com/ecep/contract/ds/project/service/ProjectStringConverter.java +++ b/server/src/main/java/com/ecep/contract/ds/project/service/ProjectStringConverter.java @@ -4,8 +4,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; +import com.ecep.contract.ds.converter.EntityStringConverter; import com.ecep.contract.model.Project; -import com.ecep.contract.util.EntityStringConverter; import jakarta.annotation.PostConstruct; diff --git a/server/src/main/java/com/ecep/contract/util/SecurityUtils.java b/server/src/main/java/com/ecep/contract/util/SecurityUtils.java new file mode 100644 index 0000000..8d86c14 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/util/SecurityUtils.java @@ -0,0 +1,15 @@ +package com.ecep.contract.util; + +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.User; + +public class SecurityUtils { + public static User getCurrentUser() { + return (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + } + + public static boolean currentUserHasRole(String role) { + return getCurrentUser().getAuthorities().stream() + .anyMatch(grantedAuthority -> grantedAuthority.getAuthority().equals(role)); + } +}