From a2f5e4864b45452175e38bd7a5f59b6c4408d78c Mon Sep 17 00:00:00 2001 From: songqq Date: Wed, 3 Sep 2025 20:56:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=86=E5=88=86=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FixPackageNames$1.class | Bin 0 -> 2595 bytes FixPackageNames.class | Bin 0 -> 1576 bytes FixPackageNames.java | 48 + README.md | 42 +- client/pom.xml | 84 ++ .../main/java/com/ecep/contract}/AppV2.java | 8 +- .../main/java/com/ecep/contract}/Desktop.java | 15 +- .../java/com/ecep/contract}/DesktopUtils.java | 4 +- .../src/main/java/com/ecep/contract/Main.java | 7 + .../java/com/ecep/contract}/SpringApp.java | 20 +- .../AbstEntityBasedController.java | 9 +- .../controller}/AbstEntityController.java | 29 +- .../controller}/AbstEntityManagerSkin.java | 24 +- .../AbstManagerWindowController.java | 8 +- .../contract/controller}/BaseController.java | 25 +- .../controller}/CloudRkManagerSkin.java | 36 +- .../CloudRkManagerWindowController.java | 98 ++ .../controller}/CloudTycManagerSkin.java | 18 +- .../CloudTycManagerWindowController.java | 41 +- .../contract/controller}/ComboBoxUtils.java | 22 +- .../CurrentEmployeeInitialedEvent.java | 7 +- .../controller/HomeWindowController.java | 52 +- .../controller/LoginWidowController.java | 70 +- .../contract/controller}/ManagerSkin.java | 4 +- .../controller/SysConfWindowController.java | 23 +- .../TaskMonitorViewController.java | 33 +- .../YongYouU8ConfigWindowController.java | 17 +- .../controller}/YongYouU8ManagerSkin.java | 41 +- .../YongYouU8ManagerWindowController.java | 14 +- .../controller/bank/BankManagerSkin.java | 13 +- .../bank/BankManagerWindowController.java | 18 +- .../bank/account}/BankAccountBaseTabSkin.java | 36 +- .../account}/BankAccountWindowController.java | 27 +- .../company/AbstCompanyBasedTabSkin.java | 28 + .../company/AbstCompanyTableTabSkin.java | 56 ++ .../CompanyContactWindowController.java | 46 +- .../company}/CompanyManagerSkin.java | 21 +- .../CompanyManagerWindowController.java | 18 +- .../CompanyVerifyWindowController.java | 7 +- .../company}/CompanyWindowController.java | 109 ++- .../CompanyOldNameTabSkinBase.java | 19 +- .../CompanyOldNameTabSkinFile.java | 377 ++++++++ .../CompanyOldNameWindowController.java | 64 +- .../contract}/AbstContractBasedTabSkin.java | 12 +- .../contract}/AbstContractTableTabSkin.java | 22 +- .../ContractManagerWindowController.java | 29 +- .../ContractTabSkinExtendVendorInfo.java | 22 +- .../ContractVerifyWindowController.java | 126 +-- .../contract}/ContractWindowController.java | 43 +- .../AbstCompanyCustomerTableTabSkin.java | 29 + ...merEvaluationFormFileWindowController.java | 68 +- ...mpanyCustomerEvaluationFormUpdateTask.java | 68 +- .../CompanyCustomerExportExcelTasker.java | 24 +- .../customer}/CompanyCustomerManagerSkin.java | 16 +- ...ompanyCustomerManagerWindowController.java | 57 +- .../customer}/CompanyCustomerTabSkinBase.java | 39 +- .../CompanyCustomerWindowController.java | 65 +- .../customer}/CustomerTabSkinEntity.java | 34 +- .../customer}/CustomerTabSkinFile.java | 68 +- .../CustomerTabSkinSatisfactionSurvey.java | 59 +- .../customer}/SalesOrderWindowController.java | 43 +- .../department/DepartmentManagerSkin.java | 26 +- .../DepartmentManagerWindowController.java | 24 +- .../employee/AbstEmployeeBasedTabSkin.java | 17 +- .../employee/AbstEmployeeTableTabSkin.java | 22 +- .../employee/EmployeeManagerSkin.java | 22 +- .../EmployeeManagerWindowController.java | 34 +- .../employee/EmployeeTabSkinAuthBind.java | 24 +- .../employee/EmployeeTabSkinBase.java | 19 +- .../employee/EmployeeTabSkinLoginHistory.java | 19 +- .../employee/EmployeeTabSkinRole.java | 20 +- .../employee/EmployeeWindowController.java | 33 +- .../inventory/InventoryManagerSkin.java | 20 +- .../InventoryManagerWindowController.java | 17 +- .../inventory/InventoryTabSkinBase.java | 136 +-- .../inventory/InventoryTabSkinContracts.java | 42 +- .../InventoryTabSkinHistoryPrice.java | 74 +- .../inventory/InventoryWindowController.java | 36 +- .../AbstEmployeeRoleBasedTabSkin.java | 14 +- ...loyeeFunctionsManagerWindowController.java | 27 +- .../permission/EmployeeRoleManagerSkin.java | 18 +- .../EmployeeRoleManagerWindowController.java | 15 +- .../permission/EmployeeRoleTabSkinBase.java | 7 +- .../EmployeeRoleTabSkinFunctions.java | 6 +- .../EmployeeRoleWindowController.java | 35 +- .../permission/FunctionManagerSkin.java | 12 +- .../permission/FunctionTabSkinBase.java | 8 +- .../permission/FunctionTabSkinPermission.java | 18 +- .../permission/FunctionWindowController.java | 30 +- .../permission/PermissionManagerSkin.java | 34 +- .../project}/AbstProjectBasedTabSkin.java | 12 +- .../project}/AbstProjectTableTabSkin.java | 22 +- .../ApplyNewProjectWindowController.java | 42 +- .../project}/ProjectManagerSkin.java | 38 +- .../ProjectManagerWindowController.java | 28 +- .../project}/ProjectTabSkinBase.java | 43 +- .../project}/ProjectTabSkinBid.java | 36 +- .../project}/ProjectTabSkinContract.java | 19 +- .../project}/ProjectTabSkinCost.java | 42 +- .../project}/ProjectTabSkinCustomerInfo.java | 50 +- ...jectTabSkinCustomerSatisfactionSurvey.java | 42 +- .../project}/ProjectTabSkinFundPlan.java | 54 +- .../project}/ProjectTabSkinQuotation.java | 56 +- .../project}/ProjectWindowController.java | 52 +- .../project}/bid/ProjectBidTabSkinBase.java | 92 +- .../bid/ProjectBidWindowController.java | 35 +- .../cost/ProjectCostExportExcelTasker.java | 54 +- .../project}/cost/ProjectCostTabSkinBase.java | 54 +- .../cost/ProjectCostTabSkinItems.java | 145 +-- .../cost/ProjectCostWindowController.java | 34 +- .../industry/ProjectIndustryManagerSkin.java | 15 +- ...rojectIndustryManagerWindowController.java | 23 +- .../product_type/ProductTypeManagerSkin.java | 13 +- .../ProductTypeManagerWindowController.java | 28 +- .../project_type/ProjectTypeManagerSkin.java | 17 +- .../ProjectTypeManagerWindowController.java | 27 +- .../ProjectQuotationExportAsExcelFile.java | 40 +- .../ProjectQuotationTabSkinBase.java | 80 +- .../ProjectQuotationWindowController.java | 37 +- .../AbstProjectSaleTypeBasedTabSkin.java | 12 +- .../AbstProjectSaleTypeTableTabSkin.java | 20 +- .../sale_type/ProjectSaleTypeBaseTabSkin.java | 5 +- .../sale_type/ProjectSaleTypeManagerSkin.java | 26 +- ...rojectSaleTypeManagerWindowController.java | 25 +- .../ProjectSaleTypeRequireFilesTabSkin.java | 32 +- .../ProjectSaleTypeWindowController.java | 38 +- .../project}/sale_type/SignMethodTabSkin.java | 13 +- ...CustomerSatisfactionSurveyTabSkinBase.java | 66 +- ...merSatisfactionSurveyWindowController.java | 35 +- ...erSatisfactionSurveyExportAsExcelFile.java | 36 +- .../usage/ProductUsageManagerSkin.java | 17 +- .../ProductUsageManagerWindowController.java | 25 +- .../tab/AbstEntityBasedTabSkin.java | 17 +- .../controller/tab}/AbstGenericTabSkin.java | 6 +- .../tab}/CompanyTabSkinBankAccount.java | 31 +- .../controller/tab}/CompanyTabSkinBase.java | 30 +- .../tab}/CompanyTabSkinBlackReason.java | 42 +- .../tab}/CompanyTabSkinContact.java | 32 +- .../tab}/CompanyTabSkinContract.java | 141 ++- .../controller/tab}/CompanyTabSkinFile.java | 59 +- .../tab}/CompanyTabSkinInvoice.java | 29 +- .../tab}/CompanyTabSkinOldName.java | 57 +- .../controller/tab}/CompanyTabSkinOther.java | 90 +- .../CompanyTabSkinPurchaseBillVoucher.java | 41 +- .../controller/tab}/ContractManagerSkin.java | 45 +- .../controller/tab}/ContractTabSkinBase.java | 69 +- .../controller/tab}/ContractTabSkinFiles.java | 194 ++-- .../controller/tab}/ContractTabSkinItems.java | 52 +- .../tab}/ContractTabSkinItemsV2.java | 49 +- .../tab}/ContractTabSkinPayPlan.java | 25 +- .../tab}/ContractTabSkinPurchaseOrders.java | 29 +- .../tab}/ContractTabSkinSaleOrders.java | 34 +- .../tab}/ContractTabSkinSubContract.java | 34 +- .../tab}/ContractTabSkinVendorBid.java | 51 +- .../controller/tab}/ContractUpdater.java | 43 +- .../controller/tab}/RefreshableSkin.java | 2 +- .../tab}/SalesOrderTabSkinBase.java | 28 +- .../tab}/SalesOrderTabSkinBillVoucher.java | 67 +- .../tab}/SalesOrderTabSkinItems.java | 116 +-- .../ecep/contract/controller/tab}/Skin.java | 7 +- .../contract/controller}/tab/TabSkin.java | 3 +- .../controller/tab}/VendorBidTabSkinBase.java | 51 +- .../table/AbstEntityTableTabSkin.java | 37 +- .../table/EditableEntityTableTabSkin.java | 4 +- .../controller/table/TableOfTabSkin.java | 14 + .../controller}/table/TableTabSkin.java | 11 +- .../table/cell/AsyncUpdateTableCell.java | 13 +- .../controller}/table/cell/BankTableCell.java | 11 +- .../table/cell/CompanyTableCell.java | 8 +- .../table/cell/CompanyVendorTableCell.java | 14 +- .../table/cell/ContractGroupTableCell.java | 10 +- .../table/cell/ContractKindTableCell.java | 10 +- .../table/cell/ContractTableCell.java | 10 +- .../table/cell/ContractTypeTableCell.java | 13 +- .../table/cell/DepartmentTableCell.java | 21 + .../table/cell/EmployeeRoleTableCell.java | 11 +- .../table/cell/EmployeeTableCell.java | 13 +- .../table/cell/EvaluationFileTableCell.java | 18 +- .../table/cell/InventoryTableCell.java | 16 +- .../table/cell/InvoiceTableCell.java | 10 +- .../table/cell}/LocalDateFieldTableCell.java | 8 +- .../table/cell/LocalDateTimeTableCell.java | 9 +- .../table/cell/NumberTableCell.java | 28 + .../table/cell/ProjectTableCell.java | 13 +- .../cell/PurchaseOrderItemTableCell.java | 20 +- .../vendor/AbstCompanyVendorTableTabSkin.java | 35 + .../vendor}/CompanyVendorManagerSkin.java | 28 +- .../CompanyVendorManagerWindowController.java | 46 +- .../vendor}/CompanyVendorTabSkinBase.java | 41 +- .../vendor/CompanyVendorTabSkinEntity.java | 46 +- .../CompanyVendorWindowController.java | 56 +- .../PurchaseBillVoucherWindowController.java | 20 +- .../PurchaseOrderWindowController.java | 23 +- .../vendor}/VendorBidWindowController.java | 33 +- .../controller/vendor}/VendorTabSkinFile.java | 81 +- .../CompanyVendorApprovedListManagerSkin.java | 18 +- ...orApprovedListManagerWindowController.java | 38 +- .../CompanyVendorApprovedListTabSkinBase.java | 20 +- ...CompanyVendorApprovedListTabSkinFiles.java | 43 +- ...mpanyVendorApprovedListTabSkinVendors.java | 47 +- ...anyVendorApprovedListVendorExportTask.java | 79 +- ...anyVendorApprovedListVendorImportTask.java | 56 +- ...anyVendorApprovedListWindowController.java | 36 +- .../group/AbstVendorGroupBasedTabSkin.java | 12 +- .../vendor}/group/VendorGroupBaseTabSkin.java | 5 +- .../vendor}/group/VendorGroupManagerSkin.java | 24 +- .../VendorGroupManagerWindowController.java | 21 +- .../group/VendorGroupRequireFilesTabSkin.java | 32 +- .../group/VendorGroupWindowController.java | 30 +- .../order}/PurchaseOrderTabSkinBase.java | 26 +- .../PurchaseOrderTabSkinBillVoucher.java | 54 +- .../order}/PurchaseOrderTabSkinItems.java | 125 +-- .../PurchaseBillVoucherTabSkinItems.java | 51 +- .../converter}/BankStringConverter.java | 12 +- .../ContractGroupStringConverter.java | 12 +- .../converter/ContractStringConverter.java | 11 +- .../converter}/EmployeeStringConverter.java | 10 +- .../converter}/EntityStringConverter.java | 18 +- .../converter/ProjectStringConverter.java | 10 +- .../ecep/contract/service/BankService.java | 17 + .../ecep/contract/service/CloudRkService.java | 32 + .../contract/service/CloudTycService.java | 83 ++ .../service/CompanyContactService.java | 8 + .../service/CompanyCustomerEntityService.java | 21 +- .../service/CompanyCustomerFileService.java | 28 +- .../service/CompanyCustomerService.java | 30 + .../contract/service/CompanyFileService.java | 14 + .../service/CompanyOldNameService.java | 7 + .../ecep/contract/service/CompanyService.java | 31 + .../service}/CompanyStringConverter.java | 11 +- .../service/CompanyVendorEntityService.java | 8 + .../service/CompanyVendorFileService.java | 21 + .../service/CompanyVendorService.java | 25 + .../service/ContractBidVendorService.java | 8 + .../contract/service/ContractFileService.java | 8 + .../service/ContractGroupService.java | 7 + .../contract/service/ContractKindService.java | 16 + .../contract/service/ContractService.java | 32 + .../contract/service/ContractTypeService.java | 8 + .../CustomerSatisfactionSurveyService.java | 8 + .../contract/service/EmployeeRoleService.java | 10 + .../contract/service/EmployeeService.java | 32 + .../service/ExtendVendorInfoService.java | 8 + .../ecep/contract/service/IEntityService.java | 20 + .../contract/service/ProjectBidService.java | 8 + .../contract/service/ProjectCostService.java | 8 + .../service/ProjectQuotationService.java | 5 + ...ProjectSaleTypeRequireFileTypeService.java | 5 + .../service/ProjectSaleTypeService.java | 8 + .../ecep/contract/service/ProjectService.java | 26 + .../contract/service/SaleOrdersService.java | 8 + .../ecep/contract/service/SysConfService.java | 63 ++ .../VendorGroupRequireFileTypeService.java | 9 + .../contract/service/VendorGroupService.java | 8 + .../contract/service}/ViewModelService.java | 52 +- .../contract/service/YongYouU8Service.java | 46 + .../ecep/contract/task/CloudRkSyncTask.java | 21 + .../task/CompanyCompositeUpdateTasker.java | 33 + .../task/CompanyFilesRebuildTasker.java | 16 + ...CompanyVendorEvaluationFormUpdateTask.java | 19 + .../contract/task/CompanyVerifyTasker.java | 20 + .../task/ContractRepairByCompanyTask.java | 22 + .../contract/task/ContractRepairTask.java | 38 + .../ecep/contract/task/ContractSyncTask.java | 20 + .../contract/task}/ContractVerifyComm.java | 108 ++- ...ctVerifyResultExportAsExcelFileTasker.java | 60 +- .../ecep/contract/task/CustomerSyncTask.java | 20 + .../com/ecep/contract}/task/DemoTask.java | 7 +- .../ecep/contract}/task/MonitoredTask.java | 8 +- .../task/OldVersionSyncCustomerTask.java | 20 + .../task/OldVersionSyncVendorTask.java | 18 + .../com/ecep/contract}/task/TaskHistory.java | 5 +- .../contract}/task/TaskMonitorCenter.java | 9 +- .../java/com/ecep/contract/task}/Tasker.java | 20 +- .../ecep/contract/task/VendorSyncTask.java | 19 + .../contract/util}/AbstractConfigBounder.java | 10 +- .../com/ecep/contract}/util/AsyncUtils.java | 4 +- .../ecep/contract/util}/BooleanConfig.java | 2 +- .../contract}/util/BooleanConfigProperty.java | 5 +- .../ecep/contract/util}/ConfigBounder.java | 4 +- .../contract}/util/DelayOnceExecutor.java | 2 +- .../com/ecep/contract}/util/ExcelUtils.java | 2 +- .../com/ecep/contract/util}/FxmlPath.java | 2 +- .../com/ecep/contract}/util/FxmlUtils.java | 8 +- .../contract}/util/IntegerConfigProperty.java | 5 +- .../ecep/contract/util}/LocalDateConfig.java | 2 +- .../contract/util}/LocalDateTimeConfig.java | 2 +- .../util/MyDateTimePropertyUtils.java | 2 +- .../com/ecep/contract/util}/StringConfig.java | 2 +- .../ecep/contract}/util/TableViewUtils.java | 13 +- .../java/com/ecep/contract}/util/UITools.java | 59 +- .../com/ecep/contract/vm}/BankViewModel.java | 10 +- .../com/ecep/contract/vm}/BaseViewModel.java | 2 +- .../ecep/contract/vm/CloudRkViewModel.java | 138 +++ .../contract/vm}/CloudTycInfoViewModel.java | 38 +- .../contract/vm}/CloudYuInfoViewModel.java | 37 +- .../vm}/CompanyBankAccountViewModel.java | 18 +- .../contract/vm}/CompanyBasedViewModel.java | 5 +- .../vm}/CompanyBlackReasonViewModel.java | 15 +- .../contract/vm}/CompanyContactViewModel.java | 11 +- .../vm}/CompanyCustomerFileViewModel.java | 18 +- .../vm}/CompanyCustomerViewModel.java | 22 +- .../vm}/CompanyExtendInfoViewModel.java | 12 +- .../contract/vm}/CompanyFileViewModel.java | 17 +- .../contract/vm}/CompanyOldNameViewModel.java | 11 +- .../CompanyVendorApprovedFileViewModel.java | 14 +- .../CompanyVendorApprovedItemViewModel.java | 18 +- .../CompanyVendorApprovedListViewModel.java | 12 +- .../vm/CompanyVendorEntityViewModel.java | 87 ++ .../vm}/CompanyVendorFileViewModel.java | 18 +- .../contract/vm}/CompanyVendorViewModel.java | 28 +- .../ecep/contract/vm}/CompanyViewModel.java | 13 +- .../vm}/ContractBidVendorViewModel.java | 18 +- .../contract/vm}/ContractFileViewModel.java | 18 +- .../contract/vm/ContractGroupViewModel.java | 32 + .../vm}/ContractItemComposeViewModel.java | 6 +- .../contract/vm}/ContractItemViewModel.java | 20 +- .../contract/vm/ContractKindViewModel.java | 32 + .../vm}/ContractPayPlanViewModel.java | 16 +- .../contract/vm}/ContractTreeItemModel.java | 2 +- .../contract/vm/ContractTypeViewModel.java | 40 + .../ecep/contract/vm}/ContractViewModel.java | 37 +- .../ecep/contract/vm}/CurrentEmployee.java | 14 +- .../contract/vm}/CustomerEntityViewModel.java | 24 +- .../CustomerSatisfactionSurveyViewModel.java | 18 +- .../vm}/DeliverySignMethodViewModel.java | 16 +- .../contract/vm}/DepartmentViewModel.java | 11 +- .../vm}/EmployeeAuthBindViewModel.java | 14 +- .../contract/vm}/EmployeeBasedViewModel.java | 5 +- .../vm}/EmployeeLoginHistoryViewModel.java | 14 +- .../contract/vm}/EmployeeRoleViewModel.java | 10 +- .../ecep/contract/vm}/EmployeeViewModel.java | 28 +- .../vm}/ExtendVendorInfoViewModel.java | 23 +- .../ecep/contract/vm}/FunctionViewModel.java | 4 +- .../ecep/contract/vm}/IdentityViewModel.java | 11 +- .../vm}/InventoryHistoryPriceViewModel.java | 17 +- .../ecep/contract/vm}/InventoryViewModel.java | 34 +- .../ecep/contract/vm}/InvoiceViewModel.java | 15 +- .../contract/vm}/PermissionViewModel.java | 6 +- .../contract/vm}/ProductTypeViewModel.java | 12 +- .../contract/vm}/ProductUsageViewModel.java | 14 +- .../contract/vm}/ProjectBasedViewModel.java | 5 +- .../contract/vm}/ProjectBidViewModel.java | 36 +- .../vm}/ProjectCostItemViewModel.java | 36 +- .../contract/vm}/ProjectCostViewModel.java | 32 +- .../contract/vm}/ProjectFileViewModel.java | 8 +- .../vm}/ProjectFundPlanViewModel.java | 21 +- .../vm}/ProjectIndustryViewModel.java | 14 +- .../vm}/ProjectQuotationViewModel.java | 30 +- ...ojectSaleTypeRequireFileTypeViewModel.java | 16 +- .../contract/vm/ProjectSaleTypeViewModel.java | 24 +- .../contract/vm}/ProjectTypeViewModel.java | 14 +- .../ecep/contract/vm}/ProjectViewModel.java | 30 +- .../vm}/PurchaseBillVoucherItemViewModel.java | 22 +- .../vm}/PurchaseBillVoucherViewModel.java | 19 +- .../vm}/PurchaseOrderItemViewModel.java | 17 +- .../contract/vm}/PurchaseOrderViewModel.java | 17 +- .../vm}/SalesBillVoucherViewModel.java | 19 +- .../contract/vm}/SalesOrderItemViewModel.java | 19 +- .../contract/vm}/SalesOrderViewModel.java | 17 +- .../contract/vm}/VendorEntityViewModel.java | 20 +- .../VendorGroupRequireFileTypeViewModel.java | 23 +- .../contract/vm}/VendorGroupViewModel.java | 10 +- .../src}/main/resources/ui/bank-manager.fxml | 0 .../main/resources/ui/cloud/rk_manager.fxml | 0 .../main/resources/ui/cloud/tyc_manager.fxml | 0 .../main/resources/ui/cloud/u8_config.fxml | 0 .../main/resources/ui/cloud/u8_manager.fxml | 0 .../resources/ui/company/bank-account.fxml | 0 .../resources/ui/company/company-manager.fxml | 0 .../ui/company/company-tab-bank-account.fxml | 0 .../ui/company/company-tab-black-list.fxml | 0 .../ui/company/company-tab-contact.fxml | 0 .../ui/company/company-tab-contract.fxml | 0 .../ui/company/company-tab-file.fxml | 0 .../ui/company/company-tab-invoice.fxml | 0 .../ui/company/company-tab-oldname.fxml | 0 .../ui/company/company-tab-other.fxml | 0 .../company-tab-purchase-bill-voucher.fxml | 0 .../main/resources/ui/company/company.fxml | 0 .../ui/company/company_old_name.fxml | 0 .../ui/company/customer/customer-icon.png | Bin .../company/customer/customer-tab-entity.fxml | 0 .../company/customer/customer-tab-file.fxml | 0 .../customer-tab-satisfaction-survey.fxml | 0 .../ui/company/customer/customer.fxml | 0 .../customer/customer_evaluation_form.fxml | 0 .../ui/company/customer/customer_manager.fxml | 0 .../ui/company/vendor/group-manager.fxml | 0 .../resources/ui/company/vendor/group.fxml | 0 .../ui/company/vendor/vendor-tab-entity.fxml | 2 +- .../ui/company/vendor/vendor-tab-file.fxml | 0 .../resources/ui/company/vendor/vendor.fxml | 0 .../vendor/vendor_approved_list-tab-file.fxml | 0 .../vendor_approved_list-tab-vendor.fxml | 0 .../company/vendor/vendor_approved_list.fxml | 0 .../vendor/vendor_approved_list_manager.fxml | 0 .../ui/company/vendor/vendor_manager.fxml | 0 .../src}/main/resources/ui/configs.fxml | 0 .../src}/main/resources/ui/contact.fxml | 0 .../ui/contract/contract-manager.fxml | 0 .../ui/contract/contract-tab-bid.fxml | 0 .../contract-tab-ext-vendor-info.fxml | 0 .../ui/contract/contract-tab-file.fxml | 0 .../ui/contract/contract-tab-item-v2.fxml | 0 .../ui/contract/contract-tab-item.fxml | 0 .../ui/contract/contract-tab-pay-plan.fxml | 0 .../contract-tab-purchase-orders.fxml | 0 .../ui/contract/contract-tab-sale-orders.fxml | 0 .../contract/contract-tab-sub-contract.fxml | 0 .../resources/ui/contract/contract-verify.css | 0 .../ui/contract/contract-verify.fxml | 0 .../main/resources/ui/contract/contract.css | 0 .../main/resources/ui/contract/contract.fxml | 0 .../purchase-bill-voucher-tab-item.fxml | 0 .../ui/contract/purchase-bill-voucher.fxml | 0 .../purchase-orders-tab-bill-voucher.fxml | 0 .../ui/contract/purchase-orders-tab-item.fxml | 0 .../ui/contract/purchase-orders.fxml | 0 .../sale-orders-tab-bill-voucher.fxml | 0 .../ui/contract/sale-orders-tab-item.fxml | 0 .../resources/ui/contract/sale-orders.fxml | 0 .../resources/ui/contract/vendor-bid.fxml | 0 .../src}/main/resources/ui/dialog.css | 0 .../ui/employee/department-manager.fxml | 0 .../ui/employee/employee-auth-bind.fxml | 0 .../ui/employee/employee-login-history.fxml | 0 .../ui/employee/employee-manager.fxml | 0 .../main/resources/ui/employee/employee.fxml | 0 .../ui/employee/function-tab-permission.fxml | 0 .../main/resources/ui/employee/function.fxml | 0 .../ui/employee/functions-manager.fxml | 0 .../src}/main/resources/ui/employee/role.fxml | 0 .../resources/ui/employee/roles-manager.fxml | 0 .../src}/main/resources/ui/home.fxml | 0 .../src}/main/resources/ui/img/22844.gif | Bin .../src}/main/resources/ui/img/22847.gif | Bin .../src}/main/resources/ui/img/22848.gif | Bin .../src}/main/resources/ui/img/22849.gif | Bin .../src}/main/resources/ui/img/22949.gif | Bin .../src}/main/resources/ui/img/23037.gif | Bin .../src}/main/resources/ui/img/23048.gif | Bin .../src}/main/resources/ui/img/3960.gif | Bin .../src}/main/resources/ui/img/4955.gif | Bin .../src}/main/resources/ui/img/5241.gif | Bin .../src}/main/resources/ui/img/5258.gif | Bin .../src}/main/resources/ui/img/5260.gif | Bin .../src}/main/resources/ui/img/about.gif | Bin .../main/resources/ui/img/about_error.gif | Bin .../src}/main/resources/ui/img/btn_print.gif | Bin .../src}/main/resources/ui/img/cbook.gif | Bin .../ui/img/edit_order_mag_glass_icon.gif | Bin .../src}/main/resources/ui/img/error.gif | Bin .../src}/main/resources/ui/img/f0.png | Bin .../src}/main/resources/ui/img/f1.png | Bin .../src}/main/resources/ui/img/f2.png | Bin .../src}/main/resources/ui/img/f3.png | Bin .../src}/main/resources/ui/img/f4.png | Bin .../src}/main/resources/ui/img/icon_alarm.gif | Bin .../src}/main/resources/ui/img/icon_fan.gif | Bin .../src}/main/resources/ui/img/icon_maint.gif | Bin .../src}/main/resources/ui/img/icon_oa.gif | Bin .../src}/main/resources/ui/img/icon_print.png | Bin .../main/resources/ui/img/icon_privileges.gif | Bin .../main/resources/ui/img/icon_schedule.gif | Bin .../resources/ui/img/icon_schedule_group.gif | Bin .../ui/img/icon_system_error_category.gif | Bin .../main/resources/ui/img/icon_trends.gif | Bin .../src}/main/resources/ui/img/info.gif | Bin .../src}/main/resources/ui/img/number/n1.gif | Bin .../src}/main/resources/ui/img/number/n2.gif | Bin .../src}/main/resources/ui/img/number/n3.gif | Bin .../src}/main/resources/ui/img/number/n4.gif | Bin .../src}/main/resources/ui/img/number/n5.gif | Bin .../src}/main/resources/ui/img/number/n6.gif | Bin .../src}/main/resources/ui/img/number/n7.gif | Bin .../src}/main/resources/ui/img/number/n8.gif | Bin .../src}/main/resources/ui/img/obook.gif | Bin .../src}/main/resources/ui/img/pin-16.png | Bin .../src}/main/resources/ui/img/pin.png | Bin .../main/resources/ui/img/polygon_icon.gif | Bin .../main/resources/ui/img/rectangle_icon.gif | Bin .../src}/main/resources/ui/img/tip_symbol.gif | Bin .../ui/inventory/inventory-contract.fxml | 0 .../ui/inventory/inventory-history-price.fxml | 0 .../ui/inventory/inventory-manager.fxml | 0 .../main/resources/ui/inventory/inventory.css | 0 .../resources/ui/inventory/inventory.fxml | 0 .../src}/main/resources/ui/part-footer.fxml | 0 .../ui/project/apply-new-project.fxml | 0 .../src}/main/resources/ui/project/comm.css | 0 .../project/customer-satisfaction-survey.fxml | 0 .../ui/project/product-type-manager.fxml | 0 .../ui/project/product-usage-manager.fxml | 0 .../resources/ui/project/project-bid.fxml | 0 .../ui/project/project-cost-tab-item.fxml | 0 .../resources/ui/project/project-cost.fxml | 0 .../resources/ui/project/project-manager.fxml | 0 .../ui/project/project-quotation.fxml | 0 .../resources/ui/project/project-tab-bid.fxml | 0 .../ui/project/project-tab-contract.fxml | 0 .../ui/project/project-tab-cost.fxml | 0 ...ject-tab-customer-satisfaction-survey.fxml | 0 .../ui/project/project-tab-customer.fxml | 0 .../ui/project/project-tab-fund-plan.fxml | 12 +- .../ui/project/project-tab-quotation.fxml | 0 .../ui/project/project-type-manager.fxml | 0 .../main/resources/ui/project/project.fxml | 0 .../ui/project/sale-type-manager.fxml | 0 .../main/resources/ui/project/sale-type.fxml | 0 .../ui/project/used-industry-manager.fxml | 0 .../src}/main/resources/ui/start_lamp.css | 0 .../src}/main/resources/ui/start_lamp.fxml | 0 .../resources/ui/task/TaskMonitorView.fxml | 0 common/pom.xml | 29 + .../com/ecep/contract}/BlackReasonType.java | 2 +- .../java/com/ecep/contract}/CloudType.java | 2 +- .../contract}/CompanyCustomerFileType.java | 2 +- .../com/ecep/contract}/CompanyFileType.java | 2 +- .../ecep/contract}/CompanyVendorFileType.java | 2 +- .../com/ecep}/contract/ContractFileType.java | 2 +- .../com/ecep}/contract/ContractPayWay.java | 2 +- .../main/java/com/ecep/contract}/Message.java | 2 +- .../com/ecep/contract}/MessageHolder.java | 2 +- .../com/ecep/contract}/MyDateTimeUtils.java | 3 +- .../com/ecep/contract}/ProjectFileType.java | 2 +- .../java/com/ecep/contract}/TaskStatus.java | 2 +- .../java/com/ecep/contract}/UnitType.java | 2 +- .../java/com/ecep/contract}/VendorType.java | 2 +- .../constant/CloudServiceConstant.java | 18 + .../constant/CompanyCustomerConstant.java | 4 +- .../constant/CompanyVendorConstant.java | 24 + .../contract/constant/ServiceConstant.java | 5 + .../java/com/ecep/contract/model/Bank.java | 63 ++ .../ecep/contract}/model/BaseEnumEntity.java | 11 +- .../com/ecep/contract/model/BasedEntity.java | 6 + .../com/ecep/contract/model}/CloudRk.java | 82 +- .../com/ecep/contract/model/CloudTyc.java | 98 ++ .../java/com/ecep/contract/model/CloudYu.java | 72 ++ .../com/ecep/contract}/model/Company.java | 9 +- .../contract}/model/CompanyBankAccount.java | 18 +- .../contract}/model/CompanyBasedEntity.java | 2 +- .../contract}/model/CompanyBasicFile.java | 2 +- .../contract}/model/CompanyBlackReason.java | 31 +- .../ecep/contract}/model/CompanyContact.java | 54 +- .../ecep/contract}/model/CompanyContract.java | 25 +- .../ecep/contract}/model/CompanyCustomer.java | 53 +- .../model/CompanyCustomerEntity.java | 50 +- .../CompanyCustomerEvaluationFormFile.java | 16 +- .../contract}/model/CompanyCustomerFile.java | 26 +- .../model/CompanyCustomerFileTypeLocal.java | 11 +- .../contract}/model/CompanyExtendInfo.java | 26 +- .../com/ecep/contract}/model/CompanyFile.java | 26 +- .../contract/model/CompanyFileTypeLocal.java | 20 + .../contract}/model/CompanyInvoiceInfo.java | 25 +- .../ecep/contract}/model/CompanyOldName.java | 27 +- .../ecep/contract}/model/CompanyVendor.java | 36 +- .../model/CompanyVendorApprovedFile.java | 21 +- .../model/CompanyVendorApprovedItem.java | 27 +- .../model/CompanyVendorApprovedList.java | 23 +- .../contract}/model/CompanyVendorEntity.java | 29 +- .../contract}/model/CompanyVendorFile.java | 26 +- .../model/CompanyVendorFileTypeLocal.java | 6 +- .../com/ecep}/contract/model/Contract.java | 42 +- .../contract/model/ContractBasedEntity.java | 2 +- .../contract/model/ContractBidVendor.java | 42 +- .../ecep}/contract/model/ContractCatalog.java | 22 +- .../ecep}/contract/model/ContractFile.java | 31 +- .../contract/model/ContractFileTypeLocal.java | 10 +- .../ecep}/contract/model/ContractGroup.java | 22 +- .../ecep}/contract/model/ContractItem.java | 30 +- .../ecep}/contract/model/ContractKind.java | 22 +- .../ecep}/contract/model/ContractPayPlan.java | 23 +- .../ecep}/contract/model/ContractType.java | 22 +- .../ecep/contract}/model/CustomerCatalog.java | 25 +- .../model/CustomerSatisfactionSurvey.java | 22 +- .../contract}/model/DeliverySignMethod.java | 22 +- .../com/ecep/contract}/model/Department.java | 22 +- .../com/ecep/contract}/model/Employee.java | 6 +- .../contract}/model/EmployeeAuthBind.java | 6 +- .../contract}/model/EmployeeLoginHistory.java | 7 +- .../ecep/contract}/model/EmployeeRole.java | 8 +- .../contract/model/ExtendVendorInfo.java | 43 +- .../com/ecep/contract}/model/Function.java | 8 +- .../ecep/contract}/model/HistoryPrice.java | 2 +- .../ecep/contract}/model/HolidayTable.java | 2 +- .../ecep/contract}/model/IdentityEntity.java | 2 +- .../com/ecep/contract}/model/Inventory.java | 32 +- .../contract}/model/InventoryCatalog.java | 6 +- .../model/InventoryHistoryPrice.java | 2 +- .../com/ecep/contract}/model/Invoice.java | 49 +- .../com/ecep/contract}/model/NamedEntity.java | 2 +- .../com/ecep/contract}/model/Permission.java | 6 +- .../java/com/ecep/contract}/model/Price.java | 6 +- .../com/ecep/contract/model/ProductType.java | 69 ++ .../ecep/contract}/model/ProductUsage.java | 21 +- .../com/ecep/contract}/model/Project.java | 35 +- .../contract}/model/ProjectBasedEntity.java | 2 +- .../com/ecep/contract}/model/ProjectBid.java | 22 +- .../com/ecep/contract}/model/ProjectCost.java | 28 +- .../ecep/contract}/model/ProjectCostItem.java | 28 +- .../com/ecep/contract/model/ProjectFile.java | 80 ++ .../contract}/model/ProjectFileTypeLocal.java | 13 +- .../ecep/contract}/model/ProjectFundPlan.java | 6 +- .../ecep/contract}/model/ProjectIndustry.java | 22 +- .../contract}/model/ProjectQuotation.java | 22 +- .../ecep/contract}/model/ProjectSaleType.java | 22 +- .../model/ProjectSaleTypeRequireFileType.java | 48 +- .../com/ecep/contract}/model/ProjectType.java | 22 +- .../contract/model/PurchaseBillVoucher.java | 50 +- .../model/PurchaseBillVoucherItem.java | 46 +- .../ecep}/contract/model/PurchaseOrder.java | 27 +- .../contract/model/PurchaseOrderItem.java | 48 +- .../ecep}/contract/model/PurchaseReceipt.java | 26 +- .../model/PurchaseSettlementVoucher.java | 29 +- .../model/PurchaseSettlementVoucherItem.java | 25 +- .../contract/model/SalesBillVoucher.java | 50 +- .../contract/model/SalesBillVoucherItem.java | 24 +- .../com/ecep}/contract/model/SalesOrder.java | 28 +- .../ecep}/contract/model/SalesOrderItem.java | 26 +- .../com/ecep/contract}/model/SysConf.java | 6 +- .../java/com/ecep/contract}/model/Unit.java | 18 +- .../ecep/contract}/model/VendorCatalog.java | 23 +- .../com/ecep/contract}/model/VendorGroup.java | 20 +- .../model/VendorGroupRequireFileType.java | 27 +- .../ecep/contract}/model/VendorTypeLocal.java | 6 +- .../com/ecep/contract}/model/VolumeSize.java | 2 +- .../com/ecep/contract/util/CompanyUtils.java | 11 + .../com/ecep/contract/util/FileUtils.java | 28 + .../ecep/contract}/util/HttpJsonUtils.java | 2 +- .../ecep/contract}/util/MyStringUtils.java | 2 +- .../com/ecep/contract}/util/NumberUtils.java | 2 +- .../ds/other/model => docs/db}/Inverntory.sql | 0 .../ds/other/model => docs/db}/Unit.sql | 0 pom.xml | 93 +- server/pom.xml | 107 +++ .../main/java/com/ecep/contract/AppV2.java | 49 + .../com/ecep/contract}/IEntityService.java | 6 +- .../contract}/MyPersistentCookieStore.java | 2 +- .../contract}/MyPersistentCookieStore2.java | 2 +- .../java/com/ecep/contract}/MyProperties.java | 2 +- .../java/com/ecep/contract/SpringApp.java | 261 ++++++ .../com/ecep/contract}/cloud/AbstractCtx.java | 20 +- .../ecep/contract}/cloud/CloudBaseInfo.java | 30 +- .../com/ecep/contract}/cloud/CloudInfo.java | 30 +- .../contract}/cloud/CloudInfoRepository.java | 2 +- .../cloud/CloudRepositoriesConfig.java | 4 +- .../cloud/old/CompanyContactUtils.java | 8 +- .../cloud/old/CompanyCustomerFileUtils.java | 6 +- .../cloud/old/CompanyVendorFileUtils.java | 6 +- .../cloud/old/OldVersionService.java | 115 +-- .../cloud/old/OldVersionSyncCustomerTask.java | 26 +- .../cloud/old/OldVersionSyncVendorTask.java | 19 +- .../cloud/rk/BlackListUpdateContext.java | 2 +- .../contract}/cloud/rk/CloudRkRepository.java | 7 +- .../contract}/cloud/rk/CloudRkService.java | 95 +- .../contract}/cloud/rk/CloudRkSyncTask.java | 36 +- .../contract}/cloud/rk/EntReportParser.java | 37 +- .../contract}/cloud/rk/ctx/CloudRkCtx.java | 65 +- .../cloud/tyc/CloudTycRepository.java | 7 +- .../contract}/cloud/tyc/CloudTycService.java | 55 +- .../contract/cloud/u8/CloudYuRepository.java | 25 + .../cloud/u8/ContractGroupSyncTask.java | 14 +- .../cloud/u8/ContractKindSyncTask.java | 12 +- .../cloud/u8/ContractSyncAllTask.java | 6 +- .../cloud/u8/ContractSyncContext.java | 30 +- .../contract}/cloud/u8/ContractSyncTask.java | 10 +- .../cloud/u8/ContractTypeSyncTask.java | 14 +- .../cloud/u8/CustomerClassSyncTask.java | 14 +- .../contract}/cloud/u8/CustomerSyncTask.java | 41 +- .../contract}/cloud/u8/DateTransferTask.java | 18 +- .../contract}/cloud/u8/EmployeesSyncTask.java | 29 +- .../cloud/u8/U8DataSourceFactory.java | 4 +- .../cloud/u8/VendorClassSyncTask.java | 14 +- .../contract}/cloud/u8/VendorSyncTask.java | 42 +- .../cloud/u8/YongYouU8Repository.java | 5 +- .../contract}/cloud/u8/YongYouU8Service.java | 66 +- .../cloud/u8/ctx/AbstractYongYouU8Ctx.java | 50 +- .../cloud/u8/ctx/CompanyBankAccountCtx.java | 13 +- .../contract}/cloud/u8/ctx/CompanyCtx.java | 18 +- .../contract}/cloud/u8/ctx/ContractCtx.java | 78 +- .../contract}/cloud/u8/ctx/CustomerCtx.java | 28 +- .../contract}/cloud/u8/ctx/InventoryCtx.java | 32 +- .../contract}/cloud/u8/ctx/InvoiceCtx.java | 19 +- .../cloud/u8/ctx/PurchaseBillVoucherCtx.java | 87 +- .../cloud/u8/ctx/PurchaseOrderCtx.java | 78 +- .../u8/ctx/PurchaseSettlementVoucherCtx.java | 23 +- .../cloud/u8/ctx/SalesBillVoucherCtx.java | 52 +- .../contract}/cloud/u8/ctx/SalesOrderCtx.java | 35 +- .../contract}/cloud/u8/ctx/VendorCtx.java | 32 +- .../ecep/contract/config/OpenApiConfig.java | 38 + .../ecep/contract/config/SecurityConfig.java | 160 ++++ .../com/ecep/contract/config/WebConfig.java | 39 + .../contract/controller/IndexController.java | 28 + .../contract/controller/LoginController.java | 41 + .../contract}/ds/DsRepositoriesConfig.java | 24 +- .../ecep/contract}/ds/MonthDayConverter.java | 2 +- .../com/ecep/contract/ds/MyRepository.java | 9 + .../CompanyContactStringConverter.java | 9 +- .../ds/company/CompanyFileUtils.java | 71 +- .../ds/company/model/update-schema.sql | 0 .../CompanyBankAccountRepository.java | 12 + .../CompanyBlackReasonRepository.java | 16 + .../repository/CompanyContactRepository.java | 22 + .../repository/CompanyContractRepository.java | 15 +- .../CompanyExtendInfoRepository.java | 12 + .../repository/CompanyFileRepository.java | 15 + .../CompanyFileTypeLocalRepository.java | 11 +- .../CompanyInvoiceInfoRepository.java | 14 +- .../repository/CompanyOldNameRepository.java | 9 +- .../company/repository/CompanyRepository.java | 11 +- .../company/repository/InvoiceRepository.java | 14 + .../service/CompanyBankAccountService.java | 22 +- .../company/service/CompanyBasicService.java | 62 +- .../service/CompanyBlackReasonService.java | 16 +- .../service/CompanyContactService.java | 20 +- .../service/CompanyExtendInfoService.java | 11 +- .../company/service/CompanyFileService.java | 130 +-- .../service/CompanyInvoiceInfoService.java | 11 +- .../service/CompanyOldNameService.java | 31 +- .../ds/company/service/CompanyService.java | 143 ++- .../ds/company/service/InvoiceService.java | 14 +- .../tasker/CompanyCompositeUpdateTasker.java | 49 +- .../tasker/CompanyFilesRebuildTasker.java | 15 +- .../company/tasker/CompanyVerifyTasker.java | 29 +- .../ds/contract/ContractStringConverter.java | 14 +- .../ds/contract/model/ContractCost.sql | 0 .../ds/contract/model/ContractCostItem.sql | 0 .../ds/contract/model/SalesBillVoucher.sql | 0 .../ContractBidVendorRepository.java | 8 +- .../repository/ContractCatalogRepository.java | 17 + .../repository/ContractFileRepository.java | 11 +- .../ContractFileTypeLocalRepository.java | 12 +- .../repository/ContractGroupRepository.java | 18 + .../repository/ContractItemRepository.java | 7 +- .../repository/ContractKindRepository.java | 15 + .../repository/ContractPayPlanRepository.java | 13 +- .../repository/ContractRepository.java | 8 +- .../repository/ContractTypeRepository.java | 16 + .../ExtendVendorInfoRepository.java | 7 +- .../PurchaseBillVoucherItemRepository.java | 19 + .../PurchaseBillVoucherRepository.java | 7 +- .../PurchaseOrderItemRepository.java | 18 + .../repository/PurchaseOrderRepository.java | 13 +- .../SalesBillVoucherItemRepository.java | 19 + .../SalesBillVoucherRepository.java | 8 +- .../repository/SalesOrderItemRepository.java | 11 +- .../repository/SalesOrderRepository.java | 11 +- .../service/ContractBidVendorService.java | 47 +- .../service/ContractCatalogService.java | 23 +- .../contract/service/ContractFileService.java | 84 +- .../service/ContractGroupService.java | 11 +- .../contract/service/ContractItemService.java | 44 +- .../contract/service/ContractKindService.java | 11 +- .../service/ContractPayPlanService.java | 16 +- .../ds/contract/service/ContractService.java | 42 +- .../contract/service/ContractTypeService.java | 15 +- .../service/ExtendVendorInfoService.java | 37 +- .../PurchaseBillVoucherItemService.java | 37 +- .../service/PurchaseBillVoucherService.java | 14 +- .../service/PurchaseOrderItemService.java | 14 +- .../service/PurchaseOrdersService.java | 16 +- .../contract/service/SaleOrdersService.java | 40 +- .../service/SalesBillVoucherService.java | 18 +- .../service/SalesOrderItemService.java | 14 +- .../tasker/AbstContractRepairTasker.java | 53 +- .../tasker/ContractFilesRebuildAllTasker.java | 24 +- .../tasker/ContractFilesRebuildTasker.java | 14 +- .../tasker/ContractRepairAllTasker.java | 41 +- .../tasker/ContractRepairByCompanyTask.java | 27 +- .../contract/tasker/ContractRepairComm.java | 32 +- .../contract/tasker/ContractRepairTask.java | 20 +- .../contract/tasker/ContractVerifyComm.java | 848 ++++++++++++++++++ .../contract/tasker/ContractVerifyTasker.java | 19 +- .../CustomerContractCostFormUpdateTask.java | 53 +- .../CustomerClassStringConverter.java | 11 +- .../contract}/ds/customer/model/Customer.sql | 0 .../CompanyCustomerEntityRepository.java | 18 + ...yCustomerEvaluationFormFileRepository.java | 9 +- .../CompanyCustomerFileRepository.java | 18 + ...ompanyCustomerFileTypeLocalRepository.java | 9 +- .../repository/CompanyCustomerRepository.java | 21 + .../repository/CustomerCatalogRepository.java | 7 +- .../service/CompanyCustomerEntityService.java | 42 +- .../service/CompanyCustomerFileService.java | 45 +- .../service/CompanyCustomerService.java | 78 +- .../other/controller/EmployyeController.java | 51 ++ .../other/controller}/InventorySyncTask.java | 12 +- .../ds/other/repository/BankRepository.java | 15 + .../repository/BaseEnumEntityRepository.java | 23 +- .../repository/DepartmentRepository.java | 20 + .../EmployeeAuthBindRepository.java | 9 +- .../EmployeeLoginHistoryRepository.java | 14 +- .../other/repository/EmployeeRepository.java | 28 + .../repository/EmployeeRoleRepository.java | 18 + .../other/repository/FunctionRepository.java | 6 +- .../repository/HolidayTableRepository.java | 5 +- .../InventoryCatalogRepository.java | 8 +- .../InventoryHistoryPriceRepository.java | 11 +- .../other/repository/InventoryRepository.java | 7 +- .../repository/PermissionRepository.java | 7 +- .../other/repository/SysConfRepository.java | 11 + .../ds/other/service/BankService.java | 23 +- .../ds/other/service/DepartmentService.java | 14 +- .../service/EmployeeAuthBindService.java | 16 +- .../service/EmployeeLoginHistoryService.java | 12 +- .../ds/other/service/EmployeeRoleService.java | 55 +- .../ds/other/service/EmployeeService.java | 62 +- .../ds/other/service/FunctionService.java | 16 +- .../service/InventoryCatalogService.java | 9 +- .../service/InventoryHistoryPriceService.java | 19 +- .../ds/other/service/InventoryService.java | 64 +- .../ds/other/service/PermissionService.java | 30 +- .../ds/other/service/SysConfService.java | 6 +- ...ectCostImportItemsFromContractsTasker.java | 116 ++- .../ecep/contract}/ds/project/ProjectCtx.java | 22 +- .../CustomerSatisfactionSurveyRepository.java | 5 +- .../ProductDeliverySignMethodRepository.java | 22 + .../repository/ProductTypeRepository.java | 16 + .../repository/ProductUsageRepository.java | 16 + .../repository/ProjectBidRepository.java | 8 +- .../repository/ProjectCostItemRepository.java | 9 +- .../repository/ProjectCostRepository.java | 13 +- .../repository/ProjectFileRepository.java | 15 + .../ProjectFileTypeLocalRepository.java | 9 +- .../repository/ProjectFundPlanRepository.java | 8 +- .../repository/ProjectIndustryRepository.java | 16 + .../ProjectQuotationRepository.java | 9 +- .../project/repository/ProjectRepository.java | 17 +- .../repository/ProjectSaleTypeRepository.java | 16 + ...jectSaleTypeRequireFileTypeRepository.java | 12 +- .../repository/ProjectTypeRepository.java | 16 + .../CustomerSatisfactionSurveyService.java | 14 +- .../service/DeliverySignMethodService.java | 50 +- .../project/service/ProductTypeService.java | 45 +- .../project/service/ProductUsageService.java | 19 +- .../ds/project/service/ProjectBidService.java | 23 +- .../service/ProjectCostItemService.java | 19 +- .../project/service/ProjectCostService.java | 20 +- .../project/service/ProjectFileService.java | 29 +- .../service/ProjectFundPlanService.java | 18 +- .../service/ProjectIndustryService.java | 20 +- .../service/ProjectQuotationService.java | 18 +- ...ProjectSaleTypeRequireFileTypeService.java | 18 +- .../ds/project/service/ProjectService.java | 61 +- .../service/ProjectStringConverter.java | 10 +- .../project/service/ProjectTypeService.java | 46 +- .../ds/project/service/SaleTypeService.java | 46 +- .../contract}/ds/project/state_workflow.xml | 0 .../ds/vendor/model/CompanyVendor.sql | 0 .../CompanyVendorApprovedFileRepository.java | 11 +- .../CompanyVendorApprovedItemRepository.java | 12 +- .../CompanyVendorApprovedListRepository.java | 5 +- .../CompanyVendorEntityRepository.java | 18 + .../CompanyVendorFileRepository.java | 11 +- .../CompanyVendorFileTypeLocalRepository.java | 9 +- .../repository/CompanyVendorRepository.java | 30 + .../repository/VendorClassRepository.java | 13 + .../repository/VendorGroupRepository.java | 8 +- .../VendorGroupRequireFileTypeRepository.java | 7 +- .../repository/VendorTypeLocalRepository.java | 9 +- .../CompanyVendorApprovedFileService.java | 16 +- .../CompanyVendorApprovedItemService.java | 31 +- .../CompanyVendorApprovedListService.java | 41 +- .../service/CompanyVendorEntityService.java | 18 +- .../service/CompanyVendorFileService.java | 40 +- .../vendor/service/CompanyVendorService.java | 88 +- .../VendorGroupRequireFileTypeService.java | 9 +- .../ds/vendor/service/VendorGroupService.java | 44 +- .../ds/vendor/task/VendorVerifyAllTasker.java | 76 +- .../java/com/ecep/contract/ui/Tasker.java | 121 +++ .../com/ecep/contract/util/AsyncUtils.java | 125 +++ .../contract/util/EntityStringConverter.java | 80 ++ .../com/ecep/contract/util/ExcelUtils.java | 172 ++++ .../ecep/contract/util/HibernateUtils.java | 40 + .../com/ecep/contract/util/MonitoredTask.java | 193 ++++ .../contract/util/NumberStringConverter.java | 89 ++ .../contract}/util/SpecificationUtils.java | 2 +- .../com/ecep/contract/util/TaskHistory.java | 71 ++ .../ecep/contract/util/TaskMonitorCenter.java | 146 +++ .../com/ecep/contract}/util/TaxRateUtils.java | 2 +- .../main/resources/application.properties | 15 +- .../src}/main/resources/logback.xml | 4 + .../src}/main/resources/messages.properties | 0 .../main/resources/messages_zh_CN.properties | 0 server/src/main/resources/static/login.html | 111 +++ .../manager/cloud/CloudInfoViewModel.java | 79 -- .../cloud/rk/CloudRkDataRepairTask.java | 55 -- .../cloud/rk/CloudRkInfoViewModel.java | 172 ---- .../rk/CloudRkManagerWindowController.java | 160 ---- .../contract/manager/cloud/tyc/CloudTyc.java | 28 - .../contract/manager/cloud/u8/CloudYu.java | 42 - .../manager/cloud/u8/CloudYuRepository.java | 31 - .../contract/manager/ds/MyRepository.java | 9 - .../controller/AbstCompanyBasedTabSkin.java | 20 - .../controller/AbstCompanyTableTabSkin.java | 56 -- .../old_name/CompanyOldNameTabSkinFile.java | 363 -------- .../company/model/CompanyFileTypeLocal.java | 17 - .../CompanyBankAccountRepository.java | 14 - .../CompanyBlackReasonRepository.java | 19 - .../repository/CompanyContactRepository.java | 28 - .../CompanyExtendInfoRepository.java | 19 - .../repository/CompanyFileRepository.java | 17 - .../company/repository/InvoiceRepository.java | 21 - .../repository/ContractCatalogRepository.java | 23 - .../repository/ContractGroupRepository.java | 24 - .../repository/ContractKindRepository.java | 22 - .../repository/ContractTypeRepository.java | 22 - .../PurchaseBillVoucherItemRepository.java | 17 - .../PurchaseOrderItemRepository.java | 25 - .../SalesBillVoucherItemRepository.java | 18 - .../AbstCompanyCustomerTableTabSkin.java | 28 - .../CompanyCustomerEntityRepository.java | 27 - .../CompanyCustomerFileRepository.java | 18 - .../repository/CompanyCustomerRepository.java | 29 - .../contract/manager/ds/other/model/Bank.java | 47 - .../manager/ds/other/model/Entity.java | 6 - .../ds/other/repository/BankRepository.java | 21 - .../repository/DepartmentRepository.java | 17 - .../other/repository/EmployeeRepository.java | 32 - .../repository/EmployeeRoleRepository.java | 24 - .../other/repository/SysConfRepository.java | 11 - .../manager/ds/project/model/ProductType.java | 53 -- .../manager/ds/project/model/ProjectFile.java | 58 -- .../ProductDeliverySignMethodRepository.java | 28 - .../repository/ProductTypeRepository.java | 22 - .../repository/ProductUsageRepository.java | 22 - .../repository/ProjectFileRepository.java | 25 - .../repository/ProjectIndustryRepository.java | 22 - .../repository/ProjectSaleTypeRepository.java | 23 - .../repository/ProjectTypeRepository.java | 22 - .../AbstCompanyVendorTableTabSkin.java | 35 - ...CompanyVendorEvaluationFormUpdateTask.java | 230 ----- .../CompanyVendorEntityRepository.java | 29 - .../repository/CompanyVendorRepository.java | 36 - .../repository/VendorClassRepository.java | 15 - .../manager/ui/table/TableOfTabSkin.java | 14 - .../ui/table/cell/DepartmentTableCell.java | 23 - .../contract/manager/util/HibernateUtils.java | 95 -- 939 files changed, 14227 insertions(+), 9607 deletions(-) create mode 100644 FixPackageNames$1.class create mode 100644 FixPackageNames.class create mode 100644 FixPackageNames.java create mode 100644 client/pom.xml rename {src/main/java/com/ecep/contract/manager => client/src/main/java/com/ecep/contract}/AppV2.java (60%) rename {src/main/java/com/ecep/contract/manager => client/src/main/java/com/ecep/contract}/Desktop.java (96%) rename {src/main/java/com/ecep/contract/manager/util => client/src/main/java/com/ecep/contract}/DesktopUtils.java (97%) create mode 100644 client/src/main/java/com/ecep/contract/Main.java rename {src/main/java/com/ecep/contract/manager => client/src/main/java/com/ecep/contract}/SpringApp.java (92%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/AbstEntityBasedController.java (78%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/AbstEntityController.java (93%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/AbstEntityManagerSkin.java (96%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/AbstManagerWindowController.java (87%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/BaseController.java (93%) rename {src/main/java/com/ecep/contract/manager/cloud/rk => client/src/main/java/com/ecep/contract/controller}/CloudRkManagerSkin.java (75%) create mode 100644 client/src/main/java/com/ecep/contract/controller/CloudRkManagerWindowController.java rename {src/main/java/com/ecep/contract/manager/cloud/tyc => client/src/main/java/com/ecep/contract/controller}/CloudTycManagerSkin.java (90%) rename {src/main/java/com/ecep/contract/manager/cloud/tyc => client/src/main/java/com/ecep/contract/controller}/CloudTycManagerWindowController.java (65%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/ComboBoxUtils.java (94%) rename {src/main/java/com/ecep/contract/manager => client/src/main/java/com/ecep/contract/controller}/CurrentEmployeeInitialedEvent.java (83%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/HomeWindowController.java (78%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/LoginWidowController.java (95%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/ManagerSkin.java (57%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/SysConfWindowController.java (89%) rename {src/main/java/com/ecep/contract/manager/ui/task => client/src/main/java/com/ecep/contract/controller}/TaskMonitorViewController.java (94%) rename {src/main/java/com/ecep/contract/manager/cloud/u8 => client/src/main/java/com/ecep/contract/controller}/YongYouU8ConfigWindowController.java (79%) rename {src/main/java/com/ecep/contract/manager/cloud/u8 => client/src/main/java/com/ecep/contract/controller}/YongYouU8ManagerSkin.java (85%) rename {src/main/java/com/ecep/contract/manager/cloud/u8 => client/src/main/java/com/ecep/contract/controller}/YongYouU8ManagerWindowController.java (91%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/bank/BankManagerSkin.java (80%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/bank/BankManagerWindowController.java (75%) rename {src/main/java/com/ecep/contract/manager/ds/company/controller/bank_account => client/src/main/java/com/ecep/contract/controller/bank/account}/BankAccountBaseTabSkin.java (67%) rename {src/main/java/com/ecep/contract/manager/ds/company/controller/bank_account => client/src/main/java/com/ecep/contract/controller/bank/account}/BankAccountWindowController.java (74%) create mode 100644 client/src/main/java/com/ecep/contract/controller/company/AbstCompanyBasedTabSkin.java create mode 100644 client/src/main/java/com/ecep/contract/controller/company/AbstCompanyTableTabSkin.java rename {src/main/java/com/ecep/contract/manager/ds/company/controller/contact => client/src/main/java/com/ecep/contract/controller/company}/CompanyContactWindowController.java (91%) rename {src/main/java/com/ecep/contract/manager/ds/company/controller => client/src/main/java/com/ecep/contract/controller/company}/CompanyManagerSkin.java (87%) rename {src/main/java/com/ecep/contract/manager/ds/company/controller => client/src/main/java/com/ecep/contract/controller/company}/CompanyManagerWindowController.java (79%) rename {src/main/java/com/ecep/contract/manager/ds/company/controller => client/src/main/java/com/ecep/contract/controller/company}/CompanyVerifyWindowController.java (66%) rename {src/main/java/com/ecep/contract/manager/ds/company/controller => client/src/main/java/com/ecep/contract/controller/company}/CompanyWindowController.java (80%) rename {src/main/java/com/ecep/contract/manager/ds/company/controller/old_name => client/src/main/java/com/ecep/contract/controller/company_old_name}/CompanyOldNameTabSkinBase.java (82%) create mode 100644 client/src/main/java/com/ecep/contract/controller/company_old_name/CompanyOldNameTabSkinFile.java rename {src/main/java/com/ecep/contract/manager/ds/company/controller/old_name => client/src/main/java/com/ecep/contract/controller/company_old_name}/CompanyOldNameWindowController.java (75%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/contract}/AbstContractBasedTabSkin.java (53%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/contract}/AbstContractTableTabSkin.java (56%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/contract}/ContractManagerWindowController.java (76%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/contract}/ContractTabSkinExtendVendorInfo.java (88%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/contract}/ContractVerifyWindowController.java (87%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/contract}/ContractWindowController.java (84%) create mode 100644 client/src/main/java/com/ecep/contract/controller/customer/AbstCompanyCustomerTableTabSkin.java rename {src/main/java/com/ecep/contract/manager/ds/customer/controller => client/src/main/java/com/ecep/contract/controller/customer}/CompanyCustomerEvaluationFormFileWindowController.java (94%) rename {src/main/java/com/ecep/contract/manager/ds/customer/controller => client/src/main/java/com/ecep/contract/controller/customer}/CompanyCustomerEvaluationFormUpdateTask.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/customer/controller => client/src/main/java/com/ecep/contract/controller/customer}/CompanyCustomerExportExcelTasker.java (89%) rename {src/main/java/com/ecep/contract/manager/ds/customer/controller => client/src/main/java/com/ecep/contract/controller/customer}/CompanyCustomerManagerSkin.java (77%) rename {src/main/java/com/ecep/contract/manager/ds/customer/controller => client/src/main/java/com/ecep/contract/controller/customer}/CompanyCustomerManagerWindowController.java (87%) rename {src/main/java/com/ecep/contract/manager/ds/customer/controller => client/src/main/java/com/ecep/contract/controller/customer}/CompanyCustomerTabSkinBase.java (81%) rename {src/main/java/com/ecep/contract/manager/ds/customer/controller => client/src/main/java/com/ecep/contract/controller/customer}/CompanyCustomerWindowController.java (75%) rename {src/main/java/com/ecep/contract/manager/ds/customer/controller => client/src/main/java/com/ecep/contract/controller/customer}/CustomerTabSkinEntity.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/customer/controller => client/src/main/java/com/ecep/contract/controller/customer}/CustomerTabSkinFile.java (86%) rename {src/main/java/com/ecep/contract/manager/ds/customer/controller => client/src/main/java/com/ecep/contract/controller/customer}/CustomerTabSkinSatisfactionSurvey.java (69%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order => client/src/main/java/com/ecep/contract/controller/customer}/SalesOrderWindowController.java (67%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/department/DepartmentManagerSkin.java (88%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/department/DepartmentManagerWindowController.java (76%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/employee/AbstEmployeeBasedTabSkin.java (65%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/employee/AbstEmployeeTableTabSkin.java (61%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/employee/EmployeeManagerSkin.java (82%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/employee/EmployeeManagerWindowController.java (76%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/employee/EmployeeTabSkinAuthBind.java (87%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/employee/EmployeeTabSkinBase.java (89%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/employee/EmployeeTabSkinLoginHistory.java (82%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/employee/EmployeeTabSkinRole.java (91%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/employee/EmployeeWindowController.java (81%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/inventory/InventoryManagerSkin.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/inventory/InventoryManagerWindowController.java (83%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/inventory/InventoryTabSkinBase.java (66%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/inventory/InventoryTabSkinContracts.java (78%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/inventory/InventoryTabSkinHistoryPrice.java (88%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/inventory/InventoryWindowController.java (79%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/permission/AbstEmployeeRoleBasedTabSkin.java (65%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/permission/EmployeeFunctionsManagerWindowController.java (75%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/permission/EmployeeRoleManagerSkin.java (75%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/permission/EmployeeRoleManagerWindowController.java (79%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/permission/EmployeeRoleTabSkinBase.java (87%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/permission/EmployeeRoleTabSkinFunctions.java (94%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/permission/EmployeeRoleWindowController.java (77%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/permission/FunctionManagerSkin.java (89%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/permission/FunctionTabSkinBase.java (79%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/permission/FunctionTabSkinPermission.java (77%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/permission/FunctionWindowController.java (81%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract}/controller/permission/PermissionManagerSkin.java (92%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/AbstProjectBasedTabSkin.java (53%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/AbstProjectTableTabSkin.java (61%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/ApplyNewProjectWindowController.java (91%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/ProjectManagerSkin.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/ProjectManagerWindowController.java (74%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/ProjectTabSkinBase.java (93%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/ProjectTabSkinBid.java (86%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/ProjectTabSkinContract.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/ProjectTabSkinCost.java (87%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/ProjectTabSkinCustomerInfo.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/ProjectTabSkinCustomerSatisfactionSurvey.java (82%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/ProjectTabSkinFundPlan.java (83%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/ProjectTabSkinQuotation.java (83%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/ProjectWindowController.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/bid/ProjectBidTabSkinBase.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/bid/ProjectBidWindowController.java (82%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/cost/ProjectCostExportExcelTasker.java (93%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/cost/ProjectCostTabSkinBase.java (89%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/cost/ProjectCostTabSkinItems.java (89%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/cost/ProjectCostWindowController.java (83%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/industry/ProjectIndustryManagerSkin.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/industry/ProjectIndustryManagerWindowController.java (75%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/product_type/ProductTypeManagerSkin.java (85%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/product_type/ProductTypeManagerWindowController.java (72%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/project_type/ProjectTypeManagerSkin.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/project_type/ProjectTypeManagerWindowController.java (69%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/quotation/ProjectQuotationExportAsExcelFile.java (88%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/quotation/ProjectQuotationTabSkinBase.java (88%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/quotation/ProjectQuotationWindowController.java (80%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/sale_type/AbstProjectSaleTypeBasedTabSkin.java (52%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/sale_type/AbstProjectSaleTypeTableTabSkin.java (58%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/sale_type/ProjectSaleTypeBaseTabSkin.java (92%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/sale_type/ProjectSaleTypeManagerSkin.java (91%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/sale_type/ProjectSaleTypeManagerWindowController.java (73%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/sale_type/ProjectSaleTypeRequireFilesTabSkin.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/sale_type/ProjectSaleTypeWindowController.java (78%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/sale_type/SignMethodTabSkin.java (89%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/satisfaction_survey/CustomerSatisfactionSurveyTabSkinBase.java (88%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/satisfaction_survey/CustomerSatisfactionSurveyWindowController.java (79%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/satisfaction_survey/ProjectCustomerSatisfactionSurveyExportAsExcelFile.java (89%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/usage/ProductUsageManagerSkin.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller => client/src/main/java/com/ecep/contract/controller/project}/usage/ProductUsageManagerWindowController.java (75%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/tab/AbstEntityBasedTabSkin.java (91%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller/tab}/AbstGenericTabSkin.java (89%) rename {src/main/java/com/ecep/contract/manager/ds/company/controller => client/src/main/java/com/ecep/contract/controller/tab}/CompanyTabSkinBankAccount.java (77%) rename {src/main/java/com/ecep/contract/manager/ds/company/controller => client/src/main/java/com/ecep/contract/controller/tab}/CompanyTabSkinBase.java (93%) rename {src/main/java/com/ecep/contract/manager/ds/company/controller => client/src/main/java/com/ecep/contract/controller/tab}/CompanyTabSkinBlackReason.java (85%) rename {src/main/java/com/ecep/contract/manager/ds/company/controller => client/src/main/java/com/ecep/contract/controller/tab}/CompanyTabSkinContact.java (83%) rename {src/main/java/com/ecep/contract/manager/ds/company/controller => client/src/main/java/com/ecep/contract/controller/tab}/CompanyTabSkinContract.java (72%) rename {src/main/java/com/ecep/contract/manager/ds/company/controller => client/src/main/java/com/ecep/contract/controller/tab}/CompanyTabSkinFile.java (93%) rename {src/main/java/com/ecep/contract/manager/ds/company/controller => client/src/main/java/com/ecep/contract/controller/tab}/CompanyTabSkinInvoice.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/company/controller => client/src/main/java/com/ecep/contract/controller/tab}/CompanyTabSkinOldName.java (85%) rename {src/main/java/com/ecep/contract/manager/ds/company/controller => client/src/main/java/com/ecep/contract/controller/tab}/CompanyTabSkinOther.java (94%) rename {src/main/java/com/ecep/contract/manager/ds/company/controller => client/src/main/java/com/ecep/contract/controller/tab}/CompanyTabSkinPurchaseBillVoucher.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/tab}/ContractManagerSkin.java (82%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/tab}/ContractTabSkinBase.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/tab}/ContractTabSkinFiles.java (87%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/tab}/ContractTabSkinItems.java (94%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/tab}/ContractTabSkinItemsV2.java (88%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/tab}/ContractTabSkinPayPlan.java (85%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/tab}/ContractTabSkinPurchaseOrders.java (83%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/tab}/ContractTabSkinSaleOrders.java (82%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/tab}/ContractTabSkinSubContract.java (83%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/tab}/ContractTabSkinVendorBid.java (83%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/tab}/ContractUpdater.java (87%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller/tab}/RefreshableSkin.java (81%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order => client/src/main/java/com/ecep/contract/controller/tab}/SalesOrderTabSkinBase.java (77%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order => client/src/main/java/com/ecep/contract/controller/tab}/SalesOrderTabSkinBillVoucher.java (88%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order => client/src/main/java/com/ecep/contract/controller/tab}/SalesOrderTabSkinItems.java (76%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller/tab}/Skin.java (90%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/tab/TabSkin.java (78%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/tab}/VendorBidTabSkinBase.java (84%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/AbstEntityTableTabSkin.java (94%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/EditableEntityTableTabSkin.java (62%) create mode 100644 client/src/main/java/com/ecep/contract/controller/table/TableOfTabSkin.java rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/TableTabSkin.java (51%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/cell/AsyncUpdateTableCell.java (90%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/cell/BankTableCell.java (55%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/cell/CompanyTableCell.java (61%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/cell/CompanyVendorTableCell.java (84%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/cell/ContractGroupTableCell.java (54%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/cell/ContractKindTableCell.java (55%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/cell/ContractTableCell.java (54%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/cell/ContractTypeTableCell.java (52%) create mode 100644 client/src/main/java/com/ecep/contract/controller/table/cell/DepartmentTableCell.java rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/cell/EmployeeRoleTableCell.java (63%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/cell/EmployeeTableCell.java (63%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/cell/EvaluationFileTableCell.java (79%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/cell/InventoryTableCell.java (80%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/cell/InvoiceTableCell.java (59%) rename {src/main/java/com/ecep/contract/manager/ui/util => client/src/main/java/com/ecep/contract/controller/table/cell}/LocalDateFieldTableCell.java (98%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/cell/LocalDateTimeTableCell.java (86%) create mode 100644 client/src/main/java/com/ecep/contract/controller/table/cell/NumberTableCell.java rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/cell/ProjectTableCell.java (60%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/controller}/table/cell/PurchaseOrderItemTableCell.java (80%) create mode 100644 client/src/main/java/com/ecep/contract/controller/vendor/AbstCompanyVendorTableTabSkin.java rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/CompanyVendorManagerSkin.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/CompanyVendorManagerWindowController.java (77%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/CompanyVendorTabSkinBase.java (80%) rename src/main/java/com/ecep/contract/manager/ds/vendor/controller/EntityTabSkin.java => client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorTabSkinEntity.java (68%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/CompanyVendorWindowController.java (72%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_bill => client/src/main/java/com/ecep/contract/controller/vendor}/PurchaseBillVoucherWindowController.java (76%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order => client/src/main/java/com/ecep/contract/controller/vendor}/PurchaseOrderWindowController.java (78%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/vendor}/VendorBidWindowController.java (68%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/VendorTabSkinFile.java (87%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/approved_list/CompanyVendorApprovedListManagerSkin.java (73%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/approved_list/CompanyVendorApprovedListManagerWindowController.java (58%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/approved_list/CompanyVendorApprovedListTabSkinBase.java (68%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/approved_list/CompanyVendorApprovedListTabSkinFiles.java (80%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/approved_list/CompanyVendorApprovedListTabSkinVendors.java (88%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/approved_list/CompanyVendorApprovedListVendorExportTask.java (92%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/approved_list/CompanyVendorApprovedListVendorImportTask.java (95%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/approved_list/CompanyVendorApprovedListWindowController.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/group/AbstVendorGroupBasedTabSkin.java (52%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/group/VendorGroupBaseTabSkin.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/group/VendorGroupManagerSkin.java (89%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/group/VendorGroupManagerWindowController.java (72%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/group/VendorGroupRequireFilesTabSkin.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/controller => client/src/main/java/com/ecep/contract/controller/vendor}/group/VendorGroupWindowController.java (77%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order => client/src/main/java/com/ecep/contract/controller/vendor/purchase/order}/PurchaseOrderTabSkinBase.java (78%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order => client/src/main/java/com/ecep/contract/controller/vendor/purchase/order}/PurchaseOrderTabSkinBillVoucher.java (85%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order => client/src/main/java/com/ecep/contract/controller/vendor/purchase/order}/PurchaseOrderTabSkinItems.java (76%) rename {src/main/java/com/ecep/contract/manager/ds/contract/controller => client/src/main/java/com/ecep/contract/controller/vendor/purchase}/purchase_bill/PurchaseBillVoucherTabSkinItems.java (79%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract/converter}/BankStringConverter.java (67%) rename {src/main/java/com/ecep/contract/manager/ui/util => client/src/main/java/com/ecep/contract/converter}/ContractGroupStringConverter.java (91%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract/converter}/EmployeeStringConverter.java (78%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract/converter}/EntityStringConverter.java (91%) create mode 100644 client/src/main/java/com/ecep/contract/service/BankService.java create mode 100644 client/src/main/java/com/ecep/contract/service/CloudRkService.java create mode 100644 client/src/main/java/com/ecep/contract/service/CloudTycService.java create mode 100644 client/src/main/java/com/ecep/contract/service/CompanyContactService.java create mode 100644 client/src/main/java/com/ecep/contract/service/CompanyCustomerService.java create mode 100644 client/src/main/java/com/ecep/contract/service/CompanyFileService.java create mode 100644 client/src/main/java/com/ecep/contract/service/CompanyOldNameService.java create mode 100644 client/src/main/java/com/ecep/contract/service/CompanyService.java rename {src/main/java/com/ecep/contract/manager/ds/company => client/src/main/java/com/ecep/contract/service}/CompanyStringConverter.java (71%) create mode 100644 client/src/main/java/com/ecep/contract/service/CompanyVendorEntityService.java create mode 100644 client/src/main/java/com/ecep/contract/service/CompanyVendorFileService.java create mode 100644 client/src/main/java/com/ecep/contract/service/CompanyVendorService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ContractBidVendorService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ContractFileService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ContractGroupService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ContractKindService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ContractService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ContractTypeService.java create mode 100644 client/src/main/java/com/ecep/contract/service/CustomerSatisfactionSurveyService.java create mode 100644 client/src/main/java/com/ecep/contract/service/EmployeeRoleService.java create mode 100644 client/src/main/java/com/ecep/contract/service/EmployeeService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ExtendVendorInfoService.java create mode 100644 client/src/main/java/com/ecep/contract/service/IEntityService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ProjectBidService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ProjectCostService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ProjectQuotationService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ProjectSaleTypeRequireFileTypeService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ProjectSaleTypeService.java create mode 100644 client/src/main/java/com/ecep/contract/service/ProjectService.java create mode 100644 client/src/main/java/com/ecep/contract/service/SaleOrdersService.java create mode 100644 client/src/main/java/com/ecep/contract/service/SysConfService.java create mode 100644 client/src/main/java/com/ecep/contract/service/VendorGroupRequireFileTypeService.java create mode 100644 client/src/main/java/com/ecep/contract/service/VendorGroupService.java rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/service}/ViewModelService.java (58%) create mode 100644 client/src/main/java/com/ecep/contract/service/YongYouU8Service.java create mode 100644 client/src/main/java/com/ecep/contract/task/CloudRkSyncTask.java create mode 100644 client/src/main/java/com/ecep/contract/task/CompanyCompositeUpdateTasker.java create mode 100644 client/src/main/java/com/ecep/contract/task/CompanyFilesRebuildTasker.java create mode 100644 client/src/main/java/com/ecep/contract/task/CompanyVendorEvaluationFormUpdateTask.java create mode 100644 client/src/main/java/com/ecep/contract/task/CompanyVerifyTasker.java create mode 100644 client/src/main/java/com/ecep/contract/task/ContractRepairByCompanyTask.java create mode 100644 client/src/main/java/com/ecep/contract/task/ContractRepairTask.java create mode 100644 client/src/main/java/com/ecep/contract/task/ContractSyncTask.java rename {src/main/java/com/ecep/contract/manager/ds/contract/tasker => client/src/main/java/com/ecep/contract/task}/ContractVerifyComm.java (92%) rename src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractVerifyResultExportAsExcelFile.java => client/src/main/java/com/ecep/contract/task/ContractVerifyResultExportAsExcelFileTasker.java (81%) create mode 100644 client/src/main/java/com/ecep/contract/task/CustomerSyncTask.java rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract}/task/DemoTask.java (93%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract}/task/MonitoredTask.java (98%) create mode 100644 client/src/main/java/com/ecep/contract/task/OldVersionSyncCustomerTask.java create mode 100644 client/src/main/java/com/ecep/contract/task/OldVersionSyncVendorTask.java rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract}/task/TaskHistory.java (94%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract}/task/TaskMonitorCenter.java (96%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/task}/Tasker.java (91%) create mode 100644 client/src/main/java/com/ecep/contract/task/VendorSyncTask.java rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract/util}/AbstractConfigBounder.java (93%) rename {src/main/java/com/ecep/contract/manager => client/src/main/java/com/ecep/contract}/util/AsyncUtils.java (98%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract/util}/BooleanConfig.java (96%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract}/util/BooleanConfigProperty.java (87%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract/util}/ConfigBounder.java (70%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract}/util/DelayOnceExecutor.java (98%) rename {src/main/java/com/ecep/contract/manager => client/src/main/java/com/ecep/contract}/util/ExcelUtils.java (99%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract/util}/FxmlPath.java (81%) rename {src/main/java/com/ecep/contract/manager => client/src/main/java/com/ecep/contract}/util/FxmlUtils.java (94%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract}/util/IntegerConfigProperty.java (83%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract/util}/LocalDateConfig.java (95%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract/util}/LocalDateTimeConfig.java (96%) rename {src/main/java/com/ecep/contract/manager/ui => client/src/main/java/com/ecep/contract}/util/MyDateTimePropertyUtils.java (92%) rename {src/main/java/com/ecep/contract/manager/ds/other => client/src/main/java/com/ecep/contract/util}/StringConfig.java (97%) rename {src/main/java/com/ecep/contract/manager => client/src/main/java/com/ecep/contract}/util/TableViewUtils.java (98%) rename {src/main/java/com/ecep/contract/manager => client/src/main/java/com/ecep/contract}/util/UITools.java (95%) rename {src/main/java/com/ecep/contract/manager/ds/other/vo => client/src/main/java/com/ecep/contract/vm}/BankViewModel.java (87%) rename {src/main/java/com/ecep/contract/manager/ds/other/vo => client/src/main/java/com/ecep/contract/vm}/BaseViewModel.java (98%) create mode 100644 client/src/main/java/com/ecep/contract/vm/CloudRkViewModel.java rename {src/main/java/com/ecep/contract/manager/cloud/tyc => client/src/main/java/com/ecep/contract/vm}/CloudTycInfoViewModel.java (74%) rename {src/main/java/com/ecep/contract/manager/cloud/u8 => client/src/main/java/com/ecep/contract/vm}/CloudYuInfoViewModel.java (76%) rename {src/main/java/com/ecep/contract/manager/ds/company/vo => client/src/main/java/com/ecep/contract/vm}/CompanyBankAccountViewModel.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/company/vo => client/src/main/java/com/ecep/contract/vm}/CompanyBasedViewModel.java (56%) rename {src/main/java/com/ecep/contract/manager/ds/company/vo => client/src/main/java/com/ecep/contract/vm}/CompanyBlackReasonViewModel.java (92%) rename {src/main/java/com/ecep/contract/manager/ds/company/vo => client/src/main/java/com/ecep/contract/vm}/CompanyContactViewModel.java (89%) rename {src/main/java/com/ecep/contract/manager/ds/customer/vo => client/src/main/java/com/ecep/contract/vm}/CompanyCustomerFileViewModel.java (85%) rename {src/main/java/com/ecep/contract/manager/ds/customer/vo => client/src/main/java/com/ecep/contract/vm}/CompanyCustomerViewModel.java (89%) rename {src/main/java/com/ecep/contract/manager/ds/company/vo => client/src/main/java/com/ecep/contract/vm}/CompanyExtendInfoViewModel.java (88%) rename {src/main/java/com/ecep/contract/manager/ds/company/vo => client/src/main/java/com/ecep/contract/vm}/CompanyFileViewModel.java (86%) rename {src/main/java/com/ecep/contract/manager/ds/company/vo => client/src/main/java/com/ecep/contract/vm}/CompanyOldNameViewModel.java (88%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/vo => client/src/main/java/com/ecep/contract/vm}/CompanyVendorApprovedFileViewModel.java (80%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/vo => client/src/main/java/com/ecep/contract/vm}/CompanyVendorApprovedItemViewModel.java (81%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/vo => client/src/main/java/com/ecep/contract/vm}/CompanyVendorApprovedListViewModel.java (91%) create mode 100644 client/src/main/java/com/ecep/contract/vm/CompanyVendorEntityViewModel.java rename {src/main/java/com/ecep/contract/manager/ds/vendor/vo => client/src/main/java/com/ecep/contract/vm}/CompanyVendorFileViewModel.java (85%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/vo => client/src/main/java/com/ecep/contract/vm}/CompanyVendorViewModel.java (89%) rename {src/main/java/com/ecep/contract/manager/ds/company/vo => client/src/main/java/com/ecep/contract/vm}/CompanyViewModel.java (96%) rename {src/main/java/com/ecep/contract/manager/ds/contract/vo => client/src/main/java/com/ecep/contract/vm}/ContractBidVendorViewModel.java (78%) rename {src/main/java/com/ecep/contract/manager/ds/contract/vo => client/src/main/java/com/ecep/contract/vm}/ContractFileViewModel.java (83%) create mode 100644 client/src/main/java/com/ecep/contract/vm/ContractGroupViewModel.java rename {src/main/java/com/ecep/contract/manager/ds/contract/vo => client/src/main/java/com/ecep/contract/vm}/ContractItemComposeViewModel.java (93%) rename {src/main/java/com/ecep/contract/manager/ds/contract/vo => client/src/main/java/com/ecep/contract/vm}/ContractItemViewModel.java (94%) create mode 100644 client/src/main/java/com/ecep/contract/vm/ContractKindViewModel.java rename {src/main/java/com/ecep/contract/manager/ds/contract/vo => client/src/main/java/com/ecep/contract/vm}/ContractPayPlanViewModel.java (91%) rename {src/main/java/com/ecep/contract/manager/ds/contract/vo => client/src/main/java/com/ecep/contract/vm}/ContractTreeItemModel.java (84%) create mode 100644 client/src/main/java/com/ecep/contract/vm/ContractTypeViewModel.java rename {src/main/java/com/ecep/contract/manager/ds/contract/vo => client/src/main/java/com/ecep/contract/vm}/ContractViewModel.java (93%) rename {src/main/java/com/ecep/contract/manager => client/src/main/java/com/ecep/contract/vm}/CurrentEmployee.java (95%) rename {src/main/java/com/ecep/contract/manager/ds/customer/vo => client/src/main/java/com/ecep/contract/vm}/CustomerEntityViewModel.java (88%) rename {src/main/java/com/ecep/contract/manager/ds/project/vo => client/src/main/java/com/ecep/contract/vm}/CustomerSatisfactionSurveyViewModel.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/project/vo => client/src/main/java/com/ecep/contract/vm}/DeliverySignMethodViewModel.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/other/vo => client/src/main/java/com/ecep/contract/vm}/DepartmentViewModel.java (91%) rename {src/main/java/com/ecep/contract/manager/ds/other/vo => client/src/main/java/com/ecep/contract/vm}/EmployeeAuthBindViewModel.java (92%) rename {src/main/java/com/ecep/contract/manager/ds/other/vo => client/src/main/java/com/ecep/contract/vm}/EmployeeBasedViewModel.java (58%) rename {src/main/java/com/ecep/contract/manager/ds/other/vo => client/src/main/java/com/ecep/contract/vm}/EmployeeLoginHistoryViewModel.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/other/vo => client/src/main/java/com/ecep/contract/vm}/EmployeeRoleViewModel.java (92%) rename {src/main/java/com/ecep/contract/manager/ds/other/vo => client/src/main/java/com/ecep/contract/vm}/EmployeeViewModel.java (89%) rename {src/main/java/com/ecep/contract/manager/ds/contract/vo => client/src/main/java/com/ecep/contract/vm}/ExtendVendorInfoViewModel.java (78%) rename {src/main/java/com/ecep/contract/manager/ds/other/vo => client/src/main/java/com/ecep/contract/vm}/FunctionViewModel.java (95%) rename {src/main/java/com/ecep/contract/manager/ds/other/vo => client/src/main/java/com/ecep/contract/vm}/IdentityViewModel.java (86%) rename {src/main/java/com/ecep/contract/manager/ds/other/vo => client/src/main/java/com/ecep/contract/vm}/InventoryHistoryPriceViewModel.java (96%) rename {src/main/java/com/ecep/contract/manager/ds/other/vo => client/src/main/java/com/ecep/contract/vm}/InventoryViewModel.java (94%) rename {src/main/java/com/ecep/contract/manager/ds/company/vo => client/src/main/java/com/ecep/contract/vm}/InvoiceViewModel.java (87%) rename {src/main/java/com/ecep/contract/manager/ds/other/vo => client/src/main/java/com/ecep/contract/vm}/PermissionViewModel.java (89%) rename {src/main/java/com/ecep/contract/manager/ds/project/vo => client/src/main/java/com/ecep/contract/vm}/ProductTypeViewModel.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/project/vo => client/src/main/java/com/ecep/contract/vm}/ProductUsageViewModel.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/project/vo => client/src/main/java/com/ecep/contract/vm}/ProjectBasedViewModel.java (57%) rename {src/main/java/com/ecep/contract/manager/ds/project/vo => client/src/main/java/com/ecep/contract/vm}/ProjectBidViewModel.java (92%) rename {src/main/java/com/ecep/contract/manager/ds/contract/vo => client/src/main/java/com/ecep/contract/vm}/ProjectCostItemViewModel.java (94%) rename {src/main/java/com/ecep/contract/manager/ds/project/vo => client/src/main/java/com/ecep/contract/vm}/ProjectCostViewModel.java (95%) rename {src/main/java/com/ecep/contract/manager/ds/project/vo => client/src/main/java/com/ecep/contract/vm}/ProjectFileViewModel.java (71%) rename {src/main/java/com/ecep/contract/manager/ds/project/vo => client/src/main/java/com/ecep/contract/vm}/ProjectFundPlanViewModel.java (91%) rename {src/main/java/com/ecep/contract/manager/ds/project/vo => client/src/main/java/com/ecep/contract/vm}/ProjectIndustryViewModel.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/project/vo => client/src/main/java/com/ecep/contract/vm}/ProjectQuotationViewModel.java (91%) rename {src/main/java/com/ecep/contract/manager/ds/project/vo => client/src/main/java/com/ecep/contract/vm}/ProjectSaleTypeRequireFileTypeViewModel.java (76%) rename src/main/java/com/ecep/contract/manager/ds/project/vo/SaleTypeViewModel.java => client/src/main/java/com/ecep/contract/vm/ProjectSaleTypeViewModel.java (85%) rename {src/main/java/com/ecep/contract/manager/ds/project/vo => client/src/main/java/com/ecep/contract/vm}/ProjectTypeViewModel.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/project/vo => client/src/main/java/com/ecep/contract/vm}/ProjectViewModel.java (94%) rename {src/main/java/com/ecep/contract/manager/ds/contract/vo => client/src/main/java/com/ecep/contract/vm}/PurchaseBillVoucherItemViewModel.java (86%) rename {src/main/java/com/ecep/contract/manager/ds/contract/vo => client/src/main/java/com/ecep/contract/vm}/PurchaseBillVoucherViewModel.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/contract/vo => client/src/main/java/com/ecep/contract/vm}/PurchaseOrderItemViewModel.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/contract/vo => client/src/main/java/com/ecep/contract/vm}/PurchaseOrderViewModel.java (91%) rename {src/main/java/com/ecep/contract/manager/ds/contract/vo => client/src/main/java/com/ecep/contract/vm}/SalesBillVoucherViewModel.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/contract/vo => client/src/main/java/com/ecep/contract/vm}/SalesOrderItemViewModel.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/contract/vo => client/src/main/java/com/ecep/contract/vm}/SalesOrderViewModel.java (89%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/vo => client/src/main/java/com/ecep/contract/vm}/VendorEntityViewModel.java (88%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/vo => client/src/main/java/com/ecep/contract/vm}/VendorGroupRequireFileTypeViewModel.java (59%) rename {src/main/java/com/ecep/contract/manager/ds/vendor/vo => client/src/main/java/com/ecep/contract/vm}/VendorGroupViewModel.java (94%) rename {src => client/src}/main/resources/ui/bank-manager.fxml (100%) rename {src => client/src}/main/resources/ui/cloud/rk_manager.fxml (100%) rename {src => client/src}/main/resources/ui/cloud/tyc_manager.fxml (100%) rename {src => client/src}/main/resources/ui/cloud/u8_config.fxml (100%) rename {src => client/src}/main/resources/ui/cloud/u8_manager.fxml (100%) rename {src => client/src}/main/resources/ui/company/bank-account.fxml (100%) rename {src => client/src}/main/resources/ui/company/company-manager.fxml (100%) rename {src => client/src}/main/resources/ui/company/company-tab-bank-account.fxml (100%) rename {src => client/src}/main/resources/ui/company/company-tab-black-list.fxml (100%) rename {src => client/src}/main/resources/ui/company/company-tab-contact.fxml (100%) rename {src => client/src}/main/resources/ui/company/company-tab-contract.fxml (100%) rename {src => client/src}/main/resources/ui/company/company-tab-file.fxml (100%) rename {src => client/src}/main/resources/ui/company/company-tab-invoice.fxml (100%) rename {src => client/src}/main/resources/ui/company/company-tab-oldname.fxml (100%) rename {src => client/src}/main/resources/ui/company/company-tab-other.fxml (100%) rename {src => client/src}/main/resources/ui/company/company-tab-purchase-bill-voucher.fxml (100%) rename {src => client/src}/main/resources/ui/company/company.fxml (100%) rename {src => client/src}/main/resources/ui/company/company_old_name.fxml (100%) rename {src => client/src}/main/resources/ui/company/customer/customer-icon.png (100%) rename {src => client/src}/main/resources/ui/company/customer/customer-tab-entity.fxml (100%) rename {src => client/src}/main/resources/ui/company/customer/customer-tab-file.fxml (100%) rename {src => client/src}/main/resources/ui/company/customer/customer-tab-satisfaction-survey.fxml (100%) rename {src => client/src}/main/resources/ui/company/customer/customer.fxml (100%) rename {src => client/src}/main/resources/ui/company/customer/customer_evaluation_form.fxml (100%) rename {src => client/src}/main/resources/ui/company/customer/customer_manager.fxml (100%) rename {src => client/src}/main/resources/ui/company/vendor/group-manager.fxml (100%) rename {src => client/src}/main/resources/ui/company/vendor/group.fxml (100%) rename {src => client/src}/main/resources/ui/company/vendor/vendor-tab-entity.fxml (98%) rename {src => client/src}/main/resources/ui/company/vendor/vendor-tab-file.fxml (100%) rename {src => client/src}/main/resources/ui/company/vendor/vendor.fxml (100%) rename {src => client/src}/main/resources/ui/company/vendor/vendor_approved_list-tab-file.fxml (100%) rename {src => client/src}/main/resources/ui/company/vendor/vendor_approved_list-tab-vendor.fxml (100%) rename {src => client/src}/main/resources/ui/company/vendor/vendor_approved_list.fxml (100%) rename {src => client/src}/main/resources/ui/company/vendor/vendor_approved_list_manager.fxml (100%) rename {src => client/src}/main/resources/ui/company/vendor/vendor_manager.fxml (100%) rename {src => client/src}/main/resources/ui/configs.fxml (100%) rename {src => client/src}/main/resources/ui/contact.fxml (100%) rename {src => client/src}/main/resources/ui/contract/contract-manager.fxml (100%) rename {src => client/src}/main/resources/ui/contract/contract-tab-bid.fxml (100%) rename {src => client/src}/main/resources/ui/contract/contract-tab-ext-vendor-info.fxml (100%) rename {src => client/src}/main/resources/ui/contract/contract-tab-file.fxml (100%) rename {src => client/src}/main/resources/ui/contract/contract-tab-item-v2.fxml (100%) rename {src => client/src}/main/resources/ui/contract/contract-tab-item.fxml (100%) rename {src => client/src}/main/resources/ui/contract/contract-tab-pay-plan.fxml (100%) rename {src => client/src}/main/resources/ui/contract/contract-tab-purchase-orders.fxml (100%) rename {src => client/src}/main/resources/ui/contract/contract-tab-sale-orders.fxml (100%) rename {src => client/src}/main/resources/ui/contract/contract-tab-sub-contract.fxml (100%) rename {src => client/src}/main/resources/ui/contract/contract-verify.css (100%) rename {src => client/src}/main/resources/ui/contract/contract-verify.fxml (100%) rename {src => client/src}/main/resources/ui/contract/contract.css (100%) rename {src => client/src}/main/resources/ui/contract/contract.fxml (100%) rename {src => client/src}/main/resources/ui/contract/purchase-bill-voucher-tab-item.fxml (100%) rename {src => client/src}/main/resources/ui/contract/purchase-bill-voucher.fxml (100%) rename {src => client/src}/main/resources/ui/contract/purchase-orders-tab-bill-voucher.fxml (100%) rename {src => client/src}/main/resources/ui/contract/purchase-orders-tab-item.fxml (100%) rename {src => client/src}/main/resources/ui/contract/purchase-orders.fxml (100%) rename {src => client/src}/main/resources/ui/contract/sale-orders-tab-bill-voucher.fxml (100%) rename {src => client/src}/main/resources/ui/contract/sale-orders-tab-item.fxml (100%) rename {src => client/src}/main/resources/ui/contract/sale-orders.fxml (100%) rename {src => client/src}/main/resources/ui/contract/vendor-bid.fxml (100%) rename {src => client/src}/main/resources/ui/dialog.css (100%) rename {src => client/src}/main/resources/ui/employee/department-manager.fxml (100%) rename {src => client/src}/main/resources/ui/employee/employee-auth-bind.fxml (100%) rename {src => client/src}/main/resources/ui/employee/employee-login-history.fxml (100%) rename {src => client/src}/main/resources/ui/employee/employee-manager.fxml (100%) rename {src => client/src}/main/resources/ui/employee/employee.fxml (100%) rename {src => client/src}/main/resources/ui/employee/function-tab-permission.fxml (100%) rename {src => client/src}/main/resources/ui/employee/function.fxml (100%) rename {src => client/src}/main/resources/ui/employee/functions-manager.fxml (100%) rename {src => client/src}/main/resources/ui/employee/role.fxml (100%) rename {src => client/src}/main/resources/ui/employee/roles-manager.fxml (100%) rename {src => client/src}/main/resources/ui/home.fxml (100%) rename {src => client/src}/main/resources/ui/img/22844.gif (100%) rename {src => client/src}/main/resources/ui/img/22847.gif (100%) rename {src => client/src}/main/resources/ui/img/22848.gif (100%) rename {src => client/src}/main/resources/ui/img/22849.gif (100%) rename {src => client/src}/main/resources/ui/img/22949.gif (100%) rename {src => client/src}/main/resources/ui/img/23037.gif (100%) rename {src => client/src}/main/resources/ui/img/23048.gif (100%) rename {src => client/src}/main/resources/ui/img/3960.gif (100%) rename {src => client/src}/main/resources/ui/img/4955.gif (100%) rename {src => client/src}/main/resources/ui/img/5241.gif (100%) rename {src => client/src}/main/resources/ui/img/5258.gif (100%) rename {src => client/src}/main/resources/ui/img/5260.gif (100%) rename {src => client/src}/main/resources/ui/img/about.gif (100%) rename {src => client/src}/main/resources/ui/img/about_error.gif (100%) rename {src => client/src}/main/resources/ui/img/btn_print.gif (100%) rename {src => client/src}/main/resources/ui/img/cbook.gif (100%) rename {src => client/src}/main/resources/ui/img/edit_order_mag_glass_icon.gif (100%) rename {src => client/src}/main/resources/ui/img/error.gif (100%) rename {src => client/src}/main/resources/ui/img/f0.png (100%) rename {src => client/src}/main/resources/ui/img/f1.png (100%) rename {src => client/src}/main/resources/ui/img/f2.png (100%) rename {src => client/src}/main/resources/ui/img/f3.png (100%) rename {src => client/src}/main/resources/ui/img/f4.png (100%) rename {src => client/src}/main/resources/ui/img/icon_alarm.gif (100%) rename {src => client/src}/main/resources/ui/img/icon_fan.gif (100%) rename {src => client/src}/main/resources/ui/img/icon_maint.gif (100%) rename {src => client/src}/main/resources/ui/img/icon_oa.gif (100%) rename {src => client/src}/main/resources/ui/img/icon_print.png (100%) rename {src => client/src}/main/resources/ui/img/icon_privileges.gif (100%) rename {src => client/src}/main/resources/ui/img/icon_schedule.gif (100%) rename {src => client/src}/main/resources/ui/img/icon_schedule_group.gif (100%) rename {src => client/src}/main/resources/ui/img/icon_system_error_category.gif (100%) rename {src => client/src}/main/resources/ui/img/icon_trends.gif (100%) rename {src => client/src}/main/resources/ui/img/info.gif (100%) rename {src => client/src}/main/resources/ui/img/number/n1.gif (100%) rename {src => client/src}/main/resources/ui/img/number/n2.gif (100%) rename {src => client/src}/main/resources/ui/img/number/n3.gif (100%) rename {src => client/src}/main/resources/ui/img/number/n4.gif (100%) rename {src => client/src}/main/resources/ui/img/number/n5.gif (100%) rename {src => client/src}/main/resources/ui/img/number/n6.gif (100%) rename {src => client/src}/main/resources/ui/img/number/n7.gif (100%) rename {src => client/src}/main/resources/ui/img/number/n8.gif (100%) rename {src => client/src}/main/resources/ui/img/obook.gif (100%) rename {src => client/src}/main/resources/ui/img/pin-16.png (100%) rename {src => client/src}/main/resources/ui/img/pin.png (100%) rename {src => client/src}/main/resources/ui/img/polygon_icon.gif (100%) rename {src => client/src}/main/resources/ui/img/rectangle_icon.gif (100%) rename {src => client/src}/main/resources/ui/img/tip_symbol.gif (100%) rename {src => client/src}/main/resources/ui/inventory/inventory-contract.fxml (100%) rename {src => client/src}/main/resources/ui/inventory/inventory-history-price.fxml (100%) rename {src => client/src}/main/resources/ui/inventory/inventory-manager.fxml (100%) rename {src => client/src}/main/resources/ui/inventory/inventory.css (100%) rename {src => client/src}/main/resources/ui/inventory/inventory.fxml (100%) rename {src => client/src}/main/resources/ui/part-footer.fxml (100%) rename {src => client/src}/main/resources/ui/project/apply-new-project.fxml (100%) rename {src => client/src}/main/resources/ui/project/comm.css (100%) rename {src => client/src}/main/resources/ui/project/customer-satisfaction-survey.fxml (100%) rename {src => client/src}/main/resources/ui/project/product-type-manager.fxml (100%) rename {src => client/src}/main/resources/ui/project/product-usage-manager.fxml (100%) rename {src => client/src}/main/resources/ui/project/project-bid.fxml (100%) rename {src => client/src}/main/resources/ui/project/project-cost-tab-item.fxml (100%) rename {src => client/src}/main/resources/ui/project/project-cost.fxml (100%) rename {src => client/src}/main/resources/ui/project/project-manager.fxml (100%) rename {src => client/src}/main/resources/ui/project/project-quotation.fxml (100%) rename {src => client/src}/main/resources/ui/project/project-tab-bid.fxml (100%) rename {src => client/src}/main/resources/ui/project/project-tab-contract.fxml (100%) rename {src => client/src}/main/resources/ui/project/project-tab-cost.fxml (100%) rename {src => client/src}/main/resources/ui/project/project-tab-customer-satisfaction-survey.fxml (100%) rename {src => client/src}/main/resources/ui/project/project-tab-customer.fxml (100%) rename {src => client/src}/main/resources/ui/project/project-tab-fund-plan.fxml (69%) rename {src => client/src}/main/resources/ui/project/project-tab-quotation.fxml (100%) rename {src => client/src}/main/resources/ui/project/project-type-manager.fxml (100%) rename {src => client/src}/main/resources/ui/project/project.fxml (100%) rename {src => client/src}/main/resources/ui/project/sale-type-manager.fxml (100%) rename {src => client/src}/main/resources/ui/project/sale-type.fxml (100%) rename {src => client/src}/main/resources/ui/project/used-industry-manager.fxml (100%) rename {src => client/src}/main/resources/ui/start_lamp.css (100%) rename {src => client/src}/main/resources/ui/start_lamp.fxml (100%) rename {src => client/src}/main/resources/ui/task/TaskMonitorView.fxml (100%) create mode 100644 common/pom.xml rename {src/main/java/com/ecep/contract/manager/ds/company => common/src/main/java/com/ecep/contract}/BlackReasonType.java (76%) rename {src/main/java/com/ecep/contract/manager/cloud => common/src/main/java/com/ecep/contract}/CloudType.java (85%) rename {src/main/java/com/ecep/contract/manager/ds/customer => common/src/main/java/com/ecep/contract}/CompanyCustomerFileType.java (78%) rename {src/main/java/com/ecep/contract/manager/ds/company => common/src/main/java/com/ecep/contract}/CompanyFileType.java (91%) rename {src/main/java/com/ecep/contract/manager/ds/vendor => common/src/main/java/com/ecep/contract}/CompanyVendorFileType.java (78%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/ContractFileType.java (98%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/ContractPayWay.java (93%) rename {src/main/java/com/ecep/contract/manager/ui => common/src/main/java/com/ecep/contract}/Message.java (90%) rename {src/main/java/com/ecep/contract/manager/ui => common/src/main/java/com/ecep/contract}/MessageHolder.java (95%) rename {src/main/java/com/ecep/contract/manager/util => common/src/main/java/com/ecep/contract}/MyDateTimeUtils.java (98%) rename {src/main/java/com/ecep/contract/manager/ds/project => common/src/main/java/com/ecep/contract}/ProjectFileType.java (96%) rename {src/main/java/com/ecep/contract/manager/ui/task => common/src/main/java/com/ecep/contract}/TaskStatus.java (92%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/UnitType.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/vendor => common/src/main/java/com/ecep/contract}/VendorType.java (81%) create mode 100644 common/src/main/java/com/ecep/contract/constant/CloudServiceConstant.java create mode 100644 common/src/main/java/com/ecep/contract/constant/CompanyVendorConstant.java create mode 100644 common/src/main/java/com/ecep/contract/constant/ServiceConstant.java create mode 100644 common/src/main/java/com/ecep/contract/model/Bank.java rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/BaseEnumEntity.java (63%) create mode 100644 common/src/main/java/com/ecep/contract/model/BasedEntity.java rename {src/main/java/com/ecep/contract/manager/cloud/rk => common/src/main/java/com/ecep/contract/model}/CloudRk.java (54%) create mode 100644 common/src/main/java/com/ecep/contract/model/CloudTyc.java create mode 100644 common/src/main/java/com/ecep/contract/model/CloudYu.java rename {src/main/java/com/ecep/contract/manager/ds/company => common/src/main/java/com/ecep/contract}/model/Company.java (94%) rename {src/main/java/com/ecep/contract/manager/ds/company => common/src/main/java/com/ecep/contract}/model/CompanyBankAccount.java (63%) rename {src/main/java/com/ecep/contract/manager/ds/company => common/src/main/java/com/ecep/contract}/model/CompanyBasedEntity.java (67%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/CompanyBasicFile.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/company => common/src/main/java/com/ecep/contract}/model/CompanyBlackReason.java (71%) rename {src/main/java/com/ecep/contract/manager/ds/company => common/src/main/java/com/ecep/contract}/model/CompanyContact.java (59%) rename {src/main/java/com/ecep/contract/manager/ds/company => common/src/main/java/com/ecep/contract}/model/CompanyContract.java (63%) rename {src/main/java/com/ecep/contract/manager/ds/customer => common/src/main/java/com/ecep/contract}/model/CompanyCustomer.java (62%) rename {src/main/java/com/ecep/contract/manager/ds/customer => common/src/main/java/com/ecep/contract}/model/CompanyCustomerEntity.java (65%) rename {src/main/java/com/ecep/contract/manager/ds/customer => common/src/main/java/com/ecep/contract}/model/CompanyCustomerEvaluationFormFile.java (74%) rename {src/main/java/com/ecep/contract/manager/ds/customer => common/src/main/java/com/ecep/contract}/model/CompanyCustomerFile.java (61%) rename {src/main/java/com/ecep/contract/manager/ds/customer => common/src/main/java/com/ecep/contract}/model/CompanyCustomerFileTypeLocal.java (56%) rename {src/main/java/com/ecep/contract/manager/ds/company => common/src/main/java/com/ecep/contract}/model/CompanyExtendInfo.java (75%) rename {src/main/java/com/ecep/contract/manager/ds/company => common/src/main/java/com/ecep/contract}/model/CompanyFile.java (61%) create mode 100644 common/src/main/java/com/ecep/contract/model/CompanyFileTypeLocal.java rename {src/main/java/com/ecep/contract/manager/ds/company => common/src/main/java/com/ecep/contract}/model/CompanyInvoiceInfo.java (79%) rename {src/main/java/com/ecep/contract/manager/ds/company => common/src/main/java/com/ecep/contract}/model/CompanyOldName.java (83%) rename {src/main/java/com/ecep/contract/manager/ds/vendor => common/src/main/java/com/ecep/contract}/model/CompanyVendor.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/vendor => common/src/main/java/com/ecep/contract}/model/CompanyVendorApprovedFile.java (66%) rename {src/main/java/com/ecep/contract/manager/ds/vendor => common/src/main/java/com/ecep/contract}/model/CompanyVendorApprovedItem.java (80%) rename {src/main/java/com/ecep/contract/manager/ds/vendor => common/src/main/java/com/ecep/contract}/model/CompanyVendorApprovedList.java (83%) rename {src/main/java/com/ecep/contract/manager/ds/vendor => common/src/main/java/com/ecep/contract}/model/CompanyVendorEntity.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/vendor => common/src/main/java/com/ecep/contract}/model/CompanyVendorFile.java (62%) rename {src/main/java/com/ecep/contract/manager/ds/vendor => common/src/main/java/com/ecep/contract}/model/CompanyVendorFileTypeLocal.java (67%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/Contract.java (89%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/ContractBasedEntity.java (67%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/ContractBidVendor.java (52%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/ContractCatalog.java (83%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/ContractFile.java (76%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/ContractFileTypeLocal.java (65%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/ContractGroup.java (83%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/ContractItem.java (87%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/ContractKind.java (83%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/ContractPayPlan.java (70%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/ContractType.java (84%) rename {src/main/java/com/ecep/contract/manager/ds/customer => common/src/main/java/com/ecep/contract}/model/CustomerCatalog.java (60%) rename {src/main/java/com/ecep/contract/manager/ds/project => common/src/main/java/com/ecep/contract}/model/CustomerSatisfactionSurvey.java (80%) rename {src/main/java/com/ecep/contract/manager/ds/project => common/src/main/java/com/ecep/contract}/model/DeliverySignMethod.java (79%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/Department.java (76%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/Employee.java (94%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/EmployeeAuthBind.java (91%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/EmployeeLoginHistory.java (89%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/EmployeeRole.java (91%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/ExtendVendorInfo.java (56%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/Function.java (79%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/HistoryPrice.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/HolidayTable.java (92%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/IdentityEntity.java (86%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/Inventory.java (88%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/InventoryCatalog.java (91%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/InventoryHistoryPrice.java (98%) rename {src/main/java/com/ecep/contract/manager/ds/company => common/src/main/java/com/ecep/contract}/model/Invoice.java (53%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/NamedEntity.java (63%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/Permission.java (74%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/Price.java (64%) create mode 100644 common/src/main/java/com/ecep/contract/model/ProductType.java rename {src/main/java/com/ecep/contract/manager/ds/project => common/src/main/java/com/ecep/contract}/model/ProductUsage.java (78%) rename {src/main/java/com/ecep/contract/manager/ds/project => common/src/main/java/com/ecep/contract}/model/Project.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/project => common/src/main/java/com/ecep/contract}/model/ProjectBasedEntity.java (67%) rename {src/main/java/com/ecep/contract/manager/ds/project => common/src/main/java/com/ecep/contract}/model/ProjectBid.java (88%) rename {src/main/java/com/ecep/contract/manager/ds/project => common/src/main/java/com/ecep/contract}/model/ProjectCost.java (93%) rename {src/main/java/com/ecep/contract/manager/ds/project => common/src/main/java/com/ecep/contract}/model/ProjectCostItem.java (85%) create mode 100644 common/src/main/java/com/ecep/contract/model/ProjectFile.java rename {src/main/java/com/ecep/contract/manager/ds/project => common/src/main/java/com/ecep/contract}/model/ProjectFileTypeLocal.java (87%) rename {src/main/java/com/ecep/contract/manager/ds/project => common/src/main/java/com/ecep/contract}/model/ProjectFundPlan.java (87%) rename {src/main/java/com/ecep/contract/manager/ds/project => common/src/main/java/com/ecep/contract}/model/ProjectIndustry.java (78%) rename {src/main/java/com/ecep/contract/manager/ds/project => common/src/main/java/com/ecep/contract}/model/ProjectQuotation.java (85%) rename {src/main/java/com/ecep/contract/manager/ds/project => common/src/main/java/com/ecep/contract}/model/ProjectSaleType.java (88%) rename {src/main/java/com/ecep/contract/manager/ds/project => common/src/main/java/com/ecep/contract}/model/ProjectSaleTypeRequireFileType.java (55%) rename {src/main/java/com/ecep/contract/manager/ds/project => common/src/main/java/com/ecep/contract}/model/ProjectType.java (81%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/PurchaseBillVoucher.java (67%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/PurchaseBillVoucherItem.java (66%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/PurchaseOrder.java (85%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/PurchaseOrderItem.java (60%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/PurchaseReceipt.java (81%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/PurchaseSettlementVoucher.java (86%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/PurchaseSettlementVoucherItem.java (87%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/SalesBillVoucher.java (67%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/SalesBillVoucherItem.java (82%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/SalesOrder.java (83%) rename {src/main/java/com/ecep/contract/manager/ds => common/src/main/java/com/ecep}/contract/model/SalesOrderItem.java (83%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/SysConf.java (79%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/Unit.java (57%) rename {src/main/java/com/ecep/contract/manager/ds/vendor => common/src/main/java/com/ecep/contract}/model/VendorCatalog.java (78%) rename {src/main/java/com/ecep/contract/manager/ds/vendor => common/src/main/java/com/ecep/contract}/model/VendorGroup.java (88%) rename {src/main/java/com/ecep/contract/manager/ds/vendor => common/src/main/java/com/ecep/contract}/model/VendorGroupRequireFileType.java (79%) rename {src/main/java/com/ecep/contract/manager/ds/vendor => common/src/main/java/com/ecep/contract}/model/VendorTypeLocal.java (66%) rename {src/main/java/com/ecep/contract/manager/ds/other => common/src/main/java/com/ecep/contract}/model/VolumeSize.java (87%) rename {src/main/java/com/ecep/contract/manager => common/src/main/java/com/ecep/contract}/util/HttpJsonUtils.java (98%) rename {src/main/java/com/ecep/contract/manager => common/src/main/java/com/ecep/contract}/util/MyStringUtils.java (98%) rename {src/main/java/com/ecep/contract/manager => common/src/main/java/com/ecep/contract}/util/NumberUtils.java (90%) rename {src/main/java/com/ecep/contract/manager/ds/other/model => docs/db}/Inverntory.sql (100%) rename {src/main/java/com/ecep/contract/manager/ds/other/model => docs/db}/Unit.sql (100%) create mode 100644 server/pom.xml create mode 100644 server/src/main/java/com/ecep/contract/AppV2.java rename {src/main/java/com/ecep/contract/manager/ds/other/service => server/src/main/java/com/ecep/contract}/IEntityService.java (93%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/MyPersistentCookieStore.java (99%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/MyPersistentCookieStore2.java (99%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/MyProperties.java (96%) create mode 100644 server/src/main/java/com/ecep/contract/SpringApp.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/AbstractCtx.java (94%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/CloudBaseInfo.java (80%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/CloudInfo.java (81%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/CloudInfoRepository.java (90%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/CloudRepositoriesConfig.java (93%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/old/CompanyContactUtils.java (91%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/old/CompanyCustomerFileUtils.java (93%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/old/CompanyVendorFileUtils.java (93%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/old/OldVersionService.java (93%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/old/OldVersionSyncCustomerTask.java (88%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/old/OldVersionSyncVendorTask.java (90%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/rk/BlackListUpdateContext.java (95%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/rk/CloudRkRepository.java (89%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/rk/CloudRkService.java (87%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/rk/CloudRkSyncTask.java (88%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/rk/EntReportParser.java (94%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/rk/ctx/CloudRkCtx.java (96%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/tyc/CloudTycRepository.java (76%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/tyc/CloudTycService.java (76%) create mode 100644 server/src/main/java/com/ecep/contract/cloud/u8/CloudYuRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ContractGroupSyncTask.java (90%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ContractKindSyncTask.java (91%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ContractSyncAllTask.java (88%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ContractSyncContext.java (79%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ContractSyncTask.java (95%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ContractTypeSyncTask.java (92%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/CustomerClassSyncTask.java (90%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/CustomerSyncTask.java (86%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/DateTransferTask.java (86%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/EmployeesSyncTask.java (91%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/U8DataSourceFactory.java (94%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/VendorClassSyncTask.java (90%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/VendorSyncTask.java (86%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/YongYouU8Repository.java (99%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/YongYouU8Service.java (70%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ctx/AbstractYongYouU8Ctx.java (85%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ctx/CompanyBankAccountCtx.java (68%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ctx/CompanyCtx.java (89%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ctx/ContractCtx.java (95%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ctx/CustomerCtx.java (95%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ctx/InventoryCtx.java (92%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ctx/InvoiceCtx.java (78%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ctx/PurchaseBillVoucherCtx.java (86%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ctx/PurchaseOrderCtx.java (85%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ctx/PurchaseSettlementVoucherCtx.java (84%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ctx/SalesBillVoucherCtx.java (91%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ctx/SalesOrderCtx.java (93%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/cloud/u8/ctx/VendorCtx.java (94%) create mode 100644 server/src/main/java/com/ecep/contract/config/OpenApiConfig.java create mode 100644 server/src/main/java/com/ecep/contract/config/SecurityConfig.java create mode 100644 server/src/main/java/com/ecep/contract/config/WebConfig.java create mode 100644 server/src/main/java/com/ecep/contract/controller/IndexController.java create mode 100644 server/src/main/java/com/ecep/contract/controller/LoginController.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/DsRepositoriesConfig.java (78%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/MonthDayConverter.java (95%) create mode 100644 server/src/main/java/com/ecep/contract/ds/MyRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/CompanyContactStringConverter.java (57%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/CompanyFileUtils.java (73%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/model/update-schema.sql (100%) create mode 100644 server/src/main/java/com/ecep/contract/ds/company/repository/CompanyBankAccountRepository.java create mode 100644 server/src/main/java/com/ecep/contract/ds/company/repository/CompanyBlackReasonRepository.java create mode 100644 server/src/main/java/com/ecep/contract/ds/company/repository/CompanyContactRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/repository/CompanyContractRepository.java (84%) create mode 100644 server/src/main/java/com/ecep/contract/ds/company/repository/CompanyExtendInfoRepository.java create mode 100644 server/src/main/java/com/ecep/contract/ds/company/repository/CompanyFileRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/repository/CompanyFileTypeLocalRepository.java (68%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/repository/CompanyInvoiceInfoRepository.java (52%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/repository/CompanyOldNameRepository.java (90%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/repository/CompanyRepository.java (90%) create mode 100644 server/src/main/java/com/ecep/contract/ds/company/repository/InvoiceRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/service/CompanyBankAccountService.java (86%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/service/CompanyBasicService.java (91%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/service/CompanyBlackReasonService.java (79%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/service/CompanyContactService.java (85%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/service/CompanyExtendInfoService.java (89%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/service/CompanyFileService.java (87%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/service/CompanyInvoiceInfoService.java (86%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/service/CompanyOldNameService.java (89%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/service/CompanyService.java (89%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/service/InvoiceService.java (84%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/tasker/CompanyCompositeUpdateTasker.java (76%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/tasker/CompanyFilesRebuildTasker.java (86%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/company/tasker/CompanyVerifyTasker.java (80%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/ContractStringConverter.java (67%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/model/ContractCost.sql (100%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/model/ContractCostItem.sql (100%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/model/SalesBillVoucher.sql (100%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/repository/ContractBidVendorRepository.java (86%) create mode 100644 server/src/main/java/com/ecep/contract/ds/contract/repository/ContractCatalogRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/repository/ContractFileRepository.java (69%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/repository/ContractFileTypeLocalRepository.java (64%) create mode 100644 server/src/main/java/com/ecep/contract/ds/contract/repository/ContractGroupRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/repository/ContractItemRepository.java (79%) create mode 100644 server/src/main/java/com/ecep/contract/ds/contract/repository/ContractKindRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/repository/ContractPayPlanRepository.java (57%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/repository/ContractRepository.java (79%) create mode 100644 server/src/main/java/com/ecep/contract/ds/contract/repository/ContractTypeRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/repository/ExtendVendorInfoRepository.java (78%) create mode 100644 server/src/main/java/com/ecep/contract/ds/contract/repository/PurchaseBillVoucherItemRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/repository/PurchaseBillVoucherRepository.java (86%) create mode 100644 server/src/main/java/com/ecep/contract/ds/contract/repository/PurchaseOrderItemRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/repository/PurchaseOrderRepository.java (78%) create mode 100644 server/src/main/java/com/ecep/contract/ds/contract/repository/SalesBillVoucherItemRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/repository/SalesBillVoucherRepository.java (78%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/repository/SalesOrderItemRepository.java (81%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/repository/SalesOrderRepository.java (81%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/service/ContractBidVendorService.java (65%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/service/ContractCatalogService.java (68%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/service/ContractFileService.java (76%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/service/ContractGroupService.java (91%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/service/ContractItemService.java (77%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/service/ContractKindService.java (91%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/service/ContractPayPlanService.java (79%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/service/ContractService.java (91%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/service/ContractTypeService.java (90%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/service/ExtendVendorInfoService.java (77%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/service/PurchaseBillVoucherItemService.java (67%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/service/PurchaseBillVoucherService.java (87%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/service/PurchaseOrderItemService.java (86%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/service/PurchaseOrdersService.java (88%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/service/SaleOrdersService.java (77%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/service/SalesBillVoucherService.java (89%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/service/SalesOrderItemService.java (82%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/tasker/AbstContractRepairTasker.java (89%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/tasker/ContractFilesRebuildAllTasker.java (81%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/tasker/ContractFilesRebuildTasker.java (73%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/tasker/ContractRepairAllTasker.java (81%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/tasker/ContractRepairByCompanyTask.java (78%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/tasker/ContractRepairComm.java (84%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/tasker/ContractRepairTask.java (73%) create mode 100644 server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractVerifyComm.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/tasker/ContractVerifyTasker.java (81%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/contract/tasker/CustomerContractCostFormUpdateTask.java (88%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/customer/CustomerClassStringConverter.java (85%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/customer/model/Customer.sql (100%) create mode 100644 server/src/main/java/com/ecep/contract/ds/customer/repository/CompanyCustomerEntityRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/customer/repository/CompanyCustomerEvaluationFormFileRepository.java (82%) create mode 100644 server/src/main/java/com/ecep/contract/ds/customer/repository/CompanyCustomerFileRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/customer/repository/CompanyCustomerFileTypeLocalRepository.java (62%) create mode 100644 server/src/main/java/com/ecep/contract/ds/customer/repository/CompanyCustomerRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/customer/repository/CustomerCatalogRepository.java (78%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/customer/service/CompanyCustomerEntityService.java (75%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/customer/service/CompanyCustomerFileService.java (90%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/customer/service/CompanyCustomerService.java (88%) create mode 100644 server/src/main/java/com/ecep/contract/ds/other/controller/EmployyeController.java rename {src/main/java/com/ecep/contract/manager/ds/other/controller/inventory => server/src/main/java/com/ecep/contract/ds/other/controller}/InventorySyncTask.java (84%) create mode 100644 server/src/main/java/com/ecep/contract/ds/other/repository/BankRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/repository/BaseEnumEntityRepository.java (63%) create mode 100644 server/src/main/java/com/ecep/contract/ds/other/repository/DepartmentRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/repository/EmployeeAuthBindRepository.java (82%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/repository/EmployeeLoginHistoryRepository.java (51%) create mode 100644 server/src/main/java/com/ecep/contract/ds/other/repository/EmployeeRepository.java create mode 100644 server/src/main/java/com/ecep/contract/ds/other/repository/EmployeeRoleRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/repository/FunctionRepository.java (55%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/repository/HolidayTableRepository.java (76%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/repository/InventoryCatalogRepository.java (72%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/repository/InventoryHistoryPriceRepository.java (58%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/repository/InventoryRepository.java (77%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/repository/PermissionRepository.java (86%) create mode 100644 server/src/main/java/com/ecep/contract/ds/other/repository/SysConfRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/service/BankService.java (77%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/service/DepartmentService.java (86%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/service/EmployeeAuthBindService.java (78%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/service/EmployeeLoginHistoryService.java (77%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/service/EmployeeRoleService.java (69%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/service/EmployeeService.java (81%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/service/FunctionService.java (78%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/service/InventoryCatalogService.java (91%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/service/InventoryHistoryPriceService.java (77%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/service/InventoryService.java (78%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/service/PermissionService.java (73%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/other/service/SysConfService.java (93%) rename {src/main/java/com/ecep/contract/manager/ds/project/controller/cost => server/src/main/java/com/ecep/contract/ds/project}/ProjectCostImportItemsFromContractsTasker.java (81%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/ProjectCtx.java (75%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/repository/CustomerSatisfactionSurveyRepository.java (78%) create mode 100644 server/src/main/java/com/ecep/contract/ds/project/repository/ProductDeliverySignMethodRepository.java create mode 100644 server/src/main/java/com/ecep/contract/ds/project/repository/ProductTypeRepository.java create mode 100644 server/src/main/java/com/ecep/contract/ds/project/repository/ProductUsageRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/repository/ProjectBidRepository.java (60%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/repository/ProjectCostItemRepository.java (72%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/repository/ProjectCostRepository.java (79%) create mode 100644 server/src/main/java/com/ecep/contract/ds/project/repository/ProjectFileRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/repository/ProjectFileTypeLocalRepository.java (60%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/repository/ProjectFundPlanRepository.java (60%) create mode 100644 server/src/main/java/com/ecep/contract/ds/project/repository/ProjectIndustryRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/repository/ProjectQuotationRepository.java (74%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/repository/ProjectRepository.java (59%) create mode 100644 server/src/main/java/com/ecep/contract/ds/project/repository/ProjectSaleTypeRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/repository/ProjectSaleTypeRequireFileTypeRepository.java (53%) create mode 100644 server/src/main/java/com/ecep/contract/ds/project/repository/ProjectTypeRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/service/CustomerSatisfactionSurveyService.java (83%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/service/DeliverySignMethodService.java (65%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/service/ProductTypeService.java (68%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/service/ProductUsageService.java (82%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/service/ProjectBidService.java (80%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/service/ProjectCostItemService.java (73%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/service/ProjectCostService.java (84%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/service/ProjectFileService.java (79%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/service/ProjectFundPlanService.java (81%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/service/ProjectIndustryService.java (80%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/service/ProjectQuotationService.java (78%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/service/ProjectSaleTypeRequireFileTypeService.java (75%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/service/ProjectService.java (90%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/service/ProjectStringConverter.java (77%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/service/ProjectTypeService.java (68%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/service/SaleTypeService.java (67%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/project/state_workflow.xml (100%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/vendor/model/CompanyVendor.sql (100%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/vendor/repository/CompanyVendorApprovedFileRepository.java (65%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/vendor/repository/CompanyVendorApprovedItemRepository.java (72%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/vendor/repository/CompanyVendorApprovedListRepository.java (75%) create mode 100644 server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorEntityRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/vendor/repository/CompanyVendorFileRepository.java (70%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/vendor/repository/CompanyVendorFileTypeLocalRepository.java (62%) create mode 100644 server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorRepository.java create mode 100644 server/src/main/java/com/ecep/contract/ds/vendor/repository/VendorClassRepository.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/vendor/repository/VendorGroupRepository.java (71%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/vendor/repository/VendorGroupRequireFileTypeRepository.java (77%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/vendor/repository/VendorTypeLocalRepository.java (60%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/vendor/service/CompanyVendorApprovedFileService.java (75%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/vendor/service/CompanyVendorApprovedItemService.java (77%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/vendor/service/CompanyVendorApprovedListService.java (84%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/vendor/service/CompanyVendorEntityService.java (84%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/vendor/service/CompanyVendorFileService.java (87%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/vendor/service/CompanyVendorService.java (86%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/vendor/service/VendorGroupRequireFileTypeService.java (88%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/vendor/service/VendorGroupService.java (68%) rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/ds/vendor/task/VendorVerifyAllTasker.java (51%) create mode 100644 server/src/main/java/com/ecep/contract/ui/Tasker.java create mode 100644 server/src/main/java/com/ecep/contract/util/AsyncUtils.java create mode 100644 server/src/main/java/com/ecep/contract/util/EntityStringConverter.java create mode 100644 server/src/main/java/com/ecep/contract/util/ExcelUtils.java create mode 100644 server/src/main/java/com/ecep/contract/util/HibernateUtils.java create mode 100644 server/src/main/java/com/ecep/contract/util/MonitoredTask.java create mode 100644 server/src/main/java/com/ecep/contract/util/NumberStringConverter.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/util/SpecificationUtils.java (97%) create mode 100644 server/src/main/java/com/ecep/contract/util/TaskHistory.java create mode 100644 server/src/main/java/com/ecep/contract/util/TaskMonitorCenter.java rename {src/main/java/com/ecep/contract/manager => server/src/main/java/com/ecep/contract}/util/TaxRateUtils.java (98%) rename {src => server/src}/main/resources/application.properties (73%) rename {src => server/src}/main/resources/logback.xml (90%) rename {src => server/src}/main/resources/messages.properties (100%) rename {src => server/src}/main/resources/messages_zh_CN.properties (100%) create mode 100644 server/src/main/resources/static/login.html delete mode 100644 src/main/java/com/ecep/contract/manager/cloud/CloudInfoViewModel.java delete mode 100644 src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkDataRepairTask.java delete mode 100644 src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkInfoViewModel.java delete mode 100644 src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkManagerWindowController.java delete mode 100644 src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTyc.java delete mode 100644 src/main/java/com/ecep/contract/manager/cloud/u8/CloudYu.java delete mode 100644 src/main/java/com/ecep/contract/manager/cloud/u8/CloudYuRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/MyRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/company/controller/AbstCompanyBasedTabSkin.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/company/controller/AbstCompanyTableTabSkin.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/company/controller/old_name/CompanyOldNameTabSkinFile.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/company/model/CompanyFileTypeLocal.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyBankAccountRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyBlackReasonRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyContactRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyExtendInfoRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyFileRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/company/repository/InvoiceRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractCatalogRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractGroupRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractKindRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractTypeRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/contract/repository/PurchaseBillVoucherItemRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/contract/repository/PurchaseOrderItemRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/contract/repository/SalesBillVoucherItemRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/customer/controller/AbstCompanyCustomerTableTabSkin.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/customer/repository/CompanyCustomerEntityRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/customer/repository/CompanyCustomerFileRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/customer/repository/CompanyCustomerRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/other/model/Bank.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/other/model/Entity.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/other/repository/BankRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/other/repository/DepartmentRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/other/repository/EmployeeRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/other/repository/EmployeeRoleRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/other/repository/SysConfRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/project/model/ProductType.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/project/model/ProjectFile.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/project/repository/ProductDeliverySignMethodRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/project/repository/ProductTypeRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/project/repository/ProductUsageRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectFileRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectIndustryRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectSaleTypeRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectTypeRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/vendor/controller/AbstCompanyVendorTableTabSkin.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorEvaluationFormUpdateTask.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorEntityRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ds/vendor/repository/VendorClassRepository.java delete mode 100644 src/main/java/com/ecep/contract/manager/ui/table/TableOfTabSkin.java delete mode 100644 src/main/java/com/ecep/contract/manager/ui/table/cell/DepartmentTableCell.java delete mode 100644 src/main/java/com/ecep/contract/manager/util/HibernateUtils.java diff --git a/FixPackageNames$1.class b/FixPackageNames$1.class new file mode 100644 index 0000000000000000000000000000000000000000..3eeff181d8858080c68723c966acf14a0888dd14 GIT binary patch literal 2595 zcmb_eZC4XV7`+3L4PliS6-BF}q7o2NZL6)ZR*0aq2-F}}>5Ic=#Ffo%+?^ow{q;Ze zr|w z6Wh=xuyf2_o|e|4Tu_s;tb*Rt0v$`z>9xG7tCcS>FmYcl$y`<2PR{aNtLpp8)j6rX zvTfytqh_3@3(C)@kVLzIl!*?Q0*50{*YWf!%%CI5kJQ3%PhSpTur~Z9}1J3SHQ1 zV4sO@>=#H!;p%J|Ou41trX9xJ)3-5J_I3)-;Gls+CJv)VU{_;CVI_fp=_^?pcASwF z9lq|XMOrUAOgx{R8wv9{8X|Ly8TQSMWM`8&E^wq0!{1|hm|w3NW*di)Fbq+e7I zs>-!gzHVO{#y8#kmj!yrGSAmr!{8maKmw>1&CvMF!oM&@Dw z*6H+blza_>^{I$y8J_bg6VrHIU~gG2ssazK)FI8;3$%1KD>_k+ckS$Kf@lgw%ow;~ zViq?AvQa@#BLxDTwrlySOsyDpOIH**$1_fT-okAIb0*%zTLK3g5n9)V>nf-^bV(Mb zCTGScZ;Vn*ns8{cC3jo!j)^;v0_{toz=Re8^PA$@6ijN0%6wI;+=vWpEA$**8wxhy z+`P2FP;HT?fhM1w6-X4k5|itkuw6A-Ezc`|M$U)nZZB%;!8KW_y{AT(sRa zIjI7D)eC5v9`QUKP;4u4*dU2zl8$jz>3omqY{R=LyodJea1w3S*e+SBM>FRw@l*STnCL za!r{whA2qKDN<$#w>j>*$}c!F2ox#xiNNst7 z|3KKe-1-ZyKE|szX&wiCf=Pgm{Xamg;yNeZ_?AnyL`j{2$^Kq`qU^(d{vX2u^y3h6 z{4_Yra`QNX%Pi|UXDsw$5htPO(Seq~&~KpYPh7%X4kTFDLVB3B*{mtXqBTN?Sp0?^ zr&jTHxNIX9>z=sJxpqRAX3M9ID}^~aC`YXek8J`K_^3uB6)dq$GT;iIhxmwZ8G3~9 NhkqaAQ+$r@e*nP|&IAAe literal 0 HcmV?d00001 diff --git a/FixPackageNames.class b/FixPackageNames.class new file mode 100644 index 0000000000000000000000000000000000000000..ce5b290e80680fd4e3fba3cc2b2c8142dd26ef21 GIT binary patch literal 1576 zcma)6;Z_qz6#j-pCajAfNUUwO*rH8@u+m~}S*v0SHEj}TlM|1}U&CgEHJh27-3h{r z^z;q-+x`HLp7sIyP;KudcqAmJr<;?R*}He{{qA?anZN#i^Cy6H)E$f=#gTS#4&w~d zFT}p^BB6G@t(_M#Fbw1OLKT|(45?hckwJ#xZgb5Gn^F{B>bRA3L?FGQRwfpKDO7|K zyE66?8SmRE4!pJqm1pB}I1Kq-hOP-CFVHIJ#<5h!6Gpegz+3N4C1oVVa4-Sa;+kYg z=Suko$J7AAnu$ZT>);}0IA&d3!W_eFFTM)3_dJZGw=K+GLfCgDmEz~h@9XRD_MZ)# z@_o}l44>mN!^O?;U|R$&DzPfsGFe!0ki``X@zmY2C<#NYuy`R5*i)*BWsz!r}&Ix!Nm>S9HjIxF|tj3=`Qg# z*AGlwZWGgn7?Yyy+rH#1+xea*N;9OSMHfpbFkEhnmLxF*!aNDh9<351l%YcAsDr~) zJMeIuW5vZ6`0^bGgZUVE$7YX|4Kf_U>f+9+t);DvgFtpnsFj0N+;#D_RrXXbNX=09 z>ZDZ3u|~!-{Uo6kb(46WDu+r|yX_qr*Tqgmmb8^ILpC=`Fb#&uUg(PG^!z#23DO8x z2B)UGaUgAz7%rUwux$0oaK0)NQ;{}3Q8)caYm?CV>QtoJ)6FDqKm zKsMLr+0-~n4t~Io9A(>*3d6#C$%krRx1`rse!okbbZB*a$nfiFYEK;d=^hK!q#O%n zty|rWKiq*+mVu4+!;T!`ewvm3CG$?Dy?f^*L{UUhEi}@nGf+}W#>Ge^iA*@Q8Ey>K zGzu!m&kWc8+m-IOeqFeZZ|E+x&ls4!4Qcf0?JCWT=5x1>!CujV;U10lGholcx42Jh z>-r1Q^aIvrc=;_Ro~Dj*zOtD50~cOnx>|UP?9-)VeDE3{J^3BimyYoH8{7hpu>2b` z)xr_JdPR|3tdMS335LyclQMv8DNNEhjXBKH>0KnBW%60V9TW(-hX>@9#n?Y&r2G6K v#|2J18ON%{^oYKWp@{EjPE(F7HfWWh)noc^qDpTwK3n(+HC*`@fXbkh literal 0 HcmV?d00001 diff --git a/FixPackageNames.java b/FixPackageNames.java new file mode 100644 index 0000000..5b80af3 --- /dev/null +++ b/FixPackageNames.java @@ -0,0 +1,48 @@ +import java.io.IOException; +import java.nio.file.FileVisitResult; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.attribute.BasicFileAttributes; +import java.util.concurrent.atomic.AtomicInteger; + +public class FixPackageNames { + public static void main(String[] args) { + String rootDir = "d:/idea-workspace/Contract-Manager/server/src/main/java"; + AtomicInteger counter = new AtomicInteger(0); + + try { + Path path = Paths.get(rootDir); + // System.out.println(path.getFileName().toString()); + + Files.walkFileTree(path, new SimpleFileVisitor() { + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { + // System.out.println(file.toString()); + if (file.toString().endsWith(".java")) { + String content = new String(Files.readAllBytes(file)); + // System.out.println(content); + if (content.indexOf("package com.ecep.contract.manager") >= 0) { + System.out.println(content); + } + + String newContent = content + .replace("package com.ecep.contract.manager", "package com.ecep.contract") + .replace("import com.ecep.contract.manager", "import com.ecep.contract"); + if (!content.equals(newContent)) { + Files.write(file, newContent.getBytes()); + System.out.println("Fixed: " + file.toString()); + counter.incrementAndGet(); + } + } + return FileVisitResult.CONTINUE; + } + }); + + System.out.println("Total files fixed: " + counter.get()); + } catch (IOException e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/README.md b/README.md index 3d49bdd..4ce8c90 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,9 @@ -## 项目改进与优化分析报告 -### 1. 同步任务与调度优化 -- 调度策略优化 :各同步任务(如 ContractSyncTask 、 VendorSyncTask )使用不同的调度间隔和策略,建议统一调度配置,避免重复执行和资源浪费 -- 增量同步实现 :多数同步任务缺乏断点续传机制,建议添加基于最后同步ID或时间戳的增量同步功能 -- 任务依赖管理 :部分任务存在隐式依赖关系(如 OldVersionSyncVendorTask 中的多步骤执行),建议引入任务依赖管理机制 -### 2. 线程池与异步处理 -- 线程池配置 :当前项目未明确配置线程池参数(核心线程数、最大线程数等),建议在 SpringApp 中添加显式线程池配置 -- 线程池隔离 :不同类型的任务(IO密集型、CPU密集型)应使用不同线程池,避免资源竞争 -- 异步任务监控 :添加异步任务执行状态监控和超时处理机制,避免任务长时间阻塞 -### 3. 缓存机制优化 -- 缓存策略细化 :当前缓存配置较为简单( CaffeineCacheManager ),建议为不同类型数据配置差异化缓存策略(过期时间、最大容量等) -- 缓存一致性 :修复 CloudRkService 中缓存更新问题(注释中提到的"这个可以无法更新缓存") -- 缓存预热 :添加关键数据缓存预热机制,提高系统启动后响应速度 -### 4. 依赖注入与懒加载 -- 依赖注入规范化 :减少 SpringApp.getBean() 手动获取bean的方式,推广构造函数注入或字段注入 -- 懒加载优化 :充分利用 @Lazy 注解和 BootstrapMode.LAZY 配置,优化应用启动性能 -- 服务解耦 :继续推进服务拆分工作(如之前的 ContractService 拆分为专用服务),减少服务间耦合 -### 5. 异常处理与重试机制 -- 异常处理统一 :规范异常处理策略,确保所有异常都被适当记录和处理 -- 重试机制添加 :为网络请求和数据库操作添加重试机制(如使用 Spring Retry ) -- 熔断降级 :对外部系统调用(如用友U8接口)添加熔断降级机制,提高系统稳定性 -### 6. 数据库操作优化 -- 批量操作引入 :对大量数据的CRUD操作,建议使用批量处理API提高性能 -- 查询优化 :添加适当索引,优化复杂查询,避免全表扫描 -- 连接池配置 :优化 HikariDataSource 配置参数(如连接池大小、超时时间等) -### 7. 代码质量与维护性 -- 重复代码消除 :提取同步任务中的共同逻辑(如进度更新、异常处理)为抽象基类 -- 注释完善 :补充关键类和方法的文档注释,特别是复杂业务逻辑和优化点 -- 技术债务清理 :解决代码中的TODO项(如 CloudRkService 中的缓存更新问题) -### 8. 配置管理优化 -- 配置集中管理 :将分散在代码中的配置项(如同步间隔、批处理大小)集中到配置文件 -- 动态配置支持 :添加动态配置更新机制,避免重启应用 -以上优化点已按优先级和影响范围排序,建议逐步实施。实施过程中应注意性能测试和兼容性验证,确保优化不会引入新问题。 \ No newline at end of file +# 项目介绍 + +分模块: +common: 公共模块,包含实体类、公共的类、枚举、异常、工具类等 +server: 服务端模块,包含服务端的代码,依赖common模块 +client: 客户端模块,包含客户端的代码,依赖common模块 + + + diff --git a/client/pom.xml b/client/pom.xml new file mode 100644 index 0000000..a2d477d --- /dev/null +++ b/client/pom.xml @@ -0,0 +1,84 @@ + + + 4.0.0 + + com.ecep.contract + Contract-Manager + 0.0.49-SNAPSHOT + + + com.ecep.contract + client + 0.0.49-SNAPSHOT + + + ${java.version} + ${java.version} + + + + + com.ecep.contract + common + 0.0.49-SNAPSHOT + + + + org.openjfx + javafx-controls + ${javafx.version} + + + org.openjfx + javafx-fxml + ${javafx.version} + + + org.openjfx + javafx-web + ${javafx.version} + + + org.controlsfx + controlsfx + 11.2.0 + + + + com.github.ben-manes.caffeine + caffeine + 3.1.8 + + + + org.springframework + spring-context-support + + + org.springframework.boot + spring-data-commons + 3.3.7 + + + + + + org.openjfx + javafx-maven-plugin + 0.0.8 + + com.ecep.contract.manager.AppV2 + app + app-jlink + app-jlink-image + true + true + 2 + + + + + + \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/AppV2.java b/client/src/main/java/com/ecep/contract/AppV2.java similarity index 60% rename from src/main/java/com/ecep/contract/manager/AppV2.java rename to client/src/main/java/com/ecep/contract/AppV2.java index 9a04b8e..b60a5c1 100644 --- a/src/main/java/com/ecep/contract/manager/AppV2.java +++ b/client/src/main/java/com/ecep/contract/AppV2.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager; +package com.ecep.contract; import javafx.application.Application; import org.slf4j.Logger; @@ -25,9 +25,5 @@ public class AppV2 { System.out.println("AppV2.done"); } - public static final String DEFAULT_DB_HOST = "10.84.209.154"; // "db-server1.ecctrl.com" - public static final String DEFAULT_DB_PORT = "3306"; - public static final String DEFAULT_DB_USERNAME = "supplier_ms"; - public static final String DEFAULT_DB_PASSWORD = "[TPdseO!JKMmlrpf"; - public static final String DEFAULT_DB_DATABASE = "supplier_ms"; + public static final String DEFAULT_HOST = "10.84.209.154"; } diff --git a/src/main/java/com/ecep/contract/manager/Desktop.java b/client/src/main/java/com/ecep/contract/Desktop.java similarity index 96% rename from src/main/java/com/ecep/contract/manager/Desktop.java rename to client/src/main/java/com/ecep/contract/Desktop.java index c506ed1..706843f 100644 --- a/src/main/java/com/ecep/contract/manager/Desktop.java +++ b/client/src/main/java/com/ecep/contract/Desktop.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager; +package com.ecep.contract; import java.io.File; import java.io.FileInputStream; @@ -17,11 +17,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; -import com.ecep.contract.manager.ds.other.controller.LoginWidowController; -import com.ecep.contract.manager.ui.BaseController; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.task.TaskMonitorCenter; -import com.ecep.contract.manager.util.UITools; +import com.ecep.contract.controller.BaseController; +import com.ecep.contract.controller.LoginWidowController; +import com.ecep.contract.task.TaskMonitorCenter; +import com.ecep.contract.util.UITools; +import com.ecep.contract.vm.CurrentEmployee; import javafx.application.Application; import javafx.application.Platform; @@ -263,5 +263,4 @@ public class Desktop extends Application { } scheduledExecutorService.close(); } - -} +} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/util/DesktopUtils.java b/client/src/main/java/com/ecep/contract/DesktopUtils.java similarity index 97% rename from src/main/java/com/ecep/contract/manager/util/DesktopUtils.java rename to client/src/main/java/com/ecep/contract/DesktopUtils.java index 7390a10..c75df44 100644 --- a/src/main/java/com/ecep/contract/manager/util/DesktopUtils.java +++ b/client/src/main/java/com/ecep/contract/DesktopUtils.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.util; +package com.ecep.contract; import java.io.File; import java.io.IOException; @@ -6,8 +6,6 @@ import java.util.function.Consumer; import org.springframework.util.StringUtils; -import com.ecep.contract.manager.Desktop; - public class DesktopUtils { /** diff --git a/client/src/main/java/com/ecep/contract/Main.java b/client/src/main/java/com/ecep/contract/Main.java new file mode 100644 index 0000000..01f14e9 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/Main.java @@ -0,0 +1,7 @@ +package com.ecep.contract; + +public class Main { + public static void main(String[] args) { + System.out.println("Hello world!"); + } +} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/SpringApp.java b/client/src/main/java/com/ecep/contract/SpringApp.java similarity index 92% rename from src/main/java/com/ecep/contract/manager/SpringApp.java rename to client/src/main/java/com/ecep/contract/SpringApp.java index a764a15..f06ad6a 100644 --- a/src/main/java/com/ecep/contract/manager/SpringApp.java +++ b/client/src/main/java/com/ecep/contract/SpringApp.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager; +package com.ecep.contract; import java.time.Duration; import java.time.Instant; @@ -25,7 +25,6 @@ import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.caffeine.CaffeineCacheManager; import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.event.ContextClosedEvent; import org.springframework.context.event.EventListener; @@ -36,11 +35,7 @@ import org.springframework.core.metrics.StartupStep; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; -import com.ecep.contract.manager.cloud.CloudRepositoriesConfig; -import com.ecep.contract.manager.ds.DsRepositoriesConfig; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.UITools; +import com.ecep.contract.util.UITools; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; @@ -50,15 +45,15 @@ import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer; -@SpringBootApplication(exclude = { org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration.class }) +@SpringBootApplication @EnableScheduling @EnableAsync @EnableCaching public class SpringApp { private static final Logger logger = LoggerFactory.getLogger(SpringApp.class); - static SpringApplication application; - static ConfigurableApplicationContext context; + public static SpringApplication application; + public static ConfigurableApplicationContext context; public static T getBean(Class requiredType) throws BeansException { return context.getBean(requiredType); @@ -92,11 +87,6 @@ public class SpringApp { environment.getPropertySources().addLast(new PropertiesPropertySource("dynamicProperties", properties)); // app.getBeanFactory().registerSingleton("dataSource", dataSource()); logger.debug("app = {}", app); - - if (app instanceof AnnotationConfigApplicationContext ctx) { - ctx.register(DsRepositoriesConfig.class); - ctx.register(CloudRepositoriesConfig.class); - } }); startup.start(""); diff --git a/src/main/java/com/ecep/contract/manager/ui/AbstEntityBasedController.java b/client/src/main/java/com/ecep/contract/controller/AbstEntityBasedController.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ui/AbstEntityBasedController.java rename to client/src/main/java/com/ecep/contract/controller/AbstEntityBasedController.java index c6b3ce8..be9ddbd 100644 --- a/src/main/java/com/ecep/contract/manager/ui/AbstEntityBasedController.java +++ b/client/src/main/java/com/ecep/contract/controller/AbstEntityBasedController.java @@ -1,7 +1,10 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract.controller; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; +import org.apache.poi.ss.formula.functions.T; + +import com.ecep.contract.model.IdentityEntity; +import com.ecep.contract.service.ViewModelService; +import com.ecep.contract.vm.IdentityViewModel; import javafx.scene.control.TableView; import javafx.stage.WindowEvent; diff --git a/src/main/java/com/ecep/contract/manager/ui/AbstEntityController.java b/client/src/main/java/com/ecep/contract/controller/AbstEntityController.java similarity index 93% rename from src/main/java/com/ecep/contract/manager/ui/AbstEntityController.java rename to client/src/main/java/com/ecep/contract/controller/AbstEntityController.java index 1d551b2..72bd48d 100644 --- a/src/main/java/com/ecep/contract/manager/ui/AbstEntityController.java +++ b/client/src/main/java/com/ecep/contract/controller/AbstEntityController.java @@ -1,11 +1,20 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract.controller; + +import java.lang.reflect.InvocationTargetException; +import java.util.List; +import java.util.Objects; +import java.util.concurrent.CompletableFuture; +import java.util.function.Function; + +import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.controller.tab.RefreshableSkin; +import com.ecep.contract.controller.tab.TabSkin; +import com.ecep.contract.model.IdentityEntity; +import com.ecep.contract.service.ViewModelService; +import com.ecep.contract.util.UITools; +import com.ecep.contract.vm.BaseViewModel; +import com.ecep.contract.vm.IdentityViewModel; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.UITools; import javafx.application.Platform; import javafx.beans.binding.Bindings; import javafx.beans.binding.BooleanBinding; @@ -18,12 +27,6 @@ import javafx.stage.WindowEvent; import lombok.Getter; import lombok.Setter; -import java.lang.reflect.InvocationTargetException; -import java.util.List; -import java.util.Objects; -import java.util.concurrent.CompletableFuture; -import java.util.function.Function; - public abstract class AbstEntityController> extends BaseController { diff --git a/src/main/java/com/ecep/contract/manager/ui/AbstEntityManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/AbstEntityManagerSkin.java similarity index 96% rename from src/main/java/com/ecep/contract/manager/ui/AbstEntityManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/AbstEntityManagerSkin.java index 4f42c40..5fb122a 100644 --- a/src/main/java/com/ecep/contract/manager/ui/AbstEntityManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/AbstEntityManagerSkin.java @@ -1,13 +1,17 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract.controller; import java.util.ArrayList; import java.util.List; import java.util.Locale; +import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.function.Function; +import com.ecep.contract.controller.table.EditableEntityTableTabSkin; +import com.ecep.contract.controller.table.TableTabSkin; +import com.ecep.contract.util.UITools; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.domain.Page; @@ -16,12 +20,10 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.table.TableTabSkin; -import com.ecep.contract.manager.util.TableViewUtils; -import com.ecep.contract.manager.util.UITools; +import com.ecep.contract.model.IdentityEntity; +import com.ecep.contract.service.ViewModelService; +import com.ecep.contract.util.TableViewUtils; +import com.ecep.contract.vm.IdentityViewModel; import javafx.application.Platform; import javafx.beans.property.Property; @@ -467,10 +469,10 @@ public abstract class AbstEntityManagerSkin loadTableData() { - Specification spec = getSpecification(); + Map params = getSpecification(); ViewModelService service = getViewModelService(); long timeMillis = System.currentTimeMillis(); - Page page = service.findAll(spec, getPageable()); + Page page = service.findAll(params, getPageable()); long timeCost = System.currentTimeMillis() - timeMillis; if (logger.isDebugEnabled()) { logger.debug("load table data cost: {} ms", timeCost); @@ -500,7 +502,7 @@ public abstract class AbstEntityManagerSkin getSpecification() { + public Map getSpecification() { TextField field = controller.searchKeyField; if (field != null) { return getViewModelService().getSpecification(field.getText()); @@ -514,7 +516,7 @@ public abstract class AbstEntityManagerSkin getSpecification(String searchText) { + protected Map getSpecification(String searchText) { return getViewModelService().getSpecification(searchText); } diff --git a/src/main/java/com/ecep/contract/manager/ui/AbstManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/AbstManagerWindowController.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ui/AbstManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/AbstManagerWindowController.java index 115a0c6..6325426 100644 --- a/src/main/java/com/ecep/contract/manager/ui/AbstManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/AbstManagerWindowController.java @@ -1,7 +1,7 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract.controller; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; +import com.ecep.contract.model.IdentityEntity; +import com.ecep.contract.vm.IdentityViewModel; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.Label; @@ -41,6 +41,4 @@ public abstract class AbstManagerWindowController, Object> cachedBeans = new HashMap<>(); - protected T getBean(Class requiredType) throws BeansException { + public T getBean(Class requiredType) throws BeansException { return SpringApp.getBean(requiredType); } diff --git a/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/CloudRkManagerSkin.java similarity index 75% rename from src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/CloudRkManagerSkin.java index 3c982f8..e1b03e0 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/CloudRkManagerSkin.java @@ -1,14 +1,16 @@ -package com.ecep.contract.manager.cloud.rk; +package com.ecep.contract.controller; import org.hibernate.Hibernate; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ui.table.cell.CompanyTableCell; -import com.ecep.contract.manager.ds.company.controller.CompanyWindowController; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; +import com.ecep.contract.SpringApp; +import com.ecep.contract.controller.company.CompanyWindowController; +import com.ecep.contract.controller.table.cell.CompanyTableCell; +import com.ecep.contract.controller.table.cell.LocalDateTimeTableCell; +import com.ecep.contract.model.CloudRk; +import com.ecep.contract.model.Company; +import com.ecep.contract.service.CloudRkService; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.vm.CloudRkViewModel; import javafx.collections.ObservableList; import javafx.event.ActionEvent; @@ -19,7 +21,7 @@ import javafx.scene.control.cell.CheckBoxTableCell; import lombok.Setter; public class CloudRkManagerSkin - extends AbstEntityManagerSkin { + extends AbstEntityManagerSkin { @Setter private CompanyService companyService; @@ -47,13 +49,14 @@ public class CloudRkManagerSkin controller.cloudIdColumn.setCellValueFactory(param -> param.getValue().getCloudId()); - controller.latestUpdateColumn.setCellValueFactory(param -> param.getValue().getLatest()); + controller.latestUpdateColumn.setCellValueFactory(param -> param.getValue().getLatestUpdate()); controller.latestUpdateColumn.setCellFactory(param -> new LocalDateTimeTableCell<>()); controller.cloudLatestColumn.setCellValueFactory(param -> param.getValue().getCloudLatest()); controller.cloudLatestColumn.setCellFactory(param -> new LocalDateTimeTableCell<>()); - controller.cloudBlackListUpdatedColumn.setCellValueFactory(param -> param.getValue().getCloudBlackListUpdated()); + controller.cloudBlackListUpdatedColumn + .setCellValueFactory(param -> param.getValue().getCloudBlackListUpdated()); controller.cloudBlackListUpdatedColumn.setCellFactory(param -> new LocalDateTimeTableCell<>()); controller.cloudEntUpdateColumn.setCellValueFactory(param -> param.getValue().getCloudEntUpdate()); @@ -65,13 +68,12 @@ public class CloudRkManagerSkin controller.descriptionColumn.setCellValueFactory(param -> param.getValue().getDescription()); } - private void onAutoUpdateColumnEditCommit(TableColumn.CellEditEvent event) { - CloudRkInfoViewModel row = event.getRowValue(); + private void onAutoUpdateColumnEditCommit(TableColumn.CellEditEvent event) { + CloudRkViewModel row = event.getRowValue(); row.getAutoUpdate().set(event.getNewValue()); saveRowData(row); } - @Override protected void createContextMenu(ContextMenu contextMenu) { MenuItem item2 = new MenuItem("刷新"); @@ -89,19 +91,19 @@ public class CloudRkManagerSkin * @param event event */ public void onTableClearDescriptionAction(ActionEvent event) { - ObservableList selectedItems = getTableView().getSelectionModel().getSelectedItems(); + ObservableList selectedItems = getTableView().getSelectionModel().getSelectedItems(); if (selectedItems.isEmpty()) { return; } CloudRkService service = getCloudRkService(); - for (CloudRkInfoViewModel selectedItem : selectedItems) { + for (CloudRkViewModel selectedItem : selectedItems) { selectedItem.getDescription().set(""); selectedItem.saveInFxApplicationThread(service); } } @Override - protected void onTableRowDoubleClickedAction(CloudRkInfoViewModel item) { + protected void onTableRowDoubleClickedAction(CloudRkViewModel item) { Company company = item.getCompany().get(); if (!Hibernate.isInitialized(item)) { company = getCompanyService().findById(company.getId()); diff --git a/client/src/main/java/com/ecep/contract/controller/CloudRkManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/CloudRkManagerWindowController.java new file mode 100644 index 0000000..5e1dce6 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/controller/CloudRkManagerWindowController.java @@ -0,0 +1,98 @@ +package com.ecep.contract.controller; + +import java.time.LocalDateTime; +import java.util.concurrent.ScheduledExecutorService; +import java.util.function.Consumer; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +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.Message; +import com.ecep.contract.SpringApp; +import com.ecep.contract.model.CloudRk; +import com.ecep.contract.model.Company; +import com.ecep.contract.service.CloudRkService; +import com.ecep.contract.task.CloudRkSyncTask; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.UITools; +import com.ecep.contract.vm.CloudRkViewModel; + +import javafx.concurrent.Task; +import javafx.event.ActionEvent; +import javafx.scene.control.TableColumn; +import javafx.stage.WindowEvent; + +@Lazy +@Scope("prototype") +@Component +@FxmlPath("/ui/cloud/rk_manager.fxml") +public class CloudRkManagerWindowController + extends AbstManagerWindowController { + private static final Logger logger = LoggerFactory.getLogger(CloudRkManagerWindowController.class); + + public static void show() { + show(CloudRkManagerWindowController.class, null); + } + + @Autowired + private CloudRkService cloudRkService; + + public TableColumn idColumn; + public TableColumn latestUpdateColumn; + + public TableColumn companyColumn; + public TableColumn cloudIdColumn; + public TableColumn cloudLatestColumn; + public TableColumn cloudBlackListUpdatedColumn; + public TableColumn cloudEntUpdateColumn; + public TableColumn autoUpdateColumn; + public TableColumn descriptionColumn; + + @Override + protected CloudRkManagerSkin createDefaultSkin() { + return new CloudRkManagerSkin(this); + } + + @Override + public void onShown(WindowEvent windowEvent) { + super.onShown(windowEvent); + getTitle().set("数据源:集团相关方"); + } + + private void initializeTask(Task task, String prefix, Consumer consumer) { + task.setOnScheduled(e -> { + consumer.accept("正在从相关方平台同步" + prefix + ",请稍后..."); + }); + task.setOnRunning(e -> { + consumer.accept("开始" + prefix + "..."); + }); + task.setOnSucceeded(e -> { + consumer.accept(prefix + "完成..."); + }); + task.exceptionProperty().addListener((observable, oldValue, newValue) -> { + consumer.accept(newValue.getMessage()); + logger.error("{} 发生异常", prefix, newValue); + }); + SpringApp.getBean(ScheduledExecutorService.class).submit(task); + consumer.accept("任务已创建..."); + } + + public void onDataRepairAction(ActionEvent event) { + } + + public void onSyncAction(ActionEvent event) { + CloudRkSyncTask task = new CloudRkSyncTask(); + UITools.showTaskDialogAndWait("同步数据", task, consumer -> { + initializeTask(task, "同步数据", msg -> consumer.accept(Message.info(msg))); + }); + } + + @Override + public CloudRkService getViewModelService() { + return cloudRkService; + } +} diff --git a/src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/CloudTycManagerSkin.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/CloudTycManagerSkin.java index 7ff1e0b..a69f525 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/CloudTycManagerSkin.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.cloud.tyc; +package com.ecep.contract.controller; import java.util.List; @@ -7,13 +7,15 @@ import org.springframework.data.domain.Page; import org.springframework.data.jpa.domain.Specification; import org.springframework.util.StringUtils; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ui.table.cell.CompanyTableCell; -import com.ecep.contract.manager.ds.company.controller.CompanyWindowController; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; +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.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.vm.CloudTycInfoViewModel; import jakarta.persistence.criteria.Path; import javafx.collections.ObservableList; diff --git a/src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/CloudTycManagerWindowController.java similarity index 65% rename from src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/CloudTycManagerWindowController.java index 21220f3..25b311e 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/CloudTycManagerWindowController.java @@ -1,23 +1,22 @@ -package com.ecep.contract.manager.cloud.tyc; +package com.ecep.contract.controller; import java.time.LocalDateTime; import java.util.Objects; -import java.util.concurrent.CompletableFuture; +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.manager.SpringApp; -import com.ecep.contract.manager.cloud.CloudBaseInfo; -import com.ecep.contract.manager.cloud.CloudInfo; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; +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.vm.CloudTycInfoViewModel; -import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.TableColumn; import javafx.stage.Stage; @@ -75,28 +74,6 @@ public class CloudTycManagerWindowController getTitle().set("数据源:天眼查"); } - /** - * 数据迁移,从 CloudInfo 迁移到 CloudRk - */ - public void onDateTransferAction(ActionEvent event) { - CompletableFuture.runAsync(() -> { - com.ecep.contract.manager.cloud.CloudInfoRepository cloudInfoRepository = SpringApp - .getBean(com.ecep.contract.manager.cloud.CloudInfoRepository.class); - cloudInfoRepository.findAll().forEach(v -> { - try { - CloudTyc cloudTyc = cloudTycService.getOrCreateCloudTyc(v); - if (copyTo(v, cloudTyc)) { - cloudTycService.save(cloudTyc); - } - } catch (Exception e) { - e.printStackTrace(); - } - }); - - }); - - } - boolean copyTo(CloudInfo v, CloudBaseInfo cloudRk) { boolean modified = false; if (!Objects.equals(cloudRk.getLatestUpdate(), v.getLatestUpdate())) { diff --git a/src/main/java/com/ecep/contract/manager/ui/ComboBoxUtils.java b/client/src/main/java/com/ecep/contract/controller/ComboBoxUtils.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/ui/ComboBoxUtils.java rename to client/src/main/java/com/ecep/contract/controller/ComboBoxUtils.java index 9aba071..51fb96d 100644 --- a/src/main/java/com/ecep/contract/manager/ui/ComboBoxUtils.java +++ b/client/src/main/java/com/ecep/contract/controller/ComboBoxUtils.java @@ -1,17 +1,19 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract.controller; + +import java.util.List; + +import org.springframework.util.StringUtils; + +import com.ecep.contract.model.BaseEnumEntity; +import com.ecep.contract.model.BasedEntity; +import com.ecep.contract.model.IdentityEntity; +import com.ecep.contract.model.NamedEntity; -import com.ecep.contract.manager.ds.other.model.BaseEnumEntity; -import com.ecep.contract.manager.ds.other.model.Entity; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.NamedEntity; import javafx.beans.property.Property; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.scene.control.ComboBox; import javafx.scene.control.ListCell; -import org.springframework.util.StringUtils; - -import java.util.List; public class ComboBoxUtils { @@ -19,7 +21,7 @@ public class ComboBoxUtils { if (t == null) { return "全部"; } - if (t instanceof Entity e) { + if (t instanceof BasedEntity e) { return e.toPrettyString(); } if (t instanceof BaseEnumEntity e) { @@ -44,7 +46,7 @@ public class ComboBoxUtils { if (t == null) { continue; } - if (t instanceof Entity e) { + if (t instanceof BasedEntity e) { if (e.toPrettyString().equals(string)) { return t; } diff --git a/src/main/java/com/ecep/contract/manager/CurrentEmployeeInitialedEvent.java b/client/src/main/java/com/ecep/contract/controller/CurrentEmployeeInitialedEvent.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/CurrentEmployeeInitialedEvent.java rename to client/src/main/java/com/ecep/contract/controller/CurrentEmployeeInitialedEvent.java index f19b224..6b5b908 100644 --- a/src/main/java/com/ecep/contract/manager/CurrentEmployeeInitialedEvent.java +++ b/client/src/main/java/com/ecep/contract/controller/CurrentEmployeeInitialedEvent.java @@ -1,7 +1,10 @@ -package com.ecep.contract.manager; +package com.ecep.contract.controller; + +import org.springframework.context.ApplicationEvent; + +import com.ecep.contract.vm.CurrentEmployee; import lombok.Getter; -import org.springframework.context.ApplicationEvent; @Getter public class CurrentEmployeeInitialedEvent extends ApplicationEvent { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/HomeWindowController.java b/client/src/main/java/com/ecep/contract/controller/HomeWindowController.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/HomeWindowController.java rename to client/src/main/java/com/ecep/contract/controller/HomeWindowController.java index 3f9a7ec..8305b1d 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/HomeWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/HomeWindowController.java @@ -1,10 +1,12 @@ -package com.ecep.contract.manager.ds.other.controller; +package com.ecep.contract.controller; import java.util.ArrayList; 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; @@ -14,32 +16,28 @@ import org.springframework.context.annotation.Scope; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; -import com.ecep.contract.manager.CurrentEmployee; -import com.ecep.contract.manager.CurrentEmployeeInitialedEvent; -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.cloud.old.OldVersionService; -import com.ecep.contract.manager.cloud.rk.CloudRkManagerWindowController; -import com.ecep.contract.manager.cloud.rk.CloudRkService; -import com.ecep.contract.manager.cloud.tyc.CloudTycManagerWindowController; -import com.ecep.contract.manager.cloud.u8.ContractSyncTask; -import com.ecep.contract.manager.cloud.u8.YongYouU8ManagerWindowController; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.ds.company.controller.CompanyManagerWindowController; -import com.ecep.contract.manager.ds.contract.controller.ContractManagerWindowController; -import com.ecep.contract.manager.ds.customer.controller.CompanyCustomerManagerWindowController; -import com.ecep.contract.manager.ds.other.controller.bank.BankManagerWindowController; -import com.ecep.contract.manager.ds.other.controller.department.DepartmentManagerWindowController; -import com.ecep.contract.manager.ds.other.controller.employee.EmployeeManagerWindowController; -import com.ecep.contract.manager.ds.other.controller.inventory.InventoryManagerWindowController; -import com.ecep.contract.manager.ds.other.controller.permission.EmployeeFunctionsManagerWindowController; -import com.ecep.contract.manager.ds.other.controller.permission.EmployeeRoleManagerWindowController; -import com.ecep.contract.manager.ds.project.controller.ProjectManagerWindowController; -import com.ecep.contract.manager.ds.vendor.controller.CompanyVendorManagerWindowController; -import com.ecep.contract.manager.ui.BaseController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.task.TaskMonitorViewController; -import com.ecep.contract.manager.util.DesktopUtils; -import com.ecep.contract.manager.util.FxmlUtils; +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.vm.CurrentEmployee; import javafx.concurrent.Task; import javafx.event.ActionEvent; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/LoginWidowController.java b/client/src/main/java/com/ecep/contract/controller/LoginWidowController.java similarity index 95% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/LoginWidowController.java rename to client/src/main/java/com/ecep/contract/controller/LoginWidowController.java index 758bfe7..6c2123a 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/LoginWidowController.java +++ b/client/src/main/java/com/ecep/contract/controller/LoginWidowController.java @@ -1,39 +1,61 @@ -package com.ecep.contract.manager.ds.other.controller; +package com.ecep.contract.controller; -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ui.MessageHolder; -import com.zaxxer.hikari.HikariDataSource; -import javafx.application.Platform; -import javafx.beans.property.SimpleBooleanProperty; -import javafx.beans.property.SimpleStringProperty; -import javafx.event.EventHandler; -import javafx.geometry.Insets; -import javafx.scene.Scene; -import javafx.scene.control.*; -import javafx.scene.input.MouseEvent; -import javafx.scene.layout.BorderPane; -import javafx.scene.layout.GridPane; -import javafx.stage.Stage; -import lombok.Setter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.boot.jdbc.DataSourceBuilder; -import org.springframework.util.StringUtils; +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; import java.net.NetworkInterface; import java.net.SocketException; -import java.sql.*; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; import java.time.LocalDateTime; -import java.util.*; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Objects; +import java.util.Properties; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.logging.Level; -import static com.ecep.contract.manager.AppV2.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.jdbc.DataSourceBuilder; +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; +import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.property.SimpleStringProperty; +import javafx.event.EventHandler; +import javafx.geometry.Insets; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.control.CheckBox; +import javafx.scene.control.Label; +import javafx.scene.control.ListView; +import javafx.scene.control.PasswordField; +import javafx.scene.control.TextField; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.GridPane; +import javafx.stage.Stage; +import lombok.Setter; public class LoginWidowController implements MessageHolder { private static final Logger logger = LoggerFactory.getLogger(LoginWidowController.class); diff --git a/src/main/java/com/ecep/contract/manager/ui/ManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/ManagerSkin.java similarity index 57% rename from src/main/java/com/ecep/contract/manager/ui/ManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/ManagerSkin.java index 73767f0..c576906 100644 --- a/src/main/java/com/ecep/contract/manager/ui/ManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/ManagerSkin.java @@ -1,4 +1,6 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract.controller; + +import com.ecep.contract.controller.tab.Skin; public interface ManagerSkin extends Skin { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/SysConfWindowController.java b/client/src/main/java/com/ecep/contract/controller/SysConfWindowController.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/SysConfWindowController.java rename to client/src/main/java/com/ecep/contract/controller/SysConfWindowController.java index 105ba8e..98deaa0 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/SysConfWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/SysConfWindowController.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other.controller; +package com.ecep.contract.controller; import java.io.File; @@ -8,13 +8,12 @@ import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ds.other.StringConfig; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ui.BaseController; +import com.ecep.contract.cloud.u8.YongYouU8Service; +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.util.StringConfig; import jakarta.annotation.PreDestroy; import javafx.beans.property.SimpleStringProperty; @@ -46,9 +45,9 @@ public class SysConfWindowController extends BaseController { public Label customerSaleBookPathLabel; StringConfig contractPathConfig = new StringConfig(ContractService.CONTRACT_BASE_PATH); - StringConfig vendorPathConfig = new StringConfig(CompanyVendorService.KEY_BASE_PATH); + StringConfig vendorPathConfig = new StringConfig(CompanyVendorConstant.KEY_BASE_PATH); StringConfig vendorEvaluationFormTemplateConfig = new StringConfig( - CompanyVendorService.KEY_EVALUATION_FORM_TEMPLATE); + CompanyVendorConstant.KEY_EVALUATION_FORM_TEMPLATE); StringConfig customerPathConfig = new StringConfig(CompanyCustomerService.KEY_BASE_PATH); StringConfig customerEvaluationFormTemplateConfig = new StringConfig( CompanyCustomerFileService.KEY_EVALUATION_FORM_TEMPLATE); @@ -106,7 +105,7 @@ public class SysConfWindowController extends BaseController { } public void changeVendorPath(ActionEvent actionEvent) { - directoryChoose(vendorPathConfig, "请选择供应商目录", CompanyVendorService.KEY_BASE_PATH, actionEvent); + directoryChoose(vendorPathConfig, "请选择供应商目录", CompanyVendorConstant.KEY_BASE_PATH, actionEvent); } public void changeCustomerPath(ActionEvent actionEvent) { @@ -145,7 +144,7 @@ public class SysConfWindowController extends BaseController { public void changeVendorEvaluationFormTemplate(ActionEvent actionEvent) { fileChoose(vendorEvaluationFormTemplateConfig, "请选择供方调查评价表模板", - CompanyVendorService.KEY_EVALUATION_FORM_TEMPLATE, + CompanyVendorConstant.KEY_EVALUATION_FORM_TEMPLATE, actionEvent); } } diff --git a/src/main/java/com/ecep/contract/manager/ui/task/TaskMonitorViewController.java b/client/src/main/java/com/ecep/contract/controller/TaskMonitorViewController.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/ui/task/TaskMonitorViewController.java rename to client/src/main/java/com/ecep/contract/controller/TaskMonitorViewController.java index 42ebaf8..4b95008 100644 --- a/src/main/java/com/ecep/contract/manager/ui/task/TaskMonitorViewController.java +++ b/client/src/main/java/com/ecep/contract/controller/TaskMonitorViewController.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui.task; +package com.ecep.contract.controller; import java.util.concurrent.ExecutorService; import java.util.concurrent.ScheduledExecutorService; @@ -6,15 +6,17 @@ import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.logging.Level; +import com.ecep.contract.util.FxmlPath; import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.ui.BaseController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.Message; -import com.ecep.contract.manager.util.MyDateTimeUtils; +import com.ecep.contract.Desktop; +import com.ecep.contract.Message; +import com.ecep.contract.MyDateTimeUtils; +import com.ecep.contract.task.MonitoredTask; +import com.ecep.contract.task.TaskHistory; +import com.ecep.contract.task.TaskMonitorCenter; import javafx.beans.property.SimpleStringProperty; import javafx.event.ActionEvent; @@ -35,7 +37,6 @@ import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; -import javafx.beans.property.SimpleStringProperty; import javafx.scene.text.Text; import javafx.stage.WindowEvent; @@ -216,14 +217,14 @@ public class TaskMonitorViewController extends BaseController { try { ExecutorService executorService = Desktop.instance.getExecutorService(); if (executorService instanceof ThreadPoolExecutor threadPoolExecutor) { - executorInfoTable.getItems().add(new ExecutorInfo( - "PoolSize", - String.valueOf(threadPoolExecutor.getPoolSize()), - "PoolSize")); - executorInfoTable.getItems().add(new ExecutorInfo( - "活动线程数", - String.valueOf(threadPoolExecutor.getActiveCount()), - "当前正在执行任务的线程数")); + executorInfoTable.getItems().add(new ExecutorInfo( + "PoolSize", + String.valueOf(threadPoolExecutor.getPoolSize()), + "PoolSize")); + executorInfoTable.getItems().add(new ExecutorInfo( + "活动线程数", + String.valueOf(threadPoolExecutor.getActiveCount()), + "当前正在执行任务的线程数")); // 添加线程池信息 executorInfoTable.getItems().add(new ExecutorInfo( "核心线程数", @@ -354,6 +355,6 @@ public class TaskMonitorViewController extends BaseController { * 运行任务监控演示 */ public void onRunTaskMonitorDemo(ActionEvent event) { - com.ecep.contract.manager.ui.task.DemoTask.runDemo(); + com.ecep.contract.task.DemoTask.runDemo(); } } \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8ConfigWindowController.java b/client/src/main/java/com/ecep/contract/controller/YongYouU8ConfigWindowController.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8ConfigWindowController.java rename to client/src/main/java/com/ecep/contract/controller/YongYouU8ConfigWindowController.java index 28adb33..c8b82aa 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8ConfigWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/YongYouU8ConfigWindowController.java @@ -1,18 +1,17 @@ -package com.ecep.contract.manager.cloud.u8; +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.manager.cloud.u8.ctx.CompanyCtx; -import com.ecep.contract.manager.cloud.u8.ctx.ContractCtx; -import com.ecep.contract.manager.ds.other.BooleanConfig; -import com.ecep.contract.manager.ds.other.LocalDateConfig; -import com.ecep.contract.manager.ds.other.LocalDateTimeConfig; -import com.ecep.contract.manager.ds.other.StringConfig; -import com.ecep.contract.manager.ui.BaseController; -import com.ecep.contract.manager.ui.FxmlPath; +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 javafx.fxml.FXML; import javafx.scene.control.DatePicker; diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8ManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/YongYouU8ManagerSkin.java similarity index 85% rename from src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8ManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/YongYouU8ManagerSkin.java index 34f20cf..d2d401d 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8ManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/YongYouU8ManagerSkin.java @@ -1,28 +1,32 @@ -package com.ecep.contract.manager.cloud.u8; +package com.ecep.contract.controller; + +import java.util.List; + +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.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.vm.CloudYuInfoViewModel; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ui.table.cell.CompanyTableCell; -import com.ecep.contract.manager.ds.company.controller.CompanyWindowController; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.ManagerSkin; -import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import jakarta.persistence.criteria.Path; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; import lombok.Setter; -import org.hibernate.Hibernate; -import org.springframework.data.domain.Page; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.util.StringUtils; - -import java.util.List; public class YongYouU8ManagerSkin - extends AbstEntityManagerSkin + extends + AbstEntityManagerSkin implements ManagerSkin { @Setter private YongYouU8Service u8Service; @@ -57,8 +61,7 @@ public class YongYouU8ManagerSkin Path company = root.get("company"); return builder.or( builder.like(company.get("name"), "%" + searchText + "%"), - builder.like(company.get("shortName"), "%" + searchText + "%") - ); + builder.like(company.get("shortName"), "%" + searchText + "%")); }; Specification cloudIdSpec = (root, query, builder) -> { @@ -116,7 +119,7 @@ public class YongYouU8ManagerSkin } for (CloudYuInfoViewModel selectedItem : selectedItems) { CloudYu cloudYu = getU8Service().findById(selectedItem.getId().get()); - selectedItem.getCustomerCode().set(""); + selectedItem.getCustomerCode().set(""); if (selectedItem.copyTo(cloudYu)) { CloudYu saved = getU8Service().save(cloudYu); selectedItem.update(saved); diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8ManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/YongYouU8ManagerWindowController.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8ManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/YongYouU8ManagerWindowController.java index 6a29ee0..2358969 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8ManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/YongYouU8ManagerWindowController.java @@ -1,19 +1,19 @@ -package com.ecep.contract.manager.cloud.u8; +package com.ecep.contract.controller; import java.time.LocalDateTime; +import com.ecep.contract.util.FxmlPath; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.BaseController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.util.UITools; +import com.ecep.contract.Desktop; +import com.ecep.contract.UITools; +import com.ecep.contract.model.CloudYu; +import com.ecep.contract.model.Company; +import com.ecep.contract.vm.CloudYuInfoViewModel; import javafx.event.ActionEvent; import javafx.scene.control.TableColumn; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/bank/BankManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/bank/BankManagerSkin.java similarity index 80% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/bank/BankManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/bank/BankManagerSkin.java index 074a561..169550a 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/bank/BankManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/bank/BankManagerSkin.java @@ -1,10 +1,11 @@ -package com.ecep.contract.manager.ds.other.controller.bank; +package com.ecep.contract.controller.bank; + +import com.ecep.contract.controller.AbstEntityManagerSkin; +import com.ecep.contract.controller.ManagerSkin; +import com.ecep.contract.controller.table.EditableEntityTableTabSkin; +import com.ecep.contract.model.Bank; +import com.ecep.contract.vm.BankViewModel; -import com.ecep.contract.manager.ds.other.model.Bank; -import com.ecep.contract.manager.ds.other.vo.BankViewModel; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.ManagerSkin; import javafx.scene.control.TableColumn; import javafx.scene.control.cell.TextFieldTableCell; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/bank/BankManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/bank/BankManagerWindowController.java similarity index 75% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/bank/BankManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/bank/BankManagerWindowController.java index ab18fd5..1cf72d3 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/bank/BankManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/bank/BankManagerWindowController.java @@ -1,17 +1,19 @@ -package com.ecep.contract.manager.ds.other.controller.bank; +package com.ecep.contract.controller.bank; -import com.ecep.contract.manager.ds.other.model.Bank; -import com.ecep.contract.manager.ds.other.service.BankService; -import com.ecep.contract.manager.ds.other.vo.BankViewModel; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; -import javafx.event.ActionEvent; -import javafx.scene.control.TableColumn; 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.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.vm.BankViewModel; + +import javafx.event.ActionEvent; +import javafx.scene.control.TableColumn; + @Lazy @Scope("prototype") @Component diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/bank_account/BankAccountBaseTabSkin.java b/client/src/main/java/com/ecep/contract/controller/bank/account/BankAccountBaseTabSkin.java similarity index 67% rename from src/main/java/com/ecep/contract/manager/ds/company/controller/bank_account/BankAccountBaseTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/bank/account/BankAccountBaseTabSkin.java index 4546c52..0373617 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/bank_account/BankAccountBaseTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/bank/account/BankAccountBaseTabSkin.java @@ -1,22 +1,25 @@ -package com.ecep.contract.manager.ds.company.controller.bank_account; +package com.ecep.contract.controller.bank.account; + +import com.ecep.contract.SpringApp; +import com.ecep.contract.controller.company.CompanyWindowController; +import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.controller.tab.TabSkin; +import com.ecep.contract.converter.BankStringConverter; +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; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.CompanyStringConverter; -import com.ecep.contract.manager.ds.company.controller.CompanyWindowController; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyBankAccount; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.company.vo.CompanyBankAccountViewModel; -import com.ecep.contract.manager.ds.other.BankStringConverter; -import com.ecep.contract.manager.ds.other.service.BankService; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.UITools; import javafx.scene.control.Tab; import javafx.scene.control.TextField; import lombok.Setter; -public class BankAccountBaseTabSkin extends AbstEntityBasedTabSkin implements TabSkin { +public class BankAccountBaseTabSkin + extends AbstEntityBasedTabSkin + implements TabSkin { @Setter private CompanyService companyService; @Setter @@ -40,8 +43,7 @@ public class BankAccountBaseTabSkin extends AbstEntityBasedTabSkin + implements TabSkin { + + public AbstCompanyBasedTabSkin(CompanyWindowController controller) { + super(controller); + } + + protected CompanyService getCompanyService() { + Task task = new Task<>() { + @Override + protected CompanyService call() throws Exception { + return controller.getViewModelService(); + } + }; + return controller.getViewModelService(); + } +} diff --git a/client/src/main/java/com/ecep/contract/controller/company/AbstCompanyTableTabSkin.java b/client/src/main/java/com/ecep/contract/controller/company/AbstCompanyTableTabSkin.java new file mode 100644 index 0000000..64c115b --- /dev/null +++ b/client/src/main/java/com/ecep/contract/controller/company/AbstCompanyTableTabSkin.java @@ -0,0 +1,56 @@ +package com.ecep.contract.controller.company; + +import java.util.Map; + +import com.ecep.contract.controller.tab.TabSkin; +import com.ecep.contract.controller.table.AbstEntityTableTabSkin; +import com.ecep.contract.controller.table.TableOfTabSkin; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.IdentityEntity; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.vm.CompanyBasedViewModel; +import com.ecep.contract.vm.CompanyViewModel; +import com.ecep.contract.vm.IdentityViewModel; + +import lombok.Setter; + +public abstract class AbstCompanyTableTabSkin> + extends AbstEntityTableTabSkin + implements TabSkin, TableOfTabSkin { + + @Setter + private CompanyService companyService; + + public AbstCompanyTableTabSkin(CompanyWindowController controller) { + super(controller); + viewModel = controller.getViewModel(); + } + + @Override + protected TV createNewViewModel() { + TV model = super.createNewViewModel(); + if (model instanceof CompanyBasedViewModel m) { + m.getCompany().set(getEntity()); + } + return model; + } + + protected CompanyService getCompanyService() { + return getParentService(); + } + + protected CompanyService getParentService() { + if (companyService == null) { + companyService = getBean(CompanyService.class); + } + return companyService; + } + + @Override + public Map getSpecification(Company parent) { + Map params = getSpecification(); + params.put("company", parent.getId()); + return params; + } + +} diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/contact/CompanyContactWindowController.java b/client/src/main/java/com/ecep/contract/controller/company/CompanyContactWindowController.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ds/company/controller/contact/CompanyContactWindowController.java rename to client/src/main/java/com/ecep/contract/controller/company/CompanyContactWindowController.java index 594c4a9..9b951dc 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/contact/CompanyContactWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/company/CompanyContactWindowController.java @@ -1,13 +1,32 @@ -package com.ecep.contract.manager.ds.company.controller.contact; +package com.ecep.contract.controller.company; + +import java.lang.reflect.InvocationTargetException; +import java.time.format.DateTimeFormatter; +import java.util.Optional; +import java.util.concurrent.CompletableFuture; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +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.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.vm.CompanyContactViewModel; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.company.repository.CompanyContactRepository; -import com.ecep.contract.manager.ui.BaseController; -import com.ecep.contract.manager.ds.company.vo.CompanyContactViewModel; -import com.ecep.contract.manager.util.FxmlUtils; -import com.ecep.contract.manager.util.UITools; import javafx.application.Platform; -import javafx.scene.control.*; +import javafx.scene.control.Button; +import javafx.scene.control.DatePicker; +import javafx.scene.control.Label; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; import javafx.scene.layout.BorderPane; import javafx.stage.Modality; import javafx.stage.Stage; @@ -16,17 +35,6 @@ import javafx.stage.WindowEvent; import javafx.util.converter.LocalDateStringConverter; import lombok.Getter; import lombok.Setter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -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 java.lang.reflect.InvocationTargetException; -import java.time.format.DateTimeFormatter; -import java.util.Optional; -import java.util.concurrent.CompletableFuture; @Lazy @Scope("prototype") @Component diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/company/CompanyManagerSkin.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/company/CompanyManagerSkin.java index 49f59d8..80b3294 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/company/CompanyManagerSkin.java @@ -1,20 +1,21 @@ -package com.ecep.contract.manager.ds.company.controller; +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.model.Company; +import com.ecep.contract.ui.AbstEntityManagerSkin; +import com.ecep.contract.vm.CompanyViewModel; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyOldNameService; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.company.vo.CompanyViewModel; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.ManagerSkin; import javafx.application.Platform; import javafx.event.ActionEvent; import javafx.scene.control.Alert; import javafx.scene.control.TextInputDialog; import lombok.Setter; -import java.util.List; -import java.util.Optional; - public class CompanyManagerSkin extends AbstEntityManagerSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/company/CompanyManagerWindowController.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/company/CompanyManagerWindowController.java index f6f73ac..79977ac 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/company/CompanyManagerWindowController.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.company.controller; +package com.ecep.contract.controller.company; import java.time.LocalDate; @@ -7,13 +7,15 @@ import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.company.tasker.CompanyFilesRebuildTasker; -import com.ecep.contract.manager.ds.company.vo.CompanyViewModel; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.util.UITools; +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.model.Company; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.ui.AbstManagerWindowController; +import com.ecep.contract.util.UITools; +import com.ecep.contract.vm.CompanyViewModel; import javafx.event.ActionEvent; import javafx.fxml.FXML; diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyVerifyWindowController.java b/client/src/main/java/com/ecep/contract/controller/company/CompanyVerifyWindowController.java similarity index 66% rename from src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyVerifyWindowController.java rename to client/src/main/java/com/ecep/contract/controller/company/CompanyVerifyWindowController.java index 0ba20cf..27bc1ec 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyVerifyWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/company/CompanyVerifyWindowController.java @@ -1,11 +1,12 @@ -package com.ecep.contract.manager.ds.company.controller; +package com.ecep.contract.controller.company; -import com.ecep.contract.manager.ui.BaseController; -import com.ecep.contract.manager.ui.FxmlPath; import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; +import com.ecep.contract.controller.BaseController; +import com.ecep.contract.util.FxmlPath; + @Lazy @Scope("prototype") @Component diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyWindowController.java b/client/src/main/java/com/ecep/contract/controller/company/CompanyWindowController.java similarity index 80% rename from src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyWindowController.java rename to client/src/main/java/com/ecep/contract/controller/company/CompanyWindowController.java index 5ae6f3c..c8556c8 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/company/CompanyWindowController.java @@ -1,31 +1,8 @@ -package com.ecep.contract.manager.ds.company.controller; +package com.ecep.contract.controller.company; + +import java.util.concurrent.CompletableFuture; +import java.util.function.Function; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyFileService; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.company.tasker.CompanyCompositeUpdateTasker; -import com.ecep.contract.manager.ds.company.tasker.CompanyVerifyTasker; -import com.ecep.contract.manager.ds.company.vo.CompanyViewModel; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.customer.controller.CompanyCustomerWindowController; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ds.vendor.controller.CompanyVendorWindowController; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.util.DesktopUtils; -import com.ecep.contract.manager.util.UITools; -import javafx.beans.property.SimpleObjectProperty; -import javafx.event.ActionEvent; -import javafx.scene.control.*; -import javafx.scene.layout.BorderPane; -import javafx.scene.layout.Pane; -import javafx.stage.Stage; -import javafx.stage.Window; import org.hibernate.Hibernate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,8 +12,49 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; -import java.util.concurrent.CompletableFuture; -import java.util.function.Function; +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; +import com.ecep.contract.controller.tab.CompanyTabSkinBase; +import com.ecep.contract.controller.tab.CompanyTabSkinBlackReason; +import com.ecep.contract.controller.tab.CompanyTabSkinContact; +import com.ecep.contract.controller.tab.CompanyTabSkinContract; +import com.ecep.contract.controller.tab.CompanyTabSkinFile; +import com.ecep.contract.controller.tab.CompanyTabSkinInvoice; +import com.ecep.contract.controller.tab.CompanyTabSkinOldName; +import com.ecep.contract.controller.tab.CompanyTabSkinOther; +import com.ecep.contract.controller.tab.CompanyTabSkinPurchaseBillVoucher; +import com.ecep.contract.controller.vendor.CompanyVendorWindowController; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.service.CompanyCustomerService; +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.util.UITools; +import com.ecep.contract.vm.CompanyViewModel; + +import javafx.beans.property.SimpleObjectProperty; +import javafx.event.ActionEvent; +import javafx.scene.control.Button; +import javafx.scene.control.ButtonType; +import javafx.scene.control.CheckBox; +import javafx.scene.control.DatePicker; +import javafx.scene.control.Label; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.Pane; +import javafx.stage.Stage; +import javafx.stage.Window; @Lazy @Scope("prototype") @@ -46,7 +64,6 @@ public class CompanyWindowController extends AbstEntityController { private static final Logger logger = LoggerFactory.getLogger(CompanyWindowController.class); - public static void show(Company company, Window window) { CompanyViewModel viewModel = new CompanyViewModel(); if (!Hibernate.isInitialized(company)) { @@ -89,7 +106,7 @@ public class CompanyWindowController public Tab purchaseBillVoucherTab; public Tab otherTab; /* - + */ public TextField nameField; public TextField shortNameField; @@ -117,9 +134,10 @@ public class CompanyWindowController public Button companyPathChangeBtn; public Button companyPathSameAsNameBtn; - -// private final CompanyCustomerViewModel companyCustomerViewModel = new CompanyCustomerViewModel(); -// private final CompanyVendorViewModel companyVendorViewModel = new CompanyVendorViewModel(); + // private final CompanyCustomerViewModel companyCustomerViewModel = new + // CompanyCustomerViewModel(); + // private final CompanyVendorViewModel companyVendorViewModel = new + // CompanyVendorViewModel(); private final SimpleObjectProperty companyCustomerProperty = new SimpleObjectProperty<>(); private final SimpleObjectProperty companyVendorProperty = new SimpleObjectProperty<>(); @@ -134,7 +152,6 @@ public class CompanyWindowController public Pane vendorTab_pane2; public Button vendorTab_createBtn; - @Override public void show(Stage stage) { super.show(stage); @@ -143,7 +160,6 @@ public class CompanyWindowController getTitle().set("[" + viewModel.getId().get() + "] " + viewModel.getName().getValue() + " 公司详情"); } - @Override protected Company loadEntity() { return companyService.findById(viewModel.getId().get()); @@ -161,18 +177,16 @@ public class CompanyWindowController registerTabSkin(contactTab, tab1 -> new CompanyTabSkinContact(this)); registerTabSkin(blackReasonTab, tab1 -> new CompanyTabSkinBlackReason(this)); registerTabSkin(bankAccountTab, tab1 -> new CompanyTabSkinBankAccount(this)); - registerTabSkin(contractTab, this::createContractTabSkin); - registerTabSkin(fileTab, this::createFileTabSkin); + registerTabSkin(contractTab, tab -> new CompanyTabSkinContract(this)); + registerTabSkin(fileTab, tab -> new CompanyTabSkinFile(this)); registerTabSkin(invoiceTab, tab -> new CompanyTabSkinInvoice(this)); registerTabSkin(purchaseBillVoucherTab, tab -> new CompanyTabSkinPurchaseBillVoucher(this)); registerTabSkin(otherTab, tab -> new CompanyTabSkinOther(this)); - initializeVendorTab(); initializeCustomerTab(); } - @Override protected > K registerTabSkin(Tab tab, Function func) { K skin = super.registerTabSkin(tab, func); @@ -187,19 +201,6 @@ public class CompanyWindowController return companyService; } - - private CompanyTabSkinContract createContractTabSkin(Tab tab) { - CompanyTabSkinContract skin = new CompanyTabSkinContract(this); - skin.setContractService(contractService); - return skin; - } - - private CompanyTabSkinFile createFileTabSkin(Tab tab) { - CompanyTabSkinFile skin = new CompanyTabSkinFile(this); - skin.setCompanyFileService(companyFileService); - return skin; - } - private void initializeCustomerTab() { customerTab.setOnSelectionChanged(event -> { if (logger.isDebugEnabled()) { @@ -210,7 +211,6 @@ public class CompanyWindowController } }); - customerTab_pane1.visibleProperty().bind(customerTab_pane2.visibleProperty().not()); customerTab_pane2.visibleProperty().bind(companyCustomerProperty.isNull()); customerTab_createBtn.setOnAction(event -> { @@ -284,7 +284,6 @@ public class CompanyWindowController */ public void onCompanyVerifyAction(ActionEvent event) { Company company = getEntity(); - CompanyVerifyTasker task = new CompanyVerifyTasker(); task.setCompanyService(companyService); task.setCompany(company); diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/old_name/CompanyOldNameTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/company_old_name/CompanyOldNameTabSkinBase.java similarity index 82% rename from src/main/java/com/ecep/contract/manager/ds/company/controller/old_name/CompanyOldNameTabSkinBase.java rename to client/src/main/java/com/ecep/contract/controller/company_old_name/CompanyOldNameTabSkinBase.java index 96119d9..cce6468 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/old_name/CompanyOldNameTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/company_old_name/CompanyOldNameTabSkinBase.java @@ -1,17 +1,18 @@ -package com.ecep.contract.manager.ds.company.controller.old_name; +package com.ecep.contract.controller.company_old_name; + +import java.time.format.DateTimeFormatter; + +import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.controller.tab.TabSkin; +import com.ecep.contract.model.CompanyOldName; +import com.ecep.contract.service.CompanyOldNameService; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.vm.CompanyOldNameViewModel; -import com.ecep.contract.manager.ds.company.model.CompanyOldName; -import com.ecep.contract.manager.ds.company.service.CompanyOldNameService; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.company.vo.CompanyOldNameViewModel; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.scene.control.Tab; import javafx.util.converter.LocalDateStringConverter; import lombok.Setter; -import java.time.format.DateTimeFormatter; - public class CompanyOldNameTabSkinBase extends AbstEntityBasedTabSkin 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 new file mode 100644 index 0000000..f881dbd --- /dev/null +++ b/client/src/main/java/com/ecep/contract/controller/company_old_name/CompanyOldNameTabSkinFile.java @@ -0,0 +1,377 @@ +package com.ecep.contract.controller.company_old_name; + +import java.io.File; +import java.util.List; +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.CompanyOldNameService; +import com.ecep.contract.util.UITools; +import com.ecep.contract.vm.CompanyFileViewModel; +import com.ecep.contract.vm.CompanyOldNameViewModel; + +import javafx.application.Platform; +import javafx.event.ActionEvent; +import javafx.event.Event; +import javafx.scene.control.Tab; +import javafx.scene.control.TableCell; +import javafx.scene.control.TableView; +import lombok.Setter; + +/** + * + */ +public class CompanyOldNameTabSkinFile + extends + AbstEntityTableTabSkin + implements TabSkin { + @Setter + private CompanyOldNameService companyOldNameService; + @Setter + private CompanyFileService companyFileService; + @Setter + private MyProperties myProperties; + + public CompanyOldNameTabSkinFile(CompanyOldNameWindowController controller) { + super(controller); + setDragAndDrop(true); + setDragAndDropFileHandler(this::moveFileToCompany); + } + + @Override + public Tab getTab() { + return controller.fileTab; + } + + @Override + public TableView getTableView() { + return controller.fileTable; + } + + @Override + protected CompanyFileService getViewModelService() { + return companyFileService; + } + + @Override + public Specification getSpecification(CompanyOldName parent) { + return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { + return builder.equal(root.get("company").get("id"), parent.getCompanyId()); + }); + } + + @Override + public void initializeTab() { + // controller.fileTable_file_move_btn.setOnAction(this::onTableMoveFileAction); + // controller.fileTable_file_retrieve_from_download_dir_btn.setOnAction(this::onTableRetrieveFromDownloadDirAction); + // controller.fileTable_file_reset_btn.setOnAction(this::onTableResetAction); + // + // + // controller.fileTable_idColumn.setCellValueFactory(param -> + // param.getValue().getId()); + // ObservableMap observableMapByLocal = + // getBean(CompanyFileTypeLocalRepository.class).getObservableMapByLocal(); + // controller.fileTable_typeColumn.setCellValueFactory(param -> + // Bindings.valueAt(observableMapByLocal, + // param.getValue().getType()).map(CompanyFileTypeLocal::getValue)); + // controller.fileTable_filePathColumn.setCellValueFactory(param -> + // param.getValue().getFilePath()); + // controller.fileTable_filePathColumn.setCellFactory(param -> new + // FileTableFilePathTableCell()); + // controller.fileTable_applyDateColumn.setCellValueFactory(param -> + // param.getValue().getApplyDate()); + // controller.fileTable_expiringDateColumn.setCellValueFactory(param -> + // param.getValue().getExpiringDate()); + // + // + // controller.fileTable_menu_refresh.setOnAction(this::onTableRefreshAction); + // controller.fileTable_menu_del.setOnAction(this::onTableDeleteAction); + // controller.fileTable_menu_copy_as_matched_by_contract.setOnAction(this::onTableCopyAsMatchedByContractAction); + // controller.fileTable_menu_copy_as_matched_by_contract.setOnMenuValidation(this::onTableCopyAsMatchedMenuValidation); + + super.initializeTab(); + } + + private void onTableResetAction(ActionEvent event) { + CompanyOldName oldName = getParent(); + // CompletableFuture.runAsync(() -> { + // if (getCompanyFileService().reBuildingFiles(oldName, this::setStatus)) { + // loadTableDataSet(); + // } + // }); + } + + /** + * 从 下载目录 中查找相关的资质文件 + */ + private void onTableRetrieveFromDownloadDirAction(ActionEvent event) { + // CompanyOldName oldName = getParent(); + // MyProperties myProperties = getMyProperties(); + // File dir = myProperties.getDownloadDirectory(); + // if (!dir.exists()) { + // setStatus("下载目录 " + dir.getAbsolutePath() + " 不存在,请检查"); + // return; + // } + // + // setStatus("开始检索 下载 文件夹:" + dir.getAbsolutePath() + "..."); + // File[] files = dir.listFiles(File::isFile); + // if (files == null) { + // setStatus("检索 下载 文件夹失败"); + // return; + // } + // if (files.length == 0) { + // setStatus("下载 文件夹没有文件"); + // return; + // } + // setStatus("下载 文件夹中共有文件 " + files.length + " 个文件"); + // + // if (getCompanyOldNameService().retrieveFromDownloadFiles(oldName, files, + // this::setStatus)) { + // // fixed if update + // viewModel.update(oldName); + // loadTableDataSet(); + // } + } + + /** + * 把文件从 老系统中移到 \\10.84.209.8\项目信息\相关方信息 目录中 + */ + private void onTableMoveFileAction(ActionEvent event) { + // CompanyFileService companyFileService = getCompanyFileService(); + // CompanyOldName oldName = getParent(); + // List list = companyFileService.findByCompany(oldName); + // if (list.isEmpty()) { + // return; + // } + // if (getCompanyService().makePathAbsent(oldName)) { + // save(oldName); + // } + // + // String path = oldName.getPath(); + // if (!StringUtils.hasText(path)) { + // setStatus("异常, 企业目录未设置"); + // return; + // } + // File companyPath = new File(path); + // for (CompanyFile companyFile : list) { + // String filePath = companyFile.getFilePath(); + // if (StringUtils.hasText(filePath)) { + // File file = new File(filePath); + // if (file.exists()) { + // if (file.getParentFile().equals(companyPath)) { + // continue; + // } + // File dest = new File(companyPath, file.getName()); + // if (file.renameTo(dest)) { + // companyFile.setFilePath(dest.getAbsolutePath()); + // companyFileService.save(companyFile); + // setStatus(file.getName() + " 移动到 " + companyPath.getName()); + // } + // } + // } + // } + } + + /** + * + */ + private void onTableCopyAsMatchedByContractAction(ActionEvent event) { + UITools.showDialogAndWait("复制资信评估报告", "按当前评估报告复制一个合同中最匹配的", list -> { + onTableCopyAsMatchedAction_(msg -> { + Platform.runLater(() -> { + list.add(msg); + }); + }); + }); + } + + private void onTableCopyAsMatchedAction_(Consumer state) { + // CompanyOldName oldName = getParent(); + // + // CompanyFileViewModel selectedItem = + // table.getSelectionModel().getSelectedItem(); + // if (selectedItem == null) { + // state.accept("未选择行"); + // return; + // } + // if (selectedItem.getApplyDate().get() == null) { + // state.accept("有效日期不能未空"); + // return; + // } + // + // LocalDate nextCreditReportDate = null; + // try { + // nextCreditReportDate = companyFileService.getNextCreditReportDate(oldName, + // state); + // if (nextCreditReportDate == null) { + // state.accept("没有找到下一个咨询评估日期"); + // return; + // } + // } catch (Exception e) { + // state.accept("获取下一个咨询评估日期失败:" + e.getMessage()); + // return; + // } + // + // state.accept("下一个咨询评估日期:" + nextCreditReportDate); + // + // if (!nextCreditReportDate.isBefore(selectedItem.getApplyDate().get())) { + // state.accept("咨询评估日期晚于下一个咨询评估日期"); + // return; + // } + // + // + // File src = new File(selectedItem.getFilePath().get()); + // if (!src.exists()) { + // state.accept("当前选择行的文件不存在"); + // return; + // } + // + // String srcDate = MyDateTimeUtils.format(selectedItem.getApplyDate().get()); + // String destDate = MyDateTimeUtils.format(nextCreditReportDate); + // String srcFileName = src.getName(); + // String destFileName; + // + // // 天眼查的报告 + // if (CloudTycService.isTycReport(srcFileName)) { + // state.accept("天眼查的报告按标准格式命名"); + // String name = oldName.getName() + "_" + CloudTycService.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)) + // { + // name = name + "_" + CloudTycService.TYC_ENTERPRISE_MAJOR_REPORT; + // } else if + // (srcFileName.contains(CloudTycService.TYC_ENTERPRISE_ANALYSIS_REPORT)) { + // name = name + "_" + CloudTycService.TYC_ENTERPRISE_ANALYSIS_REPORT; + // } + // destFileName = name + "_" + destDate + "_cp." + + // StringUtils.getFilenameExtension(srcFileName); + // } else { + // if (srcFileName.contains(srcDate)) { + // // 如果文件名中包含日期,则替换为新日期 + // destFileName = srcFileName.replace(srcDate, destDate + "_cp"); + // } else { + // // 如果文件名中不包含日期,则添加日期 + // destFileName = oldName.getName() + "_" + destDate + "_cp." + + // StringUtils.getFilenameExtension(srcFileName); + // } + // } + // + // state.accept("新文件名:" + destFileName); + // + // File dest = new File(src.getParent(), destFileName); + // try { + // FileSystemUtils.copyRecursively(src, dest); + // state.accept("新文件复制成功"); + // } catch (IOException e) { + // state.accept("新文件复制失败:" + e.getMessage()); + // } + // + // CompanyFile companyFile = new CompanyFile(); + // companyFile.setFilePath(dest.getAbsolutePath()); + // companyFile.setApplyDate(nextCreditReportDate); + // companyFile.setExpiringDate(nextCreditReportDate.plusYears(1)); + // companyFile.setType(CompanyFileType.CreditReport); + // companyFile.setCompany(oldName); + // companyFileService.save(companyFile); + // + // state.accept("新文件已记录"); + // + // loadTableDataSet(); + // state.accept("文件表已刷新"); + } + + /** + * 当fileTable选中的行是咨询评估时,可用 + * + * @param event event + */ + public void onTableCopyAsMatchedMenuValidation(Event event) { + // 当fileTable选中的行是咨询评估时,可用 + CompanyFileViewModel selectedItem = getSelectedItem(); + if (selectedItem == null) { + event.consume(); + return; + } + CompanyFileType type = selectedItem.getType().get(); + if (type != CompanyFileType.CreditReport) { + event.consume(); + return; + } + } + + private void moveFileToCompany(List files) { + String path = viewModel.getPath().get(); + if (!StringUtils.hasText(path)) { + setStatus("未设置目录"); + return; + } + File dir = new File(path); + if (!dir.exists()) { + setStatus("目录错误,不存在"); + return; + } + } + + @Override + protected void onTableRowDoubleClickedAction(CompanyFileViewModel item) { + String path = item.getFilePath().get(); + if (StringUtils.hasText(path)) { + File file = new File(path); + if (!file.exists()) { + setStatus("文件不存在 " + file.getName()); + return; + } + DesktopUtils.showInExplorer(file); + } + } + + class FileTableFilePathTableCell extends TableCell { + @Override + protected void updateItem(String item, boolean empty) { + super.updateItem(item, empty); + if (empty || item == null) { + setText(""); + return; + } + String path = viewModel.getPath().get(); + if (StringUtils.hasText(path)) { + if (item.startsWith(path)) { + item = "~" + item.substring(path.length()); + } + } + setText(item); + } + } + + public MyProperties getMyProperties() { + if (myProperties == null) { + myProperties = getBean(MyProperties.class); + } + return myProperties; + } + + private CompanyFileService getCompanyFileService() { + if (companyFileService == null) { + companyFileService = getBean(CompanyFileService.class); + } + return companyFileService; + } + + public CompanyOldNameService getCompanyOldNameService() { + if (companyOldNameService == null) { + companyOldNameService = getBean(CompanyOldNameService.class); + } + return companyOldNameService; + } +} diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/old_name/CompanyOldNameWindowController.java b/client/src/main/java/com/ecep/contract/controller/company_old_name/CompanyOldNameWindowController.java similarity index 75% rename from src/main/java/com/ecep/contract/manager/ds/company/controller/old_name/CompanyOldNameWindowController.java rename to client/src/main/java/com/ecep/contract/controller/company_old_name/CompanyOldNameWindowController.java index 73cab00..b9f2ca7 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/old_name/CompanyOldNameWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/company_old_name/CompanyOldNameWindowController.java @@ -1,30 +1,38 @@ -package com.ecep.contract.manager.ds.company.controller.old_name; +package com.ecep.contract.controller.company_old_name; + +import java.io.File; +import java.util.concurrent.CompletableFuture; -import com.ecep.contract.manager.ds.company.model.CompanyOldName; -import com.ecep.contract.manager.ds.company.service.CompanyOldNameService; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.company.vo.CompanyFileViewModel; -import com.ecep.contract.manager.ds.company.vo.CompanyOldNameViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.util.DesktopUtils; -import com.ecep.contract.manager.util.UITools; -import javafx.event.ActionEvent; -import javafx.scene.control.*; -import javafx.scene.layout.BorderPane; -import javafx.stage.Window; -import javafx.stage.WindowEvent; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -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 org.springframework.util.StringUtils; -import java.io.File; -import java.util.concurrent.CompletableFuture; +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.UITools; +import com.ecep.contract.vm.CompanyFileViewModel; +import com.ecep.contract.vm.CompanyOldNameViewModel; + +import javafx.event.ActionEvent; +import javafx.scene.control.Button; +import javafx.scene.control.ButtonType; +import javafx.scene.control.CheckBox; +import javafx.scene.control.DatePicker; +import javafx.scene.control.Label; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TableView; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.scene.layout.BorderPane; +import javafx.stage.Window; +import javafx.stage.WindowEvent; @Lazy @Scope("prototype") @@ -45,12 +53,6 @@ public class CompanyOldNameWindowController extends AbstEntityController fileTable; - @Override public void onShown(WindowEvent windowEvent) { super.onShown(windowEvent); @@ -74,12 +74,12 @@ public class CompanyOldNameWindowController extends AbstEntityController diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/AbstContractTableTabSkin.java b/client/src/main/java/com/ecep/contract/controller/contract/AbstContractTableTabSkin.java similarity index 56% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/AbstContractTableTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/contract/AbstContractTableTabSkin.java index c36f430..c5cf2ae 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/AbstContractTableTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/contract/AbstContractTableTabSkin.java @@ -1,16 +1,18 @@ -package com.ecep.contract.manager.ds.contract.controller; +package com.ecep.contract.controller.contract; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.vo.ContractViewModel; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.ui.table.TableOfTabSkin; -import com.ecep.contract.manager.util.SpecificationUtils; +import org.apache.poi.ss.formula.functions.T; import org.springframework.data.jpa.domain.Specification; +import com.ecep.contract.controller.tab.TabSkin; +import com.ecep.contract.controller.table.AbstEntityTableTabSkin; +import com.ecep.contract.controller.table.TableOfTabSkin; +import com.ecep.contract.ds.contract.service.ContractService; +import com.ecep.contract.ds.contract.vo.ContractViewModel; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.IdentityEntity; +import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.vm.IdentityViewModel; + public abstract class AbstContractTableTabSkin> extends AbstEntityTableTabSkin implements TabSkin, TableOfTabSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/contract/ContractManagerWindowController.java similarity index 76% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/contract/ContractManagerWindowController.java index 8cdec04..4d4be65 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/contract/ContractManagerWindowController.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.contract.controller; +package com.ecep.contract.controller.contract; import java.time.LocalDate; import java.time.LocalDateTime; @@ -8,19 +8,20 @@ import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractGroup; -import com.ecep.contract.manager.ds.contract.model.ContractKind; -import com.ecep.contract.manager.ds.contract.model.ContractType; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.tasker.ContractFilesRebuildAllTasker; -import com.ecep.contract.manager.ds.contract.tasker.ContractRepairAllTasker; -import com.ecep.contract.manager.ds.contract.vo.ContractViewModel; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.util.UITools; +import com.ecep.contract.UITools; +import com.ecep.contract.util.FxmlPath; +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 javafx.event.ActionEvent; import javafx.scene.control.CheckBox; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinExtendVendorInfo.java b/client/src/main/java/com/ecep/contract/controller/contract/ContractTabSkinExtendVendorInfo.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinExtendVendorInfo.java rename to client/src/main/java/com/ecep/contract/controller/contract/ContractTabSkinExtendVendorInfo.java index adb31de..7fe9e3b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinExtendVendorInfo.java +++ b/client/src/main/java/com/ecep/contract/controller/contract/ContractTabSkinExtendVendorInfo.java @@ -1,20 +1,20 @@ -package com.ecep.contract.manager.ds.contract.controller; +package com.ecep.contract.controller.contract; import java.util.List; import java.util.concurrent.CompletableFuture; import org.hibernate.Hibernate; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ExtendVendorInfo; -import com.ecep.contract.manager.ds.contract.service.ExtendVendorInfoService; -import com.ecep.contract.manager.ds.contract.vo.ExtendVendorInfoViewModel; -import com.ecep.contract.manager.ds.vendor.model.VendorGroup; -import com.ecep.contract.manager.ds.vendor.service.VendorGroupService; -import com.ecep.contract.manager.ui.ComboBoxUtils; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.util.UITools; +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.model.Contract; +import com.ecep.contract.model.ExtendVendorInfo; +import com.ecep.contract.model.VendorGroup; +import com.ecep.contract.ui.ComboBoxUtils; import javafx.application.Platform; import javafx.beans.binding.Bindings; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractVerifyWindowController.java b/client/src/main/java/com/ecep/contract/controller/contract/ContractVerifyWindowController.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractVerifyWindowController.java rename to client/src/main/java/com/ecep/contract/controller/contract/ContractVerifyWindowController.java index ac0af65..034d62a 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractVerifyWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/contract/ContractVerifyWindowController.java @@ -1,37 +1,16 @@ -package com.ecep.contract.manager.ds.contract.controller; +package com.ecep.contract.controller.contract; + +import static com.ecep.contract.util.TableViewUtils.bindDoubleClicked; +import static com.ecep.contract.util.TableViewUtils.bindEnterPressed; + +import java.io.File; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.logging.Level; -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.tasker.ContractVerifyComm; -import com.ecep.contract.manager.ds.contract.tasker.ContractVerifyResultExportAsExcelFile; -import com.ecep.contract.manager.ui.BaseController; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import com.ecep.contract.manager.ds.project.service.SaleTypeService; -import com.ecep.contract.manager.ds.vendor.service.VendorGroupService; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.Message; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell; -import com.ecep.contract.manager.util.UITools; -import javafx.application.Platform; -import javafx.beans.property.SimpleListProperty; -import javafx.beans.property.SimpleObjectProperty; -import javafx.beans.property.SimpleStringProperty; -import javafx.collections.FXCollections; -import javafx.collections.ListChangeListener; -import javafx.collections.ObservableList; -import javafx.event.ActionEvent; -import javafx.fxml.FXMLLoader; -import javafx.fxml.FXML; -import javafx.scene.control.*; -import javafx.scene.layout.HBox; -import javafx.stage.*; -import lombok.Data; -import lombok.Getter; -import lombok.Setter; -import org.hibernate.Hibernate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -44,17 +23,48 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; -import java.io.File; -import java.time.LocalDate; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.logging.Level; +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.model.Contract; +import com.ecep.contract.model.Employee; +import com.ecep.contract.ui.table.cell.EmployeeTableCell; -import static com.ecep.contract.manager.util.TableViewUtils.bindDoubleClicked; -import static com.ecep.contract.manager.util.TableViewUtils.bindEnterPressed; -import static java.util.concurrent.CompletableFuture.runAsync; +import javafx.application.Platform; +import javafx.beans.property.SimpleListProperty; +import javafx.beans.property.SimpleObjectProperty; +import javafx.beans.property.SimpleStringProperty; +import javafx.collections.FXCollections; +import javafx.collections.ListChangeListener; +import javafx.collections.ObservableList; +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.scene.control.Button; +import javafx.scene.control.CheckMenuItem; +import javafx.scene.control.DatePicker; +import javafx.scene.control.Label; +import javafx.scene.control.TableCell; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TableView; +import javafx.scene.layout.HBox; +import javafx.stage.FileChooser; +import javafx.stage.Modality; +import javafx.stage.Stage; +import javafx.stage.Window; +import javafx.stage.WindowEvent; +import lombok.Data; +import lombok.Getter; +import lombok.Setter; @Lazy @Scope("prototype") @@ -78,7 +88,6 @@ public class ContractVerifyWindowController extends BaseController { } } - @Data public static class Model implements MessageHolder { private SimpleStringProperty code = new SimpleStringProperty(); @@ -104,9 +113,6 @@ public class ContractVerifyWindowController extends BaseController { } } - - - static class StateTableCell extends TableCell> { Label message2Label(MessageExt message) { Label label = new Label(message.getMessage()); @@ -154,7 +160,7 @@ public class ContractVerifyWindowController extends BaseController { ContractVerifyComm comm = new ContractVerifyComm(); @Autowired - private SaleTypeService saleTypeService; + private ProjectSaleTypeService saleTypeService; @Autowired private VendorGroupService vendorGroupService; @Autowired @@ -189,7 +195,6 @@ public class ContractVerifyWindowController extends BaseController { @FXML public CheckMenuItem onlyShowVerifiedChecker; - @FXML public TableView viewTable; private final ObservableList viewTableDataSet = FXCollections.observableArrayList(); @@ -224,9 +229,11 @@ public class ContractVerifyWindowController extends BaseController { viewTable_employeeColumn.setCellValueFactory(param -> param.getValue().getEmployee()); viewTable_employeeColumn.setCellFactory(param -> new EmployeeTableCell<>(getEmployeeService())); viewTable_setupDateColumn.setCellValueFactory(param -> param.getValue().getSetupDate()); -// viewTable_stateColumn.setCellValueFactory(param -> param.getValue().getMessages().map(messages -> { -// return messages.stream().map(Message::getMessage).collect(Collectors.joining(", ")); -// })); + // viewTable_stateColumn.setCellValueFactory(param -> + // param.getValue().getMessages().map(messages -> { + // return + // messages.stream().map(Message::getMessage).collect(Collectors.joining(", ")); + // })); viewTable_stateColumn.setCellValueFactory(param -> param.getValue().getMessages()); viewTable_stateColumn.setCellFactory(param -> new StateTableCell()); @@ -241,11 +248,9 @@ public class ContractVerifyWindowController extends BaseController { comm.getVerifyCustomerFiles().bind(verifyCustomerFileChecker.selectedProperty()); comm.getVerifyCustomerSubContractDate().bind(verifyCustomerSubContractDateChecker.selectedProperty()); - bindDoubleClicked(viewTable, this::showContract); bindEnterPressed(viewTable, this::reVerifyContract); - } /** @@ -265,12 +270,9 @@ public class ContractVerifyWindowController extends BaseController { 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()) - ); + builder.equal(root.get("parentCode"), "")))), + builder.between(root.get("setupDate"), setupDateBeginSelector.getValue(), + setupDateEndSelector.getValue())); }; long total = contractService.count(spec); setStatus("合同:" + total + " 条"); @@ -323,7 +325,6 @@ public class ContractVerifyWindowController extends BaseController { }); } - public void onContractReVerifyAction(ActionEvent event) { Model selectedItem = viewTable.getSelectionModel().getSelectedItem(); if (selectedItem == null) { @@ -362,7 +363,6 @@ public class ContractVerifyWindowController extends BaseController { }); } - public void onShowContractDetailAction(ActionEvent event) { Model selectedItem = viewTable.getSelectionModel().getSelectedItem(); if (selectedItem == null) { @@ -389,7 +389,7 @@ public class ContractVerifyWindowController extends BaseController { chooser.setInitialFileName("核验结果.xlsx"); File selected = chooser.showSaveDialog(viewTable.getScene().getWindow()); if (selected != null) { - ContractVerifyResultExportAsExcelFile task = new ContractVerifyResultExportAsExcelFile(); + ContractVerifyResultExportAsExcelFileTasker task = new ContractVerifyResultExportAsExcelFileTasker(); task.setDestFile(selected); task.setModels(new ArrayList<>(viewTableDataSet)); UITools.showTaskDialogAndWait("导出中...", task, null); diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractWindowController.java b/client/src/main/java/com/ecep/contract/controller/contract/ContractWindowController.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractWindowController.java rename to client/src/main/java/com/ecep/contract/controller/contract/ContractWindowController.java index 8a04038..7bf0f54 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/contract/ContractWindowController.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.contract.controller; +package com.ecep.contract.controller.contract; import java.io.File; @@ -8,19 +8,28 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; -import com.ecep.contract.manager.ds.company.controller.CompanyWindowController; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.tasker.ContractRepairTask; -import com.ecep.contract.manager.ds.contract.tasker.ContractVerifyTasker; -import com.ecep.contract.manager.ds.contract.vo.ContractViewModel; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.util.DesktopUtils; -import com.ecep.contract.manager.util.UITools; +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; +import com.ecep.contract.controller.tab.ContractTabSkinItems; +import com.ecep.contract.controller.tab.ContractTabSkinItemsV2; +import com.ecep.contract.controller.tab.ContractTabSkinPayPlan; +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.util.UITools; +import com.ecep.contract.vm.ContractViewModel; import javafx.collections.ObservableList; import javafx.event.ActionEvent; @@ -42,7 +51,6 @@ import javafx.stage.WindowEvent; public class ContractWindowController extends AbstEntityController { - public static void show(Contract contract, Window owner) { ContractViewModel model = new ContractViewModel(); model.update(contract); @@ -132,7 +140,8 @@ public class ContractWindowController public void onShown(WindowEvent windowEvent) { super.onShown(windowEvent); - getTitle().bind(viewModel.getName().map(name -> "[" + viewModel.getId().get() + "] " + viewModel.getCode().get() + " " + name + " 合同详情")); + getTitle().bind(viewModel.getName() + .map(name -> "[" + viewModel.getId().get() + "] " + viewModel.getCode().get() + " " + name + " 合同详情")); root.getScene().getStylesheets().add("/ui/contract/contract.css"); } @@ -174,7 +183,6 @@ public class ContractWindowController registerTabSkin(fileTab, tab -> new ContractTabSkinFiles(this)); } - public void onContractOpenInExplorerAction(ActionEvent event) { Contract contract = getEntity(); String path = contract.getPath(); @@ -237,7 +245,6 @@ public class ContractWindowController } } - /** * 验证合同合规性 */ diff --git a/client/src/main/java/com/ecep/contract/controller/customer/AbstCompanyCustomerTableTabSkin.java b/client/src/main/java/com/ecep/contract/controller/customer/AbstCompanyCustomerTableTabSkin.java new file mode 100644 index 0000000..7b50841 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/controller/customer/AbstCompanyCustomerTableTabSkin.java @@ -0,0 +1,29 @@ +package com.ecep.contract.controller.customer; + +import com.ecep.contract.controller.tab.TabSkin; +import com.ecep.contract.controller.table.AbstEntityTableTabSkin; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.IdentityEntity; +import com.ecep.contract.service.CompanyCustomerService; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.vm.CompanyCustomerViewModel; +import com.ecep.contract.vm.IdentityViewModel; + +public abstract class AbstCompanyCustomerTableTabSkin> + extends + AbstEntityTableTabSkin + implements TabSkin { + + public AbstCompanyCustomerTableTabSkin(CompanyCustomerWindowController controller) { + super(controller); + } + + public CompanyService getCompanyService() { + return controller.getCompanyService(); + } + + protected CompanyCustomerService getCompanyCustomerService() { + return getCachedBean(CompanyCustomerService.class); + } + +} diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerEvaluationFormFileWindowController.java b/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerEvaluationFormFileWindowController.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerEvaluationFormFileWindowController.java rename to client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerEvaluationFormFileWindowController.java index dbf8bf6..f57b440 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerEvaluationFormFileWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerEvaluationFormFileWindowController.java @@ -1,27 +1,11 @@ -package com.ecep.contract.manager.ds.customer.controller; +package com.ecep.contract.controller.customer; + +import java.awt.image.BufferedImage; +import java.io.File; +import java.util.Objects; +import java.util.concurrent.CompletableFuture; +import java.util.function.BiConsumer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEvaluationFormFile; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFile; -import com.ecep.contract.manager.ds.customer.repository.CompanyCustomerEvaluationFormFileRepository; -import com.ecep.contract.manager.ds.customer.repository.CompanyCustomerFileRepository; -import com.ecep.contract.manager.ui.BaseController; -import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerFileViewModel; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService; -import com.ecep.contract.manager.ds.company.CompanyFileUtils; -import com.ecep.contract.manager.util.FxmlUtils; -import javafx.application.Platform; -import javafx.beans.binding.Bindings; -import javafx.beans.property.SimpleIntegerProperty; -import javafx.beans.property.SimpleObjectProperty; -import javafx.beans.property.SimpleStringProperty; -import javafx.event.ActionEvent; -import javafx.geometry.Bounds; -import javafx.scene.control.*; -import javafx.scene.image.Image; -import javafx.scene.image.ImageView; -import javafx.scene.image.PixelWriter; -import javafx.scene.image.WritableImage; -import javafx.stage.*; import org.apache.pdfbox.Loader; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.rendering.PDFRenderer; @@ -33,11 +17,39 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; -import java.awt.image.BufferedImage; -import java.io.File; -import java.util.Objects; -import java.util.concurrent.CompletableFuture; -import java.util.function.BiConsumer; +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.vm.CompanyCustomerFileViewModel; + +import javafx.application.Platform; +import javafx.beans.binding.Bindings; +import javafx.beans.property.SimpleIntegerProperty; +import javafx.beans.property.SimpleObjectProperty; +import javafx.beans.property.SimpleStringProperty; +import javafx.event.ActionEvent; +import javafx.geometry.Bounds; +import javafx.scene.control.CheckBox; +import javafx.scene.control.DatePicker; +import javafx.scene.control.Label; +import javafx.scene.control.ScrollPane; +import javafx.scene.control.SplitPane; +import javafx.scene.control.TextField; +import javafx.scene.control.Toggle; +import javafx.scene.control.ToggleGroup; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.image.PixelWriter; +import javafx.scene.image.WritableImage; +import javafx.stage.Modality; +import javafx.stage.Stage; +import javafx.stage.Window; +import javafx.stage.WindowEvent; @Lazy @Scope("prototype") @Component diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerEvaluationFormUpdateTask.java b/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerEvaluationFormUpdateTask.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerEvaluationFormUpdateTask.java rename to client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerEvaluationFormUpdateTask.java index e82715d..837d6b0 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerEvaluationFormUpdateTask.java +++ b/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerEvaluationFormUpdateTask.java @@ -1,20 +1,20 @@ -package com.ecep.contract.manager.ds.customer.controller; +package com.ecep.contract.controller.customer; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.cloud.tyc.CloudTyc; -import com.ecep.contract.manager.cloud.tyc.CloudTycService; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyBasicService; -import com.ecep.contract.manager.ds.company.service.CompanyContactService; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.customer.CompanyCustomerFileType; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEvaluationFormFile; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFile; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import javafx.concurrent.Task; -import lombok.Setter; +import static com.ecep.contract.util.ExcelUtils.setCellValue; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.time.LocalDate; +import java.util.Comparator; +import java.util.List; + +import com.ecep.contract.service.*; +import com.ecep.contract.util.CompanyUtils; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; @@ -24,12 +24,16 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.StringUtils; -import java.io.*; -import java.time.LocalDate; -import java.util.Comparator; -import java.util.List; +import com.ecep.contract.CompanyCustomerFileType; +import com.ecep.contract.SpringApp; +import com.ecep.contract.model.CloudTyc; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyCustomerEvaluationFormFile; +import com.ecep.contract.model.CompanyCustomerFile; -import static com.ecep.contract.manager.util.ExcelUtils.setCellValue; +import javafx.concurrent.Task; +import lombok.Setter; public class CompanyCustomerEvaluationFormUpdateTask extends Task { private static final Logger logger = LoggerFactory.getLogger(CompanyCustomerEvaluationFormUpdateTask.class); @@ -109,8 +113,7 @@ public class CompanyCustomerEvaluationFormUpdateTask extends Task { updateMessage("表单文件已经存在," + destFile.getName()); try ( InputStream inp = new FileInputStream(destFile); - Workbook wb = WorkbookFactory.create(inp) - ) { + Workbook wb = WorkbookFactory.create(inp)) { updateEvaluationForm(wb, destFile); updateMessage("评价表已更新"); } catch (Exception e) { @@ -121,8 +124,7 @@ public class CompanyCustomerEvaluationFormUpdateTask extends Task { updateMessage("根据模板 " + template_file_name + " 创建表单 " + destFile.getName()); try ( InputStream inp = new FileInputStream(template); - Workbook wb = WorkbookFactory.create(inp) - ) { + Workbook wb = WorkbookFactory.create(inp)) { updateEvaluationForm(wb, destFile); updateMessage("评价表已创建"); CompanyCustomerFile customerFile = new CompanyCustomerFile(); @@ -142,7 +144,6 @@ public class CompanyCustomerEvaluationFormUpdateTask extends Task { getCompanyCustomerFileService().save(customerFile); } - /** * 更新客户评估表,依据模板创建,如果已经存在生成的文件,则更新评估表 * @@ -150,8 +151,7 @@ public class CompanyCustomerEvaluationFormUpdateTask extends Task { * @param destFile 目标文件 */ public void updateEvaluationForm( - Workbook wb, File destFile - ) throws IOException { + Workbook wb, File destFile) throws IOException { Company company = customer.getCompany(); if (!Hibernate.isInitialized(company)) { company = getCompanyService().findById(company.getId()); @@ -172,10 +172,10 @@ public class CompanyCustomerEvaluationFormUpdateTask extends Task { } private void updateSheet(Company company, Sheet sheet) { - setCellValue(sheet, "B3", "客户编号:" + CompanyBasicService.formatCompanyVendorId(customer.getId())); + setCellValue(sheet, "B3", "客户编号:" + CompanyUtils.formatCompanyVendorId(customer.getId())); setCellValue(sheet, "B4", "客户名称:" + company.getName()); - LocalDate suggestDate = getCompanyCustomerFileService().getNextSignDate(customer, msg -> { + LocalDate suggestDate = getCompanyCustomerFileService().getNextSignDate(customer, (level, msg) -> { updateMessage(" - " + msg); }); if (suggestDate == null) { @@ -192,7 +192,8 @@ public class CompanyCustomerEvaluationFormUpdateTask extends Task { setCellValue(sheet, "H6", "成立日期:" + company.getSetupDate()); // 所属行业 setCellValue(sheet, "D7", "所属行业:" + company.getIndustry()); - setCellValue(sheet, "D8", "注册资金:" + company.getRegisteredCapital() + " " + company.getRegisteredCapitalCurrency()); + setCellValue(sheet, "D8", + "注册资金:" + company.getRegisteredCapital() + " " + company.getRegisteredCapitalCurrency()); // 企业类型 setCellValue(sheet, "H10", "企业类型:" + company.getEntType()); // 天眼评分 @@ -200,10 +201,9 @@ public class CompanyCustomerEvaluationFormUpdateTask extends Task { CloudTyc cloudTyc = cloudTycService.getOrCreateCloudTyc(company); setCellValue(sheet, "D10", "天眼评分:" + (cloudTyc.getScore() > 0 ? cloudTyc.getScore() : "")); - // 检索评估表 - List evaluationFormFiles = - getCompanyCustomerFileService().findAllCustomerEvaluationFormFiles(customer); + List evaluationFormFiles = getCompanyCustomerFileService() + .findAllCustomerEvaluationFormFiles(customer); List filteredList = evaluationFormFiles.stream() .filter(v -> { CompanyCustomerFile file = v.getCustomerFile(); diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerExportExcelTasker.java b/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerExportExcelTasker.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerExportExcelTasker.java rename to client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerExportExcelTasker.java index 6275ffd..c0de833 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerExportExcelTasker.java +++ b/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerExportExcelTasker.java @@ -1,17 +1,13 @@ -package com.ecep.contract.manager.ds.customer.controller; +package com.ecep.contract.controller.customer; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEntity; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEvaluationFormFile; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFile; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerEntityService; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.UITools; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.MyDateTimeUtils; +import com.ecep.contract.model.*; +import com.ecep.contract.service.CompanyCustomerEntityService; +import com.ecep.contract.service.CompanyCustomerFileService; +import com.ecep.contract.service.CompanyCustomerService; +import com.ecep.contract.task.Tasker; +import com.ecep.contract.util.UITools; import lombok.Setter; import org.apache.poi.ss.SpreadsheetVersion; import org.apache.poi.ss.usermodel.*; @@ -31,7 +27,7 @@ import java.time.LocalDateTime; import java.util.Comparator; import java.util.List; -import static com.ecep.contract.manager.util.ExcelUtils.*; +import static com.ecep.contract.util.ExcelUtils.*; public class CompanyCustomerExportExcelTasker extends Tasker { private static final Logger logger = LoggerFactory.getLogger(CompanyCustomerExportExcelTasker.class); diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerManagerSkin.java similarity index 77% rename from src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerManagerSkin.java index 8eeca79..81b2bd7 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerManagerSkin.java @@ -1,12 +1,12 @@ -package com.ecep.contract.manager.ds.customer.controller; +package com.ecep.contract.controller.customer; -import com.ecep.contract.manager.ui.table.cell.CompanyTableCell; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.util.MyDateTimeUtils; +import com.ecep.contract.MyDateTimeUtils; +import com.ecep.contract.controller.AbstEntityManagerSkin; +import com.ecep.contract.controller.table.cell.CompanyTableCell; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.service.CompanyCustomerService; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.vm.CompanyCustomerViewModel; import javafx.application.Platform; import lombok.Setter; diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerManagerWindowController.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerManagerWindowController.java index a5a4606..fc1ec96 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerManagerWindowController.java @@ -1,10 +1,24 @@ -package com.ecep.contract.manager.ds.customer.controller; - -import java.io.File; -import java.time.LocalDate; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.atomic.AtomicBoolean; +package com.ecep.contract.controller.customer; +import com.ecep.contract.MyDateTimeUtils; +import com.ecep.contract.controller.AbstManagerWindowController; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.service.CompanyCustomerService; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.UITools; +import com.ecep.contract.vm.CompanyCustomerViewModel; +import javafx.application.Platform; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.event.ActionEvent; +import javafx.geometry.Insets; +import javafx.scene.control.*; +import javafx.scene.layout.Priority; +import javafx.scene.layout.VBox; +import javafx.stage.FileChooser; +import javafx.stage.Stage; import org.hibernate.Hibernate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; @@ -14,31 +28,10 @@ import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Component; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.UITools; - -import javafx.application.Platform; -import javafx.collections.FXCollections; -import javafx.collections.ObservableList; -import javafx.event.ActionEvent; -import javafx.geometry.Insets; -import javafx.scene.control.ButtonType; -import javafx.scene.control.Dialog; -import javafx.scene.control.Label; -import javafx.scene.control.ListView; -import javafx.scene.control.ProgressBar; -import javafx.scene.control.TableColumn; -import javafx.scene.layout.Priority; -import javafx.scene.layout.VBox; -import javafx.stage.FileChooser; -import javafx.stage.Stage; +import java.io.File; +import java.time.LocalDate; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.atomic.AtomicBoolean; @Lazy @Scope("prototype") @@ -130,7 +123,7 @@ public class CompanyCustomerManagerWindowController } String prefix = (index + i) + "/" + page.getTotalElements() + ", " + company.getName() + "> "; - companyCustomerService.reBuildingFiles(companyCustomer, msg -> { + companyCustomerService.reBuildingFiles(companyCustomer, (level, msg) -> { Platform.runLater(() -> { listViewDataSet.add(prefix + msg); listView.scrollTo(listViewDataSet.size() - 1); diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerTabSkinBase.java similarity index 81% rename from src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerTabSkinBase.java rename to client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerTabSkinBase.java index a7141a9..b302280 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerTabSkinBase.java @@ -1,20 +1,24 @@ -package com.ecep.contract.manager.ds.customer.controller; +package com.ecep.contract.controller.customer; + +import java.time.LocalDateTime; +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.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.vm.CompanyCustomerViewModel; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.CompanyStringConverter; -import com.ecep.contract.manager.ds.company.controller.CompanyWindowController; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.company.service.CompanyContactService; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.UITools; import javafx.beans.binding.Bindings; import javafx.beans.property.SimpleObjectProperty; import javafx.event.ActionEvent; @@ -22,9 +26,6 @@ import javafx.scene.control.Tab; import javafx.scene.control.TextField; import javafx.util.converter.LocalDateStringConverter; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; - public class CompanyCustomerTabSkinBase extends AbstEntityBasedTabSkin implements TabSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerWindowController.java b/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerWindowController.java similarity index 75% rename from src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerWindowController.java index 17f604e..1689d79 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/customer/CompanyCustomerWindowController.java @@ -1,31 +1,36 @@ -package com.ecep.contract.manager.ds.customer.controller; +package com.ecep.contract.controller.customer; -import com.ecep.contract.manager.ds.company.service.CompanyContactService; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.util.DesktopUtils; +import java.io.File; -import javafx.event.ActionEvent; -import javafx.scene.control.*; -import javafx.scene.layout.BorderPane; -import javafx.stage.Stage; -import javafx.stage.Window; -import javafx.stage.WindowEvent; import org.hibernate.Hibernate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -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 org.springframework.util.StringUtils; -import java.io.File; +import com.ecep.contract.DesktopUtils; +import com.ecep.contract.controller.AbstEntityController; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.service.CompanyContactService; +import com.ecep.contract.service.CompanyCustomerService; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.vm.CompanyCustomerViewModel; + +import javafx.event.ActionEvent; +import javafx.scene.control.Button; +import javafx.scene.control.DatePicker; +import javafx.scene.control.Label; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.scene.layout.BorderPane; +import javafx.stage.Stage; +import javafx.stage.Window; +import javafx.stage.WindowEvent; @Lazy @Scope("prototype") @@ -33,6 +38,7 @@ import java.io.File; @FxmlPath("/ui/company/customer/customer.fxml") public class CompanyCustomerWindowController extends AbstEntityController { private static final Logger logger = LoggerFactory.getLogger(CompanyCustomerWindowController.class); + /** * 显示界面 */ @@ -48,14 +54,6 @@ public class CompanyCustomerWindowController extends AbstEntityController fileTable_idColumn; public TableColumn fileTable_typeColumn; public TableColumn fileTable_filePathColumn; @@ -83,10 +72,10 @@ public class CustomerTabSkinFile } @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; } @Override @@ -98,7 +87,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 = SpringApp + .getBean(CompanyCustomerFileTypeLocalRepository.class).getObservableMapByLocal(); fileTable_typeColumn.setCellValueFactory(param -> Bindings.valueAt(observableMapByLocal, param.getValue().getType()).map(BaseEnumEntity::getValue)); @@ -150,7 +140,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 (!CompanyFileUtils.withExtensions(item.getFilePath().get(), CompanyFileUtils.XLS, + CompanyFileUtils.XLSX)) { CompanyCustomerEvaluationFormFileWindowController.show(item, controller.root.getScene().getWindow()); return; } @@ -175,12 +166,13 @@ public class CustomerTabSkinFile return; } CompanyCustomer companyCustomer = getParent(); - LocalDate nextSignDate = getCompanyCustomerFileService().getNextSignDate(companyCustomer, this::setStatus); + LocalDate nextSignDate = getCompanyCustomerFileService().getNextSignDate(companyCustomer, ((level, message) -> setStatus(message))); if (nextSignDate != null && files.size() == 1) { File file = files.getFirst(); String fileName = file.getName(); if (fileName.startsWith("S")) { - String destFileName = CompanyCustomerService.EVALUATION_FORM_NAME2 + "_" + MyDateTimeUtils.format(nextSignDate) + String destFileName = CompanyCustomerConstant.EVALUATION_FORM_NAME2 + "_" + + MyDateTimeUtils.format(nextSignDate) + "." + StringUtils.getFilenameExtension(fileName); File dest = new File(dir, destFileName); if (file.renameTo(dest)) { @@ -195,7 +187,8 @@ public class CustomerTabSkinFile CompanyCustomerFileViewModel model = new CompanyCustomerFileViewModel(); model.update(saved); dataSet.add(model); - CompanyCustomerEvaluationFormFileWindowController.show(model, getTableView().getScene().getWindow()); + CompanyCustomerEvaluationFormFileWindowController.show(model, + getTableView().getScene().getWindow()); }); return; } @@ -226,7 +219,7 @@ public class CustomerTabSkinFile CompanyCustomerService customerService = getCompanyCustomerService(); try { CompanyCustomer companyCustomer = customerService.findById(viewModel.getId().get()); - if (customerService.reBuildingFiles(companyCustomer, this::setStatus)) { + if (customerService.reBuildingFiles(companyCustomer, (level, message) -> setStatus(message))) { loadTableDataSet(); } } catch (Exception e) { @@ -270,7 +263,6 @@ public class CustomerTabSkinFile return false; } - public void onFileTableMoveToCompanyPathAction(ActionEvent event) { Company company = viewModel.getCompany().get(); if (!Hibernate.isInitialized(company)) { @@ -318,11 +310,10 @@ public class CustomerTabSkinFile deleteRow(selectedItem); -// getCompanyCustomerService().deleteFileById(selectedItem.getId().get()); -// dataSet.remove(selectedItem); + // getCompanyCustomerService().deleteFileById(selectedItem.getId().get()); + // dataSet.remove(selectedItem); } - private void initializeTask(Task task, String prefix, Consumer consumer) { task.setOnScheduled(e -> { consumer.accept("正在" + prefix + ",请稍后..."); @@ -351,11 +342,10 @@ public class CustomerTabSkinFile loadTableDataSet(); } - public void onCalcNextSignDateAction(ActionEvent event) { UITools.showDialogAndWait("计算客户下一个评价日期", "依据已有的客户评估表和登记采购的合同计算下一个评估日期", ds -> { CompanyCustomer companyCustomer = getCompanyCustomerService().findById(viewModel.getId().get()); - LocalDate nextSignDate = getCompanyCustomerFileService().getNextSignDate(companyCustomer, msg -> { + LocalDate nextSignDate = getCompanyCustomerFileService().getNextSignDate(companyCustomer, (level, msg) -> { Platform.runLater(() -> { ds.add(msg); }); @@ -368,7 +358,6 @@ public class CustomerTabSkinFile }); } - class FileTableFilePathTableCell extends TableCell { @Override protected void updateItem(String item, boolean empty) { @@ -388,7 +377,6 @@ public class CustomerTabSkinFile } } - private CompanyCustomerFileService getCompanyCustomerFileService() { if (companyCustomerFileService == null) { companyCustomerFileService = SpringApp.getBean(CompanyCustomerFileService.class); diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CustomerTabSkinSatisfactionSurvey.java b/client/src/main/java/com/ecep/contract/controller/customer/CustomerTabSkinSatisfactionSurvey.java similarity index 69% rename from src/main/java/com/ecep/contract/manager/ds/customer/controller/CustomerTabSkinSatisfactionSurvey.java rename to client/src/main/java/com/ecep/contract/controller/customer/CustomerTabSkinSatisfactionSurvey.java index 7749c1e..6d10d93 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CustomerTabSkinSatisfactionSurvey.java +++ b/client/src/main/java/com/ecep/contract/controller/customer/CustomerTabSkinSatisfactionSurvey.java @@ -1,29 +1,28 @@ -package com.ecep.contract.manager.ds.customer.controller; +package com.ecep.contract.controller.customer; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Map; + +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.controller.project.satisfaction_survey.CustomerSatisfactionSurveyWindowController; +import com.ecep.contract.controller.table.cell.EmployeeTableCell; +import com.ecep.contract.controller.table.cell.ProjectTableCell; +import com.ecep.contract.converter.EntityStringConverter; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CustomerCatalog; +import com.ecep.contract.model.CustomerSatisfactionSurvey; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.Project; +import com.ecep.contract.service.CustomerSatisfactionSurveyService; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.vm.CustomerEntityViewModel; +import com.ecep.contract.vm.CustomerSatisfactionSurveyViewModel; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CustomerCatalog; -import com.ecep.contract.manager.ds.customer.vo.CustomerEntityViewModel; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.project.controller.satisfaction_survey.CustomerSatisfactionSurveyWindowController; -import com.ecep.contract.manager.ds.project.model.CustomerSatisfactionSurvey; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.service.CustomerSatisfactionSurveyService; -import com.ecep.contract.manager.ds.project.vo.CustomerSatisfactionSurveyViewModel; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.table.cell.ProjectTableCell; -import com.ecep.contract.manager.util.SpecificationUtils; import javafx.scene.control.MenuItem; import javafx.scene.control.Tab; import javafx.scene.control.TableColumn; import lombok.Setter; -import org.springframework.data.jpa.domain.Specification; - -import java.time.LocalDate; -import java.time.LocalDateTime; @FxmlPath("/ui/company/customer/customer-tab-satisfaction-survey.fxml") public class CustomerTabSkinSatisfactionSurvey @@ -41,8 +40,8 @@ public class CustomerTabSkinSatisfactionSurvey public MenuItem entityTable_menu_refresh; public MenuItem entityTable_menu_del; -@Setter -private ProjectService projectService; + @Setter + private ProjectService projectService; @Setter private CustomerSatisfactionSurveyService satisfactionSurveyService; @@ -55,7 +54,6 @@ private ProjectService projectService; return controller.satisfactionTab; } - @Override public void initializeTab() { super.initializeTab(); @@ -75,7 +73,6 @@ private ProjectService projectService; entityTable_menu_del.setOnAction(this::onTableDeleteAction); } - private void initializeEntityTabCatalogColumn(TableColumn column) { EntityStringConverter converter = new EntityStringConverter<>(); converter.setInitialized(v -> getCompanyCustomerService().findCatalogById(v.getId())); @@ -102,14 +99,10 @@ private ProjectService projectService; } @Override - public Specification getSpecification(CompanyCustomer parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - Company company = parent.getCompany(); - if (company == null) { - return null; - } - return builder.equal(root.get("project").get("customer"), company); - }); + public Map getSpecification(CompanyCustomer parent) { + Map params = getSpecification(); + params.put("project.customer", parent.getId()); + return params; } @Override diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderWindowController.java b/client/src/main/java/com/ecep/contract/controller/customer/SalesOrderWindowController.java similarity index 67% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderWindowController.java rename to client/src/main/java/com/ecep/contract/controller/customer/SalesOrderWindowController.java index 529f3ca..92887b0 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/customer/SalesOrderWindowController.java @@ -1,20 +1,28 @@ -package com.ecep.contract.manager.ds.contract.controller.sale_order; +package com.ecep.contract.controller.customer; -import com.ecep.contract.manager.ds.contract.model.SalesOrder; -import com.ecep.contract.manager.ds.contract.service.SaleOrdersService; -import com.ecep.contract.manager.ds.contract.vo.SalesOrderViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import javafx.scene.control.*; -import javafx.stage.Stage; -import javafx.stage.Window; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -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.controller.AbstEntityController; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.controller.tab.SalesOrderTabSkinBase; +import com.ecep.contract.controller.tab.SalesOrderTabSkinBillVoucher; +import com.ecep.contract.controller.tab.SalesOrderTabSkinItems; +import com.ecep.contract.model.SalesOrder; +import com.ecep.contract.service.SaleOrdersService; +import com.ecep.contract.vm.SalesOrderViewModel; + +import javafx.scene.control.Button; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.stage.Stage; +import javafx.stage.Window; + @Lazy @Scope("prototype") @Component @@ -41,19 +49,6 @@ public class SalesOrderWindowController extends AbstEntityController diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/department/DepartmentManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/department/DepartmentManagerWindowController.java similarity index 76% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/department/DepartmentManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/department/DepartmentManagerWindowController.java index a5286b4..1b87e72 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/department/DepartmentManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/department/DepartmentManagerWindowController.java @@ -1,20 +1,22 @@ -package com.ecep.contract.manager.ds.other.controller.department; +package com.ecep.contract.controller.department; + -import com.ecep.contract.manager.ds.other.model.Department; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.service.DepartmentService; -import com.ecep.contract.manager.ds.other.vo.DepartmentViewModel; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.ViewModelService; -import javafx.event.ActionEvent; -import javafx.scene.control.TableColumn; -import javafx.stage.Stage; 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.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.vm.DepartmentViewModel; + +import javafx.event.ActionEvent; +import javafx.scene.control.TableColumn; +import javafx.stage.Stage; + @Lazy @Scope("prototype") @Component diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/AbstEmployeeBasedTabSkin.java b/client/src/main/java/com/ecep/contract/controller/employee/AbstEmployeeBasedTabSkin.java similarity index 65% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/employee/AbstEmployeeBasedTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/employee/AbstEmployeeBasedTabSkin.java index 9e04eb1..dd34380 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/AbstEmployeeBasedTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/employee/AbstEmployeeBasedTabSkin.java @@ -1,12 +1,13 @@ -package com.ecep.contract.manager.ds.other.controller.employee; +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.vm.EmployeeViewModel; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.service.EmployeeRoleService; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import com.ecep.contract.manager.ds.other.service.PermissionService; -import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; import lombok.Setter; public abstract class AbstEmployeeBasedTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/AbstEmployeeTableTabSkin.java b/client/src/main/java/com/ecep/contract/controller/employee/AbstEmployeeTableTabSkin.java similarity index 61% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/employee/AbstEmployeeTableTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/employee/AbstEmployeeTableTabSkin.java index c7fd430..98806ce 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/AbstEmployeeTableTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/employee/AbstEmployeeTableTabSkin.java @@ -1,16 +1,18 @@ -package com.ecep.contract.manager.ds.other.controller.employee; +package com.ecep.contract.controller.employee; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import com.ecep.contract.manager.ds.other.vo.EmployeeBasedViewModel; -import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.SpecificationUtils; +import org.apache.poi.ss.formula.functions.T; import org.springframework.data.jpa.domain.Specification; +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.vm.EmployeeBasedViewModel; +import com.ecep.contract.vm.EmployeeViewModel; +import com.ecep.contract.vm.IdentityViewModel; + public abstract class AbstEmployeeTableTabSkin> extends AbstEntityTableTabSkin implements TabSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeManagerSkin.java similarity index 82% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/employee/EmployeeManagerSkin.java index 42aae25..29f7ad7 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeManagerSkin.java @@ -1,17 +1,17 @@ -package com.ecep.contract.manager.ds.other.controller.employee; +package com.ecep.contract.controller.employee; + +import org.springframework.data.jpa.domain.Specification; + +import com.ecep.contract.controller.AbstEntityManagerSkin; +import com.ecep.contract.controller.ManagerSkin; +import com.ecep.contract.ds.other.service.DepartmentService; +import com.ecep.contract.model.Employee; +import com.ecep.contract.ui.table.cell.DepartmentTableCell; +import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.vm.EmployeeViewModel; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ds.other.model.Department; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.service.DepartmentService; -import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.ManagerSkin; -import com.ecep.contract.manager.ui.table.cell.DepartmentTableCell; -import com.ecep.contract.manager.util.SpecificationUtils; import javafx.event.ActionEvent; import javafx.scene.control.cell.CheckBoxTableCell; -import org.springframework.data.jpa.domain.Specification; public class EmployeeManagerSkin extends AbstEntityManagerSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeManagerWindowController.java similarity index 76% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/employee/EmployeeManagerWindowController.java index 03c1105..b896988 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeManagerWindowController.java @@ -1,25 +1,27 @@ -package com.ecep.contract.manager.ds.other.controller.employee; +package com.ecep.contract.controller.employee; + +import java.time.LocalDate; + +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.vm.EmployeeViewModel; -import com.ecep.contract.manager.cloud.u8.EmployeesSyncTask; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.ds.other.model.Department; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.util.UITools; import javafx.concurrent.Task; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.CheckBox; import javafx.scene.control.TableColumn; import javafx.stage.Stage; -import org.springframework.context.annotation.Lazy; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Component; - -import java.time.LocalDate; @Lazy @Scope("prototype") @@ -69,7 +71,7 @@ public class EmployeeManagerWindowController */ public void onSyncFromU8Action(ActionEvent event) { Task task = new EmployeesSyncTask(); - UITools.showTaskDialogAndWait("从 " + YongYouU8Service.NAME + " 同步员工数据", task, null); + UITools.showTaskDialogAndWait("从 " + CloudServiceConstant.U8_NAME + " 同步员工数据", task, null); } diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinAuthBind.java b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinAuthBind.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinAuthBind.java rename to client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinAuthBind.java index a4aeb14..9150578 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinAuthBind.java +++ b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinAuthBind.java @@ -1,21 +1,23 @@ -package com.ecep.contract.manager.ds.other.controller.employee; +package com.ecep.contract.controller.employee; + +import java.time.LocalDateTime; +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.model.Employee; +import com.ecep.contract.model.EmployeeAuthBind; +import com.ecep.contract.ui.table.cell.EmployeeTableCell; +import com.ecep.contract.vm.EmployeeAuthBindViewModel; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.EmployeeAuthBind; -import com.ecep.contract.manager.ds.other.service.EmployeeAuthBindService; -import com.ecep.contract.manager.ds.other.vo.EmployeeAuthBindViewModel; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell; import javafx.application.Platform; import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; import javafx.scene.control.Tab; import javafx.scene.control.TableColumn; import lombok.Setter; -import org.springframework.data.domain.Sort; - -import java.time.LocalDateTime; -import java.util.List; @FxmlPath("/ui/employee/employee-auth-bind.fxml") public class EmployeeTabSkinAuthBind diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinBase.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinBase.java rename to client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinBase.java index 774a9f3..f4e9a97 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinBase.java @@ -1,15 +1,16 @@ -package com.ecep.contract.manager.ds.other.controller.employee; - -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ds.other.model.Department; -import com.ecep.contract.manager.ds.other.service.DepartmentService; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.UITools; -import javafx.scene.control.Tab; -import javafx.util.converter.LocalDateStringConverter; +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 javafx.scene.control.Tab; +import javafx.util.converter.LocalDateStringConverter; + public class EmployeeTabSkinBase extends AbstEmployeeBasedTabSkin implements TabSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinLoginHistory.java b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinLoginHistory.java similarity index 82% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinLoginHistory.java rename to client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinLoginHistory.java index 21bc61a..5592830 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinLoginHistory.java +++ b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinLoginHistory.java @@ -1,17 +1,18 @@ -package com.ecep.contract.manager.ds.other.controller.employee; +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.model.EmployeeLoginHistory; +import com.ecep.contract.ui.table.cell.LocalDateTimeTableCell; +import com.ecep.contract.vm.EmployeeLoginHistoryViewModel; -import com.ecep.contract.manager.ds.other.model.EmployeeLoginHistory; -import com.ecep.contract.manager.ds.other.service.EmployeeLoginHistoryService; -import com.ecep.contract.manager.ds.other.vo.EmployeeLoginHistoryViewModel; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import javafx.application.Platform; import javafx.scene.control.Tab; import javafx.scene.control.TableColumn; -import java.time.LocalDateTime; - @FxmlPath("/ui/employee/employee-login-history.fxml") public class EmployeeTabSkinLoginHistory extends AbstEmployeeTableTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinRole.java b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinRole.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinRole.java rename to client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinRole.java index e73aef0..7aa56bd 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinRole.java +++ b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeTabSkinRole.java @@ -1,18 +1,20 @@ -package com.ecep.contract.manager.ds.other.controller.employee; +package com.ecep.contract.controller.employee; + +import java.util.List; + +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; + +import com.ecep.contract.Desktop; +import com.ecep.contract.controller.tab.TabSkin; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.EmployeeRole; -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.EmployeeRole; -import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.beans.property.BooleanProperty; import javafx.beans.property.SimpleBooleanProperty; import javafx.collections.ListChangeListener; import javafx.scene.control.ListCell; import javafx.scene.control.Tab; -import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.domain.Specification; - -import java.util.List; public class EmployeeTabSkinRole extends AbstEmployeeBasedTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeWindowController.java b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeWindowController.java similarity index 81% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeWindowController.java rename to client/src/main/java/com/ecep/contract/controller/employee/EmployeeWindowController.java index 05eeb52..42c10cb 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/employee/EmployeeWindowController.java @@ -1,18 +1,5 @@ -package com.ecep.contract.manager.ds.other.controller.employee; +package com.ecep.contract.controller.employee; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.EmployeeRole; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.ViewModelService; -import javafx.scene.control.*; -import javafx.scene.layout.BorderPane; -import javafx.stage.Stage; -import javafx.stage.Window; -import javafx.stage.WindowEvent; -import lombok.Getter; import org.controlsfx.control.ListSelectionView; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -21,6 +8,24 @@ import org.springframework.context.annotation.Lazy; 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.vm.EmployeeViewModel; + +import javafx.scene.control.CheckBox; +import javafx.scene.control.DatePicker; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TableView; +import javafx.scene.control.TextField; +import javafx.scene.layout.BorderPane; +import javafx.stage.Window; +import javafx.stage.WindowEvent; +import lombok.Getter; + @Lazy @Scope("prototype") @Component diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryManagerSkin.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/inventory/InventoryManagerSkin.java index ec06a2d..4d1f9e1 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryManagerSkin.java @@ -1,16 +1,16 @@ -package com.ecep.contract.manager.ds.other.controller.inventory; +package com.ecep.contract.controller.inventory; import java.util.function.Function; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.model.InventoryCatalog; -import com.ecep.contract.manager.ds.other.service.InventoryCatalogService; -import com.ecep.contract.manager.ds.other.service.InventoryService; -import com.ecep.contract.manager.ds.other.vo.InventoryViewModel; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; -import com.ecep.contract.manager.ui.util.LocalDateFieldTableCell; +import com.ecep.contract.controller.AbstEntityManagerSkin; +import com.ecep.contract.controller.table.LocalDateFieldTableCell; +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.vm.InventoryViewModel; import javafx.beans.property.Property; import javafx.event.ActionEvent; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryManagerWindowController.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/inventory/InventoryManagerWindowController.java index c64d26e..aecee83 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryManagerWindowController.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other.controller.inventory; +package com.ecep.contract.controller.inventory; import java.time.LocalDate; import java.time.LocalDateTime; @@ -8,13 +8,14 @@ import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.model.InventoryCatalog; -import com.ecep.contract.manager.ds.other.service.InventoryService; -import com.ecep.contract.manager.ds.other.vo.InventoryViewModel; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.util.UITools; +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.vm.InventoryViewModel; import javafx.event.ActionEvent; import javafx.fxml.FXML; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinBase.java similarity index 66% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinBase.java rename to client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinBase.java index 1fe34ae..80f00d0 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinBase.java @@ -1,19 +1,26 @@ -package com.ecep.contract.manager.ds.other.controller.inventory; +package com.ecep.contract.controller.inventory; + +import java.text.NumberFormat; +import java.time.format.DateTimeFormatter; +import java.util.function.Consumer; + +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.vm.InventoryViewModel; -import com.ecep.contract.manager.cloud.u8.ctx.InventoryCtx; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.model.InventoryCatalog; -import com.ecep.contract.manager.ds.other.service.InventoryCatalogService; -import com.ecep.contract.manager.ds.other.service.InventoryService; -import com.ecep.contract.manager.ds.other.vo.InventoryViewModel; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.UITools; import javafx.beans.binding.Bindings; import javafx.beans.property.SimpleDoubleProperty; import javafx.event.ActionEvent; @@ -24,11 +31,6 @@ import javafx.util.converter.LocalDateStringConverter; import javafx.util.converter.LocalDateTimeStringConverter; import javafx.util.converter.NumberStringConverter; import lombok.Setter; -import org.springframework.util.StringUtils; - -import java.text.NumberFormat; -import java.time.format.DateTimeFormatter; -import java.util.function.Consumer; public class InventoryTabSkinBase extends AbstEntityBasedTabSkin @@ -84,65 +86,83 @@ public class InventoryTabSkinBase catalogConverter.setFromString(getCatalogService()::findByName); UITools.autoCompletion(controller.catalogField, viewModel.getCatalog(), catalogConverter); - controller.purchaseTaxRateField.textProperty().bindBidirectional(viewModel.getPurchaseTaxRate(), new NumberStringConverter()); + controller.purchaseTaxRateField.textProperty().bindBidirectional(viewModel.getPurchaseTaxRate(), + new NumberStringConverter()); // 采购价 - bindPriceField(controller.purchasePriceField, viewModel.getPurchasePrice(), currencyStringConverter, viewModel::updatePurchasePrice); - bindPriceField(controller.purchaseTaxPriceField, viewModel.getPurchaseTaxPrice(), currencyStringConverter, viewModel::updatePurchaseTaxPrice); + bindPriceField(controller.purchasePriceField, viewModel.getPurchasePrice(), currencyStringConverter, + viewModel::updatePurchasePrice); + bindPriceField(controller.purchaseTaxPriceField, viewModel.getPurchaseTaxPrice(), currencyStringConverter, + viewModel::updatePurchaseTaxPrice); - controller.saleTaxRateField.textProperty().bindBidirectional(viewModel.getSaleTaxRate(), new NumberStringConverter()); + controller.saleTaxRateField.textProperty().bindBidirectional(viewModel.getSaleTaxRate(), + new NumberStringConverter()); // 销售价 - bindPriceField(controller.salePriceField, viewModel.getSalePrice(), currencyStringConverter, viewModel::updateSalePrice); - bindPriceField(controller.saleTaxPriceField, viewModel.getSaleTaxPrice(), currencyStringConverter, viewModel::updateSaleTaxPrice); + bindPriceField(controller.salePriceField, viewModel.getSalePrice(), currencyStringConverter, + viewModel::updateSalePrice); + bindPriceField(controller.saleTaxPriceField, viewModel.getSaleTaxPrice(), currencyStringConverter, + viewModel::updateSaleTaxPrice); // 采购价不能大于销售价 - Bindings.greaterThan(viewModel.getPurchasePrice(), viewModel.getSalePrice()).addListener((observable, oldValue, newValue) -> { - if (newValue) { - controller.purchasePriceField.getStyleClass().add("error"); - controller.salePriceField.getStyleClass().add("error"); - } else { - controller.purchasePriceField.getStyleClass().remove("error"); - controller.salePriceField.getStyleClass().remove("error"); - } - }); - Bindings.greaterThan(viewModel.getPurchaseTaxPrice(), viewModel.getSaleTaxPrice()).addListener((observable, oldValue, newValue) -> { - if (newValue) { - controller.purchaseTaxPriceField.getStyleClass().add("error"); - controller.saleTaxPriceField.getStyleClass().add("error"); - } else { - controller.purchaseTaxPriceField.getStyleClass().remove("error"); - controller.saleTaxPriceField.getStyleClass().remove("error"); - } - }); + Bindings.greaterThan(viewModel.getPurchasePrice(), viewModel.getSalePrice()) + .addListener((observable, oldValue, newValue) -> { + if (newValue) { + controller.purchasePriceField.getStyleClass().add("error"); + controller.salePriceField.getStyleClass().add("error"); + } else { + controller.purchasePriceField.getStyleClass().remove("error"); + controller.salePriceField.getStyleClass().remove("error"); + } + }); + Bindings.greaterThan(viewModel.getPurchaseTaxPrice(), viewModel.getSaleTaxPrice()) + .addListener((observable, oldValue, newValue) -> { + if (newValue) { + controller.purchaseTaxPriceField.getStyleClass().add("error"); + controller.saleTaxPriceField.getStyleClass().add("error"); + } else { + controller.purchaseTaxPriceField.getStyleClass().remove("error"); + controller.saleTaxPriceField.getStyleClass().remove("error"); + } + }); EmployeeStringConverter employeeStringConverter = getBean(EmployeeStringConverter.class); UITools.autoCompletion(controller.creatorField, viewModel.getCreator(), employeeStringConverter); DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern(MyDateTimeUtils.DEFAULT_DATE_FORMAT_PATTERN); - controller.createTimeField.textProperty().bindBidirectional(viewModel.getCreateTime(), new LocalDateStringConverter(dateFormatter, null)); + controller.createTimeField.textProperty().bindBidirectional(viewModel.getCreateTime(), + new LocalDateStringConverter(dateFormatter, null)); UITools.autoCompletion(controller.updaterField, viewModel.getUpdater(), employeeStringConverter); - DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(MyDateTimeUtils.DEFAULT_DATETIME_FORMAT_PATTERN); - controller.updateDateField.textProperty().bindBidirectional(viewModel.getUpdateDate(), new LocalDateTimeStringConverter(dateTimeFormatter, null)); - + DateTimeFormatter dateTimeFormatter = DateTimeFormatter + .ofPattern(MyDateTimeUtils.DEFAULT_DATETIME_FORMAT_PATTERN); + controller.updateDateField.textProperty().bindBidirectional(viewModel.getUpdateDate(), + new LocalDateTimeStringConverter(dateTimeFormatter, null)); controller.weightUnitField.textProperty().bindBidirectional(viewModel.getWeightUnit()); controller.sizeUnitField.textProperty().bindBidirectional(viewModel.getSizeUnit()); controller.volumeUnitField.textProperty().bindBidirectional(viewModel.getVolumeUnit()); controller.weightField.textProperty().bindBidirectional(viewModel.getWeight(), new NumberStringConverter()); - controller.packagedWeightField.textProperty().bindBidirectional(viewModel.getPackagedWeight(), new NumberStringConverter()); - controller.sizeLengthField.textProperty().bindBidirectional(viewModel.getSizeLength(), new NumberStringConverter()); - controller.sizeWidthField.textProperty().bindBidirectional(viewModel.getSizeWidth(), new NumberStringConverter()); - controller.sizeHeightField.textProperty().bindBidirectional(viewModel.getSizeHeight(), new NumberStringConverter()); + controller.packagedWeightField.textProperty().bindBidirectional(viewModel.getPackagedWeight(), + new NumberStringConverter()); + controller.sizeLengthField.textProperty().bindBidirectional(viewModel.getSizeLength(), + new NumberStringConverter()); + controller.sizeWidthField.textProperty().bindBidirectional(viewModel.getSizeWidth(), + new NumberStringConverter()); + controller.sizeHeightField.textProperty().bindBidirectional(viewModel.getSizeHeight(), + new NumberStringConverter()); controller.volumeField.textProperty().bindBidirectional(viewModel.getVolume(), new NumberStringConverter()); - controller.packagedSizeLengthField.textProperty().bindBidirectional(viewModel.getPackagedSizeLength(), new NumberStringConverter()); - controller.packagedSizeWidthField.textProperty().bindBidirectional(viewModel.getPackagedSizeWidth(), new NumberStringConverter()); - controller.packagedSizeHeightField.textProperty().bindBidirectional(viewModel.getPackagedSizeHeight(), new NumberStringConverter()); - controller.packagedVolumeField.textProperty().bindBidirectional(viewModel.getPackagedVolume(), new NumberStringConverter()); - + controller.packagedSizeLengthField.textProperty().bindBidirectional(viewModel.getPackagedSizeLength(), + new NumberStringConverter()); + controller.packagedSizeWidthField.textProperty().bindBidirectional(viewModel.getPackagedSizeWidth(), + new NumberStringConverter()); + controller.packagedSizeHeightField.textProperty().bindBidirectional(viewModel.getPackagedSizeHeight(), + new NumberStringConverter()); + controller.packagedVolumeField.textProperty().bindBidirectional(viewModel.getPackagedVolume(), + new NumberStringConverter()); controller.descriptionField.textProperty().bindBidirectional(viewModel.getDescription()); } - private void bindPriceField(TextField textField, SimpleDoubleProperty property, CurrencyStringConverter stringConverter, Consumer updater) { + private void bindPriceField(TextField textField, SimpleDoubleProperty property, + CurrencyStringConverter stringConverter, Consumer updater) { textField.setText(stringConverter.toString(property.get())); property.addListener((observable, oldValue, newValue) -> { textField.setText(stringConverter.toString(newValue)); diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinContracts.java b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinContracts.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinContracts.java rename to client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinContracts.java index 0840fef..0259095 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinContracts.java +++ b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinContracts.java @@ -1,18 +1,24 @@ -package com.ecep.contract.manager.ds.other.controller.inventory; +package com.ecep.contract.controller.inventory; + +import java.text.NumberFormat; +import java.time.LocalDate; + +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.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.vm.ContractViewModel; +import com.ecep.contract.vm.InventoryViewModel; -import com.ecep.contract.manager.ds.contract.controller.ContractWindowController; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractItem; -import com.ecep.contract.manager.ds.contract.service.ContractItemService; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.vo.ContractViewModel; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.service.InventoryHistoryPriceService; -import com.ecep.contract.manager.ds.other.vo.InventoryViewModel; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.SpecificationUtils; import jakarta.persistence.criteria.Root; import jakarta.persistence.criteria.Subquery; import javafx.scene.control.ContextMenu; @@ -21,14 +27,11 @@ import javafx.scene.control.Tab; import javafx.scene.control.TableColumn; import javafx.util.converter.CurrencyStringConverter; import lombok.Setter; -import org.springframework.data.jpa.domain.Specification; - -import java.text.NumberFormat; -import java.time.LocalDate; @FxmlPath("/ui/inventory/inventory-contract.fxml") public class InventoryTabSkinContracts - extends AbstEntityTableTabSkin + extends + AbstEntityTableTabSkin implements TabSkin { public TableColumn idColumn; public TableColumn nameColumn; @@ -77,7 +80,6 @@ public class InventoryTabSkinContracts return controller.contractsTab; } - @Override public void initializeTable() { super.initializeTable(); diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinHistoryPrice.java b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinHistoryPrice.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinHistoryPrice.java rename to client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinHistoryPrice.java index 0779352..1389f6f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinHistoryPrice.java +++ b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryTabSkinHistoryPrice.java @@ -1,28 +1,4 @@ -package com.ecep.contract.manager.ds.other.controller.inventory; - -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractItem; -import com.ecep.contract.manager.ds.contract.service.ContractItemService; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.other.model.HistoryPrice; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.model.InventoryHistoryPrice; -import com.ecep.contract.manager.ds.other.service.InventoryHistoryPriceService; -import com.ecep.contract.manager.ds.other.vo.InventoryHistoryPriceViewModel; -import com.ecep.contract.manager.ds.other.vo.InventoryViewModel; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.SpecificationUtils; -import javafx.event.ActionEvent; -import javafx.scene.control.*; -import javafx.scene.control.cell.TextFieldTableCell; -import javafx.util.converter.CurrencyStringConverter; -import javafx.util.converter.NumberStringConverter; -import lombok.Setter; -import org.hibernate.Hibernate; -import org.springframework.data.jpa.domain.Specification; +package com.ecep.contract.controller.inventory; import java.text.NumberFormat; import java.time.MonthDay; @@ -32,9 +8,40 @@ import java.util.HashMap; import java.util.List; 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.vm.InventoryHistoryPriceViewModel; +import com.ecep.contract.vm.InventoryViewModel; + +import javafx.event.ActionEvent; +import javafx.scene.control.Button; +import javafx.scene.control.ContextMenu; +import javafx.scene.control.MenuItem; +import javafx.scene.control.Tab; +import javafx.scene.control.TableColumn; +import javafx.scene.control.cell.TextFieldTableCell; +import javafx.util.converter.CurrencyStringConverter; +import javafx.util.converter.NumberStringConverter; +import lombok.Setter; + @FxmlPath("/ui/inventory/inventory-history-price.fxml") public class InventoryTabSkinHistoryPrice - extends AbstEntityTableTabSkin + extends + AbstEntityTableTabSkin implements TabSkin { public Button refreshBtn; public TableColumn idColumn; @@ -66,7 +73,6 @@ public class InventoryTabSkinHistoryPrice public TableColumn miniPurchaseTaxPriceColumn; public TableColumn miniPurchasePriceDateColumn; - @Setter InventoryHistoryPriceService service; @Setter @@ -109,7 +115,6 @@ public class InventoryTabSkinHistoryPrice return controller.historyPriceTab; } - @Override public void initializeTable() { super.initializeTable(); @@ -185,7 +190,6 @@ public class InventoryTabSkinHistoryPrice } } - List items = getContractItemService().findAllByInventory(getParent()); items.stream().collect(Collectors.groupingBy(v -> { Contract contract = v.getContract(); @@ -213,8 +217,10 @@ public class InventoryTabSkinHistoryPrice return contract.getSetupDate(); })).ifPresent(v -> update(historyPrice.getLatestSalePrice(), v)); - list.stream().max(Comparator.comparing(ContractItem::getTaxPrice)).ifPresent(v -> update(historyPrice.getMaxSalePrice(), v)); - list.stream().min(Comparator.comparing(ContractItem::getTaxPrice)).ifPresent(v -> update(historyPrice.getMiniSalePrice(), v)); + list.stream().max(Comparator.comparing(ContractItem::getTaxPrice)) + .ifPresent(v -> update(historyPrice.getMaxSalePrice(), v)); + list.stream().min(Comparator.comparing(ContractItem::getTaxPrice)) + .ifPresent(v -> update(historyPrice.getMiniSalePrice(), v)); } else if (ContractPayWay.PAY.equals(payWay)) { // 采购 @@ -223,8 +229,10 @@ public class InventoryTabSkinHistoryPrice return contract.getSetupDate(); })).ifPresent(v -> update(historyPrice.getLatestPurchasePrice(), v)); - list.stream().max(Comparator.comparing(ContractItem::getTaxPrice)).ifPresent(v -> update(historyPrice.getMaxPurchasePrice(), v)); - list.stream().min(Comparator.comparing(ContractItem::getTaxPrice)).ifPresent(v -> update(historyPrice.getMiniPurchasePrice(), v)); + list.stream().max(Comparator.comparing(ContractItem::getTaxPrice)) + .ifPresent(v -> update(historyPrice.getMaxPurchasePrice(), v)); + list.stream().min(Comparator.comparing(ContractItem::getTaxPrice)) + .ifPresent(v -> update(historyPrice.getMiniPurchasePrice(), v)); } else { } diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryWindowController.java b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryWindowController.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryWindowController.java rename to client/src/main/java/com/ecep/contract/controller/inventory/InventoryWindowController.java index bcb9dd5..ac0c618 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/inventory/InventoryWindowController.java @@ -1,20 +1,27 @@ -package com.ecep.contract.manager.ds.other.controller.inventory; +package com.ecep.contract.controller.inventory; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.service.InventoryService; -import com.ecep.contract.manager.ds.other.vo.InventoryViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import javafx.beans.binding.Bindings; -import javafx.fxml.FXML; -import javafx.scene.control.*; -import javafx.scene.layout.BorderPane; -import javafx.stage.WindowEvent; 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.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.vm.InventoryViewModel; + +import javafx.beans.binding.Bindings; +import javafx.fxml.FXML; +import javafx.scene.control.Button; +import javafx.scene.control.CheckBox; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.scene.layout.BorderPane; +import javafx.stage.WindowEvent; + @Lazy @Scope("prototype") @Component @@ -31,7 +38,6 @@ public class InventoryWindowController extends AbstEntityController "[" + viewModel.getId().get() + "] 存货详情 " + viewModel.getName().getValue() + " " + viewModel.getSpecification().get(), viewModel.getName(), viewModel.getCode(), viewModel.getSpecification())); + getTitle().bind(Bindings.createStringBinding( + () -> "[" + viewModel.getId().get() + "] 存货详情 " + viewModel.getName().getValue() + " " + + viewModel.getSpecification().get(), + viewModel.getName(), viewModel.getCode(), viewModel.getSpecification())); root.getScene().getStylesheets().add("/ui/inventory/inventory.css"); } diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/AbstEmployeeRoleBasedTabSkin.java b/client/src/main/java/com/ecep/contract/controller/permission/AbstEmployeeRoleBasedTabSkin.java similarity index 65% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/permission/AbstEmployeeRoleBasedTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/permission/AbstEmployeeRoleBasedTabSkin.java index eea9c1b..3027faf 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/AbstEmployeeRoleBasedTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/AbstEmployeeRoleBasedTabSkin.java @@ -1,11 +1,11 @@ -package com.ecep.contract.manager.ds.other.controller.permission; +package com.ecep.contract.controller.permission; -import com.ecep.contract.manager.ds.other.model.EmployeeRole; -import com.ecep.contract.manager.ds.other.service.EmployeeRoleService; -import com.ecep.contract.manager.ds.other.service.FunctionService; -import com.ecep.contract.manager.ds.other.service.PermissionService; -import com.ecep.contract.manager.ds.other.vo.EmployeeRoleViewModel; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +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.vm.EmployeeRoleViewModel; public abstract class AbstEmployeeRoleBasedTabSkin extends AbstEntityBasedTabSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeFunctionsManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeFunctionsManagerWindowController.java similarity index 75% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeFunctionsManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/permission/EmployeeFunctionsManagerWindowController.java index 4f7af77..19ec478 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeFunctionsManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeFunctionsManagerWindowController.java @@ -1,24 +1,23 @@ -package com.ecep.contract.manager.ds.other.controller.permission; +package com.ecep.contract.controller.permission; -import com.ecep.contract.manager.ds.other.model.Function; -import com.ecep.contract.manager.ds.other.service.FunctionService; -import com.ecep.contract.manager.ds.other.service.PermissionService; -import com.ecep.contract.manager.ds.other.vo.FunctionViewModel; -import com.ecep.contract.manager.ds.other.vo.PermissionViewModel; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.ViewModelService; -import javafx.event.ActionEvent; -import javafx.fxml.FXML; -import javafx.scene.control.TableColumn; -import javafx.scene.control.TableView; -import javafx.stage.Stage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Description; import org.springframework.context.annotation.Lazy; 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.vm.FunctionViewModel; + +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.scene.control.TableColumn; +import javafx.stage.Stage; + @Lazy @Scope("prototype") diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleManagerSkin.java similarity index 75% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleManagerSkin.java index 4b8d24d..7be03dc 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleManagerSkin.java @@ -1,16 +1,18 @@ -package com.ecep.contract.manager.ds.other.controller.permission; +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.vm.EmployeeRoleViewModel; -import com.ecep.contract.manager.ds.other.model.EmployeeRole; -import com.ecep.contract.manager.ds.other.service.PermissionService; -import com.ecep.contract.manager.ds.other.vo.EmployeeRoleViewModel; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.ManagerSkin; import javafx.scene.control.cell.CheckBoxTableCell; import lombok.Setter; public class EmployeeRoleManagerSkin - extends AbstEntityManagerSkin + extends + AbstEntityManagerSkin implements ManagerSkin, EditableEntityTableTabSkin { @Setter diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleManagerWindowController.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleManagerWindowController.java index f3473f0..c3364c7 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleManagerWindowController.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other.controller.permission; +package com.ecep.contract.controller.permission; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -7,15 +7,14 @@ import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import com.ecep.contract.manager.ds.other.model.EmployeeRole; -import com.ecep.contract.manager.ds.other.service.EmployeeRoleService; -import com.ecep.contract.manager.ds.other.service.PermissionService; -import com.ecep.contract.manager.ds.other.vo.EmployeeRoleViewModel; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; +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.vm.EmployeeRoleViewModel; import javafx.event.ActionEvent; -import javafx.fxml.FXML; import javafx.scene.control.TableColumn; import javafx.stage.Stage; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleTabSkinBase.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleTabSkinBase.java rename to client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleTabSkinBase.java index ff24674..171fe9d 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleTabSkinBase.java @@ -1,7 +1,8 @@ -package com.ecep.contract.manager.ds.other.controller.permission; +package com.ecep.contract.controller.permission; + +import com.ecep.contract.Desktop; +import com.ecep.contract.controller.tab.TabSkin; -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.scene.control.Tab; public class EmployeeRoleTabSkinBase extends AbstEmployeeRoleBasedTabSkin implements TabSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleTabSkinFunctions.java b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleTabSkinFunctions.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleTabSkinFunctions.java rename to client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleTabSkinFunctions.java index 40fa63b..3388409 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleTabSkinFunctions.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleTabSkinFunctions.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other.controller.permission; +package com.ecep.contract.controller.permission; import java.util.List; @@ -6,8 +6,8 @@ import org.controlsfx.control.ListSelectionView; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; -import com.ecep.contract.manager.ds.other.model.EmployeeRole; -import com.ecep.contract.manager.ds.other.model.Function; +import com.ecep.contract.model.EmployeeRole; +import com.ecep.contract.model.Function; import javafx.beans.property.SimpleBooleanProperty; import javafx.collections.ListChangeListener; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleWindowController.java b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleWindowController.java similarity index 77% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleWindowController.java rename to client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleWindowController.java index d8fbb4f..99a7811 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/EmployeeRoleWindowController.java @@ -1,18 +1,5 @@ -package com.ecep.contract.manager.ds.other.controller.permission; +package com.ecep.contract.controller.permission; -import com.ecep.contract.manager.ds.other.model.EmployeeRole; -import com.ecep.contract.manager.ds.other.service.EmployeeRoleService; -import com.ecep.contract.manager.ds.other.service.PermissionService; -import com.ecep.contract.manager.ds.other.vo.EmployeeRoleViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.ViewModelService; - -import javafx.fxml.FXML; -import javafx.scene.control.*; -import javafx.scene.layout.BorderPane; -import javafx.stage.Window; -import javafx.stage.WindowEvent; import org.controlsfx.control.ListSelectionView; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -21,6 +8,24 @@ import org.springframework.context.annotation.Lazy; 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.vm.EmployeeRoleViewModel; + +import javafx.fxml.FXML; +import javafx.scene.control.CheckBox; +import javafx.scene.control.DatePicker; +import javafx.scene.control.Label; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TextField; +import javafx.scene.layout.BorderPane; +import javafx.stage.Window; +import javafx.stage.WindowEvent; + @Lazy @Scope("prototype") @@ -53,7 +58,7 @@ public class EmployeeRoleWindowController extends AbstEntityController functionsField; + public ListSelectionView functionsField; /* diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/permission/FunctionManagerSkin.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/permission/FunctionManagerSkin.java index 5d1d6ff..b0442ac 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/FunctionManagerSkin.java @@ -1,10 +1,10 @@ -package com.ecep.contract.manager.ds.other.controller.permission; +package com.ecep.contract.controller.permission; -import com.ecep.contract.manager.ds.other.model.Function; -import com.ecep.contract.manager.ds.other.service.FunctionService; -import com.ecep.contract.manager.ds.other.service.PermissionService; -import com.ecep.contract.manager.ds.other.vo.FunctionViewModel; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; +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.vm.FunctionViewModel; import javafx.scene.control.TableColumn; import javafx.scene.control.cell.CheckBoxTableCell; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/permission/FunctionTabSkinBase.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionTabSkinBase.java rename to client/src/main/java/com/ecep/contract/controller/permission/FunctionTabSkinBase.java index 4ea7ad7..1a7112f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/FunctionTabSkinBase.java @@ -1,8 +1,8 @@ -package com.ecep.contract.manager.ds.other.controller.permission; +package com.ecep.contract.controller.permission; -import com.ecep.contract.manager.ds.other.model.Function; -import com.ecep.contract.manager.ds.other.vo.FunctionViewModel; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.model.Function; +import com.ecep.contract.vm.FunctionViewModel; import javafx.scene.control.Tab; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionTabSkinPermission.java b/client/src/main/java/com/ecep/contract/controller/permission/FunctionTabSkinPermission.java similarity index 77% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionTabSkinPermission.java rename to client/src/main/java/com/ecep/contract/controller/permission/FunctionTabSkinPermission.java index 622eba0..42cb507 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionTabSkinPermission.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/FunctionTabSkinPermission.java @@ -1,16 +1,16 @@ -package com.ecep.contract.manager.ds.other.controller.permission; +package com.ecep.contract.controller.permission; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.jpa.domain.Specification; -import com.ecep.contract.manager.ds.other.model.Function; -import com.ecep.contract.manager.ds.other.model.Permission; -import com.ecep.contract.manager.ds.other.service.PermissionService; -import com.ecep.contract.manager.ds.other.vo.FunctionViewModel; -import com.ecep.contract.manager.ds.other.vo.PermissionViewModel; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.util.SpecificationUtils; +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.vm.FunctionViewModel; +import com.ecep.contract.vm.PermissionViewModel; import javafx.fxml.FXML; import javafx.scene.control.Tab; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionWindowController.java b/client/src/main/java/com/ecep/contract/controller/permission/FunctionWindowController.java similarity index 81% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionWindowController.java rename to client/src/main/java/com/ecep/contract/controller/permission/FunctionWindowController.java index da4e80a..5089164 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/FunctionWindowController.java @@ -1,16 +1,5 @@ -package com.ecep.contract.manager.ds.other.controller.permission; +package com.ecep.contract.controller.permission; -import com.ecep.contract.manager.ds.other.model.Function; -import com.ecep.contract.manager.ds.other.service.FunctionService; -import com.ecep.contract.manager.ds.other.vo.FunctionViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import javafx.scene.control.*; -import javafx.scene.layout.BorderPane; -import javafx.fxml.FXML; -import javafx.stage.Window; -import javafx.stage.WindowEvent; -import lombok.Getter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -18,6 +7,23 @@ import org.springframework.context.annotation.Lazy; 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.vm.FunctionViewModel; + +import javafx.fxml.FXML; +import javafx.scene.control.CheckBox; +import javafx.scene.control.Label; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TextField; +import javafx.scene.layout.BorderPane; +import javafx.stage.Window; +import javafx.stage.WindowEvent; +import lombok.Getter; + @Lazy @Scope("prototype") @Component diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/PermissionManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/permission/PermissionManagerSkin.java similarity index 92% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/permission/PermissionManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/permission/PermissionManagerSkin.java index a8e0fb3..c3c5329 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/PermissionManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/permission/PermissionManagerSkin.java @@ -1,11 +1,21 @@ -package com.ecep.contract.manager.ds.other.controller.permission; +package com.ecep.contract.controller.permission; + +import java.util.ArrayList; +import java.util.List; +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.vm.FunctionViewModel; +import com.ecep.contract.vm.PermissionViewModel; -import com.ecep.contract.manager.ds.other.model.Permission; -import com.ecep.contract.manager.ds.other.vo.FunctionViewModel; -import com.ecep.contract.manager.ds.other.vo.PermissionViewModel; -import com.ecep.contract.manager.ui.ManagerSkin; -import com.ecep.contract.manager.ui.table.TableTabSkin; -import com.ecep.contract.manager.util.UITools; import javafx.application.Platform; import javafx.beans.property.Property; import javafx.collections.FXCollections; @@ -16,14 +26,6 @@ import javafx.scene.control.MenuItem; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import lombok.Setter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.data.jpa.domain.Specification; - -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.function.Function; public class PermissionManagerSkin implements ManagerSkin, TableTabSkin { private static final Logger logger = LoggerFactory.getLogger(PermissionManagerSkin.class); @@ -98,7 +100,7 @@ public class PermissionManagerSkin implements ManagerSkin, TableTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/AbstProjectTableTabSkin.java b/client/src/main/java/com/ecep/contract/controller/project/AbstProjectTableTabSkin.java similarity index 61% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/AbstProjectTableTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/project/AbstProjectTableTabSkin.java index 30e0570..85560ac 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/AbstProjectTableTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/AbstProjectTableTabSkin.java @@ -1,16 +1,17 @@ -package com.ecep.contract.manager.ds.project.controller; +package com.ecep.contract.controller.project; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ds.project.vo.ProjectBasedViewModel; -import com.ecep.contract.manager.ds.project.vo.ProjectViewModel; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.SpecificationUtils; import org.springframework.data.jpa.domain.Specification; +import com.ecep.contract.controller.tab.TabSkin; +import com.ecep.contract.controller.table.AbstEntityTableTabSkin; +import com.ecep.contract.ds.project.service.ProjectService; +import com.ecep.contract.model.IdentityEntity; +import com.ecep.contract.model.Project; +import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.vm.IdentityViewModel; +import com.ecep.contract.vm.ProjectBasedViewModel; +import com.ecep.contract.vm.ProjectViewModel; + public abstract class AbstProjectTableTabSkin> extends AbstEntityTableTabSkin implements TabSkin { @@ -23,7 +24,6 @@ public abstract class AbstProjectTableTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCost.java b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCost.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCost.java rename to client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCost.java index bbf8ada..e52dadd 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCost.java +++ b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCost.java @@ -1,30 +1,34 @@ -package com.ecep.contract.manager.ds.project.controller; +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.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.vm.ProjectCostItemViewModel; +import com.ecep.contract.vm.ProjectCostViewModel; -import com.ecep.contract.manager.ds.contract.service.ContractItemService; -import com.ecep.contract.manager.ds.contract.vo.ProjectCostItemViewModel; -import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.project.controller.cost.ProjectCostWindowController; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectCost; -import com.ecep.contract.manager.ds.project.model.ProjectCostItem; -import com.ecep.contract.manager.ds.project.service.ProjectCostItemService; -import com.ecep.contract.manager.ds.project.service.ProjectCostService; -import com.ecep.contract.manager.ds.project.vo.ProjectCostViewModel; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import javafx.application.Platform; import javafx.event.ActionEvent; -import javafx.scene.control.*; +import javafx.scene.control.ContextMenu; +import javafx.scene.control.MenuItem; +import javafx.scene.control.Tab; +import javafx.scene.control.TableColumn; import javafx.scene.control.cell.TextFieldTableCell; import javafx.util.converter.CurrencyStringConverter; import javafx.util.converter.NumberStringConverter; import lombok.Setter; -import java.text.NumberFormat; -import java.time.LocalDateTime; - @FxmlPath("/ui/project/project-tab-cost.fxml") public class ProjectTabSkinCost extends AbstProjectTableTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCustomerInfo.java b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCustomerInfo.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCustomerInfo.java rename to client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCustomerInfo.java index af7e102..7fdaacf 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCustomerInfo.java +++ b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCustomerInfo.java @@ -1,22 +1,30 @@ -package com.ecep.contract.manager.ds.project.controller; +package com.ecep.contract.controller.project; + +import java.util.List; +import java.util.function.BiFunction; + +import org.controlsfx.control.textfield.AutoCompletionBinding; +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.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.manager.SpringApp; -import com.ecep.contract.manager.ds.company.CompanyStringConverter; -import com.ecep.contract.manager.ds.company.controller.CompanyWindowController; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyBankAccount; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.company.model.CompanyInvoiceInfo; -import com.ecep.contract.manager.ds.company.service.CompanyBankAccountService; -import com.ecep.contract.manager.ds.company.service.CompanyContactService; -import com.ecep.contract.manager.ds.company.service.CompanyInvoiceInfoService; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ds.other.model.Bank; -import com.ecep.contract.manager.ds.other.service.BankService; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.UITools; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.StringProperty; import javafx.fxml.FXML; @@ -25,12 +33,6 @@ import javafx.scene.control.Label; import javafx.scene.control.Tab; import javafx.scene.control.TextField; import javafx.util.StringConverter; -import org.controlsfx.control.textfield.AutoCompletionBinding; -import org.hibernate.Hibernate; -import org.springframework.util.StringUtils; - -import java.util.List; -import java.util.function.BiFunction; @FxmlPath("/ui/project/project-tab-customer.fxml") public class ProjectTabSkinCustomerInfo diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCustomerSatisfactionSurvey.java b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCustomerSatisfactionSurvey.java similarity index 82% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCustomerSatisfactionSurvey.java rename to client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCustomerSatisfactionSurvey.java index d0b818f..d0fe385 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCustomerSatisfactionSurvey.java +++ b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinCustomerSatisfactionSurvey.java @@ -1,29 +1,29 @@ -package com.ecep.contract.manager.ds.project.controller; - -import com.ecep.contract.manager.ds.company.CompanyStringConverter; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.project.controller.satisfaction_survey.CustomerSatisfactionSurveyWindowController; -import com.ecep.contract.manager.ds.project.model.CustomerSatisfactionSurvey; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.service.CustomerSatisfactionSurveyService; -import com.ecep.contract.manager.ds.project.vo.CustomerSatisfactionSurveyViewModel; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.RefreshableSkin; -import javafx.scene.control.Tab; -import javafx.scene.control.TableColumn; -import javafx.util.converter.LocalDateStringConverter; -import lombok.Setter; +package com.ecep.contract.controller.project; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; -import java.util.concurrent.CompletableFuture; + +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.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.vm.CustomerSatisfactionSurveyViewModel; + +import javafx.scene.control.Tab; +import javafx.scene.control.TableColumn; +import javafx.util.converter.LocalDateStringConverter; +import lombok.Setter; @FxmlPath("/ui/project/project-tab-customer-satisfaction-survey.fxml") public class ProjectTabSkinCustomerSatisfactionSurvey diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinFundPlan.java b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinFundPlan.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinFundPlan.java rename to client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinFundPlan.java index 2da6c2d..77ecf17 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinFundPlan.java +++ b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinFundPlan.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.project.controller; +package com.ecep.contract.controller.project; import java.time.LocalDate; import java.time.LocalDateTime; @@ -9,19 +9,20 @@ import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractPayPlan; -import com.ecep.contract.manager.ds.contract.service.ContractPayPlanService; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectFundPlan; -import com.ecep.contract.manager.ds.project.service.ProjectFundPlanService; -import com.ecep.contract.manager.ds.project.vo.ProjectFundPlanViewModel; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.RefreshableSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.util.NumberUtils; +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.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.util.NumberUtils; +import com.ecep.contract.vm.ProjectFundPlanViewModel; import javafx.event.ActionEvent; import javafx.scene.control.Button; @@ -37,14 +38,14 @@ import lombok.Setter; @FxmlPath("/ui/project/project-tab-fund-plan.fxml") public class ProjectTabSkinFundPlan extends AbstProjectTableTabSkin - implements TabSkin, EditableEntityTableTabSkin, RefreshableSkin { + implements TabSkin, EditableEntityTableTabSkin { private static final Logger logger = LoggerFactory.getLogger(ProjectTabSkinFundPlan.class); public TableColumn idColumn; - public TableColumn versionColumn; public TableColumn payDateColumn; public TableColumn payRatioColumn; public TableColumn payCurrencyColumn; + public TableColumn balanceColumn; public TableColumn payTermColumn; public TableColumn updateDateColumn; public TableColumn payWayColumn; @@ -83,13 +84,13 @@ public class ProjectTabSkinFundPlan super.initializeTable(); // 关闭所有的排序功能 idColumn.setSortable(false); - versionColumn.setSortable(false); payDateColumn.setSortable(false); payRatioColumn.setSortable(false); payCurrencyColumn.setSortable(false); payTermColumn.setSortable(false); updateDateColumn.setSortable(false); payWayColumn.setSortable(false); + balanceColumn.setSortable(false); bindNumberColumn(idColumn, ProjectFundPlanViewModel::getId); bindLocalDateColumn(payDateColumn, ProjectFundPlanViewModel::getPayDate); @@ -100,6 +101,11 @@ public class ProjectTabSkinFundPlan }); bindNumberColumn(payRatioColumn, ProjectFundPlanViewModel::getPayRatio); bindNumberColumn(payCurrencyColumn, ProjectFundPlanViewModel::getPayCurrency); + payCurrencyColumn.setCellFactory( + NumberTableCell.forTableColumn(controller.getCurrentEmployee().getNumberStringConverter())); + bindNumberColumn(balanceColumn, ProjectFundPlanViewModel::getBalance); + balanceColumn.setCellFactory( + NumberTableCell.forTableColumn(controller.getCurrentEmployee().getNumberStringConverter())); bindColumn(payTermColumn, ProjectFundPlanViewModel::getPayTerm); bindLocalDateTimeColumn(updateDateColumn, ProjectFundPlanViewModel::getUpdateDate); updatePlanBtn.setOnAction(this::onUpdatePlanAction); @@ -112,7 +118,19 @@ public class ProjectTabSkinFundPlan return null; } // TODO 按付款日期排序 - // rows.stream().sorted(Comparator.comparing(ProjectFundPlanViewModel::getPayDate)).collect(Collectors.toList()); + rows = rows.stream().sorted(java.util.Comparator.comparing( + model -> model.getPayDate().get(), + java.util.Comparator.nullsFirst(java.util.Comparator.naturalOrder()))).collect(Collectors.toList()); + + double balance = 0; + for (ProjectFundPlanViewModel row : rows) { + if (row.getPayWay().get() == ContractPayWay.RECEIVE) { + balance += row.getPayCurrency().get(); + } else if (row.getPayWay().get() == ContractPayWay.PAY) { + balance -= row.getPayCurrency().get(); + } + row.getBalance().set(balance); + } return rows; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinQuotation.java b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinQuotation.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinQuotation.java rename to client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinQuotation.java index 842f7b6..c70189b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinQuotation.java +++ b/client/src/main/java/com/ecep/contract/controller/project/ProjectTabSkinQuotation.java @@ -1,35 +1,37 @@ -package com.ecep.contract.manager.ds.project.controller; - -import com.ecep.contract.manager.ds.company.CompanyStringConverter; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ui.table.cell.EvaluationFileTableCell; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEvaluationFormFile; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.project.controller.quotation.ProjectQuotationWindowController; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectQuotation; -import com.ecep.contract.manager.ds.project.service.ProjectQuotationService; -import com.ecep.contract.manager.ds.project.vo.ProjectQuotationViewModel; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.RefreshableSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; -import javafx.scene.control.*; -import javafx.scene.control.cell.TextFieldTableCell; -import javafx.util.converter.CurrencyStringConverter; -import javafx.util.converter.LocalDateStringConverter; -import lombok.Setter; +package com.ecep.contract.controller.project; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; -import java.util.concurrent.CompletableFuture; + +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.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.vm.ProjectQuotationViewModel; + +import javafx.scene.control.Tab; +import javafx.scene.control.TableCell; +import javafx.scene.control.TableColumn; +import javafx.scene.control.cell.TextFieldTableCell; +import javafx.util.converter.CurrencyStringConverter; +import javafx.util.converter.LocalDateStringConverter; +import lombok.Setter; @FxmlPath("/ui/project/project-tab-quotation.fxml") public class ProjectTabSkinQuotation diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/ProjectWindowController.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectWindowController.java rename to client/src/main/java/com/ecep/contract/controller/project/ProjectWindowController.java index 054c66f..ec17e55 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/ProjectWindowController.java @@ -1,20 +1,7 @@ -package com.ecep.contract.manager.ds.project.controller; +package com.ecep.contract.controller.project; + +import java.time.format.DateTimeFormatter; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import com.ecep.contract.manager.ds.project.model.*; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ds.project.vo.ProjectViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import javafx.beans.binding.Bindings; -import javafx.event.ActionEvent; -import javafx.scene.control.*; -import javafx.scene.layout.BorderPane; -import javafx.stage.Window; -import javafx.stage.WindowEvent; -import javafx.util.converter.LocalDateStringConverter; import org.hibernate.Hibernate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -23,7 +10,38 @@ import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import java.time.format.DateTimeFormatter; +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; +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.vm.ProjectViewModel; + +import javafx.beans.binding.Bindings; +import javafx.event.ActionEvent; +import javafx.scene.control.Button; +import javafx.scene.control.CheckBox; +import javafx.scene.control.ComboBox; +import javafx.scene.control.DatePicker; +import javafx.scene.control.Label; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TableView; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.scene.layout.BorderPane; +import javafx.stage.Window; +import javafx.stage.WindowEvent; +import javafx.util.converter.LocalDateStringConverter; @Lazy @Scope("prototype") diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/bid/ProjectBidTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/project/bid/ProjectBidTabSkinBase.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/bid/ProjectBidTabSkinBase.java rename to client/src/main/java/com/ecep/contract/controller/project/bid/ProjectBidTabSkinBase.java index 87cc895..281f1b4 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/bid/ProjectBidTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/project/bid/ProjectBidTabSkinBase.java @@ -1,48 +1,4 @@ -package com.ecep.contract.manager.ds.project.controller.bid; - -import com.ecep.contract.manager.ds.company.CompanyStringConverter; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractFile; -import com.ecep.contract.manager.ds.contract.service.ContractFileService; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.customer.CompanyCustomerFileType; -import com.ecep.contract.manager.ds.customer.controller.CompanyCustomerEvaluationFormFileWindowController; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEvaluationFormFile; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFile; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.project.controller.cost.ProjectCostWindowController; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectBid; -import com.ecep.contract.manager.ds.project.model.ProjectCost; -import com.ecep.contract.manager.ds.project.service.ProjectCostService; -import com.ecep.contract.manager.ds.project.service.ProjectQuotationService; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ds.project.vo.ProjectBidViewModel; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.DesktopUtils; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.UITools; -import javafx.application.Platform; -import javafx.beans.property.SimpleObjectProperty; -import javafx.event.ActionEvent; -import javafx.scene.control.Tab; -import javafx.scene.control.TextField; -import javafx.scene.control.ToggleGroup; -import javafx.stage.FileChooser; -import javafx.util.converter.LocalDateStringConverter; -import javafx.util.converter.LocalDateTimeStringConverter; -import javafx.util.converter.NumberStringConverter; -import lombok.Setter; -import org.hibernate.Hibernate; +package com.ecep.contract.controller.project.bid; import java.io.File; import java.text.NumberFormat; @@ -55,6 +11,52 @@ import java.util.Comparator; import java.util.List; import java.util.concurrent.CompletableFuture; +import org.hibernate.Hibernate; + +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.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; +import com.ecep.contract.model.CompanyCustomerFile; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractFile; +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.vm.ProjectBidViewModel; + +import javafx.application.Platform; +import javafx.beans.property.SimpleObjectProperty; +import javafx.event.ActionEvent; +import javafx.scene.control.Tab; +import javafx.scene.control.TextField; +import javafx.scene.control.ToggleGroup; +import javafx.stage.FileChooser; +import javafx.util.converter.LocalDateStringConverter; +import javafx.util.converter.LocalDateTimeStringConverter; +import javafx.util.converter.NumberStringConverter; +import lombok.Setter; + public class ProjectBidTabSkinBase extends AbstEntityBasedTabSkin implements TabSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/bid/ProjectBidWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/bid/ProjectBidWindowController.java similarity index 82% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/bid/ProjectBidWindowController.java rename to client/src/main/java/com/ecep/contract/controller/project/bid/ProjectBidWindowController.java index fc4758f..2b5c608 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/bid/ProjectBidWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/bid/ProjectBidWindowController.java @@ -1,23 +1,30 @@ -package com.ecep.contract.manager.ds.project.controller.bid; +package com.ecep.contract.controller.project.bid; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectBid; -import com.ecep.contract.manager.ds.project.service.ProjectBidService; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ds.project.vo.ProjectBidViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import javafx.event.ActionEvent; -import javafx.scene.control.*; -import javafx.scene.layout.BorderPane; -import javafx.scene.layout.HBox; -import javafx.stage.WindowEvent; -import lombok.Setter; import org.hibernate.Hibernate; import org.springframework.context.annotation.Lazy; 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.vm.ProjectBidViewModel; + +import javafx.event.ActionEvent; +import javafx.scene.control.Button; +import javafx.scene.control.CheckBox; +import javafx.scene.control.RadioButton; +import javafx.scene.control.Tab; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.HBox; +import javafx.stage.WindowEvent; +import lombok.Setter; + @Lazy @Scope("prototype") @Component diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostExportExcelTasker.java b/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostExportExcelTasker.java similarity index 93% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostExportExcelTasker.java rename to client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostExportExcelTasker.java index 1cb364c..6e1d061 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostExportExcelTasker.java +++ b/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostExportExcelTasker.java @@ -1,14 +1,24 @@ -package com.ecep.contract.manager.ds.project.controller.cost; +package com.ecep.contract.controller.project.cost; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.contract.service.ContractFileService; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.project.model.*; -import com.ecep.contract.manager.ds.project.service.*; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; -import lombok.Setter; -import org.apache.poi.ss.usermodel.*; +import static com.ecep.contract.util.ExcelUtils.*; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.time.LocalDate; +import java.util.List; + +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.PageMargin; +import org.apache.poi.ss.usermodel.PrintSetup; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.usermodel.WorkbookFactory; import org.apache.poi.ss.util.CellAddress; import org.apache.poi.ss.util.CellRangeAddress; import org.hibernate.Hibernate; @@ -16,11 +26,27 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.StringUtils; -import java.io.*; -import java.time.LocalDate; -import java.util.List; +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.model.Company; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.ProductType; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectCost; +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 static com.ecep.contract.manager.util.ExcelUtils.*; +import lombok.Setter; public class ProjectCostExportExcelTasker extends Tasker { private static final Logger logger = LoggerFactory.getLogger(ProjectCostExportExcelTasker.class); diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostTabSkinBase.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostTabSkinBase.java rename to client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostTabSkinBase.java index 3ef5bd5..f18c131 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostTabSkinBase.java @@ -1,29 +1,4 @@ -package com.ecep.contract.manager.ds.project.controller.cost; - -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractFile; -import com.ecep.contract.manager.ds.contract.service.ContractFileService; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectCost; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ds.project.vo.ProjectCostViewModel; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.DesktopUtils; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.UITools; -import javafx.application.Platform; -import javafx.event.ActionEvent; -import javafx.scene.control.Tab; -import javafx.stage.FileChooser; -import javafx.util.converter.CurrencyStringConverter; -import javafx.util.converter.LocalDateTimeStringConverter; -import javafx.util.converter.NumberStringConverter; -import lombok.Setter; -import org.hibernate.Hibernate; +package com.ecep.contract.controller.project.cost; import java.io.File; import java.text.NumberFormat; @@ -34,6 +9,33 @@ import java.util.Comparator; import java.util.List; import java.util.concurrent.CompletableFuture; +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.vm.ProjectCostViewModel; + +import javafx.application.Platform; +import javafx.event.ActionEvent; +import javafx.scene.control.Tab; +import javafx.stage.FileChooser; +import javafx.util.converter.CurrencyStringConverter; +import javafx.util.converter.LocalDateTimeStringConverter; +import javafx.util.converter.NumberStringConverter; +import lombok.Setter; + public class ProjectCostTabSkinBase extends AbstEntityBasedTabSkin implements TabSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostTabSkinItems.java b/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostTabSkinItems.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostTabSkinItems.java rename to client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostTabSkinItems.java index 8409c50..05b727f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostTabSkinItems.java +++ b/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostTabSkinItems.java @@ -1,45 +1,4 @@ -package com.ecep.contract.manager.ds.project.controller.cost; - -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.ds.contract.service.ContractItemService; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.vo.ProjectCostItemViewModel; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell; -import com.ecep.contract.manager.ds.other.controller.inventory.InventoryWindowController; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.model.Price; -import com.ecep.contract.manager.ds.other.service.InventoryService; -import com.ecep.contract.manager.ds.other.vo.InventoryViewModel; -import com.ecep.contract.manager.ds.project.model.ProjectCost; -import com.ecep.contract.manager.ds.project.model.ProjectCostItem; -import com.ecep.contract.manager.ds.project.service.ProjectCostItemService; -import com.ecep.contract.manager.ds.project.service.ProjectCostService; -import com.ecep.contract.manager.ds.project.vo.ProjectCostViewModel; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; -import com.ecep.contract.manager.util.SpecificationUtils; -import com.ecep.contract.manager.util.UITools; -import javafx.application.Platform; -import javafx.beans.binding.BooleanBinding; -import javafx.beans.property.Property; -import javafx.event.ActionEvent; -import javafx.scene.Node; -import javafx.scene.control.*; -import javafx.scene.control.cell.TextFieldTableCell; -import javafx.scene.input.KeyCode; -import javafx.util.converter.CurrencyStringConverter; -import javafx.util.converter.NumberStringConverter; -import javafx.util.converter.PercentageStringConverter; -import lombok.Setter; -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; +package com.ecep.contract.controller.project.cost; import java.text.NumberFormat; import java.time.LocalDateTime; @@ -48,9 +7,65 @@ import java.util.Comparator; import java.util.List; 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.tab.TabSkin; +import com.ecep.contract.controller.table.AbstEntityTableTabSkin; +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.vm.InventoryViewModel; +import com.ecep.contract.vm.ProjectCostItemViewModel; +import com.ecep.contract.vm.ProjectCostViewModel; + +import javafx.application.Platform; +import javafx.beans.binding.BooleanBinding; +import javafx.beans.property.Property; +import javafx.event.ActionEvent; +import javafx.scene.Node; +import javafx.scene.control.Button; +import javafx.scene.control.Cell; +import javafx.scene.control.CheckBox; +import javafx.scene.control.ContextMenu; +import javafx.scene.control.Label; +import javafx.scene.control.MenuItem; +import javafx.scene.control.SelectionMode; +import javafx.scene.control.Tab; +import javafx.scene.control.TableCell; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TextField; +import javafx.scene.control.ToggleButton; +import javafx.scene.control.cell.TextFieldTableCell; +import javafx.scene.input.KeyCode; +import javafx.util.converter.CurrencyStringConverter; +import javafx.util.converter.NumberStringConverter; +import javafx.util.converter.PercentageStringConverter; +import lombok.Setter; + @FxmlPath("/ui/project/project-cost-tab-item.fxml") public class ProjectCostTabSkinItems - extends AbstEntityTableTabSkin + extends + AbstEntityTableTabSkin implements TabSkin { public TableColumn idColumn; @@ -97,7 +112,6 @@ public class ProjectCostTabSkinItems @Setter private InventoryService inventoryService; - public ProjectCostTabSkinItems(ProjectCostWindowController controller) { super(controller); } @@ -180,7 +194,8 @@ public class ProjectCostTabSkinItems if (textField == null) { textField = createTextField(this, converter); - AutoCompletionBinding binding = TextFields.bindAutoCompletion(textField, converter::suggest, converter); + AutoCompletionBinding binding = TextFields.bindAutoCompletion(textField, converter::suggest, + converter); binding.setOnAutoCompleted(event -> { commitEdit(event.getCompletion()); }); @@ -195,7 +210,6 @@ public class ProjectCostTabSkinItems cancelEdit(this, converter, null); } - @Override public void updateItem(Inventory item, boolean empty) { super.updateItem(item, empty); @@ -218,7 +232,8 @@ public class ProjectCostTabSkinItems private static String getItemText(Cell cell, EntityStringConverter converter) { Inventory inventory = converter.prefixObject(cell.getItem()); - return inventory == null ? "-" : StringUtils.hasText(inventory.getCode()) ? inventory.getCode() : ("#" + inventory.getId()); + return inventory == null ? "-" + : StringUtils.hasText(inventory.getCode()) ? inventory.getCode() : ("#" + inventory.getId()); } static TextField createTextField(final Cell cell, final EntityStringConverter converter) { @@ -239,8 +254,8 @@ public class ProjectCostTabSkinItems } static void startEdit(final Cell cell, - final EntityStringConverter converter, - final TextField textField) { + final EntityStringConverter converter, + final TextField textField) { if (textField != null) { textField.setText(getItemText(cell, converter)); } @@ -258,7 +273,6 @@ public class ProjectCostTabSkinItems } } - @Override public void initializeTab() { super.initializeTab(); @@ -272,7 +286,8 @@ public class ProjectCostTabSkinItems importLockCb.selectedProperty().bindBidirectional(viewModel.getImportLock()); importFromSalesContractBtn.disableProperty().bind(viewModel.getImportLock()); - lockPriceMethodBtn.textProperty().bind(lockPriceMethodBtn.selectedProperty().map(v -> v ? "锁定不含税单价" : "锁定含税单价")); + lockPriceMethodBtn.textProperty() + .bind(lockPriceMethodBtn.selectedProperty().map(v -> v ? "锁定不含税单价" : "锁定含税单价")); table.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); BooleanBinding taxPriceVisible = switchTaxPriceColumnBtn.selectedProperty().not(); @@ -287,14 +302,15 @@ public class ProjectCostTabSkinItems inExclusiveTaxAmountColumn.visibleProperty().bind(unTaxPriceVisible); inTaxAmountLabel.textProperty().bind(viewModel.getInTaxAmount().map(currencyStringConverter::toString)); - inExclusiveTaxAmountLabel.textProperty().bind(viewModel.getInExclusiveTaxAmount().map(currencyStringConverter::toString)); + inExclusiveTaxAmountLabel.textProperty() + .bind(viewModel.getInExclusiveTaxAmount().map(currencyStringConverter::toString)); outTaxAmountLabel.textProperty().bind(viewModel.getOutTaxAmount().map(currencyStringConverter::toString)); - outExclusiveTaxAmountLabel.textProperty().bind(viewModel.getOutExclusiveTaxAmount().map(currencyStringConverter::toString)); + outExclusiveTaxAmountLabel.textProperty() + .bind(viewModel.getOutExclusiveTaxAmount().map(currencyStringConverter::toString)); }); importFromSalesContractBtn.setOnAction(this::importFromSalesContractAction); - idColumn.setCellValueFactory(param -> param.getValue().getId()); titleColumn.setCellValueFactory(param -> param.getValue().getTitle()); titleColumn.setCellFactory(TextFieldTableCell.forTableColumn()); @@ -318,10 +334,10 @@ public class ProjectCostTabSkinItems inventoryColumn.setCellValueFactory(param -> param.getValue().getInventory()); inventoryColumn.setCellFactory(param -> new AutoCompletionInventoryTableCell(converter)); - inventoryColumn.comparatorProperty().set(Comparator.comparing(converter::toString, Comparator.nullsLast(Comparator.naturalOrder()))); + inventoryColumn.comparatorProperty() + .set(Comparator.comparing(converter::toString, Comparator.nullsLast(Comparator.naturalOrder()))); inventoryColumn.setOnEditCommit(this::inventoryColumnEditCommit); - initializeNumberColumn(inQuantityColumn, ProjectCostItemViewModel::getInQuantity); inQuantityColumn.setOnEditCommit(event -> { ProjectCostItemViewModel row = event.getRowValue(); @@ -381,7 +397,6 @@ public class ProjectCostTabSkinItems inTaxAmountColumn.setCellFactory(TextFieldTableCell.forTableColumn(currencyStringConverter)); inTaxAmountColumn.setEditable(false); - initializeNumberColumn(inExclusiveTaxPriceColumn, ProjectCostItemViewModel::getInExclusiveTaxPrice); inExclusiveTaxPriceColumn.setOnEditCommit(event -> { ProjectCostItemViewModel row = event.getRowValue(); @@ -393,7 +408,6 @@ public class ProjectCostTabSkinItems inExclusiveTaxAmountColumn.setCellFactory(TextFieldTableCell.forTableColumn(currencyStringConverter)); inExclusiveTaxAmountColumn.setEditable(false); - initializeNumberColumn(outQuantityColumn, ProjectCostItemViewModel::getOutQuantity); outQuantityColumn.setOnEditCommit(event -> { ProjectCostItemViewModel row = event.getRowValue(); @@ -419,7 +433,6 @@ public class ProjectCostTabSkinItems outTaxAmountColumn.setCellFactory(TextFieldTableCell.forTableColumn(currencyStringConverter)); outTaxAmountColumn.setEditable(false); - initializeNumberColumn(outExclusiveTaxPriceColumn, ProjectCostItemViewModel::getOutExclusiveTaxPrice); outExclusiveTaxPriceColumn.setOnEditCommit(event -> { ProjectCostItemViewModel row = event.getRowValue(); @@ -430,13 +443,13 @@ public class ProjectCostTabSkinItems outExclusiveTaxAmountColumn.setCellFactory(TextFieldTableCell.forTableColumn(currencyStringConverter)); outExclusiveTaxAmountColumn.setEditable(false); - grossProfitColumn.setCellValueFactory(param -> param.getValue().getGrossProfit()); grossProfitColumn.setCellFactory(TextFieldTableCell.forTableColumn(currencyStringConverter)); grossProfitColumn.setEditable(false); grossProfitMarginColumn.setCellValueFactory(param -> param.getValue().getGrossProfitMargin()); - grossProfitMarginColumn.setCellFactory(TextFieldTableCell.forTableColumn(new PercentageStringConverter(getLocale()))); + grossProfitMarginColumn + .setCellFactory(TextFieldTableCell.forTableColumn(new PercentageStringConverter(getLocale()))); grossProfitMarginColumn.setEditable(false); creatorColumn.setCellValueFactory(param -> param.getValue().getCreator()); @@ -493,7 +506,6 @@ public class ProjectCostTabSkinItems changed(row); } - private void importFromSalesContractAction(ActionEvent event) { ProjectCostImportItemsFromContractsTasker tasker = new ProjectCostImportItemsFromContractsTasker(); tasker.setCost(getEntity()); @@ -502,8 +514,8 @@ public class ProjectCostTabSkinItems loadTableDataSet(getEntity()); } - - private void initializeNumberColumn(TableColumn column, Function> supplier) { + private void initializeNumberColumn(TableColumn column, + Function> supplier) { column.setCellValueFactory(param -> supplier.apply(param.getValue())); column.setCellFactory(TextFieldTableCell.forTableColumn(new NumberStringConverter())); column.setOnEditCommit(event -> changed(event, supplier)); @@ -550,8 +562,8 @@ public class ProjectCostTabSkinItems * @param event */ private void compositeRows(ActionEvent event) { - List selectedItems = new ArrayList<>(getTableView().getSelectionModel().getSelectedItems()); - + List selectedItems = new ArrayList<>( + getTableView().getSelectionModel().getSelectedItems()); double inQuantity = selectedItems.stream().mapToDouble(v -> v.getInQuantity().get()).sum(); double inAmount = selectedItems.stream().mapToDouble(v -> v.getInTaxAmount().get()).sum(); @@ -631,7 +643,6 @@ public class ProjectCostTabSkinItems } } - /** * 计算统计数 * diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostWindowController.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostWindowController.java rename to client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostWindowController.java index a2ac85f..5d217b3 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/cost/ProjectCostWindowController.java @@ -1,24 +1,30 @@ -package com.ecep.contract.manager.ds.project.controller.cost; +package com.ecep.contract.controller.project.cost; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectCost; -import com.ecep.contract.manager.ds.project.service.ProjectCostService; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ds.project.vo.ProjectCostViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.util.UITools; -import javafx.event.ActionEvent; -import javafx.scene.control.*; -import javafx.scene.layout.BorderPane; -import javafx.stage.Window; -import javafx.stage.WindowEvent; import org.hibernate.Hibernate; 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.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.vm.ProjectCostViewModel; + +import javafx.event.ActionEvent; +import javafx.scene.control.Button; +import javafx.scene.control.CheckBox; +import javafx.scene.control.Tab; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.scene.layout.BorderPane; +import javafx.stage.Window; +import javafx.stage.WindowEvent; + @Lazy @Scope("prototype") @Component diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/industry/ProjectIndustryManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/project/industry/ProjectIndustryManagerSkin.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/industry/ProjectIndustryManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/project/industry/ProjectIndustryManagerSkin.java index 5fba89f..6ebb786 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/industry/ProjectIndustryManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/industry/ProjectIndustryManagerSkin.java @@ -1,11 +1,12 @@ -package com.ecep.contract.manager.ds.project.controller.industry; +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.vm.ProjectIndustryViewModel; -import com.ecep.contract.manager.ds.project.model.ProjectIndustry; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ds.project.vo.ProjectIndustryViewModel; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.ManagerSkin; import javafx.scene.control.TableColumn; import javafx.scene.control.cell.TextFieldTableCell; import lombok.Setter; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/industry/ProjectIndustryManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/industry/ProjectIndustryManagerWindowController.java similarity index 75% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/industry/ProjectIndustryManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/project/industry/ProjectIndustryManagerWindowController.java index b60e8b1..0612fc7 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/industry/ProjectIndustryManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/industry/ProjectIndustryManagerWindowController.java @@ -1,20 +1,21 @@ -package com.ecep.contract.manager.ds.project.controller.industry; +package com.ecep.contract.controller.project.industry; + +import java.time.LocalDate; -import com.ecep.contract.manager.ds.project.model.ProjectIndustry; -import com.ecep.contract.manager.ds.project.service.ProjectIndustryService; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ds.project.vo.ProjectIndustryViewModel; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.ViewModelService; -import javafx.scene.control.TableColumn; -import javafx.stage.Stage; 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 java.time.LocalDate; +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.vm.ProjectIndustryViewModel; + +import javafx.scene.control.TableColumn; +import javafx.stage.Stage; @Lazy @Scope("prototype") diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/product_type/ProductTypeManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/project/product_type/ProductTypeManagerSkin.java similarity index 85% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/product_type/ProductTypeManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/project/product_type/ProductTypeManagerSkin.java index a8d8ab9..4734397 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/product_type/ProductTypeManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/product_type/ProductTypeManagerSkin.java @@ -1,10 +1,11 @@ -package com.ecep.contract.manager.ds.project.controller.product_type; +package com.ecep.contract.controller.project.product_type; + +import com.ecep.contract.controller.AbstEntityManagerSkin; +import com.ecep.contract.controller.ManagerSkin; +import com.ecep.contract.controller.table.EditableEntityTableTabSkin; +import com.ecep.contract.model.ProductType; +import com.ecep.contract.vm.ProductTypeViewModel; -import com.ecep.contract.manager.ds.project.model.ProductType; -import com.ecep.contract.manager.ds.project.vo.ProductTypeViewModel; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.ManagerSkin; import javafx.scene.control.TableColumn; import javafx.scene.control.cell.TextFieldTableCell; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/product_type/ProductTypeManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/product_type/ProductTypeManagerWindowController.java similarity index 72% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/product_type/ProductTypeManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/project/product_type/ProductTypeManagerWindowController.java index 8d8bd54..598c313 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/product_type/ProductTypeManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/product_type/ProductTypeManagerWindowController.java @@ -1,26 +1,24 @@ -package com.ecep.contract.manager.ds.project.controller.product_type; +package com.ecep.contract.controller.project.product_type; + +import java.time.LocalDate; -import com.ecep.contract.manager.ds.project.model.ProductType; -import com.ecep.contract.manager.ds.project.service.ProductTypeService; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ds.project.vo.ProductTypeViewModel; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.ViewModelService; -import javafx.event.ActionEvent; -import javafx.scene.control.TableColumn; -import javafx.stage.Stage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Component; -import java.time.LocalDate; +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.vm.ProductTypeViewModel; + +import javafx.event.ActionEvent; +import javafx.scene.control.TableColumn; +import javafx.stage.Stage; @Lazy @Scope("prototype") diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/project_type/ProjectTypeManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/project/project_type/ProjectTypeManagerSkin.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/project_type/ProjectTypeManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/project/project_type/ProjectTypeManagerSkin.java index 5d18100..60324f9 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/project_type/ProjectTypeManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/project_type/ProjectTypeManagerSkin.java @@ -1,12 +1,13 @@ -package com.ecep.contract.manager.ds.project.controller.project_type; +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.vm.ProjectTypeViewModel; -import com.ecep.contract.manager.ds.project.model.ProjectType; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ds.project.service.ProjectTypeService; -import com.ecep.contract.manager.ds.project.vo.ProjectTypeViewModel; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.ManagerSkin; import javafx.scene.control.TableColumn; import javafx.scene.control.cell.TextFieldTableCell; import lombok.Setter; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/project_type/ProjectTypeManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/project_type/ProjectTypeManagerWindowController.java similarity index 69% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/project_type/ProjectTypeManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/project/project_type/ProjectTypeManagerWindowController.java index d078fdd..6f6631b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/project_type/ProjectTypeManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/project_type/ProjectTypeManagerWindowController.java @@ -1,24 +1,21 @@ -package com.ecep.contract.manager.ds.project.controller.project_type; +package com.ecep.contract.controller.project.project_type; + +import java.time.LocalDate; -import com.ecep.contract.manager.ds.project.model.ProjectType; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ds.project.service.ProjectTypeService; -import com.ecep.contract.manager.ds.project.vo.ProjectTypeViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedController; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.ViewModelService; -import javafx.event.ActionEvent; -import javafx.scene.control.TableColumn; -import javafx.stage.Stage; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; 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 java.time.LocalDate; +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.vm.ProjectTypeViewModel; + +import javafx.scene.control.TableColumn; +import javafx.stage.Stage; @Lazy @Scope("prototype") diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/quotation/ProjectQuotationExportAsExcelFile.java b/client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationExportAsExcelFile.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/quotation/ProjectQuotationExportAsExcelFile.java rename to client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationExportAsExcelFile.java index a3eb07f..1b594fd 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/quotation/ProjectQuotationExportAsExcelFile.java +++ b/client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationExportAsExcelFile.java @@ -1,16 +1,17 @@ -package com.ecep.contract.manager.ds.project.controller.quotation; +package com.ecep.contract.controller.project.quotation; + +import static com.ecep.contract.util.ExcelUtils.getCellValue; +import static com.ecep.contract.util.ExcelUtils.setCellValue; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.time.LocalDate; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.contract.service.ContractFileService; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectQuotation; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.Setter; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; @@ -19,11 +20,18 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.StringUtils; -import java.io.*; -import java.time.LocalDate; +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.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 static com.ecep.contract.manager.util.ExcelUtils.getCellValue; -import static com.ecep.contract.manager.util.ExcelUtils.setCellValue; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.Setter; /** * 报价审批导出为Excel文件 diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/quotation/ProjectQuotationTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationTabSkinBase.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/quotation/ProjectQuotationTabSkinBase.java rename to client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationTabSkinBase.java index 3b906c8..0b0281c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/quotation/ProjectQuotationTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationTabSkinBase.java @@ -1,33 +1,45 @@ -package com.ecep.contract.manager.ds.project.controller.quotation; +package com.ecep.contract.controller.project.quotation; + +import java.io.File; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; +import java.util.Comparator; +import java.util.List; +import java.util.concurrent.CompletableFuture; + +import org.hibernate.Hibernate; + +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.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; +import com.ecep.contract.model.CompanyCustomerFile; +import com.ecep.contract.model.Contract; +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.vm.ProjectQuotationViewModel; -import com.ecep.contract.manager.ds.company.CompanyStringConverter; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractFile; -import com.ecep.contract.manager.ds.contract.service.ContractFileService; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.customer.CompanyCustomerFileType; -import com.ecep.contract.manager.ds.customer.controller.CompanyCustomerEvaluationFormFileWindowController; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEvaluationFormFile; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFile; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectQuotation; -import com.ecep.contract.manager.ds.project.service.ProjectQuotationService; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ds.project.vo.ProjectQuotationViewModel; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.DesktopUtils; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.UITools; import javafx.application.Platform; import javafx.beans.property.SimpleObjectProperty; import javafx.event.ActionEvent; @@ -39,16 +51,6 @@ import javafx.util.converter.LocalDateStringConverter; import javafx.util.converter.LocalDateTimeStringConverter; import javafx.util.converter.NumberStringConverter; import lombok.Setter; -import org.hibernate.Hibernate; - -import java.io.File; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; -import java.time.format.DateTimeFormatter; -import java.util.Comparator; -import java.util.List; -import java.util.concurrent.CompletableFuture; public class ProjectQuotationTabSkinBase extends AbstEntityBasedTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/quotation/ProjectQuotationWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationWindowController.java similarity index 80% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/quotation/ProjectQuotationWindowController.java rename to client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationWindowController.java index 229c85a..1057031 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/quotation/ProjectQuotationWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/quotation/ProjectQuotationWindowController.java @@ -1,25 +1,32 @@ -package com.ecep.contract.manager.ds.project.controller.quotation; +package com.ecep.contract.controller.project.quotation; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectQuotation; -import com.ecep.contract.manager.ds.project.service.ProjectQuotationService; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ds.project.vo.ProjectQuotationViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.util.UITools; -import javafx.event.ActionEvent; -import javafx.fxml.FXML; -import javafx.scene.control.*; -import javafx.scene.layout.BorderPane; -import javafx.scene.layout.HBox; -import javafx.stage.WindowEvent; import org.hibernate.Hibernate; 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.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.vm.ProjectQuotationViewModel; + +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.scene.control.Button; +import javafx.scene.control.CheckBox; +import javafx.scene.control.RadioButton; +import javafx.scene.control.Tab; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.HBox; +import javafx.stage.WindowEvent; + @Lazy @Scope("prototype") @Component diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/AbstProjectSaleTypeBasedTabSkin.java b/client/src/main/java/com/ecep/contract/controller/project/sale_type/AbstProjectSaleTypeBasedTabSkin.java similarity index 52% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/AbstProjectSaleTypeBasedTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/project/sale_type/AbstProjectSaleTypeBasedTabSkin.java index 723835c..41a3cc1 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/AbstProjectSaleTypeBasedTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/sale_type/AbstProjectSaleTypeBasedTabSkin.java @@ -1,10 +1,10 @@ -package com.ecep.contract.manager.ds.project.controller.sale_type; +package com.ecep.contract.controller.project.sale_type; -import com.ecep.contract.manager.ds.project.model.ProjectSaleType; -import com.ecep.contract.manager.ds.project.service.SaleTypeService; -import com.ecep.contract.manager.ds.project.vo.SaleTypeViewModel; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; +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; public abstract class AbstProjectSaleTypeBasedTabSkin extends AbstEntityBasedTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/AbstProjectSaleTypeTableTabSkin.java b/client/src/main/java/com/ecep/contract/controller/project/sale_type/AbstProjectSaleTypeTableTabSkin.java similarity index 58% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/AbstProjectSaleTypeTableTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/project/sale_type/AbstProjectSaleTypeTableTabSkin.java index 7fe6d1e..bb1ca87 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/AbstProjectSaleTypeTableTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/sale_type/AbstProjectSaleTypeTableTabSkin.java @@ -1,15 +1,17 @@ -package com.ecep.contract.manager.ds.project.controller.sale_type; +package com.ecep.contract.controller.project.sale_type; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.project.model.ProjectSaleType; -import com.ecep.contract.manager.ds.project.service.SaleTypeService; -import com.ecep.contract.manager.ds.project.vo.SaleTypeViewModel; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.SpecificationUtils; +import org.apache.poi.ss.formula.functions.T; import org.springframework.data.jpa.domain.Specification; +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.vm.IdentityViewModel; +import com.ecep.contract.vm.SaleTypeViewModel; + public abstract class AbstProjectSaleTypeTableTabSkin> extends AbstEntityTableTabSkin implements TabSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeBaseTabSkin.java b/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeBaseTabSkin.java similarity index 92% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeBaseTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeBaseTabSkin.java index ace1021..1dc96f3 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeBaseTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeBaseTabSkin.java @@ -1,6 +1,7 @@ -package com.ecep.contract.manager.ds.project.controller.sale_type; +package com.ecep.contract.controller.project.sale_type; + +import com.ecep.contract.controller.tab.TabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.scene.control.Tab; import javafx.util.converter.DoubleStringConverter; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeManagerSkin.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeManagerSkin.java index bf54c7f..44c0cfc 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeManagerSkin.java @@ -1,20 +1,22 @@ -package com.ecep.contract.manager.ds.project.controller.sale_type; +package com.ecep.contract.controller.project.sale_type; + +import java.util.List; + +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.ViewModelService; +import com.ecep.contract.vm.SaleTypeViewModel; -import com.ecep.contract.manager.ds.project.model.ProjectSaleType; -import com.ecep.contract.manager.ds.project.service.SaleTypeService; -import com.ecep.contract.manager.ds.project.vo.SaleTypeViewModel; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.ManagerSkin; -import com.ecep.contract.manager.ui.ViewModelService; import javafx.scene.control.TableColumn; import javafx.scene.control.cell.CheckBoxTableCell; import javafx.scene.control.cell.TextFieldTableCell; import lombok.Setter; -import org.springframework.data.domain.Page; -import org.springframework.data.jpa.domain.Specification; - -import java.util.List; public class ProjectSaleTypeManagerSkin extends AbstEntityManagerSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeManagerWindowController.java similarity index 73% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeManagerWindowController.java index 9187cd9..965cc44 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeManagerWindowController.java @@ -1,23 +1,20 @@ -package com.ecep.contract.manager.ds.project.controller.sale_type; +package com.ecep.contract.controller.project.sale_type; + +import java.time.LocalDate; -import com.ecep.contract.manager.ds.project.model.ProjectSaleType; -import com.ecep.contract.manager.ds.project.service.SaleTypeService; -import com.ecep.contract.manager.ds.project.vo.SaleTypeViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedController; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.ViewModelService; -import javafx.event.ActionEvent; -import javafx.scene.control.TableColumn; -import javafx.stage.Stage; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; 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 java.time.LocalDate; +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 javafx.scene.control.TableColumn; +import javafx.stage.Stage; @Lazy @Scope("prototype") diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeRequireFilesTabSkin.java b/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeRequireFilesTabSkin.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeRequireFilesTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeRequireFilesTabSkin.java index 374547c..12fa52f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeRequireFilesTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeRequireFilesTabSkin.java @@ -1,12 +1,18 @@ -package com.ecep.contract.manager.ds.project.controller.sale_type; +package com.ecep.contract.controller.project.sale_type; + +import java.util.Arrays; +import java.util.List; + +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.manager.SpringApp; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.contract.model.ContractFileTypeLocal; -import com.ecep.contract.manager.ds.contract.service.ContractFileService; -import com.ecep.contract.manager.ds.project.model.ProjectSaleTypeRequireFileType; -import com.ecep.contract.manager.ds.project.service.ProjectSaleTypeRequireFileTypeService; -import com.ecep.contract.manager.ui.tab.TabSkin; import impl.org.controlsfx.skin.ListSelectionViewSkin; import javafx.beans.property.SimpleBooleanProperty; import javafx.collections.FXCollections; @@ -15,12 +21,12 @@ import javafx.collections.ObservableList; import javafx.collections.ObservableMap; import javafx.event.ActionEvent; import javafx.scene.Node; -import javafx.scene.control.*; +import javafx.scene.control.Button; +import javafx.scene.control.ListCell; +import javafx.scene.control.ListView; +import javafx.scene.control.Skin; +import javafx.scene.control.Tab; import lombok.Setter; -import org.controlsfx.control.ListSelectionView; - -import java.util.Arrays; -import java.util.List; /** * diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeWindowController.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeWindowController.java rename to client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeWindowController.java index 230bd97..0cb17ff 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/sale_type/ProjectSaleTypeWindowController.java @@ -1,17 +1,7 @@ -package com.ecep.contract.manager.ds.project.controller.sale_type; +package com.ecep.contract.controller.project.sale_type; + +import java.time.LocalDate; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.project.model.ProjectSaleType; -import com.ecep.contract.manager.ds.project.service.SaleTypeService; -import com.ecep.contract.manager.ds.project.vo.DeliverySignMethodViewModel; -import com.ecep.contract.manager.ds.project.vo.SaleTypeViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import javafx.scene.control.*; -import javafx.scene.layout.BorderPane; -import javafx.scene.layout.VBox; -import javafx.stage.Stage; -import javafx.stage.Window; import org.controlsfx.control.ListSelectionView; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,7 +10,27 @@ import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import java.time.LocalDate; +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.vm.DeliverySignMethodViewModel; +import com.ecep.contract.vm.SaleTypeViewModel; + +import javafx.scene.control.CheckBox; +import javafx.scene.control.DatePicker; +import javafx.scene.control.Label; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TableView; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; +import javafx.stage.Window; @Lazy diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/SignMethodTabSkin.java b/client/src/main/java/com/ecep/contract/controller/project/sale_type/SignMethodTabSkin.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/SignMethodTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/project/sale_type/SignMethodTabSkin.java index 98b30b6..6b9d30b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/SignMethodTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/sale_type/SignMethodTabSkin.java @@ -1,10 +1,11 @@ -package com.ecep.contract.manager.ds.project.controller.sale_type; +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.vm.DeliverySignMethodViewModel; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.project.model.DeliverySignMethod; -import com.ecep.contract.manager.ds.project.service.DeliverySignMethodService; -import com.ecep.contract.manager.ds.project.vo.DeliverySignMethodViewModel; -import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.scene.control.Tab; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/satisfaction_survey/CustomerSatisfactionSurveyTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/CustomerSatisfactionSurveyTabSkinBase.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/satisfaction_survey/CustomerSatisfactionSurveyTabSkinBase.java rename to client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/CustomerSatisfactionSurveyTabSkinBase.java index c1385a2..d72f12f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/satisfaction_survey/CustomerSatisfactionSurveyTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/CustomerSatisfactionSurveyTabSkinBase.java @@ -1,26 +1,38 @@ -package com.ecep.contract.manager.ds.project.controller.satisfaction_survey; +package com.ecep.contract.controller.project.satisfaction_survey; + +import java.io.File; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +import org.hibernate.Hibernate; +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.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; +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.vm.CustomerSatisfactionSurveyViewModel; -import com.ecep.contract.manager.ds.company.CompanyStringConverter; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.customer.CompanyCustomerFileType; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEvaluationFormFile; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFile; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.project.model.CustomerSatisfactionSurvey; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.service.ProjectCostService; -import com.ecep.contract.manager.ds.project.service.ProjectQuotationService; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ds.project.vo.CustomerSatisfactionSurveyViewModel; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.UITools; import javafx.application.Platform; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; @@ -35,16 +47,6 @@ import javafx.util.converter.LocalDateStringConverter; import javafx.util.converter.LocalDateTimeStringConverter; import lombok.Getter; import lombok.Setter; -import org.hibernate.Hibernate; -import org.springframework.util.StringUtils; - -import java.io.File; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; public class CustomerSatisfactionSurveyTabSkinBase extends AbstEntityBasedTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/satisfaction_survey/CustomerSatisfactionSurveyWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/CustomerSatisfactionSurveyWindowController.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/satisfaction_survey/CustomerSatisfactionSurveyWindowController.java rename to client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/CustomerSatisfactionSurveyWindowController.java index 29ff073..0dcb78e 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/satisfaction_survey/CustomerSatisfactionSurveyWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/CustomerSatisfactionSurveyWindowController.java @@ -1,24 +1,29 @@ -package com.ecep.contract.manager.ds.project.controller.satisfaction_survey; +package com.ecep.contract.controller.project.satisfaction_survey; -import com.ecep.contract.manager.ds.project.controller.bid.ProjectBidTabSkinBase; -import com.ecep.contract.manager.ds.project.model.CustomerSatisfactionSurvey; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.service.CustomerSatisfactionSurveyService; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ds.project.vo.CustomerSatisfactionSurveyViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import javafx.event.ActionEvent; -import javafx.scene.control.*; -import javafx.scene.layout.BorderPane; -import javafx.scene.layout.HBox; -import javafx.stage.WindowEvent; -import lombok.Setter; import org.hibernate.Hibernate; import org.springframework.context.annotation.Lazy; 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.vm.CustomerSatisfactionSurveyViewModel; + +import javafx.event.ActionEvent; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.Slider; +import javafx.scene.control.Tab; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.scene.layout.BorderPane; +import javafx.stage.WindowEvent; +import lombok.Setter; + @Lazy @Scope("prototype") @Component diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/satisfaction_survey/ProjectCustomerSatisfactionSurveyExportAsExcelFile.java b/client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/ProjectCustomerSatisfactionSurveyExportAsExcelFile.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/satisfaction_survey/ProjectCustomerSatisfactionSurveyExportAsExcelFile.java rename to client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/ProjectCustomerSatisfactionSurveyExportAsExcelFile.java index 5ac0a50..47f98ec 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/satisfaction_survey/ProjectCustomerSatisfactionSurveyExportAsExcelFile.java +++ b/client/src/main/java/com/ecep/contract/controller/project/satisfaction_survey/ProjectCustomerSatisfactionSurveyExportAsExcelFile.java @@ -1,15 +1,16 @@ -package com.ecep.contract.manager.ds.project.controller.satisfaction_survey; +package com.ecep.contract.controller.project.satisfaction_survey; + +import static com.ecep.contract.util.ExcelUtils.*; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.time.LocalDate; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.project.model.CustomerSatisfactionSurvey; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.service.CustomerSatisfactionSurveyService; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import lombok.Setter; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; @@ -19,10 +20,17 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.StringUtils; -import java.io.*; -import java.time.LocalDate; +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.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 static com.ecep.contract.manager.util.ExcelUtils.*; +import lombok.Setter; public class ProjectCustomerSatisfactionSurveyExportAsExcelFile extends Tasker { private static final Logger logger = LoggerFactory.getLogger(ProjectCustomerSatisfactionSurveyExportAsExcelFile.class); diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/usage/ProductUsageManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/project/usage/ProductUsageManagerSkin.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/usage/ProductUsageManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/project/usage/ProductUsageManagerSkin.java index f0faeca..b649d5c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/usage/ProductUsageManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/project/usage/ProductUsageManagerSkin.java @@ -1,12 +1,13 @@ -package com.ecep.contract.manager.ds.project.controller.usage; +package com.ecep.contract.controller.project.usage; + +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.ProductUsageService; +import com.ecep.contract.ds.project.service.ProjectService; +import com.ecep.contract.model.ProductUsage; +import com.ecep.contract.vm.ProductUsageViewModel; -import com.ecep.contract.manager.ds.project.model.ProductUsage; -import com.ecep.contract.manager.ds.project.service.ProductUsageService; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ds.project.vo.ProductUsageViewModel; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.ManagerSkin; import javafx.scene.control.TableColumn; import javafx.scene.control.cell.TextFieldTableCell; import lombok.Setter; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/usage/ProductUsageManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/project/usage/ProductUsageManagerWindowController.java similarity index 75% rename from src/main/java/com/ecep/contract/manager/ds/project/controller/usage/ProductUsageManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/project/usage/ProductUsageManagerWindowController.java index 52c9b61..1252de6 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/usage/ProductUsageManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/project/usage/ProductUsageManagerWindowController.java @@ -1,21 +1,22 @@ -package com.ecep.contract.manager.ds.project.controller.usage; +package com.ecep.contract.controller.project.usage; + +import java.time.LocalDate; -import com.ecep.contract.manager.ds.project.model.ProductUsage; -import com.ecep.contract.manager.ds.project.service.ProductUsageService; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ds.project.vo.ProductUsageViewModel; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.ViewModelService; -import javafx.scene.control.TableColumn; -import javafx.scene.control.TableView; -import javafx.stage.Stage; 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 java.time.LocalDate; +import com.ecep.contract.controller.AbstManagerWindowController; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.ds.project.service.ProductUsageService; +import com.ecep.contract.ds.project.service.ProjectService; +import com.ecep.contract.model.ProductUsage; +import com.ecep.contract.vm.ProductUsageViewModel; + +import javafx.scene.control.TableColumn; +import javafx.scene.control.TableView; +import javafx.stage.Stage; @Lazy @Scope("prototype") diff --git a/src/main/java/com/ecep/contract/manager/ui/tab/AbstEntityBasedTabSkin.java b/client/src/main/java/com/ecep/contract/controller/tab/AbstEntityBasedTabSkin.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ui/tab/AbstEntityBasedTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/tab/AbstEntityBasedTabSkin.java index 35851ab..39c9177 100644 --- a/src/main/java/com/ecep/contract/manager/ui/tab/AbstEntityBasedTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/AbstEntityBasedTabSkin.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui.tab; +package com.ecep.contract.controller.tab; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -8,14 +8,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.AbstGenericTabSkin; -import com.ecep.contract.manager.ui.BaseController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.util.FxmlUtils; -import com.ecep.contract.manager.util.UITools; +import com.ecep.contract.controller.AbstEntityController; +import com.ecep.contract.controller.BaseController; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.util.FxmlUtils; +import com.ecep.contract.model.IdentityEntity; +import com.ecep.contract.util.UITools; +import com.ecep.contract.vm.IdentityViewModel; import javafx.application.Platform; import javafx.beans.property.BooleanProperty; diff --git a/src/main/java/com/ecep/contract/manager/ui/AbstGenericTabSkin.java b/client/src/main/java/com/ecep/contract/controller/tab/AbstGenericTabSkin.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ui/AbstGenericTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/tab/AbstGenericTabSkin.java index 50f0cbd..594d1d3 100644 --- a/src/main/java/com/ecep/contract/manager/ui/AbstGenericTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/AbstGenericTabSkin.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract.controller.tab; import java.util.Locale; @@ -6,8 +6,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.UITools; +import com.ecep.contract.controller.BaseController; +import com.ecep.contract.util.UITools; public abstract class AbstGenericTabSkin implements TabSkin { private static final Logger logger = LoggerFactory.getLogger(AbstGenericTabSkin.class); diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBankAccount.java b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinBankAccount.java similarity index 77% rename from src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBankAccount.java rename to client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinBankAccount.java index 0b518ff..9594229 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBankAccount.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinBankAccount.java @@ -1,19 +1,24 @@ -package com.ecep.contract.manager.ds.company.controller; +package com.ecep.contract.controller.tab; -import com.ecep.contract.manager.ds.company.controller.bank_account.BankAccountWindowController; -import com.ecep.contract.manager.ds.company.model.CompanyBankAccount; -import com.ecep.contract.manager.ds.company.service.CompanyBankAccountService; -import com.ecep.contract.manager.ds.company.vo.CompanyBankAccountViewModel; -import com.ecep.contract.manager.ds.other.model.Bank; -import com.ecep.contract.manager.ds.other.service.BankService; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.ui.table.cell.BankTableCell; -import javafx.scene.control.*; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.controller.company.AbstCompanyTableTabSkin; +import com.ecep.contract.controller.company.CompanyWindowController; +import com.ecep.contract.ds.company.controller.bank_account.BankAccountWindowController; +import com.ecep.contract.ds.company.service.CompanyBankAccountService; +import com.ecep.contract.ds.other.service.BankService; +import com.ecep.contract.model.Bank; +import com.ecep.contract.model.CompanyBankAccount; +import com.ecep.contract.ui.table.EditableEntityTableTabSkin; +import com.ecep.contract.ui.table.cell.BankTableCell; +import com.ecep.contract.vm.CompanyBankAccountViewModel; + +import javafx.scene.control.Button; +import javafx.scene.control.MenuItem; +import javafx.scene.control.Tab; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TextField; import javafx.scene.input.KeyCode; import lombok.Setter; -import org.hibernate.Hibernate; /** * 子合同 diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinBase.java similarity index 93% rename from src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBase.java rename to client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinBase.java index 1a73c2c..c2093eb 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinBase.java @@ -1,22 +1,30 @@ -package com.ecep.contract.manager.ds.company.controller; +package com.ecep.contract.controller.tab; + +import java.io.File; +import java.time.format.DateTimeFormatter; +import java.util.List; + +import org.springframework.util.StringUtils; + +import com.ecep.contract.controller.company.AbstCompanyBasedTabSkin; +import com.ecep.contract.controller.company.CompanyWindowController; +import com.ecep.contract.ds.company.service.CompanyOldNameService; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyOldName; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyOldName; -import com.ecep.contract.manager.ds.company.service.CompanyOldNameService; -import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.event.ActionEvent; import javafx.geometry.Insets; -import javafx.scene.control.*; +import javafx.scene.control.Alert; +import javafx.scene.control.ButtonType; +import javafx.scene.control.CheckBox; +import javafx.scene.control.Label; +import javafx.scene.control.Tab; +import javafx.scene.control.TextField; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.stage.Modality; import javafx.util.converter.LocalDateStringConverter; import lombok.Setter; -import org.springframework.util.StringUtils; - -import java.io.File; -import java.time.format.DateTimeFormatter; -import java.util.List; /** * diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBlackReason.java b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinBlackReason.java similarity index 85% rename from src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBlackReason.java rename to client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinBlackReason.java index 3556950..cb5efa1 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBlackReason.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinBlackReason.java @@ -1,24 +1,30 @@ -package com.ecep.contract.manager.ds.company.controller; - -import com.ecep.contract.manager.cloud.rk.BlackListUpdateContext; -import com.ecep.contract.manager.cloud.rk.CloudRk; -import com.ecep.contract.manager.cloud.rk.CloudRkService; -import com.ecep.contract.manager.ds.company.BlackReasonType; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyBlackReason; -import com.ecep.contract.manager.ds.company.service.CompanyBlackReasonService; -import com.ecep.contract.manager.ds.company.vo.CompanyBlackReasonViewModel; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.UITools; -import javafx.event.ActionEvent; -import javafx.scene.control.*; -import javafx.scene.input.KeyCode; -import lombok.Setter; +package com.ecep.contract.controller.tab; import java.time.LocalDate; +import com.ecep.contract.BlackReasonType; +import com.ecep.contract.UITools; +import com.ecep.contract.cloud.rk.BlackListUpdateContext; +import com.ecep.contract.cloud.rk.CloudRkService; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.controller.company.AbstCompanyTableTabSkin; +import com.ecep.contract.controller.company.CompanyWindowController; +import com.ecep.contract.ds.company.service.CompanyBlackReasonService; +import com.ecep.contract.model.CloudRk; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyBlackReason; +import com.ecep.contract.ui.table.EditableEntityTableTabSkin; +import com.ecep.contract.vm.CompanyBlackReasonViewModel; + +import javafx.event.ActionEvent; +import javafx.scene.control.Button; +import javafx.scene.control.MenuItem; +import javafx.scene.control.Tab; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TextField; +import javafx.scene.input.KeyCode; +import lombok.Setter; + /** * 子合同 */ diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinContact.java b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinContact.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinContact.java rename to client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinContact.java index b749c1c..c0b92e0 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinContact.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinContact.java @@ -1,19 +1,25 @@ -package com.ecep.contract.manager.ds.company.controller; - -import com.ecep.contract.manager.ds.company.controller.contact.CompanyContactWindowController; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.company.service.CompanyContactService; -import com.ecep.contract.manager.ds.company.vo.CompanyContactViewModel; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import javafx.event.ActionEvent; -import javafx.scene.control.*; -import javafx.scene.input.KeyCode; -import lombok.Setter; +package com.ecep.contract.controller.tab; import java.time.LocalDate; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.controller.company.AbstCompanyTableTabSkin; +import com.ecep.contract.controller.company.CompanyWindowController; +import com.ecep.contract.ds.company.controller.contact.CompanyContactWindowController; +import com.ecep.contract.ds.company.service.CompanyContactService; +import com.ecep.contract.model.CompanyContact; +import com.ecep.contract.ui.table.EditableEntityTableTabSkin; +import com.ecep.contract.vm.CompanyContactViewModel; + +import javafx.event.ActionEvent; +import javafx.scene.control.Button; +import javafx.scene.control.MenuItem; +import javafx.scene.control.Tab; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TextField; +import javafx.scene.input.KeyCode; +import lombok.Setter; + /** * 子合同 */ diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinContract.java b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinContract.java similarity index 72% rename from src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinContract.java rename to client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinContract.java index e8a71b6..44cf212 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinContract.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinContract.java @@ -1,45 +1,54 @@ -package com.ecep.contract.manager.ds.company.controller; - -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.contract.controller.ContractWindowController; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractGroup; -import com.ecep.contract.manager.ds.contract.model.ContractKind; -import com.ecep.contract.manager.ds.contract.model.ContractType; -import com.ecep.contract.manager.ds.contract.service.ContractGroupService; -import com.ecep.contract.manager.ds.contract.service.ContractKindService; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.service.ContractTypeService; -import com.ecep.contract.manager.ds.contract.tasker.ContractRepairByCompanyTask; -import com.ecep.contract.manager.ds.contract.vo.ContractViewModel; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.table.cell.*; -import com.ecep.contract.manager.ui.util.ContractGroupStringConverter; -import com.ecep.contract.manager.util.DesktopUtils; -import com.ecep.contract.manager.util.SpecificationUtils; -import com.ecep.contract.manager.util.UITools; -import javafx.collections.FXCollections; -import javafx.collections.ObservableList; -import javafx.event.ActionEvent; -import javafx.scene.control.*; -import javafx.scene.control.cell.TextFieldTableCell; -import javafx.scene.input.KeyCode; -import lombok.Setter; -import org.springframework.beans.BeansException; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.util.StringUtils; +package com.ecep.contract.controller.tab; import java.io.File; import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.Map; import java.util.NoSuchElementException; import java.util.concurrent.CompletableFuture; +import org.springframework.beans.BeansException; +import org.springframework.util.StringUtils; + +import com.ecep.contract.DesktopUtils; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.controller.company.AbstCompanyTableTabSkin; +import com.ecep.contract.controller.company.CompanyWindowController; +import com.ecep.contract.controller.contract.ContractWindowController; +import com.ecep.contract.controller.table.EditableEntityTableTabSkin; +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.controller.table.cell.LocalDateTimeTableCell; +import com.ecep.contract.converter.ContractGroupStringConverter; +import com.ecep.contract.converter.EmployeeStringConverter; +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.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.YongYouU8Service; +import com.ecep.contract.task.ContractRepairByCompanyTask; +import com.ecep.contract.util.UITools; +import com.ecep.contract.vm.ContractViewModel; + +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.event.ActionEvent; +import javafx.scene.control.Button; +import javafx.scene.control.ComboBox; +import javafx.scene.control.MenuItem; +import javafx.scene.control.Tab; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TextField; +import javafx.scene.input.KeyCode; + /** * 子合同 */ @@ -77,19 +86,6 @@ public class CompanyTabSkinContract public MenuItem contractTable_menu_update; public MenuItem contractTable_menu_del; - @Setter - private ContractService contractService; - @Setter - private ContractGroupService contractGroupService; - @Setter - private ContractKindService contractKindService; - @Setter - private ContractTypeService contractTypeService; - @Setter - private YongYouU8Service u8Service; - @Setter - private EmployeeStringConverter employeeStringConverter; - public CompanyTabSkinContract(CompanyWindowController controller) { super(controller); } @@ -100,13 +96,11 @@ public class CompanyTabSkinContract } @Override - public Specification getSpecification(Company parent) { - Specification spec = super.getSpecification(parent); + public Map getSpecification(Company parent) { + Map spec = super.getSpecification(parent); ContractGroup selectedGroup = contractGroupSelector.getValue(); if (selectedGroup != null) { - spec = SpecificationUtils.and(spec, (root, query, builder) -> { - return builder.equal(root.get("group"), selectedGroup); - }); + spec.put("group", selectedGroup.getId()); } return spec; } @@ -116,7 +110,7 @@ public class CompanyTabSkinContract if (u8Service == null) { try { - u8Service = getBean(YongYouU8Service.class); + u8Service = getCachedBean(YongYouU8Service.class); } catch (BeansException ignored) { } } @@ -129,7 +123,6 @@ public class CompanyTabSkinContract contractSearchBtn.setOnAction(this::onTableRefreshAction); - ObservableList contractGroups = FXCollections.observableArrayList(); contractGroups.add(null); contractGroups.addAll(getViewModelService().findAllGroups()); @@ -174,7 +167,6 @@ public class CompanyTabSkinContract contractTable_kindColumn.setCellValueFactory(param -> param.getValue().getKind()); contractTable_kindColumn.setCellFactory(param -> new ContractKindTableCell<>(getContractKindService())); - contractTable_parentCodeColumn.setCellValueFactory(param -> param.getValue().getParentCode()); contractTable_orderDateColumn.setCellValueFactory(param -> param.getValue().getOrderDate()); contractTable_startDateColumn.setCellValueFactory(param -> param.getValue().getStartDate()); @@ -183,32 +175,29 @@ public class CompanyTabSkinContract contractTable_setupPersonColumn.setCellFactory(param -> new EmployeeTableCell<>(getEmployeeService())); contractTable_setupDateColumn.setCellValueFactory(param -> param.getValue().getSetupDate()); -// contractTable_setupDateColumn.setSortable(true); -// contractTable_setupDateColumn.setSortType(TableColumn.SortType.DESCENDING); + // contractTable_setupDateColumn.setSortable(true); + // contractTable_setupDateColumn.setSortType(TableColumn.SortType.DESCENDING); contractTable_inurePersonColumn.setCellValueFactory(param -> param.getValue().getInurePerson()); contractTable_inurePersonColumn.setCellFactory(param -> new EmployeeTableCell<>(getEmployeeService())); contractTable_inureDateColumn.setCellValueFactory(param -> param.getValue().getInureDate()); contractTable_varyPersonColumn.setCellValueFactory(param -> param.getValue().getVaryPerson()); - contractTable_varyPersonColumn.setCellFactory(param->new EmployeeTableCell<>(getEmployeeService())); + contractTable_varyPersonColumn.setCellFactory(param -> new EmployeeTableCell<>(getEmployeeService())); contractTable_varyDateColumn.setCellValueFactory(param -> param.getValue().getVaryDate()); contractTable_createdColumn.setCellValueFactory(param -> param.getValue().getCreated()); contractTable_createdColumn.setCellFactory(param -> new LocalDateTimeTableCell<>()); - contractTable_menu_refresh.setOnAction(this::onTableRefreshAction); -// contractTable_menu_add.setOnAction(this::onTableAddAction); + // contractTable_menu_add.setOnAction(this::onTableAddAction); contractTable_menu_del.setOnAction(this::onTableDeleteAction); contractTable_menu_open_in_explorer.setOnAction(this::onTableOpenInExplorerAction); contractTable_menu_update.setOnAction(this::onTableUpdateAction); - super.initializeTab(); } - private void onTableUpdateAction(ActionEvent event) { ContractRepairByCompanyTask task = new ContractRepairByCompanyTask(); task.setContractService(getViewModelService()); @@ -255,39 +244,23 @@ public class CompanyTabSkinContract } protected ContractService getViewModelService() { - if (contractService == null) { - contractService = getBean(ContractService.class); - } - return contractService; + return getCachedBean(ContractService.class); } private ContractTypeService getContractTypeService() { - if (contractTypeService == null) { - contractTypeService = getBean(ContractTypeService.class); - } - return contractTypeService; + return getCachedBean(ContractTypeService.class); } private ContractKindService getContractKindService() { - if (contractKindService == null) { - contractKindService = getBean(ContractKindService.class); - } - return contractKindService; + return getCachedBean(ContractKindService.class); } private ContractGroupService getContractGroupService() { - if (contractGroupService == null) { - contractGroupService = getBean(ContractGroupService.class); - } - return contractGroupService; + return getCachedBean(ContractGroupService.class); } private EmployeeStringConverter getEmployeeStringConverter() { - if (employeeStringConverter == null) { - employeeStringConverter = getBean(EmployeeStringConverter.class); - } - return employeeStringConverter; + return getCachedBean(EmployeeStringConverter.class); } - } diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinFile.java b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinFile.java similarity index 93% rename from src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinFile.java rename to client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinFile.java index faec4dc..bff6549 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinFile.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinFile.java @@ -1,29 +1,4 @@ -package com.ecep.contract.manager.ds.company.controller; - -import com.ecep.contract.manager.MyProperties; -import com.ecep.contract.manager.cloud.tyc.CloudTycService; -import com.ecep.contract.manager.ds.company.CompanyFileType; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyFile; -import com.ecep.contract.manager.ds.company.model.CompanyFileTypeLocal; -import com.ecep.contract.manager.ds.company.service.CompanyFileService; -import com.ecep.contract.manager.ds.company.vo.CompanyFileViewModel; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.DesktopUtils; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.UITools; -import javafx.application.Platform; -import javafx.beans.binding.Bindings; -import javafx.collections.FXCollections; -import javafx.collections.ObservableMap; -import javafx.event.ActionEvent; -import javafx.event.Event; -import javafx.scene.control.*; -import lombok.Setter; -import org.springframework.util.FileSystemUtils; -import org.springframework.util.StringUtils; +package com.ecep.contract.controller.tab; import java.io.File; import java.io.IOException; @@ -31,6 +6,36 @@ 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.controller.company.AbstCompanyTableTabSkin; +import com.ecep.contract.controller.company.CompanyWindowController; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyFile; +import com.ecep.contract.model.CompanyFileTypeLocal; +import com.ecep.contract.vm.CompanyFileViewModel; + +import javafx.application.Platform; +import javafx.beans.binding.Bindings; +import javafx.collections.FXCollections; +import javafx.collections.ObservableMap; +import javafx.event.ActionEvent; +import javafx.event.Event; +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 lombok.Setter; + /** * */ @@ -103,7 +108,7 @@ public class CompanyTabSkinFile private void onTableResetAction(ActionEvent event) { runAsync(() -> { - if (getViewModelService().reBuildingFiles(getParent(), this::setStatus)) { + if (getViewModelService().reBuildingFiles(getParent(), (level, msg)-> setStatus(msg))) { loadTableDataSet(); } }); diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinInvoice.java b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinInvoice.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinInvoice.java rename to client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinInvoice.java index 32a0fed..02ecf6b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinInvoice.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinInvoice.java @@ -1,23 +1,26 @@ -package com.ecep.contract.manager.ds.company.controller; +package com.ecep.contract.controller.tab; + +import java.time.LocalDate; + +import org.springframework.beans.BeansException; + +import com.ecep.contract.cloud.u8.YongYouU8Service; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.controller.company.AbstCompanyTableTabSkin; +import com.ecep.contract.controller.company.CompanyWindowController; +import com.ecep.contract.converter.EmployeeStringConverter; +import com.ecep.contract.ds.company.service.InvoiceService; +import com.ecep.contract.ds.contract.service.PurchaseBillVoucherService; +import com.ecep.contract.model.Invoice; +import com.ecep.contract.ui.table.EditableEntityTableTabSkin; +import com.ecep.contract.vm.InvoiceViewModel; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.ds.company.model.Invoice; -import com.ecep.contract.manager.ds.company.service.InvoiceService; -import com.ecep.contract.manager.ds.company.vo.InvoiceViewModel; -import com.ecep.contract.manager.ds.contract.service.PurchaseBillVoucherService; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.scene.control.Button; import javafx.scene.control.Tab; import javafx.scene.control.TableColumn; import javafx.scene.control.TextField; import javafx.scene.input.KeyCode; import lombok.Setter; -import org.springframework.beans.BeansException; - -import java.time.LocalDate; /** * 子合同 diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinOldName.java b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinOldName.java similarity index 85% rename from src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinOldName.java rename to client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinOldName.java index 2551544..88fdb3b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinOldName.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinOldName.java @@ -1,27 +1,39 @@ -package com.ecep.contract.manager.ds.company.controller; +package com.ecep.contract.controller.tab; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +import org.springframework.util.StringUtils; + +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.controller.company.AbstCompanyTableTabSkin; +import com.ecep.contract.controller.company.CompanyWindowController; +import com.ecep.contract.controller.company_old_name.CompanyOldNameWindowController; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyOldName; +import com.ecep.contract.service.CompanyOldNameService; +import com.ecep.contract.vm.CompanyOldNameViewModel; -import com.ecep.contract.manager.ds.company.controller.old_name.CompanyOldNameWindowController; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyOldName; -import com.ecep.contract.manager.ds.company.service.CompanyOldNameService; -import com.ecep.contract.manager.ds.company.vo.CompanyOldNameViewModel; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.SpecificationUtils; import javafx.application.Platform; import javafx.event.ActionEvent; -import javafx.scene.control.*; +import javafx.scene.control.Button; +import javafx.scene.control.MenuItem; +import javafx.scene.control.Tab; +import javafx.scene.control.TableCell; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TextField; +import javafx.scene.control.TextInputDialog; import javafx.scene.control.cell.CheckBoxTableCell; import javafx.scene.input.KeyCode; import lombok.Setter; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.util.StringUtils; - -import java.time.LocalDate; -import java.util.*; /** - *曾用名 + * 曾用名 */ @FxmlPath("/ui/company/company-tab-oldname.fxml") public class CompanyTabSkinOldName @@ -59,10 +71,10 @@ public class CompanyTabSkinOldName } @Override - public Specification getSpecification(Company parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.equal(root.get("companyId"), parent.getId()); - }); + public Map getSpecification(Company parent) { + Map params = getSpecification(); + params.put("company", parent.getId()); + return params; } @Override @@ -98,7 +110,6 @@ public class CompanyTabSkinOldName super.initializeTab(); } - @Override protected void onTableAddAction(ActionEvent event) { // @@ -133,9 +144,10 @@ public class CompanyTabSkinOldName List removes = new ArrayList<>(); for (CompanyOldNameViewModel viewModel : dataSet) { + if (!nameSet.add(viewModel.getName().get())) { // fixed 曾用名中有重复时,删除重复的 - getViewModelService().delete(viewModel); + deleteRow(viewModel); removes.add(viewModel); } } @@ -198,7 +210,6 @@ public class CompanyTabSkinOldName } } - protected CompanyOldNameService getViewModelService() { if (companyOldNameService == null) { companyOldNameService = getBean(CompanyOldNameService.class); diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinOther.java b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinOther.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinOther.java rename to client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinOther.java index 5912d2f..30469ac 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinOther.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinOther.java @@ -1,42 +1,4 @@ -package com.ecep.contract.manager.ds.company.controller; - -import com.ecep.contract.manager.cloud.rk.CloudRk; -import com.ecep.contract.manager.cloud.rk.CloudRkInfoViewModel; -import com.ecep.contract.manager.cloud.rk.CloudRkService; -import com.ecep.contract.manager.cloud.rk.ctx.CloudRkCtx; -import com.ecep.contract.manager.cloud.tyc.CloudTyc; -import com.ecep.contract.manager.cloud.tyc.CloudTycInfoViewModel; -import com.ecep.contract.manager.cloud.tyc.CloudTycService; -import com.ecep.contract.manager.cloud.u8.CloudYu; -import com.ecep.contract.manager.cloud.u8.CloudYuInfoViewModel; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyExtendInfo; -import com.ecep.contract.manager.ds.company.service.CompanyExtendInfoService; -import com.ecep.contract.manager.ds.company.vo.CompanyExtendInfoViewModel; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.ui.util.DelayOnceExecutor; -import com.ecep.contract.manager.util.DesktopUtils; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.UITools; -import javafx.application.Platform; -import javafx.event.ActionEvent; -import javafx.scene.Scene; -import javafx.scene.control.*; -import javafx.scene.layout.Border; -import javafx.scene.layout.StackPane; -import javafx.scene.paint.Color; -import javafx.scene.web.WebView; -import javafx.stage.Stage; -import javafx.util.converter.NumberStringConverter; -import lombok.Setter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.BeansException; -import org.springframework.util.StringUtils; -import org.w3c.dom.html.HTMLDocument; +package com.ecep.contract.controller.tab; import java.io.File; import java.io.IOException; @@ -47,6 +9,56 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; import java.util.logging.Level; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeansException; +import org.springframework.util.StringUtils; +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.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.vm.CloudTycInfoViewModel; +import com.ecep.contract.vm.CloudYuInfoViewModel; +import com.ecep.contract.vm.CompanyExtendInfoViewModel; + +import javafx.application.Platform; +import javafx.event.ActionEvent; +import javafx.scene.Scene; +import javafx.scene.control.Alert; +import javafx.scene.control.Button; +import javafx.scene.control.ButtonType; +import javafx.scene.control.CheckBox; +import javafx.scene.control.Label; +import javafx.scene.control.ListCell; +import javafx.scene.control.ListView; +import javafx.scene.control.Tab; +import javafx.scene.control.TextField; +import javafx.scene.control.TitledPane; +import javafx.scene.layout.Border; +import javafx.scene.layout.StackPane; +import javafx.scene.paint.Color; +import javafx.scene.web.WebView; +import javafx.stage.Stage; +import javafx.util.converter.NumberStringConverter; +import lombok.Setter; + @FxmlPath("/ui/company/company-tab-other.fxml") public class CompanyTabSkinOther extends AbstCompanyBasedTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinPurchaseBillVoucher.java b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinPurchaseBillVoucher.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinPurchaseBillVoucher.java rename to client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinPurchaseBillVoucher.java index bb71e18..339309f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinPurchaseBillVoucher.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/CompanyTabSkinPurchaseBillVoucher.java @@ -1,24 +1,31 @@ -package com.ecep.contract.manager.ds.company.controller; +package com.ecep.contract.controller.tab; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.ds.company.model.Invoice; -import com.ecep.contract.manager.ds.company.service.InvoiceService; -import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucher; -import com.ecep.contract.manager.ds.contract.service.PurchaseBillVoucherService; -import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherViewModel; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.ui.table.cell.InvoiceTableCell; -import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; -import javafx.scene.control.*; +import java.time.LocalDateTime; + +import org.springframework.beans.BeansException; + +import com.ecep.contract.cloud.u8.YongYouU8Service; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.controller.company.AbstCompanyTableTabSkin; +import com.ecep.contract.controller.company.CompanyWindowController; +import com.ecep.contract.converter.EmployeeStringConverter; +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.model.Employee; +import com.ecep.contract.model.Invoice; +import com.ecep.contract.model.PurchaseBillVoucher; +import com.ecep.contract.ui.table.cell.InvoiceTableCell; +import com.ecep.contract.ui.table.cell.LocalDateTimeTableCell; + +import javafx.scene.control.Button; +import javafx.scene.control.MenuItem; +import javafx.scene.control.Tab; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TextField; import javafx.scene.control.cell.TextFieldTableCell; import javafx.scene.input.KeyCode; import lombok.Setter; -import org.springframework.beans.BeansException; - -import java.time.LocalDateTime; /** * 子合同 diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/tab/ContractManagerSkin.java similarity index 82% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/tab/ContractManagerSkin.java index 6005f38..870d068 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/ContractManagerSkin.java @@ -1,24 +1,30 @@ -package com.ecep.contract.manager.ds.contract.controller; +package com.ecep.contract.controller.tab; import java.time.format.DateTimeFormatter; -import com.ecep.contract.manager.ds.contract.service.ContractGroupService; -import com.ecep.contract.manager.ds.contract.service.ContractKindService; -import com.ecep.contract.manager.ds.contract.service.ContractTypeService; -import com.ecep.contract.manager.ui.table.cell.*; import org.springframework.data.jpa.domain.Specification; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractGroup; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.vo.ContractViewModel; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.ComboBoxUtils; -import com.ecep.contract.manager.ui.ManagerSkin; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.SpecificationUtils; +import com.ecep.contract.ContractPayWay; +import com.ecep.contract.MyDateTimeUtils; +import com.ecep.contract.controller.AbstEntityManagerSkin; +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.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 jakarta.persistence.criteria.Path; import javafx.application.Platform; @@ -39,7 +45,6 @@ public class ContractManagerSkin @Setter private ContractTypeService contractTypeService; - public ContractManagerSkin(ContractManagerWindowController controller) { super(controller); } @@ -53,18 +58,22 @@ public class ContractManagerSkin companyService = getBean(CompanyService.class); } return companyService; - }private ContractTypeService getContractTypeService() { + } + + private ContractTypeService getContractTypeService() { if (contractTypeService == null) { contractTypeService = getBean(ContractTypeService.class); } return contractTypeService; } + private ContractKindService getContractKindService() { if (contractKindService == null) { contractKindService = getBean(ContractKindService.class); } return contractKindService; } + private ContractGroupService getContractGroupService() { if (contractGroupService == null) { contractGroupService = getBean(ContractGroupService.class); diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinBase.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinBase.java rename to client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinBase.java index 232a2e7..6d1322a 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinBase.java @@ -1,46 +1,18 @@ -package com.ecep.contract.manager.ds.contract.controller; - -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.manager.SpringApp; -import com.ecep.contract.manager.ds.company.CompanyFileUtils; -import com.ecep.contract.manager.ds.company.CompanyStringConverter; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.ContractStringConverter; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractType; -import com.ecep.contract.manager.ds.contract.service.ExtendVendorInfoService; -import com.ecep.contract.manager.ds.contract.tasker.ContractRepairComm; -import com.ecep.contract.manager.ds.customer.controller.CompanyCustomerWindowController; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.project.controller.ProjectWindowController; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectSaleType; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ds.project.service.ProjectStringConverter; -import com.ecep.contract.manager.ds.project.service.SaleTypeService; -import com.ecep.contract.manager.ds.vendor.controller.CompanyVendorWindowController; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ds.vendor.service.VendorGroupService; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.UITools; +package com.ecep.contract.controller.tab; +import com.ecep.contract.ContractPayWay; +import com.ecep.contract.SpringApp; +import com.ecep.contract.controller.contract.AbstContractBasedTabSkin; +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.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.util.UITools; import javafx.beans.binding.Bindings; import javafx.event.ActionEvent; import javafx.scene.control.Tab; @@ -50,7 +22,14 @@ import javafx.stage.DirectoryChooser; import javafx.util.StringConverter; import javafx.util.converter.LocalDateStringConverter; import javafx.util.converter.NumberStringConverter; -import lombok.Setter; +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.*; /** * 合同基础信息标签页 @@ -504,8 +483,8 @@ public class ContractTabSkinBase extends AbstContractBasedTabSkin { return controller.projectService; } - public SaleTypeService getSaleTypeService() { - return controller.getCachedBean(SaleTypeService.class); + public ProjectSaleTypeService getSaleTypeService() { + return controller.getCachedBean(ProjectSaleTypeService.class); } public ExtendVendorInfoService getExtendVendorInfoService() { diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinFiles.java b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinFiles.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinFiles.java rename to client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinFiles.java index 92e5023..ca98d5d 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinFiles.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinFiles.java @@ -1,36 +1,16 @@ -package com.ecep.contract.manager.ds.contract.controller; +package com.ecep.contract.controller.tab; + +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import javax.imageio.ImageIO; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.cloud.u8.ctx.ContractCtx; -import com.ecep.contract.manager.ds.company.CompanyFileUtils; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractFile; -import com.ecep.contract.manager.ds.contract.model.ContractFileTypeLocal; -import com.ecep.contract.manager.ds.contract.model.ContractType; -import com.ecep.contract.manager.ds.contract.service.ContractFileService; -import com.ecep.contract.manager.ds.contract.tasker.ContractFilesRebuildTasker; -import com.ecep.contract.manager.ds.contract.tasker.CustomerContractCostFormUpdateTask; -import com.ecep.contract.manager.ds.contract.vo.ContractFileViewModel; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.ui.util.LocalDateFieldTableCell; -import com.ecep.contract.manager.util.DesktopUtils; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.UITools; -import javafx.beans.binding.Bindings; -import javafx.collections.FXCollections; -import javafx.collections.MapChangeListener; -import javafx.collections.ObservableList; -import javafx.collections.ObservableMap; -import javafx.event.ActionEvent; -import javafx.scene.control.*; -import javafx.scene.control.cell.TextFieldTableCell; -import javafx.stage.WindowEvent; -import javafx.util.StringConverter; -import lombok.Setter; import org.apache.pdfbox.Loader; import org.apache.pdfbox.io.IOUtils; import org.apache.pdfbox.io.MemoryUsageSetting; @@ -45,15 +25,47 @@ import org.apache.pdfbox.pdmodel.graphics.image.LosslessFactory; import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; import org.springframework.util.StringUtils; -import javax.imageio.ImageIO; -import java.awt.image.BufferedImage; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.time.LocalDate; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; +import com.ecep.contract.ContractFileType; +import com.ecep.contract.ContractPayWay; +import com.ecep.contract.DesktopUtils; +import com.ecep.contract.MyDateTimeUtils; +import com.ecep.contract.SpringApp; +import com.ecep.contract.UITools; +import com.ecep.contract.cloud.u8.ctx.ContractCtx; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.controller.contract.AbstContractTableTabSkin; +import com.ecep.contract.controller.contract.ContractWindowController; +import com.ecep.contract.controller.table.EditableEntityTableTabSkin; +import com.ecep.contract.controller.table.cell.LocalDateFieldTableCell; +import com.ecep.contract.ds.company.CompanyFileUtils; +import com.ecep.contract.ds.contract.service.ContractFileService; +import com.ecep.contract.ds.contract.tasker.ContractFilesRebuildTasker; +import com.ecep.contract.ds.contract.tasker.CustomerContractCostFormUpdateTask; +import com.ecep.contract.ds.contract.vo.ContractFileViewModel; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractFile; +import com.ecep.contract.model.ContractFileTypeLocal; +import com.ecep.contract.model.ContractType; + +import javafx.beans.binding.Bindings; +import javafx.collections.FXCollections; +import javafx.collections.MapChangeListener; +import javafx.collections.ObservableList; +import javafx.collections.ObservableMap; +import javafx.event.ActionEvent; +import javafx.scene.control.Button; +import javafx.scene.control.ButtonType; +import javafx.scene.control.ContextMenu; +import javafx.scene.control.Menu; +import javafx.scene.control.MenuItem; +import javafx.scene.control.SelectionMode; +import javafx.scene.control.Tab; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TableView; +import javafx.scene.control.cell.TextFieldTableCell; +import javafx.stage.WindowEvent; +import javafx.util.StringConverter; +import lombok.Setter; /** * 合同文件 @@ -78,8 +90,8 @@ public class ContractTabSkinFiles @Setter private ContractFileService contractFileService; - private final ObservableMap fileTypeLocalMap = FXCollections.observableHashMap(); - + private final ObservableMap fileTypeLocalMap = FXCollections + .observableHashMap(); public ContractTabSkinFiles(ContractWindowController controller) { super(controller); @@ -139,44 +151,44 @@ public class ContractTabSkinFiles fileTable_idColumn.setEditable(false); fileTable_idColumn.setReorderable(false); - - fileTable_typeColumn.setCellValueFactory(param -> Bindings.valueAt(fileTypeLocalMap, param.getValue().getType())); - fileTable_typeColumn.setCellFactory(param -> new TextFieldTableCell<>(new ContractFileTypeLocalStringConverter())); + fileTable_typeColumn + .setCellValueFactory(param -> Bindings.valueAt(fileTypeLocalMap, param.getValue().getType())); + fileTable_typeColumn + .setCellFactory(param -> new TextFieldTableCell<>(new ContractFileTypeLocalStringConverter())); // 监听 type map 变化 - fileTypeLocalMap.addListener((MapChangeListener) change -> { - List types = fileTypeLocalMap.values().stream().filter(typeLocal -> { - ContractFileType type = typeLocal.getType(); - if (type == null) { - return false; - } - if (isCustomer && !type.isSupportCustomer()) { - return false; - } - return !isVendor || type.isSupportVendor(); - }).toList(); + fileTypeLocalMap + .addListener((MapChangeListener) change -> { + List types = fileTypeLocalMap.values().stream().filter(typeLocal -> { + ContractFileType type = typeLocal.getType(); + if (type == null) { + return false; + } + if (isCustomer && !type.isSupportCustomer()) { + return false; + } + return !isVendor || type.isSupportVendor(); + }).toList(); + fileTable_menu_change_type.getItems().setAll(types.stream() + .map(typeLocal -> { + MenuItem item = new MenuItem(); + item.setText(typeLocal.getValue()); + item.getProperties().put("typeLocal", typeLocal); + item.setOnAction(this::onFileTableContextMenuChangeTypeAndNameAction); + return item; + }).toList()); - fileTable_menu_change_type.getItems().setAll(types.stream() - .map(typeLocal -> { - MenuItem item = new MenuItem(); - item.setText(typeLocal.getValue()); - item.getProperties().put("typeLocal", typeLocal); - item.setOnAction(this::onFileTableContextMenuChangeTypeAndNameAction); - return item; - }).toList()); - - fileTable_menu_change_type_and_name.getItems().setAll(types.stream() - .filter(typeLocal -> StringUtils.hasText(typeLocal.getSuggestFileName())) - .map(typeLocal -> { - MenuItem item = new MenuItem(); - item.setText(typeLocal.getValue()); - item.getProperties().put("typeLocal", typeLocal); - item.getProperties().put("rename", true); - item.setOnAction(this::onFileTableContextMenuChangeTypeAndNameAction); - return item; - }).toList()); - }); - + fileTable_menu_change_type_and_name.getItems().setAll(types.stream() + .filter(typeLocal -> StringUtils.hasText(typeLocal.getSuggestFileName())) + .map(typeLocal -> { + MenuItem item = new MenuItem(); + item.setText(typeLocal.getValue()); + item.getProperties().put("typeLocal", typeLocal); + item.getProperties().put("rename", true); + item.setOnAction(this::onFileTableContextMenuChangeTypeAndNameAction); + return item; + }).toList()); + }); fileTable_typeColumn.setEditable(false); @@ -232,15 +244,12 @@ public class ContractTabSkinFiles System.out.println("fileTable_menu_change_type_and_name:setOnMenuValidation"); }); - fileTable_menu_update.getItems().setAll( createCustomerContractCostByTemplateUpdateMenuItem(), createCustomerContractBidByTemplateUpdateMenuItem(), createCustomerContractApplyByTemplateUpdateMenuItem(), createVendorContractRequestByTemplateUpdateMenuItem(), - createVendorContractApplyByTemplateUpdateMenuItem() - ); - + createVendorContractApplyByTemplateUpdateMenuItem()); fileTypeLocalMap.putAll(getContractFileService().findAllFileTypes(getLocale().toLanguageTag())); super.initializeTab(); @@ -296,7 +305,6 @@ public class ContractTabSkinFiles return; } - PDFMergerUtility merger = new PDFMergerUtility(); File dest = new File(contractPath, "合并的" + rows.getFirst().getFileName().get()); merger.setDestinationFileName(dest.getAbsolutePath()); @@ -399,8 +407,7 @@ public class ContractTabSkinFiles // 加载 PNG 图片 BufferedImage image = ImageIO.read(file); // 将图片添加到 PDF - try (PDPageContentStream contentStream = - new PDPageContentStream(destination, page)) { + try (PDPageContentStream contentStream = new PDPageContentStream(destination, page)) { PDImageXObject pdImage = LosslessFactory.createFromImage(destination, image); float scale = 1f; // 图片缩放比例 contentStream.drawImage(pdImage, 0, 0, @@ -464,7 +471,6 @@ public class ContractTabSkinFiles return item; } - private MenuItem createCustomerContractBidByTemplateUpdateMenuItem() { MenuItem item = new MenuItem(); item.setText("投标报价审批表"); @@ -503,7 +509,6 @@ public class ContractTabSkinFiles file.setType(ContractFileType.Cost); file.setApplyDate(LocalDate.now()); - String fileName = item.getText(); ContractFileTypeLocal local = fileTypeLocalMap.get(ContractFileType.CostForm); if (local != null) { @@ -530,16 +535,17 @@ public class ContractTabSkinFiles UITools.showTaskDialogAndWait("更新 " + model.getFileName().get(), task, null); - }); return item; } - private void onFileTableDescriptionColumnEditCommitAction(TableColumn.CellEditEvent event) { + private void onFileTableDescriptionColumnEditCommitAction( + TableColumn.CellEditEvent event) { acceptCellEditEvent(event, ContractFileViewModel::getDescription); } - private void onFileTableApplyDateColumnEditCommitAction(TableColumn.CellEditEvent event) { + private void onFileTableApplyDateColumnEditCommitAction( + TableColumn.CellEditEvent event) { acceptCellEditEvent(event, ContractFileViewModel::getApplyDate); } @@ -582,7 +588,7 @@ public class ContractTabSkinFiles if (selectedItem == null) { // 未选择行 windowEvent.consume(); - //contextMenu.hide(); + // contextMenu.hide(); fileTable_menu_del.setVisible(false); fileTable_menu_change_type.setVisible(false); fileTable_menu_change_type_and_name.setVisible(false); @@ -605,7 +611,6 @@ public class ContractTabSkinFiles } - private void onFileTableContextMenuChangeTypeAndNameAction(ActionEvent event) { MenuItem item = (MenuItem) event.getSource(); @@ -630,7 +635,8 @@ public class ContractTabSkinFiles String extension = StringUtils.getFilenameExtension(fileName); LocalDate localDate = selectedItem.getApplyDate().get(); String contractCode = viewModel.getCode().get(); - String newFileName = contractCode + "-" + suggestFileName + (localDate == null ? "" : ("-" + MyDateTimeUtils.format(localDate))) + "." + extension; + String newFileName = contractCode + "-" + suggestFileName + + (localDate == null ? "" : ("-" + MyDateTimeUtils.format(localDate))) + "." + extension; // 新旧文件名不一样,需要改名 if (!Objects.equals(newFileName, fileName)) { @@ -662,7 +668,6 @@ public class ContractTabSkinFiles return getContractFileService().save(entity); } - @Override public void deleteRowData(ContractFile entity) { getContractFileService().delete(entity); @@ -749,7 +754,6 @@ public class ContractTabSkinFiles // TODO 放到其他线程中, UI线程卡了 ContractCtx contractCtx = new ContractCtx(); - try (PDDocument pdDocument = Loader.loadPDF(pdfFile)) { Splitter splitter = new Splitter(); List pages = splitter.split(pdDocument); diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinItems.java b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinItems.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinItems.java rename to client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinItems.java index 16c36ce..9723038 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinItems.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinItems.java @@ -1,31 +1,39 @@ -package com.ecep.contract.manager.ds.contract.controller; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractItem; -import com.ecep.contract.manager.ds.contract.service.ContractItemService; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.vo.ContractItemComposeViewModel; -import com.ecep.contract.manager.ds.contract.vo.ContractItemViewModel; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import javafx.application.Platform; -import javafx.beans.property.SimpleListProperty; -import javafx.collections.ObservableList; -import javafx.geometry.Pos; -import javafx.scene.control.*; -import javafx.util.Callback; -import javafx.util.Duration; -import lombok.Setter; -import org.hibernate.Hibernate; -import org.springframework.util.StringUtils; +package com.ecep.contract.controller.tab; import java.util.HashMap; import java.util.List; import java.util.function.Function; import java.util.stream.Collectors; +import org.hibernate.Hibernate; +import org.springframework.util.StringUtils; + +import com.ecep.contract.ContractPayWay; +import com.ecep.contract.SpringApp; +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.ContractItemService; +import com.ecep.contract.ds.contract.service.ContractService; +import com.ecep.contract.ds.contract.vo.ContractItemComposeViewModel; +import com.ecep.contract.ds.contract.vo.ContractItemViewModel; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractItem; + +import javafx.application.Platform; +import javafx.beans.property.SimpleListProperty; +import javafx.collections.ObservableList; +import javafx.geometry.Pos; +import javafx.scene.control.ContextMenu; +import javafx.scene.control.MenuItem; +import javafx.scene.control.Tab; +import javafx.scene.control.TableCell; +import javafx.scene.control.TableColumn; +import javafx.scene.control.Tooltip; +import javafx.util.Callback; +import javafx.util.Duration; +import lombok.Setter; + @FxmlPath("/ui/contract/contract-tab-item.fxml") public class ContractTabSkinItems extends AbstContractTableTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinItemsV2.java b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinItemsV2.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinItemsV2.java rename to client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinItemsV2.java index 05dc3d4..9f63cea 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinItemsV2.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinItemsV2.java @@ -1,21 +1,30 @@ -package com.ecep.contract.manager.ds.contract.controller; +package com.ecep.contract.controller.tab; + +import java.text.NumberFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.HashMap; + +import org.hibernate.Hibernate; + +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.controller.contract.AbstContractTableTabSkin; +import com.ecep.contract.controller.contract.ContractWindowController; +import com.ecep.contract.controller.table.EditableEntityTableTabSkin; +import com.ecep.contract.converter.EntityStringConverter; +import com.ecep.contract.ds.contract.service.ContractItemService; +import com.ecep.contract.ds.contract.vo.ContractItemComposeViewModel; +import com.ecep.contract.ds.contract.vo.ContractItemViewModel; +import com.ecep.contract.ds.other.controller.inventory.InventoryWindowController; +import com.ecep.contract.ds.other.service.InventoryService; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractItem; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.Inventory; +import com.ecep.contract.ui.table.cell.EmployeeTableCell; +import com.ecep.contract.ui.table.cell.LocalDateTimeTableCell; +import com.ecep.contract.vm.InventoryViewModel; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractItem; -import com.ecep.contract.manager.ds.contract.service.ContractItemService; -import com.ecep.contract.manager.ds.contract.vo.ContractItemComposeViewModel; -import com.ecep.contract.manager.ds.contract.vo.ContractItemViewModel; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell; -import com.ecep.contract.manager.ds.other.controller.inventory.InventoryWindowController; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.service.InventoryService; -import com.ecep.contract.manager.ds.other.vo.InventoryViewModel; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import javafx.application.Platform; import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; @@ -25,12 +34,6 @@ import javafx.scene.control.cell.TextFieldTableCell; import javafx.util.converter.CurrencyStringConverter; import javafx.util.converter.NumberStringConverter; import lombok.Setter; -import org.hibernate.Hibernate; - -import java.text.NumberFormat; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.HashMap; @FxmlPath("/ui/contract/contract-tab-item-v2.fxml") public class ContractTabSkinItemsV2 diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinPayPlan.java b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinPayPlan.java similarity index 85% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinPayPlan.java rename to client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinPayPlan.java index b240de0..3ed30e4 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinPayPlan.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinPayPlan.java @@ -1,11 +1,18 @@ -package com.ecep.contract.manager.ds.contract.controller; +package com.ecep.contract.controller.tab; + +import java.text.NumberFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; + +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.ContractPayPlanService; +import com.ecep.contract.ds.contract.vo.ContractPayPlanViewModel; +import com.ecep.contract.model.ContractPayPlan; +import com.ecep.contract.service.ViewModelService; +import com.ecep.contract.ui.table.cell.LocalDateTimeTableCell; -import com.ecep.contract.manager.ds.contract.model.ContractPayPlan; -import com.ecep.contract.manager.ds.contract.service.ContractPayPlanService; -import com.ecep.contract.manager.ds.contract.vo.ContractPayPlanViewModel; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import javafx.scene.control.ContextMenu; import javafx.scene.control.Tab; import javafx.scene.control.TableColumn; @@ -13,10 +20,6 @@ import javafx.scene.control.cell.TextFieldTableCell; import javafx.util.converter.CurrencyStringConverter; import javafx.util.converter.NumberStringConverter; -import java.text.NumberFormat; -import java.time.LocalDate; -import java.time.LocalDateTime; - @FxmlPath("/ui/contract/contract-tab-pay-plan.fxml") public class ContractTabSkinPayPlan extends AbstContractTableTabSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinPurchaseOrders.java b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinPurchaseOrders.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinPurchaseOrders.java rename to client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinPurchaseOrders.java index f48f7ea..2c8548f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinPurchaseOrders.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinPurchaseOrders.java @@ -1,18 +1,22 @@ -package com.ecep.contract.manager.ds.contract.controller; - -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.controller.purchase_order.PurchaseOrderWindowController; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrder; -import com.ecep.contract.manager.ds.contract.service.PurchaseOrdersService; -import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderViewModel; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; -import javafx.scene.control.*; +package com.ecep.contract.controller.tab; import java.time.LocalDateTime; +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.controller.vendor.PurchaseOrderWindowController; +import com.ecep.contract.converter.EmployeeStringConverter; +import com.ecep.contract.ds.contract.service.PurchaseOrdersService; +import com.ecep.contract.ds.contract.vo.PurchaseOrderViewModel; +import com.ecep.contract.model.PurchaseOrder; +import com.ecep.contract.ui.table.cell.LocalDateTimeTableCell; + +import javafx.scene.control.MenuItem; +import javafx.scene.control.Tab; +import javafx.scene.control.TableColumn; + /** * 子合同 */ @@ -21,7 +25,6 @@ public class ContractTabSkinPurchaseOrders extends AbstContractTableTabSkin implements TabSkin { - private PurchaseOrdersService purchaseOrdersService; private EmployeeStringConverter employeeStringConverter; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinSaleOrders.java b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinSaleOrders.java similarity index 82% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinSaleOrders.java rename to client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinSaleOrders.java index 09c04ca..c874277 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinSaleOrders.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinSaleOrders.java @@ -1,22 +1,28 @@ -package com.ecep.contract.manager.ds.contract.controller; +package com.ecep.contract.controller.tab; -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.controller.sale_order.SalesOrderWindowController; -import com.ecep.contract.manager.ds.contract.model.SalesOrder; -import com.ecep.contract.manager.ds.contract.service.SaleOrdersService; -import com.ecep.contract.manager.ds.contract.vo.SalesOrderViewModel; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.ui.util.LocalDateFieldTableCell; -import javafx.scene.control.*; +import java.time.LocalDate; + +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.controller.customer.SalesOrderWindowController; +import com.ecep.contract.controller.table.cell.LocalDateFieldTableCell; +import com.ecep.contract.converter.EmployeeStringConverter; +import com.ecep.contract.ds.contract.service.SaleOrdersService; +import com.ecep.contract.ds.contract.vo.SalesOrderViewModel; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.SalesOrder; + +import javafx.scene.control.Button; +import javafx.scene.control.MenuItem; +import javafx.scene.control.Tab; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TextField; import javafx.scene.control.cell.TextFieldTableCell; import javafx.scene.input.KeyCode; import lombok.Setter; -import java.time.LocalDate; - /** * 子合同 */ diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinSubContract.java b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinSubContract.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinSubContract.java rename to client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinSubContract.java index 7a9cde2..960c682 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinSubContract.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinSubContract.java @@ -1,19 +1,26 @@ -package com.ecep.contract.manager.ds.contract.controller; - -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.vo.ContractViewModel; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.SpecificationUtils; -import javafx.application.Platform; -import javafx.scene.control.*; -import javafx.scene.input.KeyCode; -import org.springframework.data.jpa.domain.Specification; +package com.ecep.contract.controller.tab; import java.time.LocalDate; +import org.springframework.data.jpa.domain.Specification; + +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 javafx.application.Platform; +import javafx.scene.control.Button; +import javafx.scene.control.MenuItem; +import javafx.scene.control.Tab; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TextField; +import javafx.scene.input.KeyCode; + /** * 子合同 */ @@ -54,7 +61,6 @@ public class ContractTabSkinSubContract return getContractService(); } - @Override public Specification getSpecification(Contract parent) { return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinVendorBid.java b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinVendorBid.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinVendorBid.java rename to client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinVendorBid.java index 5fda8a7..05c8f56 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinVendorBid.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/ContractTabSkinVendorBid.java @@ -1,27 +1,38 @@ -package com.ecep.contract.manager.ds.contract.controller; +package com.ecep.contract.controller.tab; + +import java.util.List; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.company.vo.CompanyViewModel; -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractBidVendor; -import com.ecep.contract.manager.ds.contract.model.ContractFile; -import com.ecep.contract.manager.ds.contract.service.ContractBidVendorService; -import com.ecep.contract.manager.ds.contract.service.ContractFileService; -import com.ecep.contract.manager.ds.contract.vo.ContractBidVendorViewModel; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import javafx.event.ActionEvent; -import javafx.scene.control.*; -import javafx.util.StringConverter; -import lombok.Setter; import org.controlsfx.control.textfield.TextFields; import org.hibernate.Hibernate; -import java.util.List; +import com.ecep.contract.ContractPayWay; +import com.ecep.contract.SpringApp; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.controller.contract.AbstContractTableTabSkin; +import com.ecep.contract.controller.contract.ContractWindowController; +import com.ecep.contract.controller.table.EditableEntityTableTabSkin; +import com.ecep.contract.controller.vendor.VendorBidWindowController; +import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.ds.contract.service.ContractBidVendorService; +import com.ecep.contract.ds.contract.service.ContractFileService; +import com.ecep.contract.ds.contract.vo.ContractBidVendorViewModel; +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.vm.CompanyViewModel; + +import javafx.event.ActionEvent; +import javafx.scene.control.Alert; +import javafx.scene.control.Button; +import javafx.scene.control.ChoiceDialog; +import javafx.scene.control.ComboBox; +import javafx.scene.control.MenuItem; +import javafx.scene.control.Tab; +import javafx.scene.control.TableCell; +import javafx.scene.control.TableColumn; +import javafx.util.StringConverter; +import lombok.Setter; /** * 以下是比价供应商 diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractUpdater.java b/client/src/main/java/com/ecep/contract/controller/tab/ContractUpdater.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractUpdater.java rename to client/src/main/java/com/ecep/contract/controller/tab/ContractUpdater.java index ecbe312..9c139f7 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractUpdater.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/ContractUpdater.java @@ -1,32 +1,33 @@ -package com.ecep.contract.manager.ds.contract.controller; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.contract.model.ContractGroup; -import com.ecep.contract.manager.ds.contract.model.ContractKind; -import com.ecep.contract.manager.ds.contract.model.ContractType; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.fasterxml.jackson.databind.ObjectMapper; -import lombok.Data; -import lombok.Getter; -import org.springframework.beans.BeansException; +package com.ecep.contract.controller.tab; import java.util.Map; 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; +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.ContractService; +import com.ecep.contract.service.EmployeeService; +import com.ecep.contract.service.YongYouU8Service; +import com.fasterxml.jackson.databind.ObjectMapper; + +import lombok.Data; +import lombok.Getter; + @Data public class ContractUpdater implements MessageHolder { @lombok.Data static class Data { - @Getter private boolean changed = false; @@ -87,7 +88,6 @@ public class ContractUpdater implements MessageHolder { return updater; } - private ObjectMapper objectMapper; private MessageHolder holder; private ContractService contractService; @@ -97,7 +97,6 @@ public class ContractUpdater implements MessageHolder { private CompanyCustomerService customerService; private YongYouU8Service u8Service; - public T convertValue(Object fromValue, Class toValueType) throws IllegalArgumentException { return getObjectMapper().convertValue(fromValue, toValueType); } @@ -107,7 +106,6 @@ public class ContractUpdater implements MessageHolder { holder.addMessage(level, message); } - public void updateMessage(String message) { MessageHolder consumer = getHolder(); if (consumer != null) { @@ -191,5 +189,4 @@ public class ContractUpdater implements MessageHolder { return u8Service; } - } diff --git a/src/main/java/com/ecep/contract/manager/ui/RefreshableSkin.java b/client/src/main/java/com/ecep/contract/controller/tab/RefreshableSkin.java similarity index 81% rename from src/main/java/com/ecep/contract/manager/ui/RefreshableSkin.java rename to client/src/main/java/com/ecep/contract/controller/tab/RefreshableSkin.java index 7742f3b..4978ea8 100644 --- a/src/main/java/com/ecep/contract/manager/ui/RefreshableSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/RefreshableSkin.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract.controller.tab; import java.util.concurrent.CompletableFuture; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinBase.java similarity index 77% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinBase.java rename to client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinBase.java index 9643cd5..fab2afa 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinBase.java @@ -1,23 +1,23 @@ -package com.ecep.contract.manager.ds.contract.controller.sale_order; +package com.ecep.contract.controller.tab; + +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.manager.SpringApp; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.contract.model.SalesOrder; -import com.ecep.contract.manager.ds.contract.service.ContractFileService; -import com.ecep.contract.manager.ds.contract.vo.SalesOrderViewModel; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.UITools; import javafx.beans.property.SimpleObjectProperty; import javafx.scene.control.Tab; import javafx.scene.control.TextField; import lombok.Setter; -import java.time.LocalDateTime; - public class SalesOrderTabSkinBase extends AbstEntityBasedTabSkin implements TabSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinBillVoucher.java b/client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinBillVoucher.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinBillVoucher.java rename to client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinBillVoucher.java index 6228227..9ffab76 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinBillVoucher.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinBillVoucher.java @@ -1,39 +1,46 @@ -package com.ecep.contract.manager.ds.contract.controller.sale_order; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractItem; -import com.ecep.contract.manager.ds.contract.model.SalesBillVoucher; -import com.ecep.contract.manager.ds.contract.model.SalesOrder; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.service.SaleOrdersService; -import com.ecep.contract.manager.ds.contract.service.SalesBillVoucherService; -import com.ecep.contract.manager.ds.contract.vo.ContractItemComposeViewModel; -import com.ecep.contract.manager.ds.contract.vo.SalesBillVoucherViewModel; -import com.ecep.contract.manager.ds.contract.vo.SalesOrderViewModel; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.SpecificationUtils; -import javafx.application.Platform; -import javafx.collections.ObservableList; -import javafx.geometry.Pos; -import javafx.scene.control.*; -import javafx.scene.control.cell.TextFieldTableCell; -import javafx.util.Callback; -import javafx.util.Duration; -import lombok.Setter; -import org.hibernate.Hibernate; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.util.StringUtils; +package com.ecep.contract.controller.tab; import java.time.LocalDateTime; import java.util.HashMap; 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 javafx.application.Platform; +import javafx.collections.ObservableList; +import javafx.geometry.Pos; +import javafx.scene.control.ContextMenu; +import javafx.scene.control.MenuItem; +import javafx.scene.control.Tab; +import javafx.scene.control.TableCell; +import javafx.scene.control.TableColumn; +import javafx.scene.control.Tooltip; +import javafx.scene.control.cell.TextFieldTableCell; +import javafx.util.Callback; +import javafx.util.Duration; +import lombok.Setter; + @FxmlPath("/ui/contract/sale-orders-tab-bill-voucher.fxml") public class SalesOrderTabSkinBillVoucher extends AbstEntityTableTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinItems.java b/client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinItems.java similarity index 76% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinItems.java rename to client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinItems.java index a2f6dc6..8bf73dd 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinItems.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/SalesOrderTabSkinItems.java @@ -1,29 +1,4 @@ -package com.ecep.contract.manager.ds.contract.controller.sale_order; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractItem; -import com.ecep.contract.manager.ds.contract.model.SalesOrder; -import com.ecep.contract.manager.ds.contract.model.SalesOrderItem; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.service.SaleOrdersService; -import com.ecep.contract.manager.ds.contract.service.SalesOrderItemService; -import com.ecep.contract.manager.ds.contract.vo.ContractItemComposeViewModel; -import com.ecep.contract.manager.ds.contract.vo.SalesOrderItemViewModel; -import com.ecep.contract.manager.ds.contract.vo.SalesOrderViewModel; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.SpecificationUtils; -import javafx.application.Platform; -import javafx.collections.ObservableList; -import javafx.geometry.Pos; -import javafx.scene.control.*; -import javafx.util.Callback; -import javafx.util.Duration; -import org.hibernate.Hibernate; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.util.StringUtils; +package com.ecep.contract.controller.tab; import java.time.LocalDate; import java.util.HashMap; @@ -31,14 +6,47 @@ import java.util.List; 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 javafx.application.Platform; +import javafx.collections.ObservableList; +import javafx.geometry.Pos; +import javafx.scene.control.ContextMenu; +import javafx.scene.control.MenuItem; +import javafx.scene.control.Tab; +import javafx.scene.control.TableCell; +import javafx.scene.control.TableColumn; +import javafx.scene.control.Tooltip; +import javafx.util.Callback; +import javafx.util.Duration; + @FxmlPath("/ui/contract/sale-orders-tab-item.fxml") public class SalesOrderTabSkinItems - extends AbstEntityTableTabSkin + extends + AbstEntityTableTabSkin implements TabSkin { private SalesOrderItemService itemService; - /* 以下是合同内容 */ + /* 以下是合同内容 */ public TableColumn itemTable_idColumn; public TableColumn itemTable_codeColumn; public TableColumn itemTable_nameColumn; @@ -136,16 +144,17 @@ public class SalesOrderTabSkinItems itemTable_idColumn.setCellValueFactory(param -> param.getValue().getId()); itemTable_codeColumn.setCellValueFactory(param -> param.getValue().getCode()); itemTable_nameColumn.setCellValueFactory(param -> param.getValue().getName()); - //itemTable_unitColumn.setCellValueFactory(param -> param.getValue().getUnit()); + // itemTable_unitColumn.setCellValueFactory(param -> + // param.getValue().getUnit()); itemTable_unitColumn.setCellFactory(col -> new UnitTableCell()); NumberCellFactory v1 = new NumberCellFactory("%,.1f", null); NumberCellFactory v2 = new NumberCellFactory("%,.2f", null); NumberCellFactory v3 = new NumberCellFactory("%,.2f", "custom-cell"); - // 进项 - itemTable_exclusiveTaxPriceColumn.setCellValueFactory(param -> param.getValue().getExclusiveTaxPrice().asObject()); + itemTable_exclusiveTaxPriceColumn + .setCellValueFactory(param -> param.getValue().getExclusiveTaxPrice().asObject()); itemTable_exclusiveTaxPriceColumn.setCellFactory(v2); itemTable_taxRateColumn.setCellValueFactory(param -> param.getValue().getTaxRate().asObject()); @@ -157,20 +166,19 @@ public class SalesOrderTabSkinItems itemTable_quantityColumn.setCellValueFactory(param -> param.getValue().getQuantity().asObject()); itemTable_quantityColumn.setCellFactory(v1); -// itemTable_taxAmountColumn.setCellValueFactory(param -> param.getValue().getTaxAmount().asObject()); -// itemTable_taxAmountColumn.setCellFactory(v3); - -// itemTable_exclusiveTaxAmountColumn.setCellValueFactory(param -> param.getValue().getExclusiveTaxPrice().asObject()); -// itemTable_exclusiveTaxAmountColumn.setCellFactory(v3); + // itemTable_taxAmountColumn.setCellValueFactory(param -> + // param.getValue().getTaxAmount().asObject()); + // itemTable_taxAmountColumn.setCellFactory(v3); + // itemTable_exclusiveTaxAmountColumn.setCellValueFactory(param -> + // param.getValue().getExclusiveTaxPrice().asObject()); + // itemTable_exclusiveTaxAmountColumn.setCellFactory(v3); itemTable_startDateColumn.setCellValueFactory(param -> param.getValue().getStartDate()); - //itemTable_startDateColumn.setCellFactory(v2); - + // itemTable_startDateColumn.setCellFactory(v2); itemTable_endDateColumn.setCellValueFactory(param -> param.getValue().getEndDate()); - //itemTable_endDateColumn.setCellFactory(v3); - + // itemTable_endDateColumn.setCellFactory(v3); itemTable_descriptionColumn.setCellValueFactory(param -> param.getValue().getDescription()); } @@ -186,24 +194,30 @@ public class SalesOrderTabSkinItems contextMenu.getItems().addAll(item2, item3); } - - 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)); } @@ -240,7 +254,8 @@ public class SalesOrderTabSkinItems } 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); } @@ -263,7 +278,8 @@ public class SalesOrderTabSkinItems } } - static class NumberCellFactory implements Callback, TableCell> { + static class NumberCellFactory implements + Callback, TableCell> { private final String format; private final String styleClass; diff --git a/src/main/java/com/ecep/contract/manager/ui/Skin.java b/client/src/main/java/com/ecep/contract/controller/tab/Skin.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ui/Skin.java rename to client/src/main/java/com/ecep/contract/controller/tab/Skin.java index decca4b..3913314 100644 --- a/src/main/java/com/ecep/contract/manager/ui/Skin.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/Skin.java @@ -1,11 +1,12 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract.controller.tab; -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.SpringApp; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; +import com.ecep.contract.Desktop; +import com.ecep.contract.SpringApp; + import java.util.concurrent.CompletableFuture; import java.util.concurrent.ScheduledExecutorService; diff --git a/src/main/java/com/ecep/contract/manager/ui/tab/TabSkin.java b/client/src/main/java/com/ecep/contract/controller/tab/TabSkin.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ui/tab/TabSkin.java rename to client/src/main/java/com/ecep/contract/controller/tab/TabSkin.java index 0add7c9..bbada06 100644 --- a/src/main/java/com/ecep/contract/manager/ui/tab/TabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/TabSkin.java @@ -1,6 +1,5 @@ -package com.ecep.contract.manager.ui.tab; +package com.ecep.contract.controller.tab; -import com.ecep.contract.manager.ui.Skin; import javafx.beans.property.BooleanProperty; import javafx.scene.control.Tab; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/VendorBidTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/tab/VendorBidTabSkinBase.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/VendorBidTabSkinBase.java rename to client/src/main/java/com/ecep/contract/controller/tab/VendorBidTabSkinBase.java index c22ff00..f15cf15 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/VendorBidTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/tab/VendorBidTabSkinBase.java @@ -1,23 +1,30 @@ -package com.ecep.contract.manager.ds.contract.controller; +package com.ecep.contract.controller.tab; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; + +import org.springframework.data.domain.Sort; +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.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.vm.BaseViewModel; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.CompanyStringConverter; -import com.ecep.contract.manager.ds.company.controller.CompanyWindowController; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractBidVendor; -import com.ecep.contract.manager.ds.contract.model.ContractFile; -import com.ecep.contract.manager.ds.contract.service.ContractFileService; -import com.ecep.contract.manager.ds.contract.vo.ContractBidVendorViewModel; -import com.ecep.contract.manager.ds.contract.vo.ContractFileViewModel; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.UITools; import javafx.beans.binding.Bindings; import javafx.beans.property.BooleanProperty; import javafx.beans.property.SimpleBooleanProperty; @@ -26,12 +33,6 @@ import javafx.scene.control.Tab; import javafx.scene.control.TextField; import javafx.util.converter.LocalDateStringConverter; import lombok.Setter; -import org.springframework.data.domain.Sort; -import org.springframework.data.jpa.domain.Specification; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; public class VendorBidTabSkinBase extends AbstEntityBasedTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ui/table/AbstEntityTableTabSkin.java b/client/src/main/java/com/ecep/contract/controller/table/AbstEntityTableTabSkin.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/ui/table/AbstEntityTableTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/table/AbstEntityTableTabSkin.java index a29a35d..c4e6c2c 100644 --- a/src/main/java/com/ecep/contract/manager/ui/table/AbstEntityTableTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/table/AbstEntityTableTabSkin.java @@ -1,32 +1,34 @@ -package com.ecep.contract.manager.ui.table; +package com.ecep.contract.controller.table; import java.io.File; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.function.Consumer; import java.util.function.Function; -import com.ecep.contract.manager.ui.RefreshableSkin; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.ViewModelService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeansException; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ui.util.LocalDateFieldTableCell; -import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; -import com.ecep.contract.manager.util.TableViewUtils; -import com.ecep.contract.manager.util.UITools; +import com.ecep.contract.controller.AbstEntityController; +import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.controller.tab.RefreshableSkin; +import com.ecep.contract.controller.table.cell.LocalDateFieldTableCell; +import com.ecep.contract.controller.table.cell.LocalDateTimeTableCell; +import com.ecep.contract.model.IdentityEntity; +import com.ecep.contract.service.EmployeeService; +import com.ecep.contract.service.ViewModelService; +import com.ecep.contract.util.TableViewUtils; +import com.ecep.contract.util.UITools; +import com.ecep.contract.vm.IdentityViewModel; import javafx.application.Platform; import javafx.beans.property.BooleanProperty; @@ -85,8 +87,13 @@ public abstract class AbstEntityTableTabSkin CLZ getCachedBean(Class requiredType) throws BeansException { + return controller.getCachedBean(requiredType); + } + public EmployeeService getEmployeeService() { - return controller.getEmployeeService(); + return getCachedBean(EmployeeService.class); } @Override @@ -112,7 +119,7 @@ public abstract class AbstEntityTableTabSkin spec = getSpecification(parent); + Map spec = getSpecification(parent); ViewModelService service = getViewModelService(); if (service == null) { if (logger.isWarnEnabled()) { @@ -125,7 +132,7 @@ public abstract class AbstEntityTableTabSkin getSpecification() { + public Map getSpecification() { if (searchKeyField == null) { return null; } diff --git a/src/main/java/com/ecep/contract/manager/ui/table/EditableEntityTableTabSkin.java b/client/src/main/java/com/ecep/contract/controller/table/EditableEntityTableTabSkin.java similarity index 62% rename from src/main/java/com/ecep/contract/manager/ui/table/EditableEntityTableTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/table/EditableEntityTableTabSkin.java index e95b95b..303c57f 100644 --- a/src/main/java/com/ecep/contract/manager/ui/table/EditableEntityTableTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/table/EditableEntityTableTabSkin.java @@ -1,6 +1,6 @@ -package com.ecep.contract.manager.ui.table; +package com.ecep.contract.controller.table; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; +import com.ecep.contract.vm.BaseViewModel; public interface EditableEntityTableTabSkin> { diff --git a/client/src/main/java/com/ecep/contract/controller/table/TableOfTabSkin.java b/client/src/main/java/com/ecep/contract/controller/table/TableOfTabSkin.java new file mode 100644 index 0000000..0c3f9ea --- /dev/null +++ b/client/src/main/java/com/ecep/contract/controller/table/TableOfTabSkin.java @@ -0,0 +1,14 @@ +package com.ecep.contract.controller.table; + +import java.util.List; +import java.util.Map; + +import com.ecep.contract.vm.BaseViewModel; + +public interface TableOfTabSkin> extends TableTabSkin { + void loadTableDataSet(K parent); + + List loadTableData(K parent); + + Map getSpecification(K parent); +} diff --git a/src/main/java/com/ecep/contract/manager/ui/table/TableTabSkin.java b/client/src/main/java/com/ecep/contract/controller/table/TableTabSkin.java similarity index 51% rename from src/main/java/com/ecep/contract/manager/ui/table/TableTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/table/TableTabSkin.java index 3195f35..e0c1dc3 100644 --- a/src/main/java/com/ecep/contract/manager/ui/table/TableTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/table/TableTabSkin.java @@ -1,8 +1,10 @@ -package com.ecep.contract.manager.ui.table; +package com.ecep.contract.controller.table; + +import java.util.Map; + +import com.ecep.contract.vm.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; import javafx.scene.control.TableView; -import org.springframework.data.jpa.domain.Specification; public interface TableTabSkin> { /** @@ -12,7 +14,6 @@ public interface TableTabSkin> { void loadTableDataSet(); - - Specification getSpecification(); + Map getSpecification(); } diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/AsyncUpdateTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/AsyncUpdateTableCell.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ui/table/cell/AsyncUpdateTableCell.java rename to client/src/main/java/com/ecep/contract/controller/table/cell/AsyncUpdateTableCell.java index 0e33a51..5c6902b 100644 --- a/src/main/java/com/ecep/contract/manager/ui/table/cell/AsyncUpdateTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/AsyncUpdateTableCell.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui.table.cell; +package com.ecep.contract.controller.table.cell; import java.util.concurrent.Future; @@ -6,10 +6,11 @@ import org.hibernate.Hibernate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.NamedEntity; -import com.ecep.contract.manager.ds.other.service.IEntityService; +import com.ecep.contract.Desktop; +import com.ecep.contract.model.BasedEntity; +import com.ecep.contract.model.IdentityEntity; +import com.ecep.contract.model.NamedEntity; +import com.ecep.contract.service.IEntityService; import javafx.application.Platform; @@ -29,7 +30,7 @@ public class AsyncUpdateTableCell extends javafx.sc if (entity instanceof NamedEntity named) { return named.getName(); } - if (entity instanceof com.ecep.contract.manager.ds.other.model.Entity e) { + if (entity instanceof BasedEntity e) { return e.toPrettyString(); } return entity.toString(); diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/BankTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/BankTableCell.java similarity index 55% rename from src/main/java/com/ecep/contract/manager/ui/table/cell/BankTableCell.java rename to client/src/main/java/com/ecep/contract/controller/table/cell/BankTableCell.java index f448d40..90fa324 100644 --- a/src/main/java/com/ecep/contract/manager/ui/table/cell/BankTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/BankTableCell.java @@ -1,9 +1,10 @@ -package com.ecep.contract.manager.ui.table.cell; +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.manager.SpringApp; -import com.ecep.contract.manager.ds.other.model.Bank; -import com.ecep.contract.manager.ds.other.service.BankService; -import com.ecep.contract.manager.ds.other.service.IEntityService; import lombok.NoArgsConstructor; @NoArgsConstructor diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/CompanyTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/CompanyTableCell.java similarity index 61% rename from src/main/java/com/ecep/contract/manager/ui/table/cell/CompanyTableCell.java rename to client/src/main/java/com/ecep/contract/controller/table/cell/CompanyTableCell.java index 5930606..b55404b 100644 --- a/src/main/java/com/ecep/contract/manager/ui/table/cell/CompanyTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/CompanyTableCell.java @@ -1,10 +1,10 @@ -package com.ecep.contract.manager.ui.table.cell; +package com.ecep.contract.controller.table.cell; -import static com.ecep.contract.manager.SpringApp.getBean; +import static com.ecep.contract.SpringApp.getBean; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; +import com.ecep.contract.model.Company; +import com.ecep.contract.service.CompanyService; import lombok.NoArgsConstructor; /** * 公司单元格 diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/CompanyVendorTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/CompanyVendorTableCell.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ui/table/cell/CompanyVendorTableCell.java rename to client/src/main/java/com/ecep/contract/controller/table/cell/CompanyVendorTableCell.java index ca106a9..89d6be8 100644 --- a/src/main/java/com/ecep/contract/manager/ui/table/cell/CompanyVendorTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/CompanyVendorTableCell.java @@ -1,13 +1,13 @@ -package com.ecep.contract.manager.ui.table.cell; +package com.ecep.contract.controller.table.cell; import org.hibernate.Hibernate; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.other.service.IEntityService; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; +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 javafx.scene.control.TableCell; import javafx.scene.control.TableColumn; diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractGroupTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/ContractGroupTableCell.java similarity index 54% rename from src/main/java/com/ecep/contract/manager/ui/table/cell/ContractGroupTableCell.java rename to client/src/main/java/com/ecep/contract/controller/table/cell/ContractGroupTableCell.java index 97c2bbf..5ac17d9 100644 --- a/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractGroupTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/ContractGroupTableCell.java @@ -1,10 +1,10 @@ -package com.ecep.contract.manager.ui.table.cell; +package com.ecep.contract.controller.table.cell; -import com.ecep.contract.manager.ds.contract.model.ContractGroup; -import com.ecep.contract.manager.ds.contract.service.ContractGroupService; -import com.ecep.contract.manager.ds.other.service.IEntityService; +import static com.ecep.contract.SpringApp.getBean; -import static com.ecep.contract.manager.SpringApp.getBean; +import com.ecep.contract.model.ContractGroup; +import com.ecep.contract.service.ContractGroupService; +import com.ecep.contract.service.IEntityService; public class ContractGroupTableCell extends AsyncUpdateTableCell { public ContractGroupTableCell() { diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractKindTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/ContractKindTableCell.java similarity index 55% rename from src/main/java/com/ecep/contract/manager/ui/table/cell/ContractKindTableCell.java rename to client/src/main/java/com/ecep/contract/controller/table/cell/ContractKindTableCell.java index d683419..dabf829 100644 --- a/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractKindTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/ContractKindTableCell.java @@ -1,10 +1,10 @@ -package com.ecep.contract.manager.ui.table.cell; +package com.ecep.contract.controller.table.cell; -import com.ecep.contract.manager.ds.contract.model.ContractKind; -import com.ecep.contract.manager.ds.contract.service.ContractKindService; -import com.ecep.contract.manager.ds.other.service.IEntityService; +import static com.ecep.contract.SpringApp.getBean; -import static com.ecep.contract.manager.SpringApp.getBean; +import com.ecep.contract.model.ContractKind; +import com.ecep.contract.service.ContractKindService; +import com.ecep.contract.service.IEntityService; public class ContractKindTableCell extends AsyncUpdateTableCell { diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/ContractTableCell.java similarity index 54% rename from src/main/java/com/ecep/contract/manager/ui/table/cell/ContractTableCell.java rename to client/src/main/java/com/ecep/contract/controller/table/cell/ContractTableCell.java index c6c3ea1..32af53b 100644 --- a/src/main/java/com/ecep/contract/manager/ui/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.manager.ui.table.cell; +package com.ecep.contract.controller.table.cell; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.other.service.IEntityService; +import com.ecep.contract.IEntityService; +import com.ecep.contract.SpringApp; +import com.ecep.contract.ds.contract.service.ContractService; +import com.ecep.contract.model.Contract; public class ContractTableCell extends AsyncUpdateTableCell { public ContractTableCell() { diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractTypeTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/ContractTypeTableCell.java similarity index 52% rename from src/main/java/com/ecep/contract/manager/ui/table/cell/ContractTypeTableCell.java rename to client/src/main/java/com/ecep/contract/controller/table/cell/ContractTypeTableCell.java index 66f571b..a533bc2 100644 --- a/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractTypeTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/ContractTypeTableCell.java @@ -1,15 +1,16 @@ -package com.ecep.contract.manager.ui.table.cell; +package com.ecep.contract.controller.table.cell; + +import com.ecep.contract.SpringApp; +import com.ecep.contract.model.ContractType; +import com.ecep.contract.service.ContractTypeService; +import com.ecep.contract.service.IEntityService; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.contract.model.ContractType; -import com.ecep.contract.manager.ds.contract.service.ContractTypeService; -import com.ecep.contract.manager.ds.other.service.IEntityService; import lombok.NoArgsConstructor; @NoArgsConstructor public class ContractTypeTableCell extends AsyncUpdateTableCell { public ContractTypeTableCell(ContractTypeService contractService) { - setService(contractService); + setService(contractService); } @Override 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 new file mode 100644 index 0000000..55daab0 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/DepartmentTableCell.java @@ -0,0 +1,21 @@ +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 lombok.NoArgsConstructor; + +@NoArgsConstructor +public class DepartmentTableCell extends AsyncUpdateTableCell { + public DepartmentTableCell(DepartmentService service) { + setService(service); + } + + @Override + protected IEntityService getServiceBean() { + return SpringApp.getBean(DepartmentService.class); + } + +} diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/EmployeeRoleTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/EmployeeRoleTableCell.java similarity index 63% rename from src/main/java/com/ecep/contract/manager/ui/table/cell/EmployeeRoleTableCell.java rename to client/src/main/java/com/ecep/contract/controller/table/cell/EmployeeRoleTableCell.java index 454281d..6d45691 100644 --- a/src/main/java/com/ecep/contract/manager/ui/table/cell/EmployeeRoleTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/EmployeeRoleTableCell.java @@ -1,11 +1,12 @@ -package com.ecep.contract.manager.ui.table.cell; +package com.ecep.contract.controller.table.cell; + +import static com.ecep.contract.SpringApp.getBean; + +import com.ecep.contract.model.EmployeeRole; +import com.ecep.contract.service.EmployeeRoleService; -import com.ecep.contract.manager.ds.other.model.EmployeeRole; -import com.ecep.contract.manager.ds.other.service.EmployeeRoleService; import lombok.NoArgsConstructor; -import static com.ecep.contract.manager.SpringApp.getBean; - /** * 角色表格列 * diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/EmployeeTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/EmployeeTableCell.java similarity index 63% rename from src/main/java/com/ecep/contract/manager/ui/table/cell/EmployeeTableCell.java rename to client/src/main/java/com/ecep/contract/controller/table/cell/EmployeeTableCell.java index 838302d..690d1b7 100644 --- a/src/main/java/com/ecep/contract/manager/ui/table/cell/EmployeeTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/EmployeeTableCell.java @@ -1,12 +1,13 @@ -package com.ecep.contract.manager.ui.table.cell; +package com.ecep.contract.controller.table.cell; + +import static com.ecep.contract.SpringApp.getBean; + +import com.ecep.contract.model.Employee; +import com.ecep.contract.service.EmployeeService; +import com.ecep.contract.service.ViewModelService; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import com.ecep.contract.manager.ui.ViewModelService; import lombok.Setter; -import static com.ecep.contract.manager.SpringApp.getBean; - @Setter public class EmployeeTableCell extends AsyncUpdateTableCell { diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/EvaluationFileTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/EvaluationFileTableCell.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/ui/table/cell/EvaluationFileTableCell.java rename to client/src/main/java/com/ecep/contract/controller/table/cell/EvaluationFileTableCell.java index c5571e5..762c1ac 100644 --- a/src/main/java/com/ecep/contract/manager/ui/table/cell/EvaluationFileTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/EvaluationFileTableCell.java @@ -1,14 +1,16 @@ -package com.ecep.contract.manager.ui.table.cell; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEvaluationFormFile; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFile; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService; -import lombok.NoArgsConstructor; -import org.springframework.util.StringUtils; +package com.ecep.contract.controller.table.cell; 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 lombok.NoArgsConstructor; + /** * 评估文件 TableCell */ diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/InventoryTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/InventoryTableCell.java similarity index 80% rename from src/main/java/com/ecep/contract/manager/ui/table/cell/InventoryTableCell.java rename to client/src/main/java/com/ecep/contract/controller/table/cell/InventoryTableCell.java index f086250..a717a20 100644 --- a/src/main/java/com/ecep/contract/manager/ui/table/cell/InventoryTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/InventoryTableCell.java @@ -1,13 +1,15 @@ -package com.ecep.contract.manager.ui.table.cell; +package com.ecep.contract.controller.table.cell; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.model.InventoryCatalog; -import com.ecep.contract.manager.ds.other.service.InventoryCatalogService; -import com.ecep.contract.manager.ds.other.service.InventoryService; -import lombok.NoArgsConstructor; 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 lombok.NoArgsConstructor; + @NoArgsConstructor public class InventoryTableCell extends AsyncUpdateTableCell { diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/InvoiceTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/InvoiceTableCell.java similarity index 59% rename from src/main/java/com/ecep/contract/manager/ui/table/cell/InvoiceTableCell.java rename to client/src/main/java/com/ecep/contract/controller/table/cell/InvoiceTableCell.java index 2f376eb..1d041de 100644 --- a/src/main/java/com/ecep/contract/manager/ui/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.manager.ui.table.cell; +package com.ecep.contract.controller.table.cell; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.model.Invoice; -import com.ecep.contract.manager.ds.company.service.InvoiceService; -import com.ecep.contract.manager.ds.other.service.IEntityService; +import com.ecep.contract.IEntityService; +import com.ecep.contract.SpringApp; +import com.ecep.contract.ds.company.service.InvoiceService; +import com.ecep.contract.model.Invoice; public class InvoiceTableCell extends AsyncUpdateTableCell { diff --git a/src/main/java/com/ecep/contract/manager/ui/util/LocalDateFieldTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/LocalDateFieldTableCell.java similarity index 98% rename from src/main/java/com/ecep/contract/manager/ui/util/LocalDateFieldTableCell.java rename to client/src/main/java/com/ecep/contract/controller/table/cell/LocalDateFieldTableCell.java index 4b52cc2..7da2f56 100644 --- a/src/main/java/com/ecep/contract/manager/ui/util/LocalDateFieldTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/LocalDateFieldTableCell.java @@ -1,4 +1,7 @@ -package com.ecep.contract.manager.ui.util; +package com.ecep.contract.controller.table.cell; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import javafx.beans.property.ObjectProperty; import javafx.beans.property.SimpleObjectProperty; @@ -10,9 +13,6 @@ import javafx.util.Callback; import javafx.util.StringConverter; import javafx.util.converter.LocalDateStringConverter; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; - /** * TableView 的日期单元格编辑器 *

diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/LocalDateTimeTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/LocalDateTimeTableCell.java similarity index 86% rename from src/main/java/com/ecep/contract/manager/ui/table/cell/LocalDateTimeTableCell.java rename to client/src/main/java/com/ecep/contract/controller/table/cell/LocalDateTimeTableCell.java index 6c061b2..ce8e9ed 100644 --- a/src/main/java/com/ecep/contract/manager/ui/table/cell/LocalDateTimeTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/LocalDateTimeTableCell.java @@ -1,10 +1,13 @@ -package com.ecep.contract.manager.ui.table.cell; - -import com.ecep.contract.manager.util.MyDateTimeUtils; +package com.ecep.contract.controller.table.cell; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import com.ecep.contract.MyDateTimeUtils; + +/** + * 本地日期时间单元格 + */ public class LocalDateTimeTableCell extends javafx.scene.control.TableCell { diff --git a/client/src/main/java/com/ecep/contract/controller/table/cell/NumberTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/NumberTableCell.java new file mode 100644 index 0000000..14bc778 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/NumberTableCell.java @@ -0,0 +1,28 @@ +package com.ecep.contract.controller.table.cell; + +import javafx.scene.control.TableCell; +import javafx.scene.control.TableColumn; +import javafx.util.Callback; +import javafx.util.converter.NumberStringConverter; + +public class NumberTableCell extends TableCell { + private final NumberStringConverter numberStringConverter; + + public NumberTableCell(NumberStringConverter numberStringConverter) { + this.numberStringConverter = numberStringConverter; + } + + @Override + protected void updateItem(Number item, boolean empty) { + super.updateItem(item, empty); + if (empty || item == null) { + setText(null); + } else { + setText(numberStringConverter.toString(item)); + } + } + + public static Callback, TableCell> forTableColumn(NumberStringConverter numberStringConverter) { + return param -> new NumberTableCell<>(numberStringConverter); + } +} diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/ProjectTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/ProjectTableCell.java similarity index 60% rename from src/main/java/com/ecep/contract/manager/ui/table/cell/ProjectTableCell.java rename to client/src/main/java/com/ecep/contract/controller/table/cell/ProjectTableCell.java index 46ade8c..6bdb45e 100644 --- a/src/main/java/com/ecep/contract/manager/ui/table/cell/ProjectTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/ProjectTableCell.java @@ -1,12 +1,13 @@ -package com.ecep.contract.manager.ui.table.cell; +package com.ecep.contract.controller.table.cell; + +import static com.ecep.contract.SpringApp.getBean; + +import com.ecep.contract.model.Project; +import com.ecep.contract.service.IEntityService; +import com.ecep.contract.service.ProjectService; -import com.ecep.contract.manager.ds.other.service.IEntityService; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.service.ProjectService; import lombok.NoArgsConstructor; -import static com.ecep.contract.manager.SpringApp.getBean; - @NoArgsConstructor public class ProjectTableCell extends AsyncUpdateTableCell { diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/PurchaseOrderItemTableCell.java b/client/src/main/java/com/ecep/contract/controller/table/cell/PurchaseOrderItemTableCell.java similarity index 80% rename from src/main/java/com/ecep/contract/manager/ui/table/cell/PurchaseOrderItemTableCell.java rename to client/src/main/java/com/ecep/contract/controller/table/cell/PurchaseOrderItemTableCell.java index 00893fe..c3606dd 100644 --- a/src/main/java/com/ecep/contract/manager/ui/table/cell/PurchaseOrderItemTableCell.java +++ b/client/src/main/java/com/ecep/contract/controller/table/cell/PurchaseOrderItemTableCell.java @@ -1,15 +1,17 @@ -package com.ecep.contract.manager.ui.table.cell; +package com.ecep.contract.controller.table.cell; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrderItem; -import com.ecep.contract.manager.ds.contract.service.PurchaseOrderItemService; -import com.ecep.contract.manager.ds.contract.service.PurchaseOrdersService; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.service.InventoryCatalogService; -import com.ecep.contract.manager.ds.other.service.InventoryService; -import lombok.NoArgsConstructor; 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 lombok.NoArgsConstructor; + @NoArgsConstructor public class PurchaseOrderItemTableCell extends AsyncUpdateTableCell { PurchaseOrdersService service; diff --git a/client/src/main/java/com/ecep/contract/controller/vendor/AbstCompanyVendorTableTabSkin.java b/client/src/main/java/com/ecep/contract/controller/vendor/AbstCompanyVendorTableTabSkin.java new file mode 100644 index 0000000..a2fc6ea --- /dev/null +++ b/client/src/main/java/com/ecep/contract/controller/vendor/AbstCompanyVendorTableTabSkin.java @@ -0,0 +1,35 @@ +package com.ecep.contract.controller.vendor; + +import java.util.Map; + +import com.ecep.contract.controller.tab.TabSkin; +import com.ecep.contract.controller.table.AbstEntityTableTabSkin; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.IdentityEntity; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.CompanyVendorService; +import com.ecep.contract.vm.CompanyVendorViewModel; +import com.ecep.contract.vm.IdentityViewModel; + +public abstract class AbstCompanyVendorTableTabSkin> + extends AbstEntityTableTabSkin + implements TabSkin { + public AbstCompanyVendorTableTabSkin(CompanyVendorWindowController controller) { + super(controller); + } + + public CompanyService getCompanyService() { + return controller.getCompanyService(); + } + + public CompanyVendorService getCompanyVendorService() { + return getCachedBean(CompanyVendorService.class); + } + + @Override + public Map getSpecification(CompanyVendor parent) { + Map params = getSpecification(); + params.put("vendor", parent.getId()); + return params; + } +} diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorManagerSkin.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorManagerSkin.java index 31d237d..ca2047f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorManagerSkin.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.vendor.controller; +package com.ecep.contract.controller.vendor; import java.util.List; import java.util.Map; @@ -7,17 +7,17 @@ import java.util.stream.Collectors; import org.hibernate.Hibernate; import org.springframework.data.jpa.domain.Specification; -import com.ecep.contract.manager.ui.table.cell.CompanyTableCell; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.VendorCatalog; -import com.ecep.contract.manager.ds.vendor.model.VendorTypeLocal; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorViewModel; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.ComboBoxUtils; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.SpecificationUtils; +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.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.vm.CompanyVendorViewModel; import javafx.application.Platform; import javafx.beans.binding.Bindings; @@ -99,7 +99,7 @@ public class CompanyVendorManagerSkin return vendorCatalog.getName(); } }, param.getValue().getCatalog())); - + controller.typeColumn.setCellValueFactory(param -> param.getValue().getType().map(type -> { VendorTypeLocal local = vendorTypeLocals.stream().filter(v -> v.getType() == type).findFirst().orElse(null); if (local == null) { @@ -111,7 +111,7 @@ public class CompanyVendorManagerSkin controller.purchaseColumn.setCellValueFactory(param -> param.getValue().getPurchase()); controller.companyColumn.setCellValueFactory(param -> param.getValue().getCompany()); - controller.companyColumn.setCellFactory(param-> new CompanyTableCell<>(getCompanyService())); + controller.companyColumn.setCellFactory(param -> new CompanyTableCell<>(getCompanyService())); controller.developDateColumn.setCellValueFactory(param -> param.getValue().getDevelopDate()); controller.pathColumn.setCellValueFactory(param -> param.getValue().getPath()); diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorManagerWindowController.java similarity index 77% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorManagerWindowController.java index 2ae39ba..d3b8a1c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorManagerWindowController.java @@ -1,23 +1,9 @@ -package com.ecep.contract.manager.ds.vendor.controller; +package com.ecep.contract.controller.vendor; + +import java.time.LocalDate; +import java.util.concurrent.CompletableFuture; +import java.util.function.Consumer; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.vendor.controller.approved_list.CompanyVendorApprovedListManagerWindowController; -import com.ecep.contract.manager.ds.vendor.controller.group.VendorGroupManagerWindowController; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.VendorTypeLocal; -import com.ecep.contract.manager.ds.vendor.repository.VendorClassRepository; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ds.vendor.task.VendorVerifyAllTasker; -import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorViewModel; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.util.UITools; -import javafx.event.ActionEvent; -import javafx.scene.control.ComboBox; -import javafx.scene.control.TableColumn; -import javafx.stage.Stage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; @@ -26,10 +12,24 @@ import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Component; -import java.time.LocalDate; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ScheduledExecutorService; -import java.util.function.Consumer; +import com.ecep.contract.UITools; +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.model.Company; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.VendorTypeLocal; +import com.ecep.contract.vm.CompanyVendorViewModel; + +import javafx.event.ActionEvent; +import javafx.scene.control.ComboBox; +import javafx.scene.control.TableColumn; +import javafx.stage.Stage; @Lazy @Scope("prototype") diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorTabSkinBase.java similarity index 80% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorTabSkinBase.java rename to client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorTabSkinBase.java index ef9e11a..ae4f7bd 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorTabSkinBase.java @@ -1,30 +1,31 @@ -package com.ecep.contract.manager.ds.vendor.controller; +package com.ecep.contract.controller.vendor; + +import java.time.format.DateTimeFormatter; +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.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.vm.CompanyVendorViewModel; +import com.ecep.contract.vm.CompanyViewModel; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.CompanyStringConverter; -import com.ecep.contract.manager.ds.company.controller.CompanyWindowController; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.company.service.CompanyContactService; -import com.ecep.contract.manager.ds.company.vo.CompanyViewModel; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.VendorTypeLocal; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorViewModel; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.ComboBoxUtils; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.UITools; import javafx.event.ActionEvent; import javafx.scene.control.Tab; import javafx.scene.control.TextField; import javafx.util.converter.LocalDateStringConverter; import javafx.util.converter.LocalDateTimeStringConverter; -import java.time.format.DateTimeFormatter; -import java.util.List; - public class CompanyVendorTabSkinBase extends AbstEntityBasedTabSkin { public CompanyVendorTabSkinBase(CompanyVendorWindowController controller) { diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/EntityTabSkin.java b/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorTabSkinEntity.java similarity index 68% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/EntityTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorTabSkinEntity.java index a8105ab..dac68b3 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/EntityTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorTabSkinEntity.java @@ -1,22 +1,23 @@ -package com.ecep.contract.manager.ds.vendor.controller; +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; +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.vm.VendorEntityViewModel; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorEntity; -import com.ecep.contract.manager.ds.vendor.model.VendorCatalog; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorEntityService; -import com.ecep.contract.manager.ds.vendor.vo.VendorEntityViewModel; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.scene.control.MenuItem; import javafx.scene.control.Tab; import javafx.scene.control.TableColumn; -import java.time.LocalDate; - @FxmlPath("/ui/company/vendor/vendor-tab-entity.fxml") -public class EntityTabSkin +public class CompanyVendorTabSkinEntity extends AbstCompanyVendorTableTabSkin implements TabSkin { @@ -26,26 +27,22 @@ public class EntityTabSkin public TableColumn entityTable_nameColumn; public TableColumn entityTable_abbNameColumn; public TableColumn entityTable_codeColumn; - public TableColumn entityTable_creatorColumn; + public TableColumn entityTable_creatorColumn; public TableColumn entityTable_modifyDateColumn; - public TableColumn entityTable_modifierColumn; + public TableColumn entityTable_modifierColumn; public TableColumn entityTable_developDateColumn; public TableColumn entityTable_updatedDateColumn; public MenuItem entityTable_menu_refresh; public MenuItem entityTable_menu_del; - private CompanyVendorEntityService vendorEntityService; - public EntityTabSkin(CompanyVendorWindowController controller) { + public CompanyVendorTabSkinEntity(CompanyVendorWindowController controller) { super(controller); } CompanyVendorEntityService getVendorEntityService() { - if (vendorEntityService == null) { - vendorEntityService = SpringApp.getBean(CompanyVendorEntityService.class); - } - return vendorEntityService; + return getCachedBean(CompanyVendorEntityService.class); } @Override @@ -68,11 +65,12 @@ public class EntityTabSkin entityTable_codeColumn.setCellValueFactory(param -> param.getValue().getCode()); initializeEntityTabCatalogColumn(entityTable_catalogColumn); - 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()); + entityTable_creatorColumn.setCellFactory(param -> new EmployeeTableCell<>(getEmployeeService())); + entityTable_modifierColumn.setCellValueFactory(param -> param.getValue().getModifier()); + entityTable_modifierColumn.setCellFactory(param -> new EmployeeTableCell<>(getEmployeeService())); entityTable_updatedDateColumn.setCellValueFactory(param -> param.getValue().getUpdatedDate()); entityTable_menu_refresh.setOnAction(this::onTableRefreshAction); diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorWindowController.java b/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorWindowController.java similarity index 72% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorWindowController.java rename to client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorWindowController.java index b7722fd..0a75c99 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/CompanyVendorWindowController.java @@ -1,30 +1,37 @@ -package com.ecep.contract.manager.ds.vendor.controller; +package com.ecep.contract.controller.vendor; -import com.ecep.contract.manager.ds.company.service.CompanyContactService; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.VendorTypeLocal; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.util.DesktopUtils; +import java.io.File; -import javafx.event.ActionEvent; -import javafx.scene.control.*; -import javafx.scene.layout.BorderPane; -import javafx.stage.Window; -import javafx.stage.WindowEvent; import org.hibernate.Hibernate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -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 org.springframework.util.StringUtils; -import java.io.File; +import com.ecep.contract.DesktopUtils; +import com.ecep.contract.controller.AbstEntityController; +import com.ecep.contract.util.FxmlPath; +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.vm.CompanyVendorViewModel; + +import javafx.event.ActionEvent; +import javafx.scene.control.Button; +import javafx.scene.control.CheckBox; +import javafx.scene.control.ComboBox; +import javafx.scene.control.DatePicker; +import javafx.scene.control.Label; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.scene.layout.BorderPane; +import javafx.stage.Window; +import javafx.stage.WindowEvent; @Lazy @Scope("prototype") @@ -42,11 +49,6 @@ public class CompanyVendorWindowController extends AbstEntityController new CompanyVendorTabSkinBase(this)); registerTabSkin(fileTab, tab -> new VendorTabSkinFile(this)); - registerTabSkin(entityTab, tab -> new EntityTabSkin(this)); + registerTabSkin(entityTab, tab -> new CompanyVendorTabSkinEntity(this)); } @Override public CompanyVendorService getViewModelService() { - return companyVendorService; + return getCachedBean(CompanyVendorService.class); + } + + public CompanyService getCompanyService() { + return getCachedBean(CompanyService.class); } public void onCompanyVendorOpenInExplorerAction(ActionEvent event) { diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_bill/PurchaseBillVoucherWindowController.java b/client/src/main/java/com/ecep/contract/controller/vendor/PurchaseBillVoucherWindowController.java similarity index 76% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_bill/PurchaseBillVoucherWindowController.java rename to client/src/main/java/com/ecep/contract/controller/vendor/PurchaseBillVoucherWindowController.java index a4726ea..d8c2fc2 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_bill/PurchaseBillVoucherWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/PurchaseBillVoucherWindowController.java @@ -1,18 +1,20 @@ -package com.ecep.contract.manager.ds.contract.controller.purchase_bill; +package com.ecep.contract.controller.vendor; -import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucher; -import com.ecep.contract.manager.ds.contract.service.PurchaseBillVoucherService; -import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import javafx.scene.control.Tab; -import javafx.scene.control.TabPane; -import javafx.stage.Stage; 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.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.model.PurchaseBillVoucher; + +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.stage.Stage; + @Lazy @Scope("prototype") @Component diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderWindowController.java b/client/src/main/java/com/ecep/contract/controller/vendor/PurchaseOrderWindowController.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderWindowController.java rename to client/src/main/java/com/ecep/contract/controller/vendor/PurchaseOrderWindowController.java index 43556b0..b416578 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/PurchaseOrderWindowController.java @@ -1,12 +1,5 @@ -package com.ecep.contract.manager.ds.contract.controller.purchase_order; +package com.ecep.contract.controller.vendor; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrder; -import com.ecep.contract.manager.ds.contract.service.PurchaseOrdersService; -import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import javafx.scene.control.*; -import javafx.stage.Stage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -14,6 +7,20 @@ import org.springframework.context.annotation.Lazy; 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.model.PurchaseOrder; + +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.stage.Stage; + @Lazy @Scope("prototype") @Component diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/VendorBidWindowController.java b/client/src/main/java/com/ecep/contract/controller/vendor/VendorBidWindowController.java similarity index 68% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/VendorBidWindowController.java rename to client/src/main/java/com/ecep/contract/controller/vendor/VendorBidWindowController.java index 592b515..c756825 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/VendorBidWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/VendorBidWindowController.java @@ -1,21 +1,27 @@ -package com.ecep.contract.manager.ds.contract.controller; +package com.ecep.contract.controller.vendor; -import com.ecep.contract.manager.ds.contract.model.ContractBidVendor; -import com.ecep.contract.manager.ds.contract.service.ContractBidVendorService; -import com.ecep.contract.manager.ds.contract.vo.ContractBidVendorViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import javafx.scene.control.*; -import javafx.stage.Stage; -import javafx.stage.Window; -import javafx.stage.WindowEvent; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -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.controller.AbstEntityController; +import com.ecep.contract.util.FxmlPath; +import com.ecep.contract.controller.tab.VendorBidTabSkinBase; +import com.ecep.contract.model.ContractBidVendor; +import com.ecep.contract.service.ContractBidVendorService; +import com.ecep.contract.vm.ContractBidVendorViewModel; + +import javafx.scene.control.Button; +import javafx.scene.control.DatePicker; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.stage.Window; +import javafx.stage.WindowEvent; + @Lazy @Scope("prototype") @Component @@ -35,9 +41,6 @@ public class VendorBidWindowController extends AbstEntityController implements TabSkin { - public TableColumn fileTable_idColumn; public TableColumn fileTable_typeColumn; public TableColumn fileTable_filePathColumn; @@ -57,7 +65,6 @@ public class VendorTabSkinFile public Button fileTable_updateEvaluationFormBuildBtn; public Button fileTable_calcNextSignDateBtn; - @Setter private CompanyVendorFileService companyVendorFileService; @@ -84,7 +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 = SpringApp + .getBean(CompanyVendorFileTypeLocalRepository.class).getObservableMapByLocal(); fileTable_typeColumn.setCellValueFactory(param -> Bindings.valueAt(observableMapByLocal, param.getValue().getType()).map(BaseEnumEntity::getValue)); @@ -136,7 +144,8 @@ public class VendorTabSkinFile File file = files.getFirst(); String fileName = file.getName(); if (fileName.startsWith("S")) { - String destFileName = CompanyVendorService.EVALUATION_FORM_NAME1 + "_" + MyDateTimeUtils.format(nextSignDate) + String destFileName = CompanyVendorConstant.EVALUATION_FORM_NAME1 + "_" + + MyDateTimeUtils.format(nextSignDate) + "." + StringUtils.getFilenameExtension(fileName); File dest = new File(dir, destFileName); if (file.renameTo(dest)) { @@ -177,7 +186,7 @@ public class VendorTabSkinFile CompletableFuture.runAsync(() -> { try { CompanyVendor companyVendor = getParent(); - if (getCompanyVendorService().reBuildingFiles(companyVendor, this::setStatus)) { + if (getCompanyVendorService().reBuildingFiles(companyVendor, (level, msg) -> setStatus(msg))) { loadTableDataSet(); } } catch (Exception e) { @@ -268,20 +277,17 @@ public class VendorTabSkinFile deleteRow(selectedItem); -// getCompanyVendorService().deleteFileById(selectedItem.getId().get()); -// dataSet.remove(selectedItem); + // getCompanyVendorService().deleteFileById(selectedItem.getId().get()); + // dataSet.remove(selectedItem); } public void onUpdateEvaluationFormAction(ActionEvent event) { CompanyVendorEvaluationFormUpdateTask task = new CompanyVendorEvaluationFormUpdateTask(); task.setCompanyService(getCompanyService()); - task.setCompanyVendorFileService(getCompanyVendorFileService()); - task.setCompanyVendor(getParent()); UITools.showTaskDialogAndWait("更新评价表", task, null); loadTableDataSet(); } - public void onCalcNextSignDateAction(ActionEvent event) { UITools.showDialogAndWait("计算供应商下一个评价日期", "依据已有的供应商评价表和登记采购的合同计算下一个评价日期", ds -> { CompanyVendor companyVendor = getCompanyVendorService().findById(viewModel.getId().get()); @@ -298,7 +304,6 @@ public class VendorTabSkinFile }); } - class FileTableFilePathTableCell extends TableCell { @Override protected void updateItem(String item, boolean empty) { diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListManagerSkin.java similarity index 73% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListManagerSkin.java index 649571a..e7510c7 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListManagerSkin.java @@ -1,19 +1,13 @@ -package com.ecep.contract.manager.ds.vendor.controller.approved_list; +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.vm.CompanyVendorApprovedListViewModel; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorApprovedListService; -import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorApprovedListViewModel; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.util.TableViewUtils; import javafx.event.ActionEvent; import javafx.scene.control.SelectionMode; import lombok.Setter; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Sort; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.util.StringUtils; - -import java.util.List; public class CompanyVendorApprovedListManagerSkin extends AbstEntityManagerSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListManagerWindowController.java similarity index 58% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListManagerWindowController.java index 71bbb66..a9e8f91 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListManagerWindowController.java @@ -1,37 +1,21 @@ -package com.ecep.contract.manager.ds.vendor.controller.approved_list; +package com.ecep.contract.controller.vendor.approved_list; + +import java.time.LocalDate; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorApprovedListService; -import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorApprovedListViewModel; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.ui.util.DelayOnceExecutor; -import com.ecep.contract.manager.util.FxmlUtils; -import com.ecep.contract.manager.util.TableViewUtils; -import javafx.application.Platform; -import javafx.collections.FXCollections; -import javafx.collections.ObservableList; -import javafx.event.ActionEvent; -import javafx.scene.control.Pagination; -import javafx.scene.control.SelectionMode; -import javafx.scene.control.TableColumn; -import javafx.scene.control.TableView; -import javafx.stage.Modality; -import javafx.stage.WindowEvent; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Sort; import org.springframework.stereotype.Component; -import java.time.LocalDate; -import java.util.List; -import java.util.concurrent.TimeUnit; +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.vm.CompanyVendorApprovedListViewModel; -import static com.ecep.contract.manager.util.TableViewUtils.getTableViewVisibleRows; +import javafx.event.ActionEvent; +import javafx.scene.control.TableColumn; +import javafx.stage.WindowEvent; /** * diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListTabSkinBase.java similarity index 68% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinBase.java rename to client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListTabSkinBase.java index 9dd77c6..695f87c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListTabSkinBase.java @@ -1,16 +1,18 @@ -package com.ecep.contract.manager.ds.vendor.controller.approved_list; - -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; -import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorApprovedListViewModel; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import javafx.scene.control.Tab; -import javafx.util.converter.LocalDateStringConverter; +package com.ecep.contract.controller.vendor.approved_list; import java.time.format.DateTimeFormatter; +import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.controller.tab.TabSkin; +import com.ecep.contract.model.CompanyVendorApprovedList; +import com.ecep.contract.vm.CompanyVendorApprovedListViewModel; + +import javafx.scene.control.Tab; +import javafx.util.converter.LocalDateStringConverter; + public class CompanyVendorApprovedListTabSkinBase - extends AbstEntityBasedTabSkin + extends + AbstEntityBasedTabSkin implements TabSkin { public CompanyVendorApprovedListTabSkinBase(CompanyVendorApprovedListWindowController controller) { super(controller); diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinFiles.java b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListTabSkinFiles.java similarity index 80% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinFiles.java rename to client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListTabSkinFiles.java index ed99128..acde89f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinFiles.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListTabSkinFiles.java @@ -1,30 +1,33 @@ -package com.ecep.contract.manager.ds.vendor.controller.approved_list; - -import com.ecep.contract.manager.ds.company.CompanyFileUtils; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedFile; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorApprovedFileService; -import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorApprovedFileViewModel; -import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorApprovedListViewModel; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.DesktopUtils; -import com.ecep.contract.manager.util.SpecificationUtils; -import javafx.event.ActionEvent; -import javafx.scene.control.Tab; -import javafx.scene.control.TableCell; -import javafx.scene.control.TableColumn; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.util.StringUtils; +package com.ecep.contract.controller.vendor.approved_list; import java.io.File; import java.time.LocalDate; 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.vm.CompanyVendorApprovedFileViewModel; +import com.ecep.contract.vm.CompanyVendorApprovedListViewModel; + +import javafx.event.ActionEvent; +import javafx.scene.control.Tab; +import javafx.scene.control.TableCell; +import javafx.scene.control.TableColumn; + @FxmlPath("/ui/company/vendor/vendor_approved_list-tab-file.fxml") public class CompanyVendorApprovedListTabSkinFiles - extends AbstEntityTableTabSkin + extends + AbstEntityTableTabSkin implements TabSkin { private CompanyVendorApprovedFileService fileService; diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinVendors.java b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListTabSkinVendors.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinVendors.java rename to client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListTabSkinVendors.java index bbeee07..68cbbb4 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinVendors.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListTabSkinVendors.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.vendor.controller.approved_list; +package com.ecep.contract.controller.vendor.approved_list; import java.util.ArrayList; import java.util.List; @@ -7,29 +7,28 @@ import org.hibernate.Hibernate; import org.springframework.data.jpa.domain.Specification; import org.springframework.util.StringUtils; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyOldName; -import com.ecep.contract.manager.ds.company.service.CompanyOldNameService; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.other.service.IEntityService; -import com.ecep.contract.manager.ds.other.service.SysConfService; -import com.ecep.contract.manager.ds.vendor.controller.CompanyVendorWindowController; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedItem; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; -import com.ecep.contract.manager.ds.vendor.model.VendorTypeLocal; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorApprovedItemService; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorApprovedItemViewModel; -import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorApprovedListViewModel; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.table.cell.CompanyVendorTableCell; -import com.ecep.contract.manager.ui.util.BooleanConfigProperty; -import com.ecep.contract.manager.ui.util.IntegerConfigProperty; -import com.ecep.contract.manager.util.SpecificationUtils; -import com.ecep.contract.manager.util.UITools; +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.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.util.BooleanConfigProperty; +import com.ecep.contract.util.IntegerConfigProperty; +import com.ecep.contract.util.SpecificationUtils; +import com.ecep.contract.vm.CompanyVendorApprovedItemViewModel; +import com.ecep.contract.vm.CompanyVendorApprovedListViewModel; import javafx.beans.property.SimpleBooleanProperty; import javafx.collections.FXCollections; diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListVendorExportTask.java b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListVendorExportTask.java similarity index 92% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListVendorExportTask.java rename to client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListVendorExportTask.java index 9c95f78..19393a9 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListVendorExportTask.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListVendorExportTask.java @@ -1,23 +1,36 @@ -package com.ecep.contract.manager.ds.vendor.controller.approved_list; +package com.ecep.contract.controller.vendor.approved_list; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.company.service.CompanyContactService; -import com.ecep.contract.manager.ds.company.service.CompanyOldNameService; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.vendor.VendorType; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedFile; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedItem; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; -import com.ecep.contract.manager.ds.vendor.service.*; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; -import com.ecep.contract.manager.util.ExcelUtils; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import lombok.Setter; -import org.apache.poi.ss.usermodel.*; +import static com.ecep.contract.util.ExcelUtils.getRow; +import static com.ecep.contract.util.ExcelUtils.setCellValue; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; + +import org.apache.poi.ss.usermodel.BorderStyle; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.FillPatternType; +import org.apache.poi.ss.usermodel.Font; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.usermodel.IndexedColors; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.VerticalAlignment; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.usermodel.WorkbookFactory; import org.apache.poi.ss.util.CellRangeAddress; import org.hibernate.Hibernate; import org.slf4j.Logger; @@ -25,14 +38,28 @@ import org.slf4j.LoggerFactory; import org.springframework.data.domain.Sort; import org.springframework.util.StringUtils; -import java.io.*; -import java.time.LocalDate; -import java.util.*; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.stream.Collectors; +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; +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.util.ExcelUtils; -import static com.ecep.contract.manager.util.ExcelUtils.getRow; -import static com.ecep.contract.manager.util.ExcelUtils.setCellValue; +import lombok.Setter; /** * 导出供方名录 diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListVendorImportTask.java b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListVendorImportTask.java similarity index 95% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListVendorImportTask.java rename to client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListVendorImportTask.java index 85889e8..efe84d9 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListVendorImportTask.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListVendorImportTask.java @@ -1,30 +1,4 @@ -package com.ecep.contract.manager.ds.vendor.controller.approved_list; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyOldName; -import com.ecep.contract.manager.ds.company.service.CompanyOldNameService; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.vendor.CompanyVendorFileType; -import com.ecep.contract.manager.ds.vendor.VendorType; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedItem; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorFile; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorApprovedItemService; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorApprovedListService; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorFileService; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; -import lombok.Setter; -import org.hibernate.Hibernate; -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; +package com.ecep.contract.controller.vendor.approved_list; import java.io.File; import java.time.LocalDate; @@ -36,6 +10,34 @@ import java.util.function.Consumer; import java.util.stream.Collectors; import java.util.stream.Stream; +import org.hibernate.Hibernate; +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; +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 lombok.Setter; + /** * 从现有的供应商中导入 diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListWindowController.java b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListWindowController.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListWindowController.java rename to client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListWindowController.java index 38738a6..c836aab 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/approved_list/CompanyVendorApprovedListWindowController.java @@ -1,17 +1,7 @@ -package com.ecep.contract.manager.ds.vendor.controller.approved_list; +package com.ecep.contract.controller.vendor.approved_list; + +import java.io.File; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorApprovedListService; -import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorApprovedListViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.util.DesktopUtils; -import com.ecep.contract.manager.util.UITools; -import javafx.event.ActionEvent; -import javafx.scene.control.*; -import javafx.scene.layout.BorderPane; -import javafx.stage.Window; -import javafx.stage.WindowEvent; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -20,7 +10,25 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; -import java.io.File; +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.vm.CompanyVendorApprovedListViewModel; + +import javafx.event.ActionEvent; +import javafx.scene.control.Button; +import javafx.scene.control.DatePicker; +import javafx.scene.control.Label; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.scene.layout.BorderPane; +import javafx.stage.Window; +import javafx.stage.WindowEvent; @Lazy @Scope("prototype") diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/AbstVendorGroupBasedTabSkin.java b/client/src/main/java/com/ecep/contract/controller/vendor/group/AbstVendorGroupBasedTabSkin.java similarity index 52% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/AbstVendorGroupBasedTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/vendor/group/AbstVendorGroupBasedTabSkin.java index 98ac785..ae0e9dd 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/AbstVendorGroupBasedTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/group/AbstVendorGroupBasedTabSkin.java @@ -1,10 +1,10 @@ -package com.ecep.contract.manager.ds.vendor.controller.group; +package com.ecep.contract.controller.vendor.group; -import com.ecep.contract.manager.ds.vendor.model.VendorGroup; -import com.ecep.contract.manager.ds.vendor.service.VendorGroupService; -import com.ecep.contract.manager.ds.vendor.vo.VendorGroupViewModel; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; +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.vm.VendorGroupViewModel; public abstract class AbstVendorGroupBasedTabSkin extends AbstEntityBasedTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupBaseTabSkin.java b/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupBaseTabSkin.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupBaseTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupBaseTabSkin.java index 6468f3e..65b1763 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupBaseTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupBaseTabSkin.java @@ -1,6 +1,7 @@ -package com.ecep.contract.manager.ds.vendor.controller.group; +package com.ecep.contract.controller.vendor.group; + +import com.ecep.contract.controller.tab.TabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.scene.control.Tab; public class VendorGroupBaseTabSkin extends AbstVendorGroupBasedTabSkin implements TabSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupManagerSkin.java b/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupManagerSkin.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupManagerSkin.java rename to client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupManagerSkin.java index 7b573c9..665468c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupManagerSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupManagerSkin.java @@ -1,19 +1,21 @@ -package com.ecep.contract.manager.ds.vendor.controller.group; +package com.ecep.contract.controller.vendor.group; + +import java.util.List; -import com.ecep.contract.manager.ds.vendor.model.VendorGroup; -import com.ecep.contract.manager.ds.vendor.service.VendorGroupService; -import com.ecep.contract.manager.ds.vendor.vo.VendorGroupViewModel; -import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; -import com.ecep.contract.manager.ui.ManagerSkin; -import javafx.scene.control.TableColumn; -import javafx.scene.control.cell.TextFieldTableCell; -import lombok.Setter; import org.springframework.data.domain.Page; import org.springframework.data.jpa.domain.Specification; import org.springframework.util.StringUtils; -import java.util.List; +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.vm.VendorGroupViewModel; + +import javafx.scene.control.TableColumn; +import javafx.scene.control.cell.TextFieldTableCell; +import lombok.Setter; public class VendorGroupManagerSkin extends AbstEntityManagerSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupManagerWindowController.java b/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupManagerWindowController.java similarity index 72% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupManagerWindowController.java rename to client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupManagerWindowController.java index 4bee4d5..3ccbf34 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupManagerWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupManagerWindowController.java @@ -1,20 +1,19 @@ -package com.ecep.contract.manager.ds.vendor.controller.group; +package com.ecep.contract.controller.vendor.group; -import com.ecep.contract.manager.ds.vendor.model.VendorGroup; -import com.ecep.contract.manager.ds.vendor.service.VendorGroupService; -import com.ecep.contract.manager.ds.vendor.vo.VendorGroupViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedController; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.ViewModelService; -import javafx.event.ActionEvent; -import javafx.scene.control.TableColumn; -import javafx.stage.WindowEvent; 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.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.vm.VendorGroupViewModel; + +import javafx.scene.control.TableColumn; +import javafx.stage.WindowEvent; + /** * 供应商类型管理窗口控制器 */ diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupRequireFilesTabSkin.java b/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupRequireFilesTabSkin.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupRequireFilesTabSkin.java rename to client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupRequireFilesTabSkin.java index 6ddab35..b846c0c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupRequireFilesTabSkin.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupRequireFilesTabSkin.java @@ -1,12 +1,18 @@ -package com.ecep.contract.manager.ds.vendor.controller.group; +package com.ecep.contract.controller.vendor.group; + +import java.util.Arrays; +import java.util.List; + +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.manager.SpringApp; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.contract.model.ContractFileTypeLocal; -import com.ecep.contract.manager.ds.contract.service.ContractFileService; -import com.ecep.contract.manager.ds.vendor.model.VendorGroupRequireFileType; -import com.ecep.contract.manager.ds.vendor.service.VendorGroupRequireFileTypeService; -import com.ecep.contract.manager.ui.tab.TabSkin; import impl.org.controlsfx.skin.ListSelectionViewSkin; import javafx.beans.property.SimpleBooleanProperty; import javafx.collections.FXCollections; @@ -15,12 +21,12 @@ import javafx.collections.ObservableList; import javafx.collections.ObservableMap; import javafx.event.ActionEvent; import javafx.scene.Node; -import javafx.scene.control.*; +import javafx.scene.control.Button; +import javafx.scene.control.ListCell; +import javafx.scene.control.ListView; +import javafx.scene.control.Skin; +import javafx.scene.control.Tab; import lombok.Setter; -import org.controlsfx.control.ListSelectionView; - -import java.util.Arrays; -import java.util.List; public class VendorGroupRequireFilesTabSkin extends AbstVendorGroupBasedTabSkin implements TabSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupWindowController.java b/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupWindowController.java similarity index 77% rename from src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupWindowController.java rename to client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupWindowController.java index c344f48..9cecd0c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupWindowController.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/group/VendorGroupWindowController.java @@ -1,16 +1,5 @@ -package com.ecep.contract.manager.ds.vendor.controller.group; +package com.ecep.contract.controller.vendor.group; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.vendor.model.VendorGroup; -import com.ecep.contract.manager.ds.vendor.service.VendorGroupService; -import com.ecep.contract.manager.ds.vendor.vo.VendorGroupViewModel; -import com.ecep.contract.manager.ui.AbstEntityController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.ViewModelService; -import javafx.scene.control.*; -import javafx.scene.layout.BorderPane; -import javafx.stage.Stage; -import javafx.stage.Window; import org.controlsfx.control.ListSelectionView; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -19,6 +8,23 @@ import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; 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.model.VendorGroup; +import com.ecep.contract.service.VendorGroupService; +import com.ecep.contract.vm.VendorGroupViewModel; + +import javafx.scene.control.CheckBox; +import javafx.scene.control.Label; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.scene.layout.BorderPane; +import javafx.stage.Stage; +import javafx.stage.Window; + /** * 供应商类型窗口控制器 */ diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinBase.java b/client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinBase.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinBase.java rename to client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinBase.java index 352516c..8b05d50 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinBase.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinBase.java @@ -1,16 +1,18 @@ -package com.ecep.contract.manager.ds.contract.controller.purchase_order; +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.manager.SpringApp; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrder; -import com.ecep.contract.manager.ds.contract.service.ContractFileService; -import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderViewModel; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.UITools; import javafx.beans.property.SimpleObjectProperty; import javafx.scene.control.Tab; import javafx.scene.control.TextField; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinBillVoucher.java b/client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinBillVoucher.java similarity index 85% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinBillVoucher.java rename to client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinBillVoucher.java index fa4d646..9dd472a 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinBillVoucher.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinBillVoucher.java @@ -1,35 +1,41 @@ -package com.ecep.contract.manager.ds.contract.controller.purchase_order; +package com.ecep.contract.controller.vendor.purchase.order; + +import java.time.LocalDateTime; + +import org.springframework.data.jpa.domain.Specification; + +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.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.manager.SpringApp; -import com.ecep.contract.manager.ds.company.model.Invoice; -import com.ecep.contract.manager.ds.company.service.InvoiceService; -import com.ecep.contract.manager.ds.contract.controller.purchase_bill.PurchaseBillVoucherWindowController; -import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucher; -import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucherItem; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrder; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrderItem; -import com.ecep.contract.manager.ds.contract.service.PurchaseBillVoucherService; -import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherViewModel; -import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderViewModel; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; -import com.ecep.contract.manager.util.SpecificationUtils; import jakarta.persistence.criteria.Join; import jakarta.persistence.criteria.JoinType; import jakarta.persistence.criteria.Root; import jakarta.persistence.criteria.Subquery; -import javafx.scene.control.*; +import javafx.scene.control.ContextMenu; +import javafx.scene.control.MenuItem; +import javafx.scene.control.Tab; +import javafx.scene.control.TableColumn; import javafx.scene.control.cell.TextFieldTableCell; import javafx.util.StringConverter; import lombok.Setter; -import org.springframework.data.jpa.domain.Specification; - -import java.time.LocalDateTime; @FxmlPath("/ui/contract/purchase-orders-tab-bill-voucher.fxml") public class PurchaseOrderTabSkinBillVoucher diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinItems.java b/client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinItems.java similarity index 76% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinItems.java rename to client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinItems.java index e0f3bfc..6c24077 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinItems.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/purchase/order/PurchaseOrderTabSkinItems.java @@ -1,33 +1,4 @@ -package com.ecep.contract.manager.ds.contract.controller.purchase_order; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractItem; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrder; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrderItem; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.service.PurchaseOrderItemService; -import com.ecep.contract.manager.ds.contract.service.PurchaseOrdersService; -import com.ecep.contract.manager.ds.contract.vo.ContractItemComposeViewModel; -import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderItemViewModel; -import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderViewModel; -import com.ecep.contract.manager.ui.table.cell.InventoryTableCell; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.service.InventoryService; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.SpecificationUtils; -import javafx.application.Platform; -import javafx.collections.ObservableList; -import javafx.geometry.Pos; -import javafx.scene.control.*; -import javafx.util.Callback; -import javafx.util.Duration; -import lombok.Setter; -import org.hibernate.Hibernate; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.util.StringUtils; +package com.ecep.contract.controller.vendor.purchase.order; import java.time.LocalDate; import java.util.HashMap; @@ -35,9 +6,48 @@ import java.util.List; 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.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.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 javafx.application.Platform; +import javafx.collections.ObservableList; +import javafx.geometry.Pos; +import javafx.scene.control.ContextMenu; +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.Tooltip; +import javafx.util.Callback; +import javafx.util.Duration; +import lombok.Setter; + @FxmlPath("/ui/contract/purchase-orders-tab-item.fxml") public class PurchaseOrderTabSkinItems - extends AbstEntityTableTabSkin + extends + AbstEntityTableTabSkin implements TabSkin { @Setter PurchaseOrdersService purchaseOrdersService; @@ -46,7 +56,7 @@ public class PurchaseOrderTabSkinItems @Setter private InventoryService inventoryService; - /* 以下是合同内容 */ + /* 以下是合同内容 */ public TableView itemTable; public TableColumn idColumn; public TableColumn refIdColumn; @@ -105,7 +115,6 @@ public class PurchaseOrderTabSkinItems } } - PurchaseOrdersService getPurchaseOrdersService() { if (purchaseOrdersService == null) { purchaseOrdersService = getBean(PurchaseOrdersService.class); @@ -119,12 +128,12 @@ public class PurchaseOrderTabSkinItems } return inventoryService; } + @Override public Specification getSpecification(PurchaseOrder parent) { return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { return builder.and( - builder.equal(root.get("order"), parent) - ); + builder.equal(root.get("order"), parent)); }); } @@ -163,7 +172,8 @@ public class PurchaseOrderTabSkinItems nameColumn.setCellValueFactory(param -> param.getValue().getInventory()); nameColumn.setCellFactory(col -> new InventoryTableCell<>()); unitColumn.setCellValueFactory(param -> param.getValue().getInventory().map(v -> { - if (v == null) return null; + if (v == null) + return null; if (!Hibernate.isInitialized(v)) { v = getInventoryService().findById(v.getId()); } @@ -174,10 +184,10 @@ public class PurchaseOrderTabSkinItems NumberCellFactory v2 = new NumberCellFactory("%,.2f", null); NumberCellFactory v3 = new NumberCellFactory("%,.2f", "custom-cell"); - // 进项 - itemTable_exclusiveTaxPriceColumn.setCellValueFactory(param -> param.getValue().getExclusiveTaxPrice().asObject()); + itemTable_exclusiveTaxPriceColumn + .setCellValueFactory(param -> param.getValue().getExclusiveTaxPrice().asObject()); itemTable_exclusiveTaxPriceColumn.setCellFactory(v2); itemTable_taxRateColumn.setCellValueFactory(param -> param.getValue().getTaxRate().asObject()); @@ -189,13 +199,15 @@ public class PurchaseOrderTabSkinItems itemTable_quantityColumn.setCellValueFactory(param -> param.getValue().getQuantity().asObject()); itemTable_quantityColumn.setCellFactory(v1); - itemTable_exclusiveTaxAmountColumn.setCellValueFactory(param -> param.getValue().getExclusiveTaxPrice().multiply(param.getValue().getQuantity()).asObject()); + itemTable_exclusiveTaxAmountColumn.setCellValueFactory( + param -> param.getValue().getExclusiveTaxPrice().multiply(param.getValue().getQuantity()).asObject()); itemTable_exclusiveTaxAmountColumn.setCellFactory(v2); - itemTable_taxAmountColumn.setCellValueFactory(param -> param.getValue().getPrice().multiply(param.getValue().getQuantity()).asObject()); + itemTable_taxAmountColumn.setCellValueFactory( + param -> param.getValue().getPrice().multiply(param.getValue().getQuantity()).asObject()); itemTable_taxAmountColumn.setCellFactory(v2); itemTable_arriveDateColumn.setCellValueFactory(param -> param.getValue().getArriveDate()); - //itemTable_startDateColumn.setCellFactory(v2); + // itemTable_startDateColumn.setCellFactory(v2); itemTable_descriptionColumn.setCellValueFactory(param -> param.getValue().getDescription()); } @@ -211,24 +223,30 @@ public class PurchaseOrderTabSkinItems contextMenu.getItems().addAll(item2, item3); } - - 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)); } @@ -265,7 +283,8 @@ public class PurchaseOrderTabSkinItems } 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); } @@ -288,7 +307,8 @@ public class PurchaseOrderTabSkinItems } } - static class NumberCellFactory implements Callback, TableCell> { + static class NumberCellFactory implements + Callback, TableCell> { private final String format; private final String styleClass; @@ -298,7 +318,8 @@ public class PurchaseOrderTabSkinItems } @Override - public TableCell call(TableColumn param) { + public TableCell call( + TableColumn param) { NumberTableCell cell = new NumberTableCell(format, styleClass); cell.setAlignment(Pos.CENTER_RIGHT); return cell; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_bill/PurchaseBillVoucherTabSkinItems.java b/client/src/main/java/com/ecep/contract/controller/vendor/purchase/purchase_bill/PurchaseBillVoucherTabSkinItems.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_bill/PurchaseBillVoucherTabSkinItems.java rename to client/src/main/java/com/ecep/contract/controller/vendor/purchase/purchase_bill/PurchaseBillVoucherTabSkinItems.java index c4fcf89..781358f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_bill/PurchaseBillVoucherTabSkinItems.java +++ b/client/src/main/java/com/ecep/contract/controller/vendor/purchase/purchase_bill/PurchaseBillVoucherTabSkinItems.java @@ -1,34 +1,37 @@ -package com.ecep.contract.manager.ds.contract.controller.purchase_bill; +package com.ecep.contract.controller.vendor.purchase.purchase_bill; + +import org.springframework.data.jpa.domain.Specification; + +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.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.manager.SpringApp; -import com.ecep.contract.manager.ds.company.model.Invoice; -import com.ecep.contract.manager.ds.company.service.InvoiceService; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucher; -import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucherItem; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrderItem; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.service.PurchaseBillVoucherItemService; -import com.ecep.contract.manager.ds.contract.service.PurchaseOrderItemService; -import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherItemViewModel; -import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherViewModel; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.service.InventoryService; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.table.cell.ContractTableCell; -import com.ecep.contract.manager.ui.table.cell.InventoryTableCell; -import com.ecep.contract.manager.ui.table.cell.InvoiceTableCell; -import com.ecep.contract.manager.ui.table.cell.PurchaseOrderItemTableCell; -import com.ecep.contract.manager.util.SpecificationUtils; import javafx.geometry.Pos; import javafx.scene.control.Tab; import javafx.scene.control.TableCell; import javafx.scene.control.TableColumn; import javafx.util.Callback; import lombok.Setter; -import org.springframework.data.jpa.domain.Specification; @FxmlPath("/ui/contract/purchase-bill-voucher-tab-item.fxml") public class PurchaseBillVoucherTabSkinItems diff --git a/src/main/java/com/ecep/contract/manager/ds/other/BankStringConverter.java b/client/src/main/java/com/ecep/contract/converter/BankStringConverter.java similarity index 67% rename from src/main/java/com/ecep/contract/manager/ds/other/BankStringConverter.java rename to client/src/main/java/com/ecep/contract/converter/BankStringConverter.java index 26d7f00..3bcebe0 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/BankStringConverter.java +++ b/client/src/main/java/com/ecep/contract/converter/BankStringConverter.java @@ -1,14 +1,14 @@ -package com.ecep.contract.manager.ds.other; +package com.ecep.contract.converter; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.other.model.Bank; -import com.ecep.contract.manager.ds.other.service.BankService; -import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; +import com.ecep.contract.model.Bank; +import com.ecep.contract.service.BankService; + +import jakarta.annotation.PostConstruct; + @Lazy @Component public class BankStringConverter extends EntityStringConverter { diff --git a/src/main/java/com/ecep/contract/manager/ui/util/ContractGroupStringConverter.java b/client/src/main/java/com/ecep/contract/converter/ContractGroupStringConverter.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ui/util/ContractGroupStringConverter.java rename to client/src/main/java/com/ecep/contract/converter/ContractGroupStringConverter.java index 8fa32ee..ec0d2f3 100644 --- a/src/main/java/com/ecep/contract/manager/ui/util/ContractGroupStringConverter.java +++ b/client/src/main/java/com/ecep/contract/converter/ContractGroupStringConverter.java @@ -1,11 +1,13 @@ -package com.ecep.contract.manager.ui.util; - -import com.ecep.contract.manager.ds.contract.model.ContractGroup; -import javafx.util.StringConverter; -import org.springframework.util.StringUtils; +package com.ecep.contract.converter; import java.util.List; +import org.springframework.util.StringUtils; + +import com.ecep.contract.model.ContractGroup; + +import javafx.util.StringConverter; + public class ContractGroupStringConverter extends StringConverter { private List dataset; diff --git a/client/src/main/java/com/ecep/contract/converter/ContractStringConverter.java b/client/src/main/java/com/ecep/contract/converter/ContractStringConverter.java index 905fbf7..d6be8e4 100644 --- a/client/src/main/java/com/ecep/contract/converter/ContractStringConverter.java +++ b/client/src/main/java/com/ecep/contract/converter/ContractStringConverter.java @@ -1,15 +1,12 @@ -package com.ecep.contract.ds.contract; +package com.ecep.contract.converter; +import com.ecep.contract.model.Contract; +import com.ecep.contract.service.ContractService; +import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; -import com.ecep.contract.ds.contract.service.ContractService; -import com.ecep.contract.model.Contract; -import com.ecep.contract.util.EntityStringConverter; - -import jakarta.annotation.PostConstruct; - @Lazy @Component public class ContractStringConverter extends EntityStringConverter { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/EmployeeStringConverter.java b/client/src/main/java/com/ecep/contract/converter/EmployeeStringConverter.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/other/EmployeeStringConverter.java rename to client/src/main/java/com/ecep/contract/converter/EmployeeStringConverter.java index 986bbd0..595c30c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/EmployeeStringConverter.java +++ b/client/src/main/java/com/ecep/contract/converter/EmployeeStringConverter.java @@ -1,12 +1,14 @@ -package com.ecep.contract.manager.ds.other; +package com.ecep.contract.converter; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; +import com.ecep.contract.model.Employee; +import com.ecep.contract.service.EmployeeService; + +import jakarta.annotation.PostConstruct; + @Lazy @Component public class EmployeeStringConverter extends EntityStringConverter { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/EntityStringConverter.java b/client/src/main/java/com/ecep/contract/converter/EntityStringConverter.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ds/other/EntityStringConverter.java rename to client/src/main/java/com/ecep/contract/converter/EntityStringConverter.java index 068d68e..2413048 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/EntityStringConverter.java +++ b/client/src/main/java/com/ecep/contract/converter/EntityStringConverter.java @@ -1,14 +1,16 @@ -package com.ecep.contract.manager.ds.other; - -import com.ecep.contract.manager.ds.other.model.Entity; -import com.ecep.contract.manager.ds.other.model.NamedEntity; -import javafx.util.StringConverter; -import org.controlsfx.control.textfield.AutoCompletionBinding; -import org.hibernate.Hibernate; +package com.ecep.contract.converter; import java.util.List; import java.util.function.Function; +import org.controlsfx.control.textfield.AutoCompletionBinding; +import org.hibernate.Hibernate; + +import com.ecep.contract.model.BasedEntity; +import com.ecep.contract.model.NamedEntity; + +import javafx.util.StringConverter; + public class EntityStringConverter extends StringConverter { private Function initialized; @@ -42,7 +44,7 @@ public class EntityStringConverter extends StringConverter { if (cc == null) { return null; } - if (cc instanceof Entity e) { + if (cc instanceof BasedEntity e) { return e.toPrettyString(); } if (cc instanceof NamedEntity e) { diff --git a/client/src/main/java/com/ecep/contract/converter/ProjectStringConverter.java b/client/src/main/java/com/ecep/contract/converter/ProjectStringConverter.java index 5dcfb84..a49b3ba 100644 --- a/client/src/main/java/com/ecep/contract/converter/ProjectStringConverter.java +++ b/client/src/main/java/com/ecep/contract/converter/ProjectStringConverter.java @@ -1,14 +1,12 @@ -package com.ecep.contract.ds.project.service; +package com.ecep.contract.converter; +import com.ecep.contract.model.Project; +import com.ecep.contract.service.ProjectService; +import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; -import com.ecep.contract.model.Project; -import com.ecep.contract.util.EntityStringConverter; - -import jakarta.annotation.PostConstruct; - @Lazy @Component public class ProjectStringConverter extends EntityStringConverter { diff --git a/client/src/main/java/com/ecep/contract/service/BankService.java b/client/src/main/java/com/ecep/contract/service/BankService.java new file mode 100644 index 0000000..4ce2b94 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/BankService.java @@ -0,0 +1,17 @@ +package com.ecep.contract.service; + +import java.util.List; + +import com.ecep.contract.model.Bank; +import com.ecep.contract.vm.BankViewModel; + +public class BankService implements ViewModelService { + public Bank findByName(String name) { + return null; + } + + public List search(String searchText) { + return null; + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/CloudRkService.java b/client/src/main/java/com/ecep/contract/service/CloudRkService.java new file mode 100644 index 0000000..69146a7 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/CloudRkService.java @@ -0,0 +1,32 @@ +package com.ecep.contract.service; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +import org.controlsfx.control.TaskProgressView; + +import com.ecep.contract.Desktop; +import com.ecep.contract.model.CloudRk; +import com.ecep.contract.task.CloudRkSyncTask; +import com.ecep.contract.vm.CloudRkViewModel; + +import javafx.concurrent.Task; + +public class CloudRkService implements ViewModelService { + + /** + * 生成定时同步任务 + * + * @param taskProgressView 任务视图 + */ + public void scheduledTasks(TaskProgressView> taskProgressView) { + ScheduledExecutorService executorService = Desktop.instance.getExecutorService(); + // 第一次延时1分钟启动 + executorService.schedule(() -> { + // 定时 30分钟 运行一次 + executorService.scheduleAtFixedRate(() -> { + Desktop.instance.getTaskMonitorCenter().registerAndStartTask(new CloudRkSyncTask()); + }, 0, 30, TimeUnit.MINUTES); + }, 1, TimeUnit.MINUTES); + } +} diff --git a/client/src/main/java/com/ecep/contract/service/CloudTycService.java b/client/src/main/java/com/ecep/contract/service/CloudTycService.java new file mode 100644 index 0000000..7e61b5b --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/CloudTycService.java @@ -0,0 +1,83 @@ +package com.ecep.contract.service; + +import java.time.Instant; +import java.util.List; +import java.util.Map; + +import com.ecep.contract.model.Company; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.util.StringUtils; + +import com.ecep.contract.DesktopUtils; +import com.ecep.contract.SpringApp; +import com.ecep.contract.model.CloudTyc; +import com.ecep.contract.util.UITools; +import com.ecep.contract.vm.CloudTycInfoViewModel; + +import javafx.application.Platform; + +public class CloudTycService implements IEntityService { + + public void save(CloudTycInfoViewModel viewModel) { + int infoId = viewModel.getId().get(); + CloudTyc cloudTyc = findById(infoId); + if (cloudTyc == null) { + return; + } + if (viewModel.copyTo(cloudTyc)) { + cloudTyc.setLatestUpdate(Instant.now()); + CloudTyc saved = save(cloudTyc); + Platform.runLater(() -> viewModel.update(saved)); + } + } + + public void showInBrowse(String cloudId) { + String baseUrl = SpringApp.getBean(SysConfService.class).getString("cloud.tyc.company"); + if (!StringUtils.hasText(baseUrl)) { + UITools.showAlertAndWait("系统参数 cloud.tyc.company 未配置"); + return; + } + + String url = baseUrl + cloudId; + + DesktopUtils.showInBrowse(url); + + // UITools.showExceptionAndWait("使用浏览器打开网址出现异常", e); + + } + + @Override + public CloudTyc findById(Integer id) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findById'"); + } + + @Override + public CloudTyc save(CloudTyc entity) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'save'"); + } + + @Override + public void delete(CloudTyc 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'"); + } + + public CloudTyc getOrCreateCloudTyc(Company company) { + throw new UnsupportedOperationException("Unimplemented method 'getOrCreateCloudTyc'"); + } +} diff --git a/client/src/main/java/com/ecep/contract/service/CompanyContactService.java b/client/src/main/java/com/ecep/contract/service/CompanyContactService.java new file mode 100644 index 0000000..9bd01ac --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/CompanyContactService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.CompanyContact; +import com.ecep.contract.vm.CompanyContactViewModel; + +public class CompanyContactService implements ViewModelService { + +} 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 455ffcc..372a288 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyCustomerEntityService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyCustomerEntityService.java @@ -1,4 +1,23 @@ package com.ecep.contract.service; -public class CompanyCustomerEntityService { +import java.util.List; +import java.util.Map; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyCustomerEntity; +import com.ecep.contract.vm.CompanyCustomerViewModel; + +public class CompanyCustomerEntityService implements ViewModelService { + public List findAllByCustomer(CompanyCustomer customer) { + throw new UnsupportedOperationException(); + } + + @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/CompanyCustomerFileService.java b/client/src/main/java/com/ecep/contract/service/CompanyCustomerFileService.java index c771ff0..37011a7 100644 --- a/client/src/main/java/com/ecep/contract/service/CompanyCustomerFileService.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyCustomerFileService.java @@ -1,4 +1,30 @@ package com.ecep.contract.service; -public class CompanyCustomerFileService { +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.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(); + } + + public LocalDate getNextSignDate(CompanyCustomer companyCustomer, MessageHolder holder) { + throw new UnsupportedOperationException(); + } + + public File getEvaluationFormTemplate() { + throw new UnsupportedOperationException(); + } + + public void saveAll(List companyCustomerFiles) { + throw new UnsupportedOperationException(); + } } diff --git a/client/src/main/java/com/ecep/contract/service/CompanyCustomerService.java b/client/src/main/java/com/ecep/contract/service/CompanyCustomerService.java new file mode 100644 index 0000000..6b2bfd4 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/CompanyCustomerService.java @@ -0,0 +1,30 @@ +package com.ecep.contract.service; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CustomerCatalog; +import com.ecep.contract.vm.CompanyCustomerViewModel; + +import java.io.File; + +public class CompanyCustomerService implements ViewModelService { + + public CompanyCustomer findByCompany(Company company) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findByCompany'"); + } + + public CustomerCatalog findCatalogById(Integer id) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findCatalogById'"); + } + + public boolean reBuildingFiles(CompanyCustomer companyCustomer, MessageHolder holder) { + throw new UnsupportedOperationException("Unimplemented method 'reBuildingFiles'"); + } + + public File getBasePath() { + throw new UnsupportedOperationException("Unimplemented method 'getBasePath'"); + } +} diff --git a/client/src/main/java/com/ecep/contract/service/CompanyFileService.java b/client/src/main/java/com/ecep/contract/service/CompanyFileService.java new file mode 100644 index 0000000..cd8d42d --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/CompanyFileService.java @@ -0,0 +1,14 @@ +package com.ecep.contract.service; + +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) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'reBuildingFiles'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/CompanyOldNameService.java b/client/src/main/java/com/ecep/contract/service/CompanyOldNameService.java new file mode 100644 index 0000000..dcb3e81 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/CompanyOldNameService.java @@ -0,0 +1,7 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.CompanyOldName; +import com.ecep.contract.vm.CompanyOldNameViewModel; + +public class CompanyOldNameService implements ViewModelService { +} diff --git a/client/src/main/java/com/ecep/contract/service/CompanyService.java b/client/src/main/java/com/ecep/contract/service/CompanyService.java new file mode 100644 index 0000000..72eb606 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/CompanyService.java @@ -0,0 +1,31 @@ +package com.ecep.contract.service; + +import java.util.List; + +import com.ecep.contract.model.Company; +import com.ecep.contract.vm.CompanyViewModel; + +public class CompanyService implements ViewModelService { + + public Company findByName(String name) { + // return companyRepository.findByName(name); + throw new UnsupportedOperationException("Unimplemented method 'findByName'"); + } + + public List search(String name) { + // return companyRepository.findByName(name); + throw new UnsupportedOperationException("Unimplemented method 'search'"); + } + + public List findAllByName(String name) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAllByName'"); + } + + public void merge(Company company, Company updater) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'merge'"); + } + + +} diff --git a/src/main/java/com/ecep/contract/manager/ds/company/CompanyStringConverter.java b/client/src/main/java/com/ecep/contract/service/CompanyStringConverter.java similarity index 71% rename from src/main/java/com/ecep/contract/manager/ds/company/CompanyStringConverter.java rename to client/src/main/java/com/ecep/contract/service/CompanyStringConverter.java index 1bba877..cae0620 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/CompanyStringConverter.java +++ b/client/src/main/java/com/ecep/contract/service/CompanyStringConverter.java @@ -1,13 +1,14 @@ -package com.ecep.contract.manager.ds.company; +package com.ecep.contract.service; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import jakarta.annotation.PostConstruct; 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 jakarta.annotation.PostConstruct; + @Lazy @Component public class CompanyStringConverter extends EntityStringConverter { diff --git a/client/src/main/java/com/ecep/contract/service/CompanyVendorEntityService.java b/client/src/main/java/com/ecep/contract/service/CompanyVendorEntityService.java new file mode 100644 index 0000000..af1669b --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/CompanyVendorEntityService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.CompanyVendorEntity; +import com.ecep.contract.vm.CompanyVendorEntityViewModel; + +public class CompanyVendorEntityService implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/CompanyVendorFileService.java b/client/src/main/java/com/ecep/contract/service/CompanyVendorFileService.java new file mode 100644 index 0000000..5488098 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/CompanyVendorFileService.java @@ -0,0 +1,21 @@ +package com.ecep.contract.service; + +import java.time.LocalDate; +import java.util.List; +import java.util.function.Consumer; + +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.CompanyVendorFile; +import com.ecep.contract.vm.CompanyVendorFileViewModel; + +public class CompanyVendorFileService implements ViewModelService { + + public LocalDate getNextSignDate(CompanyVendor companyVendor, Consumer state) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getNextSignDate'"); + } + + public void saveAll(List companyVendorFiles) { + throw new UnsupportedOperationException("Unimplemented method 'saveAll'"); + } +} diff --git a/client/src/main/java/com/ecep/contract/service/CompanyVendorService.java b/client/src/main/java/com/ecep/contract/service/CompanyVendorService.java new file mode 100644 index 0000000..cbaa674 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/CompanyVendorService.java @@ -0,0 +1,25 @@ +package com.ecep.contract.service; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.VendorCatalog; +import com.ecep.contract.vm.CompanyVendorViewModel; + +public class CompanyVendorService implements ViewModelService { + + public VendorCatalog findCatalogById(Integer id) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findCatalogById'"); + } + + public CompanyVendor findByCompany(Company company) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findByCompany'"); + } + + public boolean reBuildingFiles(CompanyVendor companyVendor, MessageHolder messageHolder) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'reBuildingFiles'"); + } +} diff --git a/client/src/main/java/com/ecep/contract/service/ContractBidVendorService.java b/client/src/main/java/com/ecep/contract/service/ContractBidVendorService.java new file mode 100644 index 0000000..a9d9504 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ContractBidVendorService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.ContractBidVendor; +import com.ecep.contract.vm.ContractBidVendorViewModel; + +public class ContractBidVendorService implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/ContractFileService.java b/client/src/main/java/com/ecep/contract/service/ContractFileService.java new file mode 100644 index 0000000..a871431 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ContractFileService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.ContractFile; +import com.ecep.contract.vm.ContractFileViewModel; + +public class ContractFileService implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/ContractGroupService.java b/client/src/main/java/com/ecep/contract/service/ContractGroupService.java new file mode 100644 index 0000000..3cb8ca0 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ContractGroupService.java @@ -0,0 +1,7 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.ContractGroup; +import com.ecep.contract.vm.ContractGroupViewModel; + +public class ContractGroupService implements ViewModelService { +} \ No newline at end of file diff --git a/client/src/main/java/com/ecep/contract/service/ContractKindService.java b/client/src/main/java/com/ecep/contract/service/ContractKindService.java new file mode 100644 index 0000000..d3b2de2 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ContractKindService.java @@ -0,0 +1,16 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.ContractKind; +import com.ecep.contract.vm.ContractKindViewModel; + +public class ContractKindService implements ViewModelService { + + public ContractKind findByName(String name) { + throw new UnsupportedOperationException("Unimplemented method 'findByName'"); + + } + + public ContractKind findByCode(String code) { + throw new UnsupportedOperationException("Unimplemented method 'findByCode'"); + } +} \ No newline at end of file diff --git a/client/src/main/java/com/ecep/contract/service/ContractService.java b/client/src/main/java/com/ecep/contract/service/ContractService.java new file mode 100644 index 0000000..1aeeed5 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ContractService.java @@ -0,0 +1,32 @@ +package com.ecep.contract.service; + +import java.util.List; + +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractGroup; +import com.ecep.contract.vm.ContractViewModel; + +public class ContractService implements ViewModelService { + + public boolean updateParentCode(Contract contract) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'updateParentCode'"); + } + + public List findAllGroups() { + throw new UnsupportedOperationException("Unimplemented method 'findAllGroups'"); + } + + public Contract findByCode(String string) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findByCode'"); + } + + public List search(String searchText) { + throw new UnsupportedOperationException("Unimplemented method 'search'"); + } + + public Contract findByName(String name) { + throw new UnsupportedOperationException("Unimplemented method 'findByName'"); + } +} diff --git a/client/src/main/java/com/ecep/contract/service/ContractTypeService.java b/client/src/main/java/com/ecep/contract/service/ContractTypeService.java new file mode 100644 index 0000000..e850e33 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ContractTypeService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.ContractType; +import com.ecep.contract.vm.ContractTypeViewModel; + +public class ContractTypeService implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/CustomerSatisfactionSurveyService.java b/client/src/main/java/com/ecep/contract/service/CustomerSatisfactionSurveyService.java new file mode 100644 index 0000000..03fef99 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/CustomerSatisfactionSurveyService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.CustomerSatisfactionSurvey; +import com.ecep.contract.vm.CustomerSatisfactionSurveyViewModel; + +public class CustomerSatisfactionSurveyService 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 new file mode 100644 index 0000000..24b526d --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/EmployeeRoleService.java @@ -0,0 +1,10 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.EmployeeRole; +import com.ecep.contract.vm.EmployeeRoleViewModel; + +public class EmployeeRoleService implements ViewModelService { + + + +} diff --git a/client/src/main/java/com/ecep/contract/service/EmployeeService.java b/client/src/main/java/com/ecep/contract/service/EmployeeService.java new file mode 100644 index 0000000..5dcfed9 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/EmployeeService.java @@ -0,0 +1,32 @@ +package com.ecep.contract.service; + +import java.util.List; + +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.EmployeeRole; +import com.ecep.contract.vm.EmployeeViewModel; + +public class EmployeeService implements ViewModelService { + + public Employee findByName(String name) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findByName'"); + } + + public List getRolesByEmployeeId(Integer id) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getRolesByEmployeeId'"); + } + + public void updateActive(int sessionId) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'updateActive'"); + } + + 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/ExtendVendorInfoService.java b/client/src/main/java/com/ecep/contract/service/ExtendVendorInfoService.java new file mode 100644 index 0000000..93dbe75 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ExtendVendorInfoService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.ExtendVendorInfo; +import com.ecep.contract.vm.ExtendVendorInfoViewModel; + +public class ExtendVendorInfoService implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/IEntityService.java b/client/src/main/java/com/ecep/contract/service/IEntityService.java new file mode 100644 index 0000000..7955ef6 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/IEntityService.java @@ -0,0 +1,20 @@ +package com.ecep.contract.service; + +import java.util.List; +import java.util.Map; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + +public interface IEntityService { + T findById(Integer id); + + T save(T entity); + + void delete(T entity); + + List findAll(); + + Page findAll(Map params, Pageable pageable); + +} diff --git a/client/src/main/java/com/ecep/contract/service/ProjectBidService.java b/client/src/main/java/com/ecep/contract/service/ProjectBidService.java new file mode 100644 index 0000000..9990f73 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ProjectBidService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.ProjectBid; +import com.ecep.contract.vm.ProjectBidViewModel; + +public class ProjectBidService implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/ProjectCostService.java b/client/src/main/java/com/ecep/contract/service/ProjectCostService.java new file mode 100644 index 0000000..69b2a6a --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ProjectCostService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.ProjectCost; +import com.ecep.contract.vm.ProjectCostViewModel; + +public class ProjectCostService 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 new file mode 100644 index 0000000..2e0850b --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ProjectQuotationService.java @@ -0,0 +1,5 @@ +package com.ecep.contract.service; + +public class ProjectQuotationService implements ViewModelService{ + +} diff --git a/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeRequireFileTypeService.java b/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeRequireFileTypeService.java new file mode 100644 index 0000000..c8161ac --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeRequireFileTypeService.java @@ -0,0 +1,5 @@ +package com.ecep.contract.service; + +public class ProjectSaleTypeRequireFileTypeService implements ViewModelService{ + +} diff --git a/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeService.java b/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeService.java new file mode 100644 index 0000000..c2acf0e --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ProjectSaleTypeService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.ProjectSaleType; +import com.ecep.contract.vm.ProjectSaleTypeViewModel; + +public class ProjectSaleTypeService implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/ProjectService.java b/client/src/main/java/com/ecep/contract/service/ProjectService.java new file mode 100644 index 0000000..f53f8b2 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/ProjectService.java @@ -0,0 +1,26 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.Project; +import com.ecep.contract.vm.ProjectViewModel; + +import java.util.List; + +public class ProjectService implements ViewModelService { + + + public List search(String searchText) { + throw new UnsupportedOperationException(); + } + + public Project findByName(String name) { + throw new UnsupportedOperationException(); + } + + public Project findByCode(String code) { + throw new UnsupportedOperationException(); + } + + public void applyCode(Project project, String code) { + throw new UnsupportedOperationException(); + } +} diff --git a/client/src/main/java/com/ecep/contract/service/SaleOrdersService.java b/client/src/main/java/com/ecep/contract/service/SaleOrdersService.java new file mode 100644 index 0000000..3fa7798 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/SaleOrdersService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.SalesOrder; +import com.ecep.contract.vm.SalesOrderViewModel; + +public class SaleOrdersService 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 new file mode 100644 index 0000000..1493a54 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/SysConfService.java @@ -0,0 +1,63 @@ +package com.ecep.contract.service; + +import java.util.List; +import java.util.Map; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + +import com.ecep.contract.model.SysConf; + +public class SysConfService implements IEntityService { + + @Override + public SysConf findById(Integer 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'"); + } + + public boolean getBoolean(String key) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getBoolean'"); + } + + public void set(String key, String string) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'set'"); + } + + public String getString(String string) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getString'"); + } + + public int getInt(String key) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getInt'"); + } + +} diff --git a/client/src/main/java/com/ecep/contract/service/VendorGroupRequireFileTypeService.java b/client/src/main/java/com/ecep/contract/service/VendorGroupRequireFileTypeService.java new file mode 100644 index 0000000..3e562d6 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/VendorGroupRequireFileTypeService.java @@ -0,0 +1,9 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.VendorGroupRequireFileType; +import com.ecep.contract.vm.VendorGroupRequireFileTypeViewModel; + +public class VendorGroupRequireFileTypeService + implements ViewModelService { + +} diff --git a/client/src/main/java/com/ecep/contract/service/VendorGroupService.java b/client/src/main/java/com/ecep/contract/service/VendorGroupService.java new file mode 100644 index 0000000..bc5ad55 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/VendorGroupService.java @@ -0,0 +1,8 @@ +package com.ecep.contract.service; + +import com.ecep.contract.model.VendorGroup; +import com.ecep.contract.vm.VendorGroupViewModel; + +public class VendorGroupService implements ViewModelService { + +} diff --git a/src/main/java/com/ecep/contract/manager/ui/ViewModelService.java b/client/src/main/java/com/ecep/contract/service/ViewModelService.java similarity index 58% rename from src/main/java/com/ecep/contract/manager/ui/ViewModelService.java rename to client/src/main/java/com/ecep/contract/service/ViewModelService.java index 29bf4f1..aabd741 100644 --- a/src/main/java/com/ecep/contract/manager/ui/ViewModelService.java +++ b/client/src/main/java/com/ecep/contract/service/ViewModelService.java @@ -1,10 +1,16 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract.service; import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.List; +import java.util.Map; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.service.IEntityService; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + +import com.ecep.contract.constant.ServiceConstant; +import com.ecep.contract.model.IdentityEntity; +import com.ecep.contract.vm.IdentityViewModel; /** * 视图模型服务接口 @@ -18,10 +24,7 @@ public interface ViewModelService> R getRepository(); - default T findByModel(TV model) { - if (model instanceof IdentityViewModel identity) { - return findById(identity.getId().get()); - } + default T findById(Integer id) { return null; } @@ -68,4 +71,37 @@ public interface ViewModelService findAll() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAll'"); + } + + default Page findAll(Map params, Pageable pageable) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'findAll'"); + } + + default long count(Map params) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'count'"); + } + + default Map getSpecification(String searchText) { + HashMap params = new HashMap<>(); + params.put(ServiceConstant.KEY_SEARCH_TEXT, searchText); + return params; + } } diff --git a/client/src/main/java/com/ecep/contract/service/YongYouU8Service.java b/client/src/main/java/com/ecep/contract/service/YongYouU8Service.java new file mode 100644 index 0000000..aadc7f7 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/service/YongYouU8Service.java @@ -0,0 +1,46 @@ +package com.ecep.contract.service; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +import org.controlsfx.control.TaskProgressView; + +import com.ecep.contract.Desktop; +import com.ecep.contract.task.ContractSyncTask; +import com.ecep.contract.task.CustomerSyncTask; +import com.ecep.contract.task.MonitoredTask; +import com.ecep.contract.task.VendorSyncTask; + +import javafx.concurrent.Task; + +public class YongYouU8Service { + + /** + * 生成定时同步任务 + * + * @param taskProgressView 任务视图 + */ + public void scheduledTasks(TaskProgressView> taskProgressView) { + ScheduledExecutorService executorService = Desktop.instance.getExecutorService(); + executorService.scheduleAtFixedRate(() -> { + ContractSyncTask task = new ContractSyncTask(); + MonitoredTask registerTask = Desktop.instance.getTaskMonitorCenter().registerTask(task); + registerTask.schedule(5, TimeUnit.SECONDS); + }, 3, TimeUnit.MINUTES.toSeconds(15), TimeUnit.SECONDS); + + executorService.scheduleAtFixedRate(() -> { + // 1小时运行一次同步供应商任务 + VendorSyncTask vendorTask = new VendorSyncTask(); + MonitoredTask registerVendorTask = Desktop.instance.getTaskMonitorCenter().registerTask(vendorTask); + registerVendorTask.schedule(60, TimeUnit.SECONDS); + + // 1小时运行一次同步客户任务 + CustomerSyncTask customerTask = new CustomerSyncTask(); + MonitoredTask registerCustomerTask = Desktop.instance.getTaskMonitorCenter() + .registerTask(customerTask); + registerCustomerTask.schedule(60, TimeUnit.SECONDS); + + }, 3, TimeUnit.HOURS.toSeconds(1), TimeUnit.SECONDS); + + } +} diff --git a/client/src/main/java/com/ecep/contract/task/CloudRkSyncTask.java b/client/src/main/java/com/ecep/contract/task/CloudRkSyncTask.java new file mode 100644 index 0000000..bea3204 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/task/CloudRkSyncTask.java @@ -0,0 +1,21 @@ +package com.ecep.contract.task; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ecep.contract.MessageHolder; + +/** + * 集团相关方平台同步任务 + */ +public class CloudRkSyncTask extends Tasker { + private static final Logger logger = LoggerFactory.getLogger(CloudRkSyncTask.class); + + @Override + protected Object execute(MessageHolder holder) throws Exception { + updateTitle("集团相关方平台"); + updateProgress(1, 1); + return null; + } + +} diff --git a/client/src/main/java/com/ecep/contract/task/CompanyCompositeUpdateTasker.java b/client/src/main/java/com/ecep/contract/task/CompanyCompositeUpdateTasker.java new file mode 100644 index 0000000..4cd03d0 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/task/CompanyCompositeUpdateTasker.java @@ -0,0 +1,33 @@ +package com.ecep.contract.task; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.constant.CloudServiceConstant; +import com.ecep.contract.model.Company; + +import lombok.Setter; + +/** + * 合并更新 + */ +public class CompanyCompositeUpdateTasker extends Tasker { + private static final Logger logger = LoggerFactory.getLogger(CompanyCompositeUpdateTasker.class); + @Setter + private Company company; + + @Override + protected Object execute(MessageHolder holder) throws Exception { + updateTitle("合并更新 " + company.getName()); + + holder.debug("1. 从 " + CloudServiceConstant.RK_NAME + " 更新..."); + updateProgress(0.1, 1); + holder.debug("2. 从 " + CloudServiceConstant.U8_NAME + " 更新..."); + updateProgress(0.3, 1); + holder.debug("3. 从 " + CloudServiceConstant.TYC_NAME + " 更新..."); + updateProgress(1, 1); + return null; + } + +} diff --git a/client/src/main/java/com/ecep/contract/task/CompanyFilesRebuildTasker.java b/client/src/main/java/com/ecep/contract/task/CompanyFilesRebuildTasker.java new file mode 100644 index 0000000..877e7ff --- /dev/null +++ b/client/src/main/java/com/ecep/contract/task/CompanyFilesRebuildTasker.java @@ -0,0 +1,16 @@ +package com.ecep.contract.task; + +import com.ecep.contract.MessageHolder; + +/** + * 对所有公司的文件进行重置 + */ +public class CompanyFilesRebuildTasker extends Tasker { + @Override + protected Object execute(MessageHolder holder) throws Exception { + updateTitle("合同文件重置"); + holder.debug("遍历所有公司,对每个可以公司的文件进行“重置”操作"); + return null; + } + +} diff --git a/client/src/main/java/com/ecep/contract/task/CompanyVendorEvaluationFormUpdateTask.java b/client/src/main/java/com/ecep/contract/task/CompanyVendorEvaluationFormUpdateTask.java new file mode 100644 index 0000000..d8bece6 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/task/CompanyVendorEvaluationFormUpdateTask.java @@ -0,0 +1,19 @@ +package com.ecep.contract.task; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ecep.contract.MessageHolder; + +/** + * 更新供应商评价表 + */ +public class CompanyVendorEvaluationFormUpdateTask extends Tasker { + private static final Logger logger = LoggerFactory.getLogger(CompanyVendorEvaluationFormUpdateTask.class); + + @Override + protected Object execute(MessageHolder holder) throws Exception { + updateTitle("更新供应商评价表"); + return null; + } +} diff --git a/client/src/main/java/com/ecep/contract/task/CompanyVerifyTasker.java b/client/src/main/java/com/ecep/contract/task/CompanyVerifyTasker.java new file mode 100644 index 0000000..43408d6 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/task/CompanyVerifyTasker.java @@ -0,0 +1,20 @@ +package com.ecep.contract.task; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.model.Company; + +import lombok.Getter; +import lombok.Setter; + +public class CompanyVerifyTasker extends Tasker { + @Getter + @Setter + private Company company; + + @Override + protected Object execute(MessageHolder holder) throws Exception { + updateTitle("验证企业是否符合合规要求"); + return null; + } + +} diff --git a/client/src/main/java/com/ecep/contract/task/ContractRepairByCompanyTask.java b/client/src/main/java/com/ecep/contract/task/ContractRepairByCompanyTask.java new file mode 100644 index 0000000..d22d956 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/task/ContractRepairByCompanyTask.java @@ -0,0 +1,22 @@ +package com.ecep.contract.task; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.model.Company; + +import lombok.Getter; +import lombok.Setter; + +public class ContractRepairByCompanyTask extends Tasker { + @Getter + @Setter + private Company company; + @Getter + boolean repaired = false; + + @Override + protected Object execute(MessageHolder holder) throws Exception { + updateTitle("同步修复 " + company.getName() + " 下的所有合同"); + updateProgress(1, 1); + return null; + } +} diff --git a/client/src/main/java/com/ecep/contract/task/ContractRepairTask.java b/client/src/main/java/com/ecep/contract/task/ContractRepairTask.java new file mode 100644 index 0000000..7847943 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/task/ContractRepairTask.java @@ -0,0 +1,38 @@ +package com.ecep.contract.task; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.model.Contract; + +import lombok.Getter; +import lombok.Setter; + +/** + * + */ +public class ContractRepairTask extends Tasker { + @Getter + @Setter + private Contract contract; + + @Getter + boolean repaired = false; + @Getter + protected boolean filesUpdated = false; + @Getter + protected boolean itemsUpdated = false; + @Getter + protected boolean playPlanUpdated = false; + @Getter + protected boolean saleOrderUpdated = false; + + public ContractRepairTask() { + } + + @Override + protected Object execute(MessageHolder holder) throws Exception { + updateTitle("修复合同 " + contract.toPrettyString()); + updateProgress(1, 1); + return null; + } + +} diff --git a/client/src/main/java/com/ecep/contract/task/ContractSyncTask.java b/client/src/main/java/com/ecep/contract/task/ContractSyncTask.java new file mode 100644 index 0000000..9a57d99 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/task/ContractSyncTask.java @@ -0,0 +1,20 @@ +package com.ecep.contract.task; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ecep.contract.MessageHolder; + +/** + * 合同同步任务 + */ +public class ContractSyncTask extends Tasker { + private static final Logger logger = LoggerFactory.getLogger(ContractSyncTask.class); + + @Override + protected Object execute(MessageHolder holder) throws Exception { + updateTitle("用友U8系统-同步合同"); + return null; + } + +} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractVerifyComm.java b/client/src/main/java/com/ecep/contract/task/ContractVerifyComm.java similarity index 92% rename from src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractVerifyComm.java rename to client/src/main/java/com/ecep/contract/task/ContractVerifyComm.java index fb42ea1..0963a3f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractVerifyComm.java +++ b/client/src/main/java/com/ecep/contract/task/ContractVerifyComm.java @@ -1,59 +1,77 @@ -package com.ecep.contract.manager.ds.contract.tasker; - -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.CompanyFileUtils; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyExtendInfo; -import com.ecep.contract.manager.ds.company.service.CompanyExtendInfoService; -import com.ecep.contract.manager.ds.company.service.CompanyFileService; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.model.*; -import com.ecep.contract.manager.ds.contract.service.ContractBidVendorService; -import com.ecep.contract.manager.ds.contract.service.ContractFileService; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.service.ExtendVendorInfoService; -import com.ecep.contract.manager.ds.customer.CompanyCustomerFileType; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFile; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import com.ecep.contract.manager.ds.project.controller.cost.ProjectCostImportItemsFromContractsTasker; -import com.ecep.contract.manager.ds.project.model.*; -import com.ecep.contract.manager.ds.project.service.*; -import com.ecep.contract.manager.ds.vendor.model.VendorGroup; -import com.ecep.contract.manager.ds.vendor.model.VendorGroupRequireFileType; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ds.vendor.service.VendorGroupRequireFileTypeService; -import com.ecep.contract.manager.ds.vendor.service.VendorGroupService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import javafx.beans.property.SimpleBooleanProperty; -import javafx.collections.FXCollections; -import javafx.collections.ObservableMap; -import javafx.util.converter.NumberStringConverter; -import lombok.Data; -import org.hibernate.Hibernate; -import org.springframework.util.StringUtils; +package com.ecep.contract.task; import java.io.File; import java.text.NumberFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; -import java.util.*; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.DoubleSummaryStatistics; +import java.util.List; +import java.util.Locale; +import java.util.Objects; import java.util.stream.Collectors; +import org.hibernate.Hibernate; +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; +import com.ecep.contract.model.CompanyExtendInfo; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractBidVendor; +import com.ecep.contract.model.ContractFile; +import com.ecep.contract.model.ContractFileTypeLocal; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.ExtendVendorInfo; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectBid; +import com.ecep.contract.model.ProjectCost; +import com.ecep.contract.model.ProjectQuotation; +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.CompanyCustomerService; +import com.ecep.contract.service.CompanyFileService; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.CompanyVendorService; +import com.ecep.contract.service.ContractBidVendorService; +import com.ecep.contract.service.ContractFileService; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.EmployeeService; +import com.ecep.contract.service.ExtendVendorInfoService; +import com.ecep.contract.service.ProjectBidService; +import com.ecep.contract.service.ProjectCostService; +import com.ecep.contract.service.ProjectQuotationService; +import com.ecep.contract.service.ProjectSaleTypeRequireFileTypeService; +import com.ecep.contract.service.ProjectSaleTypeService; +import com.ecep.contract.service.ProjectService; +import com.ecep.contract.service.VendorGroupRequireFileTypeService; +import com.ecep.contract.service.VendorGroupService; + +import javafx.beans.property.SimpleBooleanProperty; +import javafx.collections.FXCollections; +import javafx.collections.ObservableMap; +import javafx.util.converter.NumberStringConverter; +import lombok.Data; + @Data public class ContractVerifyComm { // Project private ProjectService projectService; private ProjectSaleTypeRequireFileTypeService saleTypeRequireFileTypeService; - private SaleTypeService saleTypeService; + private ProjectSaleTypeService saleTypeService; private ProjectCostService projectCostService; private ProjectQuotationService projectQuotationService; private ProjectBidService projectBidService; @@ -84,9 +102,9 @@ public class ContractVerifyComm { return projectService; } - private SaleTypeService getSaleTypeService() { + private ProjectSaleTypeService getSaleTypeService() { if (saleTypeService == null) { - saleTypeService = SpringApp.getBean(SaleTypeService.class); + saleTypeService = SpringApp.getBean(ProjectSaleTypeService.class); } return saleTypeService; } diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractVerifyResultExportAsExcelFile.java b/client/src/main/java/com/ecep/contract/task/ContractVerifyResultExportAsExcelFileTasker.java similarity index 81% rename from src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractVerifyResultExportAsExcelFile.java rename to client/src/main/java/com/ecep/contract/task/ContractVerifyResultExportAsExcelFileTasker.java index 9f3f84e..bec0651 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractVerifyResultExportAsExcelFile.java +++ b/client/src/main/java/com/ecep/contract/task/ContractVerifyResultExportAsExcelFileTasker.java @@ -1,20 +1,6 @@ -package com.ecep.contract.manager.ds.contract.tasker; +package com.ecep.contract.task; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.contract.controller.ContractVerifyWindowController; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import com.ecep.contract.manager.ui.Message; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.apache.poi.ss.usermodel.*; -import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import org.hibernate.Hibernate; -import org.springframework.util.StringUtils; +import static com.ecep.contract.util.ExcelUtils.setCellValue; import java.io.File; import java.io.FileOutputStream; @@ -26,15 +12,33 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.stream.Collectors; -import static com.ecep.contract.manager.util.ExcelUtils.setCellValue; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.hibernate.Hibernate; +import org.springframework.util.StringUtils; +import com.ecep.contract.Message; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.controller.contract.ContractVerifyWindowController; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.Employee; +import com.ecep.contract.service.ContractService; +import com.ecep.contract.service.EmployeeService; + +import lombok.Data; +import lombok.EqualsAndHashCode; /** * 导出验证结果为Excel文件 */ @EqualsAndHashCode(callSuper = true) @Data -public class ContractVerifyResultExportAsExcelFile extends Tasker { +public class ContractVerifyResultExportAsExcelFileTasker extends Tasker { File destFile; @@ -67,20 +71,19 @@ public class ContractVerifyResultExportAsExcelFile extends Tasker { // 按员工分组 Map> listMap = models.stream() .collect(Collectors.groupingBy(model -> { - Employee employee = model.getEmployee().get(); - if (employee == null) { - employee = unnamed; - } - return employee; - }) - ); + Employee employee = model.getEmployee().get(); + if (employee == null) { + employee = unnamed; + } + return employee; + })); holder.debug("按员工分为 " + listMap.size() + " 组"); updateProgress(0, listMap.size()); try (Workbook wb = new XSSFWorkbook()) { - String[] headers = {"合同编号", "合同名称", "验证结果", "路径"}; - int[] columnWidths = {14, 25, 50, 20}; + String[] headers = { "合同编号", "合同名称", "验证结果", "路径" }; + int[] columnWidths = { 14, 25, 50, 20 }; // 创建样式:启用自动换行 CellStyle wrapStyle = wb.createCellStyle(); @@ -122,7 +125,8 @@ public class ContractVerifyResultExportAsExcelFile extends Tasker { Row row = sheet.createRow(i + 1); setCellValue(sheet, row.getRowNum(), 0, model.getCode().get()); setCellValue(sheet, row.getRowNum(), 1, model.getName().get()); - Map> messages = model.getMessages().get() + Map> messages = model.getMessages() + .get() .stream() .filter(v -> v.getLevel().intValue() > Level.INFO.intValue()) .collect(Collectors.groupingBy(v -> { diff --git a/client/src/main/java/com/ecep/contract/task/CustomerSyncTask.java b/client/src/main/java/com/ecep/contract/task/CustomerSyncTask.java new file mode 100644 index 0000000..7c73f0d --- /dev/null +++ b/client/src/main/java/com/ecep/contract/task/CustomerSyncTask.java @@ -0,0 +1,20 @@ +package com.ecep.contract.task; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ecep.contract.MessageHolder; + +/** + * 同步客户任务 + */ +public class CustomerSyncTask extends Tasker { + private static final Logger logger = LoggerFactory.getLogger(CustomerSyncTask.class); + + @Override + protected Object execute(MessageHolder holder) throws Exception { + updateTitle("用友U8系统-同步客户"); + return null; + } + +} diff --git a/src/main/java/com/ecep/contract/manager/ui/task/DemoTask.java b/client/src/main/java/com/ecep/contract/task/DemoTask.java similarity index 93% rename from src/main/java/com/ecep/contract/manager/ui/task/DemoTask.java rename to client/src/main/java/com/ecep/contract/task/DemoTask.java index 80678aa..3703313 100644 --- a/src/main/java/com/ecep/contract/manager/ui/task/DemoTask.java +++ b/client/src/main/java/com/ecep/contract/task/DemoTask.java @@ -1,11 +1,10 @@ -package com.ecep.contract.manager.ui.task; +package com.ecep.contract.task; import java.util.Random; import java.util.concurrent.TimeUnit; -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; +import com.ecep.contract.Desktop; +import com.ecep.contract.MessageHolder; /** * 演示用的测试任务类,用于测试任务监控系统 diff --git a/src/main/java/com/ecep/contract/manager/ui/task/MonitoredTask.java b/client/src/main/java/com/ecep/contract/task/MonitoredTask.java similarity index 98% rename from src/main/java/com/ecep/contract/manager/ui/task/MonitoredTask.java rename to client/src/main/java/com/ecep/contract/task/MonitoredTask.java index 1b6b855..6857cf5 100644 --- a/src/main/java/com/ecep/contract/manager/ui/task/MonitoredTask.java +++ b/client/src/main/java/com/ecep/contract/task/MonitoredTask.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui.task; +package com.ecep.contract.task; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; @@ -8,9 +8,9 @@ import java.util.concurrent.atomic.AtomicBoolean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.ui.Message; -import com.ecep.contract.manager.ui.Tasker; +import com.ecep.contract.Desktop; +import com.ecep.contract.Message; +import com.ecep.contract.TaskStatus; import javafx.beans.property.ObjectProperty; import javafx.beans.property.ReadOnlyDoubleProperty; diff --git a/client/src/main/java/com/ecep/contract/task/OldVersionSyncCustomerTask.java b/client/src/main/java/com/ecep/contract/task/OldVersionSyncCustomerTask.java new file mode 100644 index 0000000..030be23 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/task/OldVersionSyncCustomerTask.java @@ -0,0 +1,20 @@ +package com.ecep.contract.task; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ecep.contract.MessageHolder; + +/** + * + */ +public class OldVersionSyncCustomerTask extends Tasker { + private static final Logger logger = LoggerFactory.getLogger(OldVersionSyncCustomerTask.class); + + @Override + protected Object execute(MessageHolder holder) throws Exception { + updateTitle("老版本-同步客户数据"); + return null; + } + +} diff --git a/client/src/main/java/com/ecep/contract/task/OldVersionSyncVendorTask.java b/client/src/main/java/com/ecep/contract/task/OldVersionSyncVendorTask.java new file mode 100644 index 0000000..2538a35 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/task/OldVersionSyncVendorTask.java @@ -0,0 +1,18 @@ +package com.ecep.contract.task; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ecep.contract.MessageHolder; + +public class OldVersionSyncVendorTask extends Tasker { + private static final Logger logger = LoggerFactory.getLogger(OldVersionSyncVendorTask.class); + + + @Override + protected Object execute(MessageHolder holder) throws Exception { updateTitle("老版本-同步供应商数据"); + + return null; + } + +} diff --git a/src/main/java/com/ecep/contract/manager/ui/task/TaskHistory.java b/client/src/main/java/com/ecep/contract/task/TaskHistory.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/ui/task/TaskHistory.java rename to client/src/main/java/com/ecep/contract/task/TaskHistory.java index af64961..93e3b96 100644 --- a/src/main/java/com/ecep/contract/manager/ui/task/TaskHistory.java +++ b/client/src/main/java/com/ecep/contract/task/TaskHistory.java @@ -1,10 +1,11 @@ -package com.ecep.contract.manager.ui.task; +package com.ecep.contract.task; import java.io.StringWriter; import java.util.ArrayList; import java.util.List; -import com.ecep.contract.manager.ui.Message; +import com.ecep.contract.Message; +import com.ecep.contract.TaskStatus; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/src/main/java/com/ecep/contract/manager/ui/task/TaskMonitorCenter.java b/client/src/main/java/com/ecep/contract/task/TaskMonitorCenter.java similarity index 96% rename from src/main/java/com/ecep/contract/manager/ui/task/TaskMonitorCenter.java rename to client/src/main/java/com/ecep/contract/task/TaskMonitorCenter.java index af7e189..d4a9413 100644 --- a/src/main/java/com/ecep/contract/manager/ui/task/TaskMonitorCenter.java +++ b/client/src/main/java/com/ecep/contract/task/TaskMonitorCenter.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui.task; +package com.ecep.contract.task; import java.util.ArrayList; import java.util.Map; @@ -9,9 +9,10 @@ import java.util.concurrent.atomic.AtomicInteger; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.ui.BaseController; -import com.ecep.contract.manager.ui.Tasker; +import com.ecep.contract.Desktop; +import com.ecep.contract.TaskStatus; +import com.ecep.contract.controller.BaseController; +import com.ecep.contract.controller.TaskMonitorViewController; import javafx.application.Platform; import javafx.collections.FXCollections; diff --git a/src/main/java/com/ecep/contract/manager/ui/Tasker.java b/client/src/main/java/com/ecep/contract/task/Tasker.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ui/Tasker.java rename to client/src/main/java/com/ecep/contract/task/Tasker.java index ab0c29b..ac334a7 100644 --- a/src/main/java/com/ecep/contract/manager/ui/Tasker.java +++ b/client/src/main/java/com/ecep/contract/task/Tasker.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract.task; import java.util.Locale; import java.util.logging.Level; @@ -7,12 +7,14 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import com.ecep.contract.manager.ds.other.service.SysConfService; +import com.ecep.contract.Desktop; +import com.ecep.contract.Message; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.model.Employee; +import com.ecep.contract.service.CompanyService; +import com.ecep.contract.service.EmployeeService; +import com.ecep.contract.service.SysConfService; import javafx.application.Platform; import javafx.beans.property.StringProperty; @@ -63,7 +65,7 @@ public abstract class Tasker extends Task { } return currentUser; } - + @Override protected T call() throws Exception { MessageHolderImpl holder = new MessageHolderImpl(); @@ -147,7 +149,7 @@ public abstract class Tasker extends Task { setText(null); getStyleClass().clear(); } else { - setText(item.message); + setText(item.getMessage()); getStyleClass().removeIf(s -> s.startsWith("row-")); getStyleClass().add("row-" + item.getLevel().getName().toLowerCase()); } diff --git a/client/src/main/java/com/ecep/contract/task/VendorSyncTask.java b/client/src/main/java/com/ecep/contract/task/VendorSyncTask.java new file mode 100644 index 0000000..e81244f --- /dev/null +++ b/client/src/main/java/com/ecep/contract/task/VendorSyncTask.java @@ -0,0 +1,19 @@ +package com.ecep.contract.task; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ecep.contract.MessageHolder; + +/** + * 供应商同步任务 + */ +public class VendorSyncTask extends Tasker { + private static final Logger logger = LoggerFactory.getLogger(VendorSyncTask.class); + + @Override + protected Object execute(MessageHolder holder) throws Exception { + updateTitle("用友U8系统-同步供应商"); + return null; + } +} diff --git a/src/main/java/com/ecep/contract/manager/ds/other/AbstractConfigBounder.java b/client/src/main/java/com/ecep/contract/util/AbstractConfigBounder.java similarity index 93% rename from src/main/java/com/ecep/contract/manager/ds/other/AbstractConfigBounder.java rename to client/src/main/java/com/ecep/contract/util/AbstractConfigBounder.java index 42f98a6..7784831 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/AbstractConfigBounder.java +++ b/client/src/main/java/com/ecep/contract/util/AbstractConfigBounder.java @@ -1,12 +1,12 @@ -package com.ecep.contract.manager.ds.other; +package com.ecep.contract.util; import java.time.LocalDateTime; import java.util.concurrent.CompletableFuture; -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.other.model.SysConf; -import com.ecep.contract.manager.ds.other.service.SysConfService; +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 javafx.beans.property.ObjectProperty; import javafx.beans.property.Property; diff --git a/src/main/java/com/ecep/contract/manager/util/AsyncUtils.java b/client/src/main/java/com/ecep/contract/util/AsyncUtils.java similarity index 98% rename from src/main/java/com/ecep/contract/manager/util/AsyncUtils.java rename to client/src/main/java/com/ecep/contract/util/AsyncUtils.java index a85d3ba..23bcf30 100644 --- a/src/main/java/com/ecep/contract/manager/util/AsyncUtils.java +++ b/client/src/main/java/com/ecep/contract/util/AsyncUtils.java @@ -1,9 +1,9 @@ -package com.ecep.contract.manager.util; +package com.ecep.contract.util; import java.util.concurrent.*; import java.util.function.Supplier; -import com.ecep.contract.manager.Desktop; +import com.ecep.contract.Desktop; /** * 异步任务工具类 - 提供超时处理等增强功能 diff --git a/src/main/java/com/ecep/contract/manager/ds/other/BooleanConfig.java b/client/src/main/java/com/ecep/contract/util/BooleanConfig.java similarity index 96% rename from src/main/java/com/ecep/contract/manager/ds/other/BooleanConfig.java rename to client/src/main/java/com/ecep/contract/util/BooleanConfig.java index ff887fd..89a7f1b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/BooleanConfig.java +++ b/client/src/main/java/com/ecep/contract/util/BooleanConfig.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other; +package com.ecep.contract.util; import org.controlsfx.control.ToggleSwitch; diff --git a/src/main/java/com/ecep/contract/manager/ui/util/BooleanConfigProperty.java b/client/src/main/java/com/ecep/contract/util/BooleanConfigProperty.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ui/util/BooleanConfigProperty.java rename to client/src/main/java/com/ecep/contract/util/BooleanConfigProperty.java index 6f78128..504d30b 100644 --- a/src/main/java/com/ecep/contract/manager/ui/util/BooleanConfigProperty.java +++ b/client/src/main/java/com/ecep/contract/util/BooleanConfigProperty.java @@ -1,6 +1,7 @@ -package com.ecep.contract.manager.ui.util; +package com.ecep.contract.util; + +import com.ecep.contract.service.SysConfService; -import com.ecep.contract.manager.ds.other.service.SysConfService; import javafx.beans.property.SimpleBooleanProperty; public class BooleanConfigProperty extends SimpleBooleanProperty { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/ConfigBounder.java b/client/src/main/java/com/ecep/contract/util/ConfigBounder.java similarity index 70% rename from src/main/java/com/ecep/contract/manager/ds/other/ConfigBounder.java rename to client/src/main/java/com/ecep/contract/util/ConfigBounder.java index b8223eb..3a59cb6 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/ConfigBounder.java +++ b/client/src/main/java/com/ecep/contract/util/ConfigBounder.java @@ -1,8 +1,8 @@ -package com.ecep.contract.manager.ds.other; +package com.ecep.contract.util; import java.util.concurrent.CompletableFuture; -import com.ecep.contract.manager.ds.other.service.SysConfService; +import com.ecep.contract.service.SysConfService; public interface ConfigBounder { diff --git a/src/main/java/com/ecep/contract/manager/ui/util/DelayOnceExecutor.java b/client/src/main/java/com/ecep/contract/util/DelayOnceExecutor.java similarity index 98% rename from src/main/java/com/ecep/contract/manager/ui/util/DelayOnceExecutor.java rename to client/src/main/java/com/ecep/contract/util/DelayOnceExecutor.java index fc4cb24..a3d95c5 100644 --- a/src/main/java/com/ecep/contract/manager/ui/util/DelayOnceExecutor.java +++ b/client/src/main/java/com/ecep/contract/util/DelayOnceExecutor.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui.util; +package com.ecep.contract.util; import javafx.beans.value.ObservableValue; import lombok.Setter; diff --git a/src/main/java/com/ecep/contract/manager/util/ExcelUtils.java b/client/src/main/java/com/ecep/contract/util/ExcelUtils.java similarity index 99% rename from src/main/java/com/ecep/contract/manager/util/ExcelUtils.java rename to client/src/main/java/com/ecep/contract/util/ExcelUtils.java index 115be9a..0714fe9 100644 --- a/src/main/java/com/ecep/contract/manager/util/ExcelUtils.java +++ b/client/src/main/java/com/ecep/contract/util/ExcelUtils.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.util; +package com.ecep.contract.util; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellAddress; diff --git a/src/main/java/com/ecep/contract/manager/ui/FxmlPath.java b/client/src/main/java/com/ecep/contract/util/FxmlPath.java similarity index 81% rename from src/main/java/com/ecep/contract/manager/ui/FxmlPath.java rename to client/src/main/java/com/ecep/contract/util/FxmlPath.java index de50781..3e0e32c 100644 --- a/src/main/java/com/ecep/contract/manager/ui/FxmlPath.java +++ b/client/src/main/java/com/ecep/contract/util/FxmlPath.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract.util; import java.lang.annotation.*; diff --git a/src/main/java/com/ecep/contract/manager/util/FxmlUtils.java b/client/src/main/java/com/ecep/contract/util/FxmlUtils.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/util/FxmlUtils.java rename to client/src/main/java/com/ecep/contract/util/FxmlUtils.java index 3098a5e..510a120 100644 --- a/src/main/java/com/ecep/contract/manager/util/FxmlUtils.java +++ b/client/src/main/java/com/ecep/contract/util/FxmlUtils.java @@ -1,12 +1,12 @@ -package com.ecep.contract.manager.util; +package com.ecep.contract.util; import java.io.IOException; import java.net.URL; import java.util.concurrent.CompletableFuture; -import com.ecep.contract.manager.AppV2; -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.SpringApp; +import com.ecep.contract.AppV2; +import com.ecep.contract.Desktop; +import com.ecep.contract.SpringApp; import javafx.application.Platform; import javafx.fxml.FXMLLoader; diff --git a/src/main/java/com/ecep/contract/manager/ui/util/IntegerConfigProperty.java b/client/src/main/java/com/ecep/contract/util/IntegerConfigProperty.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/ui/util/IntegerConfigProperty.java rename to client/src/main/java/com/ecep/contract/util/IntegerConfigProperty.java index 4fa272a..224a60a 100644 --- a/src/main/java/com/ecep/contract/manager/ui/util/IntegerConfigProperty.java +++ b/client/src/main/java/com/ecep/contract/util/IntegerConfigProperty.java @@ -1,6 +1,7 @@ -package com.ecep.contract.manager.ui.util; +package com.ecep.contract.util; + +import com.ecep.contract.service.SysConfService; -import com.ecep.contract.manager.ds.other.service.SysConfService; import javafx.beans.property.SimpleIntegerProperty; public class IntegerConfigProperty extends SimpleIntegerProperty diff --git a/src/main/java/com/ecep/contract/manager/ds/other/LocalDateConfig.java b/client/src/main/java/com/ecep/contract/util/LocalDateConfig.java similarity index 95% rename from src/main/java/com/ecep/contract/manager/ds/other/LocalDateConfig.java rename to client/src/main/java/com/ecep/contract/util/LocalDateConfig.java index 577dee3..5fea66e 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/LocalDateConfig.java +++ b/client/src/main/java/com/ecep/contract/util/LocalDateConfig.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other; +package com.ecep.contract.util; import java.time.LocalDate; import java.time.format.DateTimeFormatter; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/LocalDateTimeConfig.java b/client/src/main/java/com/ecep/contract/util/LocalDateTimeConfig.java similarity index 96% rename from src/main/java/com/ecep/contract/manager/ds/other/LocalDateTimeConfig.java rename to client/src/main/java/com/ecep/contract/util/LocalDateTimeConfig.java index 1210fca..84a76e5 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/LocalDateTimeConfig.java +++ b/client/src/main/java/com/ecep/contract/util/LocalDateTimeConfig.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other; +package com.ecep.contract.util; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; diff --git a/src/main/java/com/ecep/contract/manager/ui/util/MyDateTimePropertyUtils.java b/client/src/main/java/com/ecep/contract/util/MyDateTimePropertyUtils.java similarity index 92% rename from src/main/java/com/ecep/contract/manager/ui/util/MyDateTimePropertyUtils.java rename to client/src/main/java/com/ecep/contract/util/MyDateTimePropertyUtils.java index 1846fad..16c242a 100644 --- a/src/main/java/com/ecep/contract/manager/ui/util/MyDateTimePropertyUtils.java +++ b/client/src/main/java/com/ecep/contract/util/MyDateTimePropertyUtils.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui.util; +package com.ecep.contract.util; import javafx.beans.property.SimpleObjectProperty; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/StringConfig.java b/client/src/main/java/com/ecep/contract/util/StringConfig.java similarity index 97% rename from src/main/java/com/ecep/contract/manager/ds/other/StringConfig.java rename to client/src/main/java/com/ecep/contract/util/StringConfig.java index 3c0e8d1..9a05d6c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/StringConfig.java +++ b/client/src/main/java/com/ecep/contract/util/StringConfig.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other; +package com.ecep.contract.util; import javafx.beans.property.Property; import javafx.scene.control.Control; diff --git a/src/main/java/com/ecep/contract/manager/util/TableViewUtils.java b/client/src/main/java/com/ecep/contract/util/TableViewUtils.java similarity index 98% rename from src/main/java/com/ecep/contract/manager/util/TableViewUtils.java rename to client/src/main/java/com/ecep/contract/util/TableViewUtils.java index 03d4849..757dd53 100644 --- a/src/main/java/com/ecep/contract/manager/util/TableViewUtils.java +++ b/client/src/main/java/com/ecep/contract/util/TableViewUtils.java @@ -1,4 +1,10 @@ -package com.ecep.contract.manager.util; +package com.ecep.contract.util; + +import java.util.List; +import java.util.Set; +import java.util.function.Consumer; + +import org.springframework.data.domain.Sort; import javafx.scene.Node; import javafx.scene.control.TableColumn; @@ -7,11 +13,6 @@ import javafx.scene.control.TableView; import javafx.scene.input.KeyCode; import javafx.scene.input.MouseButton; import javafx.scene.input.PickResult; -import org.springframework.data.domain.Sort; - -import java.util.List; -import java.util.Set; -import java.util.function.Consumer; public class TableViewUtils { diff --git a/src/main/java/com/ecep/contract/manager/util/UITools.java b/client/src/main/java/com/ecep/contract/util/UITools.java similarity index 95% rename from src/main/java/com/ecep/contract/manager/util/UITools.java rename to client/src/main/java/com/ecep/contract/util/UITools.java index 1dc91cc..da72e5c 100644 --- a/src/main/java/com/ecep/contract/manager/util/UITools.java +++ b/client/src/main/java/com/ecep/contract/util/UITools.java @@ -1,28 +1,4 @@ -package com.ecep.contract.manager.util; - -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ds.other.model.Entity; -import com.ecep.contract.manager.ui.Message; -import com.ecep.contract.manager.ui.Tasker; -import javafx.application.Platform; -import javafx.beans.property.SimpleObjectProperty; -import javafx.collections.FXCollections; -import javafx.collections.ObservableList; -import javafx.geometry.Insets; -import javafx.geometry.Rectangle2D; -import javafx.scene.Node; -import javafx.scene.control.*; -import javafx.scene.layout.GridPane; -import javafx.scene.layout.Priority; -import javafx.scene.layout.VBox; -import javafx.stage.Screen; -import javafx.util.StringConverter; -import org.controlsfx.control.textfield.AutoCompletionBinding; -import org.controlsfx.control.textfield.TextFields; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.util.StringUtils; +package com.ecep.contract.util; import java.io.PrintWriter; import java.io.StringWriter; @@ -31,6 +7,39 @@ import java.util.concurrent.CompletableFuture; import java.util.function.Consumer; import java.util.function.Function; +import org.controlsfx.control.textfield.AutoCompletionBinding; +import org.controlsfx.control.textfield.TextFields; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.util.StringUtils; + +import com.ecep.contract.Desktop; +import com.ecep.contract.Message; +import com.ecep.contract.converter.EntityStringConverter; +import com.ecep.contract.task.Tasker; + +import javafx.application.Platform; +import javafx.beans.property.SimpleObjectProperty; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.geometry.Insets; +import javafx.geometry.Rectangle2D; +import javafx.scene.Node; +import javafx.scene.control.Alert; +import javafx.scene.control.ButtonType; +import javafx.scene.control.Dialog; +import javafx.scene.control.DialogPane; +import javafx.scene.control.Label; +import javafx.scene.control.ListView; +import javafx.scene.control.ProgressBar; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.Priority; +import javafx.scene.layout.VBox; +import javafx.stage.Screen; +import javafx.util.StringConverter; + public class UITools { private static final Logger logger = LoggerFactory.getLogger(UITools.class); diff --git a/src/main/java/com/ecep/contract/manager/ds/other/vo/BankViewModel.java b/client/src/main/java/com/ecep/contract/vm/BankViewModel.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ds/other/vo/BankViewModel.java rename to client/src/main/java/com/ecep/contract/vm/BankViewModel.java index 28e1af5..be4dd36 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/vo/BankViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/BankViewModel.java @@ -1,13 +1,13 @@ -package com.ecep.contract.manager.ds.other.vo; +package com.ecep.contract.vm; + +import java.util.Objects; + +import com.ecep.contract.model.Bank; -import com.ecep.contract.manager.ds.other.model.Bank; -import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class BankViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/vo/BaseViewModel.java b/client/src/main/java/com/ecep/contract/vm/BaseViewModel.java similarity index 98% rename from src/main/java/com/ecep/contract/manager/ds/other/vo/BaseViewModel.java rename to client/src/main/java/com/ecep/contract/vm/BaseViewModel.java index a3c3697..b3c14ff 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/vo/BaseViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/BaseViewModel.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other.vo; +package com.ecep.contract.vm; import javafx.application.Platform; import javafx.beans.InvalidationListener; diff --git a/client/src/main/java/com/ecep/contract/vm/CloudRkViewModel.java b/client/src/main/java/com/ecep/contract/vm/CloudRkViewModel.java new file mode 100644 index 0000000..d50e79b --- /dev/null +++ b/client/src/main/java/com/ecep/contract/vm/CloudRkViewModel.java @@ -0,0 +1,138 @@ +package com.ecep.contract.vm; + +import java.time.LocalDateTime; + +import com.ecep.contract.model.CloudRk; +import com.ecep.contract.model.Company; + +import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.property.SimpleIntegerProperty; +import javafx.beans.property.SimpleObjectProperty; +import javafx.beans.property.SimpleStringProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +public class CloudRkViewModel extends IdentityViewModel { + /** + * 云端Id + */ + private SimpleStringProperty cloudId = new SimpleStringProperty(); + /** + * 更新间隔天数 + */ + private SimpleIntegerProperty updateDays = new SimpleIntegerProperty(); + /** + * 自动更新 + */ + private SimpleBooleanProperty autoUpdate = new SimpleBooleanProperty(); + /** + * 相关方资信评价等级 + */ + private SimpleStringProperty rank = new SimpleStringProperty(); + /** + * 相关方资信评价等级描述 + */ + private SimpleStringProperty rankDescription = new SimpleStringProperty(); + /** + * 客户资信评价等级 + */ + private SimpleStringProperty customerGrade = new SimpleStringProperty(); + /** + * 客户资信评价等级描述 + */ + private SimpleStringProperty customerDescription = new SimpleStringProperty(); + /** + * 客户资信评价等级描述 + */ + private SimpleIntegerProperty customerScore = new SimpleIntegerProperty(); + /** + * 供应商资信评价等级 + */ + private SimpleStringProperty vendorGrade = new SimpleStringProperty(); + /** + * 供应商资信评价等级描述 + */ + private SimpleStringProperty vendorDescription = new SimpleStringProperty(); + /** + * 供应商资信评价等级描述 + */ + private SimpleIntegerProperty vendorScore = new SimpleIntegerProperty(); + /** + * 描述 + */ + private SimpleStringProperty description = new SimpleStringProperty(); + /** + * 公司 + */ + private SimpleObjectProperty company = new SimpleObjectProperty<>(); + /** + * 最后更新日期 + */ + private SimpleObjectProperty latestUpdate = new SimpleObjectProperty<>(); + /** + * 企业更新日期 + */ + private SimpleObjectProperty cloudEntUpdate = new SimpleObjectProperty<>(); + /** + * 黑名单更新日期 + */ + private SimpleObjectProperty cloudBlackListUpdated = new SimpleObjectProperty<>(); + /** + * 云端最新更新时间 + */ + private SimpleObjectProperty cloudLatest = new SimpleObjectProperty<>(); + /** + * Version + */ + private SimpleIntegerProperty version = new SimpleIntegerProperty(); + + @Override + protected void updateFrom(CloudRk v) { + super.updateFrom(v); + cloudId.set(v.getCloudId()); + updateDays.set(v.getUpdateDays()); + autoUpdate.set(v.isAutoUpdate()); + description.set(v.getDescription()); + rank.set(v.getRank()); + rankDescription.set(v.getRankDescription()); + customerGrade.set(v.getCustomerGrade()); + customerDescription.set(v.getCustomerDescription()); + customerScore.set(v.getCustomerScore()); + vendorGrade.set(v.getVendorGrade()); + vendorDescription.set(v.getVendorDescription()); + vendorScore.set(v.getVendorScore()); + company.set(v.getCompany()); + latestUpdate.set(v.getLatestUpdate()); + cloudEntUpdate.set(v.getCloudEntUpdate()); + cloudBlackListUpdated.set(v.getCloudBlackListUpdated()); + cloudLatest.set(v.getCloudLatest()); + cloudLatest.set(v.getCloudLatest()); + version.set(v.getVersion()); + } + + @Override + public boolean copyTo(CloudRk v) { + boolean result = super.copyTo(v); + v.setCloudId(cloudId.get()); + v.setUpdateDays(updateDays.get()); + v.setAutoUpdate(autoUpdate.get()); + v.setDescription(description.get()); + v.setRank(rank.get()); + v.setRankDescription(rankDescription.get()); + v.setCustomerGrade(customerGrade.get()); + v.setCustomerDescription(customerDescription.get()); + v.setCustomerScore(customerScore.get()); + v.setVendorGrade(vendorGrade.get()); + v.setVendorDescription(vendorDescription.get()); + v.setVendorScore(vendorScore.get()); + v.setCompany(company.get()); + v.setLatestUpdate(latestUpdate.get()); + v.setCloudEntUpdate(cloudEntUpdate.get()); + v.setCloudBlackListUpdated(cloudBlackListUpdated.get()); + v.setCloudLatest(cloudLatest.get()); + v.setVersion(version.get()); + return result; + } +} diff --git a/src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycInfoViewModel.java b/client/src/main/java/com/ecep/contract/vm/CloudTycInfoViewModel.java similarity index 74% rename from src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycInfoViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CloudTycInfoViewModel.java index b9aa6a2..8fd5b31 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycInfoViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CloudTycInfoViewModel.java @@ -1,11 +1,4 @@ -package com.ecep.contract.manager.cloud.tyc; - -import com.ecep.contract.manager.cloud.CloudInfoViewModel; -import com.ecep.contract.manager.ui.util.MyDateTimePropertyUtils; -import javafx.beans.property.SimpleIntegerProperty; -import javafx.beans.property.SimpleObjectProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; +package com.ecep.contract.vm; import java.time.Instant; import java.time.LocalDateTime; @@ -13,10 +6,35 @@ import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.Objects; +import com.ecep.contract.model.CloudTyc; +import com.ecep.contract.model.Company; +import com.ecep.contract.util.MyDateTimePropertyUtils; + +import javafx.beans.property.SimpleIntegerProperty; +import javafx.beans.property.SimpleObjectProperty; +import javafx.beans.property.SimpleStringProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + @Data @EqualsAndHashCode(callSuper = false) -public class CloudTycInfoViewModel extends CloudInfoViewModel { - +public class CloudTycInfoViewModel extends IdentityViewModel { + /** + * 云端Id + */ + private SimpleStringProperty cloudId = new SimpleStringProperty(); + /** + * 公司 + */ + private SimpleObjectProperty company = new SimpleObjectProperty<>(); + /** + * 最后更新日期 + */ + private SimpleObjectProperty latest = new SimpleObjectProperty<>(); + /** + * Version + */ + private SimpleIntegerProperty version = new SimpleIntegerProperty(); private SimpleIntegerProperty score = new SimpleIntegerProperty(); private SimpleObjectProperty cloudLatest = new SimpleObjectProperty<>(); diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/CloudYuInfoViewModel.java b/client/src/main/java/com/ecep/contract/vm/CloudYuInfoViewModel.java similarity index 76% rename from src/main/java/com/ecep/contract/manager/cloud/u8/CloudYuInfoViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CloudYuInfoViewModel.java index ebed61e..e27283a 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/CloudYuInfoViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CloudYuInfoViewModel.java @@ -1,18 +1,41 @@ -package com.ecep.contract.manager.cloud.u8; +package com.ecep.contract.vm; -import com.ecep.contract.manager.cloud.CloudInfoViewModel; -import com.ecep.contract.manager.ui.util.MyDateTimePropertyUtils; +import java.time.Instant; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.util.Objects; + +import com.ecep.contract.model.CloudYu; +import com.ecep.contract.model.Company; +import com.ecep.contract.util.MyDateTimePropertyUtils; + +import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.*; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) -public class CloudYuInfoViewModel extends CloudInfoViewModel { +public class CloudYuInfoViewModel extends IdentityViewModel { + /** + * 云端Id + */ + private SimpleStringProperty cloudId = new SimpleStringProperty(); + /** + * 公司 + */ + private SimpleObjectProperty company = new SimpleObjectProperty<>(); + /** + * 最后更新日期 + */ + private SimpleObjectProperty latest = new SimpleObjectProperty<>(); + /** + * Version + */ + private SimpleIntegerProperty version = new SimpleIntegerProperty(); private SimpleStringProperty vendorCode = new SimpleStringProperty(); private SimpleStringProperty vendorClassCode = new SimpleStringProperty(); private SimpleObjectProperty vendorDevelopDate = new SimpleObjectProperty<>(); diff --git a/src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyBankAccountViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyBankAccountViewModel.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyBankAccountViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CompanyBankAccountViewModel.java index 4e10dfa..3d0a30c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyBankAccountViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyBankAccountViewModel.java @@ -1,20 +1,18 @@ -package com.ecep.contract.manager.ds.company.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.model.Bank; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyBankAccount; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyBankAccount; -import com.ecep.contract.manager.ds.company.model.CompanyBasedEntity; -import com.ecep.contract.manager.ds.other.model.Bank; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class CompanyBankAccountViewModel extends IdentityViewModel implements CompanyBasedViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyBasedViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyBasedViewModel.java similarity index 56% rename from src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyBasedViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CompanyBasedViewModel.java index 5d43401..31cd6f7 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyBasedViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyBasedViewModel.java @@ -1,6 +1,7 @@ -package com.ecep.contract.manager.ds.company.vo; +package com.ecep.contract.vm; + +import com.ecep.contract.model.Company; -import com.ecep.contract.manager.ds.company.model.Company; import javafx.beans.property.SimpleObjectProperty; public interface CompanyBasedViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyBlackReasonViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyBlackReasonViewModel.java similarity index 92% rename from src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyBlackReasonViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CompanyBlackReasonViewModel.java index 77f0434..5ace9b7 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyBlackReasonViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyBlackReasonViewModel.java @@ -1,9 +1,11 @@ -package com.ecep.contract.manager.ds.company.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.BlackReasonType; +import com.ecep.contract.model.CompanyBlackReason; -import com.ecep.contract.manager.ds.company.BlackReasonType; -import com.ecep.contract.manager.ds.company.model.CompanyBlackReason; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; @@ -11,9 +13,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import java.time.LocalDate; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) @ToString diff --git a/src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyContactViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyContactViewModel.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyContactViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CompanyContactViewModel.java index e41edc0..840e68e 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyContactViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyContactViewModel.java @@ -1,16 +1,15 @@ -package com.ecep.contract.manager.ds.company.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; + +import com.ecep.contract.model.CompanyContact; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; - @Data @EqualsAndHashCode(callSuper = false) public class CompanyContactViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/vo/CompanyCustomerFileViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyCustomerFileViewModel.java similarity index 85% rename from src/main/java/com/ecep/contract/manager/ds/customer/vo/CompanyCustomerFileViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CompanyCustomerFileViewModel.java index e0d41ff..045b3ca 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/vo/CompanyCustomerFileViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyCustomerFileViewModel.java @@ -1,21 +1,19 @@ -package com.ecep.contract.manager.ds.customer.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.CompanyCustomerFileType; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyCustomerFile; -import com.ecep.contract.manager.ds.customer.CompanyCustomerFileType; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFile; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import javafx.beans.property.SimpleBooleanProperty; -import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import java.time.LocalDate; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) @ToString diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/vo/CompanyCustomerViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyCustomerViewModel.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/customer/vo/CompanyCustomerViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CompanyCustomerViewModel.java index b205552..e2f1508 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/vo/CompanyCustomerViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyCustomerViewModel.java @@ -1,19 +1,23 @@ -package com.ecep.contract.manager.ds.customer.vo; +package com.ecep.contract.vm; + +import java.time.Instant; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZoneOffset; +import java.time.ZonedDateTime; +import java.util.Objects; + +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyContact; +import com.ecep.contract.model.CompanyCustomer; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.*; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class CompanyCustomerViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyExtendInfoViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyExtendInfoViewModel.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyExtendInfoViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CompanyExtendInfoViewModel.java index 32e4e58..23c4e3f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyExtendInfoViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyExtendInfoViewModel.java @@ -1,16 +1,16 @@ -package com.ecep.contract.manager.ds.company.vo; +package com.ecep.contract.vm; + +import java.util.Objects; + +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyExtendInfo; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyExtendInfo; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class CompanyExtendInfoViewModel extends BaseViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyFileViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyFileViewModel.java similarity index 86% rename from src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyFileViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CompanyFileViewModel.java index 76545ab..ba4a54a 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyFileViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyFileViewModel.java @@ -1,19 +1,18 @@ -package com.ecep.contract.manager.ds.company.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.CompanyFileType; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyFile; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyFile; -import com.ecep.contract.manager.ds.company.CompanyFileType; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.util.Objects; - /** * View Model for {@link CompanyFile} */ diff --git a/src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyOldNameViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyOldNameViewModel.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyOldNameViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CompanyOldNameViewModel.java index bdd7b4e..52ea21d 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyOldNameViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyOldNameViewModel.java @@ -1,8 +1,9 @@ -package com.ecep.contract.manager.ds.company.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; + +import com.ecep.contract.model.CompanyOldName; -import com.ecep.contract.manager.ds.company.model.CompanyOldName; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; @@ -10,8 +11,6 @@ import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; - @Data @EqualsAndHashCode(callSuper = false) public class CompanyOldNameViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/vo/CompanyVendorApprovedFileViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyVendorApprovedFileViewModel.java similarity index 80% rename from src/main/java/com/ecep/contract/manager/ds/vendor/vo/CompanyVendorApprovedFileViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CompanyVendorApprovedFileViewModel.java index 6636e8f..2dafba3 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/vo/CompanyVendorApprovedFileViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyVendorApprovedFileViewModel.java @@ -1,18 +1,16 @@ -package com.ecep.contract.manager.ds.vendor.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; + +import com.ecep.contract.model.CompanyVendorApprovedFile; +import com.ecep.contract.model.CompanyVendorApprovedList; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedFile; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; -import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import java.time.LocalDate; - @Data @EqualsAndHashCode(callSuper = false) @ToString diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/vo/CompanyVendorApprovedItemViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyVendorApprovedItemViewModel.java similarity index 81% rename from src/main/java/com/ecep/contract/manager/ds/vendor/vo/CompanyVendorApprovedItemViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CompanyVendorApprovedItemViewModel.java index fe5f6ec..7041e97 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/vo/CompanyVendorApprovedItemViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyVendorApprovedItemViewModel.java @@ -1,19 +1,17 @@ -package com.ecep.contract.manager.ds.vendor.vo; +package com.ecep.contract.vm; + +import java.util.Objects; + +import com.ecep.contract.VendorType; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.CompanyVendorApprovedItem; +import com.ecep.contract.model.CompanyVendorApprovedList; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.vendor.VendorType; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedItem; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; -import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class CompanyVendorApprovedItemViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/vo/CompanyVendorApprovedListViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyVendorApprovedListViewModel.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ds/vendor/vo/CompanyVendorApprovedListViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CompanyVendorApprovedListViewModel.java index bc62e16..250448f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/vo/CompanyVendorApprovedListViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyVendorApprovedListViewModel.java @@ -1,15 +1,15 @@ -package com.ecep.contract.manager.ds.vendor.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.model.CompanyVendorApprovedList; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class CompanyVendorApprovedListViewModel diff --git a/client/src/main/java/com/ecep/contract/vm/CompanyVendorEntityViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyVendorEntityViewModel.java new file mode 100644 index 0000000..8c35d95 --- /dev/null +++ b/client/src/main/java/com/ecep/contract/vm/CompanyVendorEntityViewModel.java @@ -0,0 +1,87 @@ +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.CompanyVendorEntity; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.VendorCatalog; + +import javafx.beans.property.SimpleObjectProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +public class CompanyVendorEntityViewModel extends IdentityViewModel { + private SimpleObjectProperty vendor = new SimpleObjectProperty<>(); + private SimpleObjectProperty name = new SimpleObjectProperty<>(); + private SimpleObjectProperty abbName = new SimpleObjectProperty<>(); + private SimpleObjectProperty code = new SimpleObjectProperty<>(); + + private SimpleObjectProperty catalog = new SimpleObjectProperty<>(); + private SimpleObjectProperty creator = new SimpleObjectProperty<>(); + private SimpleObjectProperty developDate = new SimpleObjectProperty<>(); + private SimpleObjectProperty modifier = new SimpleObjectProperty<>(); + private SimpleObjectProperty modifyDate = new SimpleObjectProperty<>(); + + private SimpleObjectProperty updatedDate = new SimpleObjectProperty<>(); + private SimpleObjectProperty fetchedTime = new SimpleObjectProperty<>(); + + @Override + protected void updateFrom(CompanyVendorEntity v) { + super.updateFrom(v); + vendor.set(v.getVendor()); + name.set(v.getName()); + abbName.set(v.getAbbName()); + code.set(v.getCode()); + catalog.set(v.getCatalog()); + creator.set(v.getCreator()); + developDate.set(v.getDevelopDate()); + modifier.set(v.getModifier()); + modifyDate.set(v.getModifyDate()); + updatedDate.set(v.getUpdatedDate()); + fetchedTime.set(v.getFetchedTime()); + } + + @Override + public boolean copyTo(CompanyVendorEntity v) { + boolean modified = super.copyTo(v); + if (vendor.get() != null) { + v.setVendor(vendor.get()); + modified = true; + } + if (name.get() != null) { + v.setName(name.get()); + modified = true; + } + if (abbName.get() != null) { + v.setAbbName(abbName.get()); + modified = true; + } + if (code.get() != null) { + v.setCode(code.get()); + modified = true; + } + if (catalog.get() != null) { + v.setCatalog(catalog.get()); + modified = true; + } + if (creator.get() != null) { + v.setCreator(creator.get()); + modified = true; + } + if (developDate.get() != null) { + v.setDevelopDate(developDate.get()); + modified = true; + } + if (modifier.get() != null) { + v.setModifier(modifier.get()); + modified = true; + } + + return modified; + } + +} diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/vo/CompanyVendorFileViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyVendorFileViewModel.java similarity index 85% rename from src/main/java/com/ecep/contract/manager/ds/vendor/vo/CompanyVendorFileViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CompanyVendorFileViewModel.java index fc4b695..58e600d 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/vo/CompanyVendorFileViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyVendorFileViewModel.java @@ -1,21 +1,19 @@ -package com.ecep.contract.manager.ds.vendor.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.CompanyVendorFileType; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.CompanyVendorFile; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.vendor.CompanyVendorFileType; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorFile; import javafx.beans.property.SimpleBooleanProperty; -import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import java.time.LocalDate; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) @ToString diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/vo/CompanyVendorViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyVendorViewModel.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/vendor/vo/CompanyVendorViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CompanyVendorViewModel.java index ed0885e..419908c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/vo/CompanyVendorViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyVendorViewModel.java @@ -1,13 +1,20 @@ -package com.ecep.contract.manager.ds.vendor.vo; +package com.ecep.contract.vm; + +import java.time.Instant; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZoneOffset; +import java.time.ZonedDateTime; +import java.util.Objects; + +import com.ecep.contract.VendorType; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyContact; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.VendorCatalog; +import com.ecep.contract.model.VendorGroup; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.vendor.VendorType; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.VendorCatalog; -import com.ecep.contract.manager.ds.vendor.model.VendorGroup; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; @@ -15,9 +22,6 @@ import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.*; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class CompanyVendorViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyViewModel.java b/client/src/main/java/com/ecep/contract/vm/CompanyViewModel.java similarity index 96% rename from src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CompanyViewModel.java index 38b47eb..d61e704 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/vo/CompanyViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CompanyViewModel.java @@ -1,8 +1,10 @@ -package com.ecep.contract.manager.ds.company.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.model.Company; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; @@ -10,9 +12,6 @@ import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractBidVendorViewModel.java b/client/src/main/java/com/ecep/contract/vm/ContractBidVendorViewModel.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractBidVendorViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ContractBidVendorViewModel.java index f919cdb..663eff5 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractBidVendorViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ContractBidVendorViewModel.java @@ -1,18 +1,16 @@ -package com.ecep.contract.manager.ds.contract.vo; +package com.ecep.contract.vm; + +import java.util.Objects; + +import com.ecep.contract.model.Company; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractBidVendor; +import com.ecep.contract.model.ContractFile; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractBidVendor; -import com.ecep.contract.manager.ds.contract.model.ContractFile; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class ContractBidVendorViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractFileViewModel.java b/client/src/main/java/com/ecep/contract/vm/ContractFileViewModel.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractFileViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ContractFileViewModel.java index 6b28a0e..4dc6d27 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractFileViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ContractFileViewModel.java @@ -1,19 +1,17 @@ -package com.ecep.contract.manager.ds.contract.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.ContractFileType; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractFile; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractFile; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class ContractFileViewModel extends IdentityViewModel { diff --git a/client/src/main/java/com/ecep/contract/vm/ContractGroupViewModel.java b/client/src/main/java/com/ecep/contract/vm/ContractGroupViewModel.java new file mode 100644 index 0000000..05e185d --- /dev/null +++ b/client/src/main/java/com/ecep/contract/vm/ContractGroupViewModel.java @@ -0,0 +1,32 @@ +package com.ecep.contract.vm; + +import com.ecep.contract.model.ContractGroup; + +import javafx.beans.property.SimpleStringProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +public class ContractGroupViewModel extends IdentityViewModel { + private SimpleStringProperty code = new SimpleStringProperty(); + private SimpleStringProperty name = new SimpleStringProperty(); + private SimpleStringProperty title = new SimpleStringProperty(); + + @Override + protected void updateFrom(ContractGroup v) { + super.updateFrom(v); + code.set(v.getCode()); + name.set(v.getName()); + title.set(v.getTitle()); + } + + @Override + public boolean copyTo(ContractGroup v) { + boolean result = super.copyTo(v); + v.setCode(code.get()); + v.setName(name.get()); + v.setTitle(title.get()); + return result; + } +} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractItemComposeViewModel.java b/client/src/main/java/com/ecep/contract/vm/ContractItemComposeViewModel.java similarity index 93% rename from src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractItemComposeViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ContractItemComposeViewModel.java index 96b1a7f..9dfed8a 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractItemComposeViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ContractItemComposeViewModel.java @@ -1,7 +1,7 @@ -package com.ecep.contract.manager.ds.contract.vo; +package com.ecep.contract.vm; + +import com.ecep.contract.model.ContractItem; -import com.ecep.contract.manager.ds.contract.model.ContractItem; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; import javafx.beans.property.SimpleDoubleProperty; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleListProperty; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractItemViewModel.java b/client/src/main/java/com/ecep/contract/vm/ContractItemViewModel.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractItemViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ContractItemViewModel.java index 66ab83c..facb194 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractItemViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ContractItemViewModel.java @@ -1,20 +1,20 @@ -package com.ecep.contract.manager.ds.contract.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Objects; + +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractItem; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.Inventory; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractItem; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import javafx.beans.property.SimpleDoubleProperty; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.Objects; - /** * 合同内容 */ diff --git a/client/src/main/java/com/ecep/contract/vm/ContractKindViewModel.java b/client/src/main/java/com/ecep/contract/vm/ContractKindViewModel.java new file mode 100644 index 0000000..2cccf6f --- /dev/null +++ b/client/src/main/java/com/ecep/contract/vm/ContractKindViewModel.java @@ -0,0 +1,32 @@ +package com.ecep.contract.vm; + +import com.ecep.contract.model.ContractKind; + +import javafx.beans.property.SimpleStringProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +public class ContractKindViewModel extends IdentityViewModel { + private SimpleStringProperty code = new SimpleStringProperty(); + private SimpleStringProperty name = new SimpleStringProperty(); + private SimpleStringProperty title = new SimpleStringProperty(); + + @Override + protected void updateFrom(ContractKind v) { + super.updateFrom(v); + code.set(v.getCode()); + name.set(v.getName()); + title.set(v.getTitle()); + } + + @Override + public boolean copyTo(ContractKind v) { + boolean result = super.copyTo(v); + v.setCode(code.get()); + v.setName(name.get()); + v.setTitle(title.get()); + return result; + } +} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractPayPlanViewModel.java b/client/src/main/java/com/ecep/contract/vm/ContractPayPlanViewModel.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractPayPlanViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ContractPayPlanViewModel.java index e6d2576..07a179d 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractPayPlanViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ContractPayPlanViewModel.java @@ -1,8 +1,12 @@ -package com.ecep.contract.manager.ds.contract.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Objects; + +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractPayPlan; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractPayPlan; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import javafx.beans.property.SimpleDoubleProperty; import javafx.beans.property.SimpleFloatProperty; import javafx.beans.property.SimpleIntegerProperty; @@ -10,10 +14,6 @@ import javafx.beans.property.SimpleObjectProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class ContractPayPlanViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractTreeItemModel.java b/client/src/main/java/com/ecep/contract/vm/ContractTreeItemModel.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractTreeItemModel.java rename to client/src/main/java/com/ecep/contract/vm/ContractTreeItemModel.java index 60c0d21..45d99cb 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractTreeItemModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ContractTreeItemModel.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.contract.vo; +package com.ecep.contract.vm; import javafx.collections.ObservableList; import lombok.Data; diff --git a/client/src/main/java/com/ecep/contract/vm/ContractTypeViewModel.java b/client/src/main/java/com/ecep/contract/vm/ContractTypeViewModel.java new file mode 100644 index 0000000..95b4c1a --- /dev/null +++ b/client/src/main/java/com/ecep/contract/vm/ContractTypeViewModel.java @@ -0,0 +1,40 @@ +package com.ecep.contract.vm; + +import com.ecep.contract.model.ContractType; + +import javafx.beans.property.SimpleStringProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +public class ContractTypeViewModel extends IdentityViewModel { + private SimpleStringProperty code = new SimpleStringProperty(); + private SimpleStringProperty name = new SimpleStringProperty(); + private SimpleStringProperty title = new SimpleStringProperty(); + + private SimpleStringProperty catalog = new SimpleStringProperty(); + private SimpleStringProperty direction = new SimpleStringProperty(); + + @Override + protected void updateFrom(ContractType v) { + super.updateFrom(v); + code.set(v.getCode()); + name.set(v.getName()); + title.set(v.getTitle()); + catalog.set(v.getCatalog()); + direction.set(v.getDirection()); + } + + + @Override + public boolean copyTo(ContractType v) { + boolean result = super.copyTo(v); + v.setCode(code.get()); + v.setName(name.get()); + v.setTitle(title.get()); + v.setCatalog(catalog.get()); + v.setDirection(direction.get()); + return result; + } +} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractViewModel.java b/client/src/main/java/com/ecep/contract/vm/ContractViewModel.java similarity index 93% rename from src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ContractViewModel.java index b0b1696..875f50e 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/vo/ContractViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ContractViewModel.java @@ -1,24 +1,27 @@ -package com.ecep.contract.manager.ds.contract.vo; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyContract; -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractGroup; -import com.ecep.contract.manager.ds.contract.model.ContractKind; -import com.ecep.contract.manager.ds.contract.model.ContractType; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.project.model.Project; -import javafx.beans.property.*; -import lombok.Data; -import lombok.EqualsAndHashCode; +package com.ecep.contract.vm; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Objects; +import com.ecep.contract.ContractPayWay; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyContract; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractGroup; +import com.ecep.contract.model.ContractKind; +import com.ecep.contract.model.ContractType; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.Project; + +import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.property.SimpleDoubleProperty; +import javafx.beans.property.SimpleIntegerProperty; +import javafx.beans.property.SimpleObjectProperty; +import javafx.beans.property.SimpleStringProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + /** * */ @@ -82,7 +85,6 @@ public class ContractViewModel extends IdentityViewModel { private SimpleBooleanProperty standardPayWay = new SimpleBooleanProperty(); private SimpleBooleanProperty standardContractText = new SimpleBooleanProperty(); - private SimpleStringProperty description = new SimpleStringProperty(); private SimpleObjectProperty created = new SimpleObjectProperty<>(); @@ -183,7 +185,6 @@ public class ContractViewModel extends IdentityViewModel { created.set(c.getCreated()); version.set(c.getVersion()); - getTotalQuantity().set(c.getTotalQuantity()); getTotalAmount().set(c.getTotalAmount()); getTotalUnTaxAmount().set(c.getTotalUnTaxAmount()); diff --git a/src/main/java/com/ecep/contract/manager/CurrentEmployee.java b/client/src/main/java/com/ecep/contract/vm/CurrentEmployee.java similarity index 95% rename from src/main/java/com/ecep/contract/manager/CurrentEmployee.java rename to client/src/main/java/com/ecep/contract/vm/CurrentEmployee.java index 83801b8..68fc1f3 100644 --- a/src/main/java/com/ecep/contract/manager/CurrentEmployee.java +++ b/client/src/main/java/com/ecep/contract/vm/CurrentEmployee.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager; +package com.ecep.contract.vm; import java.time.format.DateTimeFormatter; import java.util.List; @@ -11,11 +11,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.StringUtils; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.EmployeeRole; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel; -import com.ecep.contract.manager.util.MyDateTimeUtils; +import com.ecep.contract.Desktop; +import com.ecep.contract.MyDateTimeUtils; +import com.ecep.contract.SpringApp; +import com.ecep.contract.controller.CurrentEmployeeInitialedEvent; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.EmployeeRole; +import com.ecep.contract.service.EmployeeService; import javafx.application.Platform; import javafx.beans.property.SimpleListProperty; diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/vo/CustomerEntityViewModel.java b/client/src/main/java/com/ecep/contract/vm/CustomerEntityViewModel.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/customer/vo/CustomerEntityViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CustomerEntityViewModel.java index 93b4fa6..4d9dfea 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/vo/CustomerEntityViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CustomerEntityViewModel.java @@ -1,21 +1,19 @@ -package com.ecep.contract.manager.ds.customer.vo; - -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEntity; -import com.ecep.contract.manager.ds.customer.model.CustomerCatalog; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import javafx.beans.property.SimpleIntegerProperty; -import javafx.beans.property.SimpleObjectProperty; -import javafx.beans.property.SimpleStringProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; +package com.ecep.contract.vm; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Objects; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyCustomerEntity; +import com.ecep.contract.model.CustomerCatalog; +import com.ecep.contract.model.Employee; + +import javafx.beans.property.SimpleObjectProperty; +import javafx.beans.property.SimpleStringProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + @Data @EqualsAndHashCode(callSuper = false) public class CustomerEntityViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/project/vo/CustomerSatisfactionSurveyViewModel.java b/client/src/main/java/com/ecep/contract/vm/CustomerSatisfactionSurveyViewModel.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/project/vo/CustomerSatisfactionSurveyViewModel.java rename to client/src/main/java/com/ecep/contract/vm/CustomerSatisfactionSurveyViewModel.java index 4b98ca9..ef2220d 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/vo/CustomerSatisfactionSurveyViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/CustomerSatisfactionSurveyViewModel.java @@ -1,19 +1,19 @@ -package com.ecep.contract.manager.ds.project.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Objects; + +import com.ecep.contract.model.CustomerSatisfactionSurvey; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.Project; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.project.model.CustomerSatisfactionSurvey; -import com.ecep.contract.manager.ds.project.model.Project; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class CustomerSatisfactionSurveyViewModel extends IdentityViewModel implements ProjectBasedViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/project/vo/DeliverySignMethodViewModel.java b/client/src/main/java/com/ecep/contract/vm/DeliverySignMethodViewModel.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/project/vo/DeliverySignMethodViewModel.java rename to client/src/main/java/com/ecep/contract/vm/DeliverySignMethodViewModel.java index cc4c598..ad7cc6c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/vo/DeliverySignMethodViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/DeliverySignMethodViewModel.java @@ -1,18 +1,16 @@ -package com.ecep.contract.manager.ds.project.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.model.DeliverySignMethod; +import com.ecep.contract.model.ProjectSaleType; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.project.model.DeliverySignMethod; -import com.ecep.contract.manager.ds.project.model.ProjectSaleType; -import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.util.Objects; - /** * 交付或签收方式 */ diff --git a/src/main/java/com/ecep/contract/manager/ds/other/vo/DepartmentViewModel.java b/client/src/main/java/com/ecep/contract/vm/DepartmentViewModel.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ds/other/vo/DepartmentViewModel.java rename to client/src/main/java/com/ecep/contract/vm/DepartmentViewModel.java index ac7b36c..e2f8279 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/vo/DepartmentViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/DepartmentViewModel.java @@ -1,15 +1,16 @@ -package com.ecep.contract.manager.ds.other.vo; +package com.ecep.contract.vm; + +import java.util.Objects; + +import com.ecep.contract.model.Department; +import com.ecep.contract.model.Employee; -import com.ecep.contract.manager.ds.other.model.Department; -import com.ecep.contract.manager.ds.other.model.Employee; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class DepartmentViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/vo/EmployeeAuthBindViewModel.java b/client/src/main/java/com/ecep/contract/vm/EmployeeAuthBindViewModel.java similarity index 92% rename from src/main/java/com/ecep/contract/manager/ds/other/vo/EmployeeAuthBindViewModel.java rename to client/src/main/java/com/ecep/contract/vm/EmployeeAuthBindViewModel.java index 89516a0..005f0b1 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/vo/EmployeeAuthBindViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/EmployeeAuthBindViewModel.java @@ -1,16 +1,16 @@ -package com.ecep.contract.manager.ds.other.vo; +package com.ecep.contract.vm; + +import java.time.LocalDateTime; +import java.util.Objects; + +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.EmployeeAuthBind; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.EmployeeAuthBind; -import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDateTime; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class EmployeeAuthBindViewModel extends IdentityViewModel implements EmployeeBasedViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/vo/EmployeeBasedViewModel.java b/client/src/main/java/com/ecep/contract/vm/EmployeeBasedViewModel.java similarity index 58% rename from src/main/java/com/ecep/contract/manager/ds/other/vo/EmployeeBasedViewModel.java rename to client/src/main/java/com/ecep/contract/vm/EmployeeBasedViewModel.java index f83de1b..04705bd 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/vo/EmployeeBasedViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/EmployeeBasedViewModel.java @@ -1,6 +1,7 @@ -package com.ecep.contract.manager.ds.other.vo; +package com.ecep.contract.vm; + +import com.ecep.contract.model.Employee; -import com.ecep.contract.manager.ds.other.model.Employee; import javafx.beans.property.SimpleObjectProperty; public interface EmployeeBasedViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/vo/EmployeeLoginHistoryViewModel.java b/client/src/main/java/com/ecep/contract/vm/EmployeeLoginHistoryViewModel.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/other/vo/EmployeeLoginHistoryViewModel.java rename to client/src/main/java/com/ecep/contract/vm/EmployeeLoginHistoryViewModel.java index 0b86281..4fa0596 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/vo/EmployeeLoginHistoryViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/EmployeeLoginHistoryViewModel.java @@ -1,16 +1,16 @@ -package com.ecep.contract.manager.ds.other.vo; +package com.ecep.contract.vm; + +import java.time.LocalDateTime; +import java.util.Objects; + +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.EmployeeLoginHistory; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.EmployeeLoginHistory; -import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDateTime; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class EmployeeLoginHistoryViewModel extends IdentityViewModel implements EmployeeBasedViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/vo/EmployeeRoleViewModel.java b/client/src/main/java/com/ecep/contract/vm/EmployeeRoleViewModel.java similarity index 92% rename from src/main/java/com/ecep/contract/manager/ds/other/vo/EmployeeRoleViewModel.java rename to client/src/main/java/com/ecep/contract/vm/EmployeeRoleViewModel.java index 39f181f..936730d 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/vo/EmployeeRoleViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/EmployeeRoleViewModel.java @@ -1,14 +1,14 @@ -package com.ecep.contract.manager.ds.other.vo; +package com.ecep.contract.vm; + +import java.util.Objects; + +import com.ecep.contract.model.EmployeeRole; -import com.ecep.contract.manager.ds.other.model.EmployeeRole; import javafx.beans.property.SimpleBooleanProperty; -import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class EmployeeRoleViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/vo/EmployeeViewModel.java b/client/src/main/java/com/ecep/contract/vm/EmployeeViewModel.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/other/vo/EmployeeViewModel.java rename to client/src/main/java/com/ecep/contract/vm/EmployeeViewModel.java index eb9342e..599601c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/vo/EmployeeViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/EmployeeViewModel.java @@ -1,16 +1,17 @@ -package com.ecep.contract.manager.ds.other.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.model.Department; +import com.ecep.contract.model.Employee; -import com.ecep.contract.manager.ds.other.model.Department; -import com.ecep.contract.manager.ds.other.model.Employee; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class EmployeeViewModel extends IdentityViewModel { @@ -26,21 +27,19 @@ public class EmployeeViewModel extends IdentityViewModel { private SimpleObjectProperty leaveDate = new SimpleObjectProperty<>(); private SimpleBooleanProperty isActive = new SimpleBooleanProperty(); - public static EmployeeViewModel from(Employee v) { EmployeeViewModel model = new EmployeeViewModel(); model.update(v); return model; } - @Override protected void updateFrom(Employee v) { super.updateFrom(v); getAccount().set(v.getAccount()); getName().set(v.getName()); getDepartment().set(v.getDepartment()); -// getRoles().set(FXCollections.observableArrayList(v.getRoles())); + // getRoles().set(FXCollections.observableArrayList(v.getRoles())); getAlias().set(v.getAlias()); getCode().set(v.getCode()); getEmail().set(v.getEmail()); @@ -53,7 +52,8 @@ public class EmployeeViewModel extends IdentityViewModel { @Override public boolean copyTo(Employee v) { - if (v == null) return false; + if (v == null) + return false; boolean modified = super.copyTo(v); if (!Objects.equals(account.get(), v.getAccount())) { @@ -68,10 +68,10 @@ public class EmployeeViewModel extends IdentityViewModel { v.setDepartment(department.get()); modified = true; } -// if (!Objects.equals(roles.get(), v.getRoles())) { -// v.setRoles(roles.get()); -// modified = true; -// } + // if (!Objects.equals(roles.get(), v.getRoles())) { + // v.setRoles(roles.get()); + // modified = true; + // } if (!Objects.equals(alias.get(), v.getAlias())) { v.setAlias(alias.get()); modified = true; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/vo/ExtendVendorInfoViewModel.java b/client/src/main/java/com/ecep/contract/vm/ExtendVendorInfoViewModel.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/contract/vo/ExtendVendorInfoViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ExtendVendorInfoViewModel.java index 5e0908b..3de2411 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/vo/ExtendVendorInfoViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ExtendVendorInfoViewModel.java @@ -1,22 +1,20 @@ -package com.ecep.contract.manager.ds.contract.vo; +package com.ecep.contract.vm; + +import java.util.Objects; + +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ExtendVendorInfo; +import com.ecep.contract.model.VendorGroup; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ExtendVendorInfo; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.vendor.model.VendorGroup; -import jakarta.persistence.Column; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) -public class ExtendVendorInfoViewModel extends BaseViewModel { - private SimpleIntegerProperty id = new SimpleIntegerProperty(); +public class ExtendVendorInfoViewModel extends IdentityViewModel { /** * 关联的合同 */ @@ -49,7 +47,6 @@ public class ExtendVendorInfoViewModel extends BaseViewModel { @Override protected void updateFrom(ExtendVendorInfo v) { super.updateFrom(v); - getId().set(v.getId()); getContract().set(v.getContract()); getGroup().set(v.getGroup()); getCodeSequenceNumber().set(v.getCodeSequenceNumber()); @@ -60,10 +57,6 @@ public class ExtendVendorInfoViewModel extends BaseViewModel { @Override public boolean copyTo(ExtendVendorInfo v) { boolean modified = super.copyTo(v); - if (!Objects.equals(id.get(), v.getId())) { - v.setId(id.get()); - modified = true; - } if (!Objects.equals(contract.get(), v.getContract())) { v.setContract(contract.get()); modified = true; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/vo/FunctionViewModel.java b/client/src/main/java/com/ecep/contract/vm/FunctionViewModel.java similarity index 95% rename from src/main/java/com/ecep/contract/manager/ds/other/vo/FunctionViewModel.java rename to client/src/main/java/com/ecep/contract/vm/FunctionViewModel.java index a61274a..3a9288c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/vo/FunctionViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/FunctionViewModel.java @@ -1,8 +1,8 @@ -package com.ecep.contract.manager.ds.other.vo; +package com.ecep.contract.vm; import java.util.Objects; -import com.ecep.contract.manager.ds.other.model.Function; +import com.ecep.contract.model.Function; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleStringProperty; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/vo/IdentityViewModel.java b/client/src/main/java/com/ecep/contract/vm/IdentityViewModel.java similarity index 86% rename from src/main/java/com/ecep/contract/manager/ds/other/vo/IdentityViewModel.java rename to client/src/main/java/com/ecep/contract/vm/IdentityViewModel.java index 7951e16..046e087 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/vo/IdentityViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/IdentityViewModel.java @@ -1,13 +1,14 @@ -package com.ecep.contract.manager.ds.other.vo; +package com.ecep.contract.vm; + +import java.util.Objects; + +import com.ecep.contract.model.IdentityEntity; +import com.ecep.contract.service.ViewModelService; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ui.ViewModelService; import javafx.beans.property.SimpleIntegerProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class IdentityViewModel extends BaseViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/vo/InventoryHistoryPriceViewModel.java b/client/src/main/java/com/ecep/contract/vm/InventoryHistoryPriceViewModel.java similarity index 96% rename from src/main/java/com/ecep/contract/manager/ds/other/vo/InventoryHistoryPriceViewModel.java rename to client/src/main/java/com/ecep/contract/vm/InventoryHistoryPriceViewModel.java index 65b6e04..29a587b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/vo/InventoryHistoryPriceViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/InventoryHistoryPriceViewModel.java @@ -1,18 +1,19 @@ -package com.ecep.contract.manager.ds.other.vo; +package com.ecep.contract.vm; + +import java.time.MonthDay; +import java.time.Year; +import java.util.Objects; + +import com.ecep.contract.model.HistoryPrice; +import com.ecep.contract.model.Inventory; +import com.ecep.contract.model.InventoryHistoryPrice; -import com.ecep.contract.manager.ds.other.model.HistoryPrice; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.model.InventoryHistoryPrice; import javafx.beans.property.SimpleDoubleProperty; import javafx.beans.property.SimpleFloatProperty; import javafx.beans.property.SimpleObjectProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.MonthDay; -import java.time.Year; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class InventoryHistoryPriceViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/vo/InventoryViewModel.java b/client/src/main/java/com/ecep/contract/vm/InventoryViewModel.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/ds/other/vo/InventoryViewModel.java rename to client/src/main/java/com/ecep/contract/vm/InventoryViewModel.java index bb6e514..ad2b307 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/vo/InventoryViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/InventoryViewModel.java @@ -1,14 +1,23 @@ -package com.ecep.contract.manager.ds.other.vo; - -import com.ecep.contract.manager.ds.other.model.*; -import javafx.beans.property.*; -import lombok.Data; -import lombok.EqualsAndHashCode; +package com.ecep.contract.vm; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Objects; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.Inventory; +import com.ecep.contract.model.InventoryCatalog; +import com.ecep.contract.model.Price; +import com.ecep.contract.model.VolumeSize; + +import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.property.SimpleDoubleProperty; +import javafx.beans.property.SimpleFloatProperty; +import javafx.beans.property.SimpleObjectProperty; +import javafx.beans.property.SimpleStringProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + @Data @EqualsAndHashCode(callSuper = false) public class InventoryViewModel extends IdentityViewModel { @@ -41,7 +50,6 @@ public class InventoryViewModel extends IdentityViewModel { private SimpleDoubleProperty packagedSizeHeight = new SimpleDoubleProperty(); private SimpleDoubleProperty packagedVolume = new SimpleDoubleProperty(); - private SimpleStringProperty unit = new SimpleStringProperty(); private SimpleObjectProperty creator = new SimpleObjectProperty<>(); private SimpleObjectProperty createTime = new SimpleObjectProperty<>(); @@ -56,7 +64,6 @@ public class InventoryViewModel extends IdentityViewModel { return model; } - @Override protected void updateFrom(Inventory v) { super.updateFrom(v); @@ -107,7 +114,8 @@ public class InventoryViewModel extends IdentityViewModel { @Override public boolean copyTo(Inventory v) { - if (v == null) return false; + if (v == null) + return false; boolean modified = super.copyTo(v); if (!Objects.equals(catalog.get(), v.getCatalog())) { @@ -181,7 +189,6 @@ public class InventoryViewModel extends IdentityViewModel { modified = true; } - if (!Objects.equals(getWeight().get(), v.getWeight())) { v.setWeight(getWeight().get()); modified = true; @@ -227,7 +234,6 @@ public class InventoryViewModel extends IdentityViewModel { modified = true; } - // creator or updater if (!Objects.equals(creator.get(), v.getCreator())) { v.setCreator(creator.get()); @@ -253,12 +259,14 @@ public class InventoryViewModel extends IdentityViewModel { return modified; } - void taxPrice2ExclusiveTaxPrice(SimpleDoubleProperty taxPrice, SimpleDoubleProperty exclusiveTaxPrice, SimpleFloatProperty taxRate) { + void taxPrice2ExclusiveTaxPrice(SimpleDoubleProperty taxPrice, SimpleDoubleProperty exclusiveTaxPrice, + SimpleFloatProperty taxRate) { double value = taxPrice.get(); exclusiveTaxPrice.setValue(value / ((100 + taxRate.get()) / 100)); } - void exclusiveTaxPrice2TaxPrice(SimpleDoubleProperty exclusiveTaxPrice, SimpleDoubleProperty taxPrice, SimpleFloatProperty taxRate) { + void exclusiveTaxPrice2TaxPrice(SimpleDoubleProperty exclusiveTaxPrice, SimpleDoubleProperty taxPrice, + SimpleFloatProperty taxRate) { double value = exclusiveTaxPrice.get(); taxPrice.setValue(value * ((100 + taxRate.get()) / 100.0)); } diff --git a/src/main/java/com/ecep/contract/manager/ds/company/vo/InvoiceViewModel.java b/client/src/main/java/com/ecep/contract/vm/InvoiceViewModel.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ds/company/vo/InvoiceViewModel.java rename to client/src/main/java/com/ecep/contract/vm/InvoiceViewModel.java index 0a0dac5..656ab42 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/vo/InvoiceViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/InvoiceViewModel.java @@ -1,18 +1,17 @@ -package com.ecep.contract.manager.ds.company.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.model.Company; +import com.ecep.contract.model.Invoice; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.Invoice; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class InvoiceViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/vo/PermissionViewModel.java b/client/src/main/java/com/ecep/contract/vm/PermissionViewModel.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/other/vo/PermissionViewModel.java rename to client/src/main/java/com/ecep/contract/vm/PermissionViewModel.java index db147a4..a8a6c19 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/vo/PermissionViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/PermissionViewModel.java @@ -1,9 +1,9 @@ -package com.ecep.contract.manager.ds.other.vo; +package com.ecep.contract.vm; import java.util.Objects; -import com.ecep.contract.manager.ds.other.model.Function; -import com.ecep.contract.manager.ds.other.model.Permission; +import com.ecep.contract.model.Function; +import com.ecep.contract.model.Permission; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProductTypeViewModel.java b/client/src/main/java/com/ecep/contract/vm/ProductTypeViewModel.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/project/vo/ProductTypeViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ProductTypeViewModel.java index c127850..4bff9d2 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProductTypeViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ProductTypeViewModel.java @@ -1,15 +1,15 @@ -package com.ecep.contract.manager.ds.project.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.model.ProductType; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.project.model.ProductType; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class ProductTypeViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProductUsageViewModel.java b/client/src/main/java/com/ecep/contract/vm/ProductUsageViewModel.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/project/vo/ProductUsageViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ProductUsageViewModel.java index 9662312..8ac3686 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProductUsageViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ProductUsageViewModel.java @@ -1,17 +1,15 @@ -package com.ecep.contract.manager.ds.project.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.model.ProductUsage; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.project.model.ProductUsage; -import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class ProductUsageViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectBasedViewModel.java b/client/src/main/java/com/ecep/contract/vm/ProjectBasedViewModel.java similarity index 57% rename from src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectBasedViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ProjectBasedViewModel.java index 3602269..4eb9dd0 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectBasedViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ProjectBasedViewModel.java @@ -1,6 +1,7 @@ -package com.ecep.contract.manager.ds.project.vo; +package com.ecep.contract.vm; + +import com.ecep.contract.model.Project; -import com.ecep.contract.manager.ds.project.model.Project; import javafx.beans.property.SimpleObjectProperty; public interface ProjectBasedViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectBidViewModel.java b/client/src/main/java/com/ecep/contract/vm/ProjectBidViewModel.java similarity index 92% rename from src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectBidViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ProjectBidViewModel.java index 8ae194f..f8aa943 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectBidViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ProjectBidViewModel.java @@ -1,17 +1,4 @@ -package com.ecep.contract.manager.ds.project.vo; - -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEvaluationFormFile; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectBid; -import com.ecep.contract.manager.ds.project.model.ProjectCost; -import com.ecep.contract.manager.util.NumberUtils; -import javafx.beans.property.*; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.springframework.util.StringUtils; +package com.ecep.contract.vm; import java.io.File; import java.time.LocalDateTime; @@ -19,6 +6,23 @@ import java.util.Objects; import java.util.function.Consumer; import java.util.function.Supplier; +import org.springframework.util.StringUtils; + +import com.ecep.contract.model.CompanyCustomerEvaluationFormFile; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectBid; +import com.ecep.contract.model.ProjectCost; +import com.ecep.contract.util.NumberUtils; + +import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.property.SimpleDoubleProperty; +import javafx.beans.property.SimpleIntegerProperty; +import javafx.beans.property.SimpleObjectProperty; +import javafx.beans.property.SimpleStringProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + /** * 项目报价 */ @@ -93,7 +97,6 @@ public class ProjectBidViewModel extends IdentityViewModel implement */ private SimpleStringProperty description = new SimpleStringProperty(); - public static ProjectBidViewModel from(ProjectBid v) { ProjectBidViewModel model = new ProjectBidViewModel(); model.update(v); @@ -175,7 +178,6 @@ public class ProjectBidViewModel extends IdentityViewModel implement modified = true; } - if (!Objects.equals(getApplicant().get(), v.getApplicant())) { v.setApplicant(getApplicant().get()); modified = true; @@ -193,7 +195,6 @@ public class ProjectBidViewModel extends IdentityViewModel implement modified = true; } - if (updateFile(authorizationFile, v::getAuthorizationFile, v::setAuthorizationFile)) { modified = true; } @@ -202,7 +203,6 @@ public class ProjectBidViewModel extends IdentityViewModel implement modified = true; } - if (!Objects.equals(getDescription().get(), v.getDescription())) { v.setDescription(getDescription().get()); modified = true; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/vo/ProjectCostItemViewModel.java b/client/src/main/java/com/ecep/contract/vm/ProjectCostItemViewModel.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/ds/contract/vo/ProjectCostItemViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ProjectCostItemViewModel.java index 9715496..7b94828 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/vo/ProjectCostItemViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ProjectCostItemViewModel.java @@ -1,18 +1,20 @@ -package com.ecep.contract.manager.ds.contract.vo; - -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.project.model.ProjectCost; -import com.ecep.contract.manager.ds.project.model.ProjectCostItem; -import javafx.beans.property.*; -import lombok.Data; -import lombok.EqualsAndHashCode; +package com.ecep.contract.vm; import java.time.LocalDateTime; import java.util.Objects; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.Inventory; +import com.ecep.contract.model.ProjectCost; +import com.ecep.contract.model.ProjectCostItem; + +import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.property.SimpleDoubleProperty; +import javafx.beans.property.SimpleObjectProperty; +import javafx.beans.property.SimpleStringProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + /** * 合同成本内容 */ @@ -40,7 +42,6 @@ public class ProjectCostItemViewModel extends IdentityViewModel SimpleDoubleProperty inExclusiveTaxPrice = new SimpleDoubleProperty(); SimpleDoubleProperty inExclusiveTaxAmount = new SimpleDoubleProperty(); - SimpleDoubleProperty outQuantity = new SimpleDoubleProperty(); SimpleDoubleProperty outTaxRate = new SimpleDoubleProperty(); SimpleDoubleProperty outTaxPrice = new SimpleDoubleProperty(); @@ -56,13 +57,11 @@ public class ProjectCostItemViewModel extends IdentityViewModel */ SimpleDoubleProperty grossProfitMargin = new SimpleDoubleProperty(); - SimpleObjectProperty createDate = new SimpleObjectProperty<>(); SimpleObjectProperty updateDate = new SimpleObjectProperty<>(); SimpleObjectProperty creator = new SimpleObjectProperty<>(); SimpleObjectProperty updater = new SimpleObjectProperty<>(); - SimpleBooleanProperty updatePriceWay = new SimpleBooleanProperty(false); SimpleStringProperty remark = new SimpleStringProperty(); @@ -123,7 +122,6 @@ public class ProjectCostItemViewModel extends IdentityViewModel getGrossProfitMargin().set(getGrossProfit().get() / amount); } - @Override public boolean copyTo(ProjectCostItem v) { boolean modified = super.copyTo(v); @@ -219,7 +217,6 @@ public class ProjectCostItemViewModel extends IdentityViewModel updateIn(); } - public void updateInTaxRate(double value) { getInTaxRate().setValue(value); if (getUpdatePriceWay().get()) { @@ -236,12 +233,14 @@ public class ProjectCostItemViewModel extends IdentityViewModel updateIn(); } - void taxPrice2ExclusiveTaxPrice(SimpleDoubleProperty taxPrice, SimpleDoubleProperty exclusiveTaxPrice, SimpleDoubleProperty taxRate) { + void taxPrice2ExclusiveTaxPrice(SimpleDoubleProperty taxPrice, SimpleDoubleProperty exclusiveTaxPrice, + SimpleDoubleProperty taxRate) { double value = taxPrice.get(); exclusiveTaxPrice.setValue(value / ((100 + taxRate.get()) / 100)); } - void exclusiveTaxPrice2TaxPrice(SimpleDoubleProperty exclusiveTaxPrice, SimpleDoubleProperty taxPrice, SimpleDoubleProperty taxRate) { + void exclusiveTaxPrice2TaxPrice(SimpleDoubleProperty exclusiveTaxPrice, SimpleDoubleProperty taxPrice, + SimpleDoubleProperty taxRate) { double value = exclusiveTaxPrice.get(); taxPrice.setValue(value * ((100 + taxRate.get()) / 100.0)); } @@ -252,7 +251,6 @@ public class ProjectCostItemViewModel extends IdentityViewModel updateIn(); } - public void updateOutQuantity(double value) { getOutQuantity().setValue(value); updateOut(); diff --git a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectCostViewModel.java b/client/src/main/java/com/ecep/contract/vm/ProjectCostViewModel.java similarity index 95% rename from src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectCostViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ProjectCostViewModel.java index a0ab450..0ff6cbf 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectCostViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ProjectCostViewModel.java @@ -1,22 +1,26 @@ -package com.ecep.contract.manager.ds.project.vo; - -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectCost; -import com.ecep.contract.manager.util.NumberUtils; -import javafx.beans.property.*; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.etsi.uri.x01903.v13.impl.IdentifierTypeImpl; -import org.springframework.util.StringUtils; +package com.ecep.contract.vm; import java.io.File; import java.time.LocalDateTime; import java.util.Objects; +import org.springframework.util.StringUtils; + +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectCost; +import com.ecep.contract.util.NumberUtils; + +import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.property.SimpleDoubleProperty; +import javafx.beans.property.SimpleFloatProperty; +import javafx.beans.property.SimpleIntegerProperty; +import javafx.beans.property.SimpleObjectProperty; +import javafx.beans.property.SimpleStringProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + @Data @EqualsAndHashCode(callSuper = false) public class ProjectCostViewModel extends IdentityViewModel implements ProjectBasedViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectFileViewModel.java b/client/src/main/java/com/ecep/contract/vm/ProjectFileViewModel.java similarity index 71% rename from src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectFileViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ProjectFileViewModel.java index 1d0b0df..ff97b3b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectFileViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ProjectFileViewModel.java @@ -1,8 +1,8 @@ -package com.ecep.contract.manager.ds.project.vo; +package com.ecep.contract.vm; + +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectFile; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectFile; import javafx.beans.property.SimpleObjectProperty; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectFundPlanViewModel.java b/client/src/main/java/com/ecep/contract/vm/ProjectFundPlanViewModel.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectFundPlanViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ProjectFundPlanViewModel.java index d9b12fa..aa2d6a9 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectFundPlanViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ProjectFundPlanViewModel.java @@ -1,11 +1,14 @@ -package com.ecep.contract.manager.ds.project.vo; +package com.ecep.contract.vm; -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.model.ContractPayPlan; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectFundPlan; -import com.ecep.contract.manager.util.NumberUtils; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Objects; + +import com.ecep.contract.ContractPayWay; +import com.ecep.contract.model.ContractPayPlan; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectFundPlan; +import com.ecep.contract.util.NumberUtils; import javafx.beans.property.SimpleDoubleProperty; import javafx.beans.property.SimpleFloatProperty; @@ -14,10 +17,6 @@ import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.Objects; - /** * 项目资金计划视图模型 */ diff --git a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectIndustryViewModel.java b/client/src/main/java/com/ecep/contract/vm/ProjectIndustryViewModel.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectIndustryViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ProjectIndustryViewModel.java index d6138f8..a1ef067 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectIndustryViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ProjectIndustryViewModel.java @@ -1,17 +1,15 @@ -package com.ecep.contract.manager.ds.project.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.model.ProjectIndustry; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.project.model.ProjectIndustry; -import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class ProjectIndustryViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectQuotationViewModel.java b/client/src/main/java/com/ecep/contract/vm/ProjectQuotationViewModel.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectQuotationViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ProjectQuotationViewModel.java index 6ee0038..397866c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectQuotationViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ProjectQuotationViewModel.java @@ -1,21 +1,25 @@ -package com.ecep.contract.manager.ds.project.vo; - -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEvaluationFormFile; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectQuotation; -import com.ecep.contract.manager.util.NumberUtils; -import javafx.beans.property.*; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.springframework.util.StringUtils; +package com.ecep.contract.vm; import java.io.File; import java.time.LocalDateTime; import java.util.Objects; +import org.springframework.util.StringUtils; + +import com.ecep.contract.model.CompanyCustomerEvaluationFormFile; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectQuotation; +import com.ecep.contract.util.NumberUtils; + +import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.property.SimpleDoubleProperty; +import javafx.beans.property.SimpleIntegerProperty; +import javafx.beans.property.SimpleObjectProperty; +import javafx.beans.property.SimpleStringProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + /** * 项目报价 */ diff --git a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectSaleTypeRequireFileTypeViewModel.java b/client/src/main/java/com/ecep/contract/vm/ProjectSaleTypeRequireFileTypeViewModel.java similarity index 76% rename from src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectSaleTypeRequireFileTypeViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ProjectSaleTypeRequireFileTypeViewModel.java index 800a2f5..8f945e5 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectSaleTypeRequireFileTypeViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ProjectSaleTypeRequireFileTypeViewModel.java @@ -1,17 +1,15 @@ -package com.ecep.contract.manager.ds.project.vo; +package com.ecep.contract.vm; + +import java.util.Objects; + +import com.ecep.contract.ContractFileType; +import com.ecep.contract.model.ProjectSaleType; +import com.ecep.contract.model.ProjectSaleTypeRequireFileType; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.project.model.ProjectSaleType; -import com.ecep.contract.manager.ds.project.model.ProjectSaleTypeRequireFileType; -import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Objects; - /** * */ diff --git a/src/main/java/com/ecep/contract/manager/ds/project/vo/SaleTypeViewModel.java b/client/src/main/java/com/ecep/contract/vm/ProjectSaleTypeViewModel.java similarity index 85% rename from src/main/java/com/ecep/contract/manager/ds/project/vo/SaleTypeViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ProjectSaleTypeViewModel.java index 9abb028..395bc9c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/vo/SaleTypeViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ProjectSaleTypeViewModel.java @@ -1,18 +1,20 @@ -package com.ecep.contract.manager.ds.project.vo; - -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.project.model.ProjectSaleType; -import javafx.beans.property.*; -import lombok.Data; -import lombok.EqualsAndHashCode; +package com.ecep.contract.vm; import java.time.LocalDate; import java.util.Objects; +import com.ecep.contract.model.ProjectSaleType; + +import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.property.SimpleDoubleProperty; +import javafx.beans.property.SimpleObjectProperty; +import javafx.beans.property.SimpleStringProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + @Data @EqualsAndHashCode(callSuper = false) -public class SaleTypeViewModel extends IdentityViewModel { +public class ProjectSaleTypeViewModel extends IdentityViewModel { private SimpleStringProperty name = new SimpleStringProperty(); private SimpleStringProperty code = new SimpleStringProperty(); private SimpleStringProperty path = new SimpleStringProperty(); @@ -29,8 +31,8 @@ public class SaleTypeViewModel extends IdentityViewModel { private SimpleBooleanProperty active = new SimpleBooleanProperty(); private SimpleObjectProperty created = new SimpleObjectProperty<>(); - public static SaleTypeViewModel from(ProjectSaleType v) { - SaleTypeViewModel model = new SaleTypeViewModel(); + public static ProjectSaleTypeViewModel from(ProjectSaleType v) { + ProjectSaleTypeViewModel model = new ProjectSaleTypeViewModel(); model.update(v); return model; } diff --git a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectTypeViewModel.java b/client/src/main/java/com/ecep/contract/vm/ProjectTypeViewModel.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectTypeViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ProjectTypeViewModel.java index adccc73..2d1c2d6 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectTypeViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ProjectTypeViewModel.java @@ -1,17 +1,15 @@ -package com.ecep.contract.manager.ds.project.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.model.ProjectType; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.project.model.ProjectType; -import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class ProjectTypeViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectViewModel.java b/client/src/main/java/com/ecep/contract/vm/ProjectViewModel.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectViewModel.java rename to client/src/main/java/com/ecep/contract/vm/ProjectViewModel.java index 93a86cb..f27de26 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/vo/ProjectViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/ProjectViewModel.java @@ -1,13 +1,21 @@ -package com.ecep.contract.manager.ds.project.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyBankAccount; +import com.ecep.contract.model.CompanyContact; +import com.ecep.contract.model.CompanyInvoiceInfo; +import com.ecep.contract.model.DeliverySignMethod; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.ProductType; +import com.ecep.contract.model.ProductUsage; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectIndustry; +import com.ecep.contract.model.ProjectSaleType; +import com.ecep.contract.model.ProjectType; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyBankAccount; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.company.model.CompanyInvoiceInfo; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.project.model.*; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; @@ -15,9 +23,6 @@ import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class ProjectViewModel extends IdentityViewModel { @@ -228,5 +233,4 @@ public class ProjectViewModel extends IdentityViewModel { return modified; } - } diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/vo/PurchaseBillVoucherItemViewModel.java b/client/src/main/java/com/ecep/contract/vm/PurchaseBillVoucherItemViewModel.java similarity index 86% rename from src/main/java/com/ecep/contract/manager/ds/contract/vo/PurchaseBillVoucherItemViewModel.java rename to client/src/main/java/com/ecep/contract/vm/PurchaseBillVoucherItemViewModel.java index 960806a..2d4856b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/vo/PurchaseBillVoucherItemViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/PurchaseBillVoucherItemViewModel.java @@ -1,13 +1,14 @@ -package com.ecep.contract.manager.ds.contract.vo; +package com.ecep.contract.vm; + +import java.util.Objects; + +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.Inventory; +import com.ecep.contract.model.Invoice; +import com.ecep.contract.model.PurchaseBillVoucher; +import com.ecep.contract.model.PurchaseBillVoucherItem; +import com.ecep.contract.model.PurchaseOrderItem; -import com.ecep.contract.manager.ds.company.model.Invoice; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucher; -import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucherItem; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrderItem; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import javafx.beans.property.SimpleDoubleProperty; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; @@ -15,8 +16,6 @@ import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class PurchaseBillVoucherItemViewModel extends IdentityViewModel { @@ -36,7 +35,6 @@ public class PurchaseBillVoucherItemViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/vo/PurchaseOrderItemViewModel.java b/client/src/main/java/com/ecep/contract/vm/PurchaseOrderItemViewModel.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/contract/vo/PurchaseOrderItemViewModel.java rename to client/src/main/java/com/ecep/contract/vm/PurchaseOrderItemViewModel.java index 23571ad..7d334eb 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/vo/PurchaseOrderItemViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/PurchaseOrderItemViewModel.java @@ -1,10 +1,12 @@ -package com.ecep.contract.manager.ds.contract.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.model.Inventory; +import com.ecep.contract.model.PurchaseOrder; +import com.ecep.contract.model.PurchaseOrderItem; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrder; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrderItem; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import javafx.beans.property.SimpleDoubleProperty; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; @@ -12,9 +14,6 @@ import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class PurchaseOrderItemViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/vo/PurchaseOrderViewModel.java b/client/src/main/java/com/ecep/contract/vm/PurchaseOrderViewModel.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ds/contract/vo/PurchaseOrderViewModel.java rename to client/src/main/java/com/ecep/contract/vm/PurchaseOrderViewModel.java index e47a7c3..ffc375b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/vo/PurchaseOrderViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/PurchaseOrderViewModel.java @@ -1,19 +1,18 @@ -package com.ecep.contract.manager.ds.contract.vo; +package com.ecep.contract.vm; + +import java.time.LocalDateTime; +import java.util.Objects; + +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.PurchaseOrder; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrder; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDateTime; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class PurchaseOrderViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/vo/SalesBillVoucherViewModel.java b/client/src/main/java/com/ecep/contract/vm/SalesBillVoucherViewModel.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/contract/vo/SalesBillVoucherViewModel.java rename to client/src/main/java/com/ecep/contract/vm/SalesBillVoucherViewModel.java index 341eb91..21113af 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/vo/SalesBillVoucherViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/SalesBillVoucherViewModel.java @@ -1,20 +1,19 @@ -package com.ecep.contract.manager.ds.contract.vo; +package com.ecep.contract.vm; + +import java.time.LocalDateTime; +import java.util.Objects; + +import com.ecep.contract.model.Company; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.SalesBillVoucher; +import com.ecep.contract.model.SalesOrder; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.contract.model.SalesBillVoucher; -import com.ecep.contract.manager.ds.contract.model.SalesOrder; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDateTime; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class SalesBillVoucherViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/vo/SalesOrderItemViewModel.java b/client/src/main/java/com/ecep/contract/vm/SalesOrderItemViewModel.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/contract/vo/SalesOrderItemViewModel.java rename to client/src/main/java/com/ecep/contract/vm/SalesOrderItemViewModel.java index 926fa90..8c47de6 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/vo/SalesOrderItemViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/SalesOrderItemViewModel.java @@ -1,19 +1,17 @@ -package com.ecep.contract.manager.ds.contract.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.model.SalesOrder; +import com.ecep.contract.model.SalesOrderItem; -import com.ecep.contract.manager.ds.contract.model.SalesOrder; -import com.ecep.contract.manager.ds.contract.model.SalesOrderItem; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import javafx.beans.property.SimpleDoubleProperty; -import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class SalesOrderItemViewModel extends IdentityViewModel { @@ -32,7 +30,6 @@ public class SalesOrderItemViewModel extends IdentityViewModel { private SimpleObjectProperty endDate = new SimpleObjectProperty<>(); private SimpleStringProperty description = new SimpleStringProperty(); - @Override protected void updateFrom(SalesOrderItem v) { super.updateFrom(v); @@ -101,7 +98,7 @@ public class SalesOrderItemViewModel extends IdentityViewModel { public static SalesOrderItemViewModel from(SalesOrderItem item) { SalesOrderItemViewModel viewModel = new SalesOrderItemViewModel(); -// viewModel.updateFrom(item); + // viewModel.updateFrom(item); viewModel.update(item); return viewModel; } diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/vo/SalesOrderViewModel.java b/client/src/main/java/com/ecep/contract/vm/SalesOrderViewModel.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/contract/vo/SalesOrderViewModel.java rename to client/src/main/java/com/ecep/contract/vm/SalesOrderViewModel.java index eb2c554..3070c9d 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/vo/SalesOrderViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/SalesOrderViewModel.java @@ -1,19 +1,18 @@ -package com.ecep.contract.manager.ds.contract.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.SalesOrder; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.SalesOrder; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class SalesOrderViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/vo/VendorEntityViewModel.java b/client/src/main/java/com/ecep/contract/vm/VendorEntityViewModel.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/vendor/vo/VendorEntityViewModel.java rename to client/src/main/java/com/ecep/contract/vm/VendorEntityViewModel.java index 0e3bd81..b28ccd0 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/vo/VendorEntityViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/VendorEntityViewModel.java @@ -1,20 +1,18 @@ -package com.ecep.contract.manager.ds.vendor.vo; +package com.ecep.contract.vm; + +import java.time.LocalDate; +import java.util.Objects; + +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.CompanyVendorEntity; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.VendorCatalog; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorEntity; -import com.ecep.contract.manager.ds.vendor.model.VendorCatalog; -import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.LocalDate; -import java.util.Objects; - @Data @EqualsAndHashCode(callSuper = false) public class VendorEntityViewModel extends IdentityViewModel { diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/vo/VendorGroupRequireFileTypeViewModel.java b/client/src/main/java/com/ecep/contract/vm/VendorGroupRequireFileTypeViewModel.java similarity index 59% rename from src/main/java/com/ecep/contract/manager/ds/vendor/vo/VendorGroupRequireFileTypeViewModel.java rename to client/src/main/java/com/ecep/contract/vm/VendorGroupRequireFileTypeViewModel.java index 5dab223..4d8805e 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/vo/VendorGroupRequireFileTypeViewModel.java +++ b/client/src/main/java/com/ecep/contract/vm/VendorGroupRequireFileTypeViewModel.java @@ -1,31 +1,28 @@ -package com.ecep.contract.manager.ds.vendor.vo; +package com.ecep.contract.vm; + +import java.util.Objects; + +import com.ecep.contract.ContractFileType; +import com.ecep.contract.model.VendorGroup; +import com.ecep.contract.model.VendorGroupRequireFileType; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ds.vendor.model.VendorGroup; -import com.ecep.contract.manager.ds.vendor.model.VendorGroupRequireFileType; -import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Objects; - /** * */ @Data @EqualsAndHashCode(callSuper = false) -public class VendorGroupRequireFileTypeViewModel extends BaseViewModel { +public class VendorGroupRequireFileTypeViewModel extends IdentityViewModel { - private SimpleIntegerProperty id = new SimpleIntegerProperty(); private SimpleObjectProperty group = new SimpleObjectProperty<>(); private SimpleObjectProperty fileType = new SimpleObjectProperty<>(); @Override protected void updateFrom(VendorGroupRequireFileType v) { super.updateFrom(v); - getId().set(v.getId()); getGroup().set(v.getGroup()); getFileType().set(v.getFileType()); } @@ -33,10 +30,6 @@ public class VendorGroupRequireFileTypeViewModel extends BaseViewModel { diff --git a/src/main/resources/ui/bank-manager.fxml b/client/src/main/resources/ui/bank-manager.fxml similarity index 100% rename from src/main/resources/ui/bank-manager.fxml rename to client/src/main/resources/ui/bank-manager.fxml diff --git a/src/main/resources/ui/cloud/rk_manager.fxml b/client/src/main/resources/ui/cloud/rk_manager.fxml similarity index 100% rename from src/main/resources/ui/cloud/rk_manager.fxml rename to client/src/main/resources/ui/cloud/rk_manager.fxml diff --git a/src/main/resources/ui/cloud/tyc_manager.fxml b/client/src/main/resources/ui/cloud/tyc_manager.fxml similarity index 100% rename from src/main/resources/ui/cloud/tyc_manager.fxml rename to client/src/main/resources/ui/cloud/tyc_manager.fxml diff --git a/src/main/resources/ui/cloud/u8_config.fxml b/client/src/main/resources/ui/cloud/u8_config.fxml similarity index 100% rename from src/main/resources/ui/cloud/u8_config.fxml rename to client/src/main/resources/ui/cloud/u8_config.fxml diff --git a/src/main/resources/ui/cloud/u8_manager.fxml b/client/src/main/resources/ui/cloud/u8_manager.fxml similarity index 100% rename from src/main/resources/ui/cloud/u8_manager.fxml rename to client/src/main/resources/ui/cloud/u8_manager.fxml diff --git a/src/main/resources/ui/company/bank-account.fxml b/client/src/main/resources/ui/company/bank-account.fxml similarity index 100% rename from src/main/resources/ui/company/bank-account.fxml rename to client/src/main/resources/ui/company/bank-account.fxml diff --git a/src/main/resources/ui/company/company-manager.fxml b/client/src/main/resources/ui/company/company-manager.fxml similarity index 100% rename from src/main/resources/ui/company/company-manager.fxml rename to client/src/main/resources/ui/company/company-manager.fxml diff --git a/src/main/resources/ui/company/company-tab-bank-account.fxml b/client/src/main/resources/ui/company/company-tab-bank-account.fxml similarity index 100% rename from src/main/resources/ui/company/company-tab-bank-account.fxml rename to client/src/main/resources/ui/company/company-tab-bank-account.fxml diff --git a/src/main/resources/ui/company/company-tab-black-list.fxml b/client/src/main/resources/ui/company/company-tab-black-list.fxml similarity index 100% rename from src/main/resources/ui/company/company-tab-black-list.fxml rename to client/src/main/resources/ui/company/company-tab-black-list.fxml diff --git a/src/main/resources/ui/company/company-tab-contact.fxml b/client/src/main/resources/ui/company/company-tab-contact.fxml similarity index 100% rename from src/main/resources/ui/company/company-tab-contact.fxml rename to client/src/main/resources/ui/company/company-tab-contact.fxml diff --git a/src/main/resources/ui/company/company-tab-contract.fxml b/client/src/main/resources/ui/company/company-tab-contract.fxml similarity index 100% rename from src/main/resources/ui/company/company-tab-contract.fxml rename to client/src/main/resources/ui/company/company-tab-contract.fxml diff --git a/src/main/resources/ui/company/company-tab-file.fxml b/client/src/main/resources/ui/company/company-tab-file.fxml similarity index 100% rename from src/main/resources/ui/company/company-tab-file.fxml rename to client/src/main/resources/ui/company/company-tab-file.fxml diff --git a/src/main/resources/ui/company/company-tab-invoice.fxml b/client/src/main/resources/ui/company/company-tab-invoice.fxml similarity index 100% rename from src/main/resources/ui/company/company-tab-invoice.fxml rename to client/src/main/resources/ui/company/company-tab-invoice.fxml diff --git a/src/main/resources/ui/company/company-tab-oldname.fxml b/client/src/main/resources/ui/company/company-tab-oldname.fxml similarity index 100% rename from src/main/resources/ui/company/company-tab-oldname.fxml rename to client/src/main/resources/ui/company/company-tab-oldname.fxml diff --git a/src/main/resources/ui/company/company-tab-other.fxml b/client/src/main/resources/ui/company/company-tab-other.fxml similarity index 100% rename from src/main/resources/ui/company/company-tab-other.fxml rename to client/src/main/resources/ui/company/company-tab-other.fxml diff --git a/src/main/resources/ui/company/company-tab-purchase-bill-voucher.fxml b/client/src/main/resources/ui/company/company-tab-purchase-bill-voucher.fxml similarity index 100% rename from src/main/resources/ui/company/company-tab-purchase-bill-voucher.fxml rename to client/src/main/resources/ui/company/company-tab-purchase-bill-voucher.fxml diff --git a/src/main/resources/ui/company/company.fxml b/client/src/main/resources/ui/company/company.fxml similarity index 100% rename from src/main/resources/ui/company/company.fxml rename to client/src/main/resources/ui/company/company.fxml diff --git a/src/main/resources/ui/company/company_old_name.fxml b/client/src/main/resources/ui/company/company_old_name.fxml similarity index 100% rename from src/main/resources/ui/company/company_old_name.fxml rename to client/src/main/resources/ui/company/company_old_name.fxml diff --git a/src/main/resources/ui/company/customer/customer-icon.png b/client/src/main/resources/ui/company/customer/customer-icon.png similarity index 100% rename from src/main/resources/ui/company/customer/customer-icon.png rename to client/src/main/resources/ui/company/customer/customer-icon.png diff --git a/src/main/resources/ui/company/customer/customer-tab-entity.fxml b/client/src/main/resources/ui/company/customer/customer-tab-entity.fxml similarity index 100% rename from src/main/resources/ui/company/customer/customer-tab-entity.fxml rename to client/src/main/resources/ui/company/customer/customer-tab-entity.fxml diff --git a/src/main/resources/ui/company/customer/customer-tab-file.fxml b/client/src/main/resources/ui/company/customer/customer-tab-file.fxml similarity index 100% rename from src/main/resources/ui/company/customer/customer-tab-file.fxml rename to client/src/main/resources/ui/company/customer/customer-tab-file.fxml diff --git a/src/main/resources/ui/company/customer/customer-tab-satisfaction-survey.fxml b/client/src/main/resources/ui/company/customer/customer-tab-satisfaction-survey.fxml similarity index 100% rename from src/main/resources/ui/company/customer/customer-tab-satisfaction-survey.fxml rename to client/src/main/resources/ui/company/customer/customer-tab-satisfaction-survey.fxml diff --git a/src/main/resources/ui/company/customer/customer.fxml b/client/src/main/resources/ui/company/customer/customer.fxml similarity index 100% rename from src/main/resources/ui/company/customer/customer.fxml rename to client/src/main/resources/ui/company/customer/customer.fxml diff --git a/src/main/resources/ui/company/customer/customer_evaluation_form.fxml b/client/src/main/resources/ui/company/customer/customer_evaluation_form.fxml similarity index 100% rename from src/main/resources/ui/company/customer/customer_evaluation_form.fxml rename to client/src/main/resources/ui/company/customer/customer_evaluation_form.fxml diff --git a/src/main/resources/ui/company/customer/customer_manager.fxml b/client/src/main/resources/ui/company/customer/customer_manager.fxml similarity index 100% rename from src/main/resources/ui/company/customer/customer_manager.fxml rename to client/src/main/resources/ui/company/customer/customer_manager.fxml diff --git a/src/main/resources/ui/company/vendor/group-manager.fxml b/client/src/main/resources/ui/company/vendor/group-manager.fxml similarity index 100% rename from src/main/resources/ui/company/vendor/group-manager.fxml rename to client/src/main/resources/ui/company/vendor/group-manager.fxml diff --git a/src/main/resources/ui/company/vendor/group.fxml b/client/src/main/resources/ui/company/vendor/group.fxml similarity index 100% rename from src/main/resources/ui/company/vendor/group.fxml rename to client/src/main/resources/ui/company/vendor/group.fxml diff --git a/src/main/resources/ui/company/vendor/vendor-tab-entity.fxml b/client/src/main/resources/ui/company/vendor/vendor-tab-entity.fxml similarity index 98% rename from src/main/resources/ui/company/vendor/vendor-tab-entity.fxml rename to client/src/main/resources/ui/company/vendor/vendor-tab-entity.fxml index aaac874..1ede958 100644 --- a/src/main/resources/ui/company/vendor/vendor-tab-entity.fxml +++ b/client/src/main/resources/ui/company/vendor/vendor-tab-entity.fxml @@ -5,7 +5,7 @@ + fx:controller="com.ecep.contract.manager.ds.vendor.controller.CompanyVendorTabSkinEntity"> diff --git a/src/main/resources/ui/company/vendor/vendor-tab-file.fxml b/client/src/main/resources/ui/company/vendor/vendor-tab-file.fxml similarity index 100% rename from src/main/resources/ui/company/vendor/vendor-tab-file.fxml rename to client/src/main/resources/ui/company/vendor/vendor-tab-file.fxml diff --git a/src/main/resources/ui/company/vendor/vendor.fxml b/client/src/main/resources/ui/company/vendor/vendor.fxml similarity index 100% rename from src/main/resources/ui/company/vendor/vendor.fxml rename to client/src/main/resources/ui/company/vendor/vendor.fxml diff --git a/src/main/resources/ui/company/vendor/vendor_approved_list-tab-file.fxml b/client/src/main/resources/ui/company/vendor/vendor_approved_list-tab-file.fxml similarity index 100% rename from src/main/resources/ui/company/vendor/vendor_approved_list-tab-file.fxml rename to client/src/main/resources/ui/company/vendor/vendor_approved_list-tab-file.fxml diff --git a/src/main/resources/ui/company/vendor/vendor_approved_list-tab-vendor.fxml b/client/src/main/resources/ui/company/vendor/vendor_approved_list-tab-vendor.fxml similarity index 100% rename from src/main/resources/ui/company/vendor/vendor_approved_list-tab-vendor.fxml rename to client/src/main/resources/ui/company/vendor/vendor_approved_list-tab-vendor.fxml diff --git a/src/main/resources/ui/company/vendor/vendor_approved_list.fxml b/client/src/main/resources/ui/company/vendor/vendor_approved_list.fxml similarity index 100% rename from src/main/resources/ui/company/vendor/vendor_approved_list.fxml rename to client/src/main/resources/ui/company/vendor/vendor_approved_list.fxml diff --git a/src/main/resources/ui/company/vendor/vendor_approved_list_manager.fxml b/client/src/main/resources/ui/company/vendor/vendor_approved_list_manager.fxml similarity index 100% rename from src/main/resources/ui/company/vendor/vendor_approved_list_manager.fxml rename to client/src/main/resources/ui/company/vendor/vendor_approved_list_manager.fxml diff --git a/src/main/resources/ui/company/vendor/vendor_manager.fxml b/client/src/main/resources/ui/company/vendor/vendor_manager.fxml similarity index 100% rename from src/main/resources/ui/company/vendor/vendor_manager.fxml rename to client/src/main/resources/ui/company/vendor/vendor_manager.fxml diff --git a/src/main/resources/ui/configs.fxml b/client/src/main/resources/ui/configs.fxml similarity index 100% rename from src/main/resources/ui/configs.fxml rename to client/src/main/resources/ui/configs.fxml diff --git a/src/main/resources/ui/contact.fxml b/client/src/main/resources/ui/contact.fxml similarity index 100% rename from src/main/resources/ui/contact.fxml rename to client/src/main/resources/ui/contact.fxml diff --git a/src/main/resources/ui/contract/contract-manager.fxml b/client/src/main/resources/ui/contract/contract-manager.fxml similarity index 100% rename from src/main/resources/ui/contract/contract-manager.fxml rename to client/src/main/resources/ui/contract/contract-manager.fxml diff --git a/src/main/resources/ui/contract/contract-tab-bid.fxml b/client/src/main/resources/ui/contract/contract-tab-bid.fxml similarity index 100% rename from src/main/resources/ui/contract/contract-tab-bid.fxml rename to client/src/main/resources/ui/contract/contract-tab-bid.fxml diff --git a/src/main/resources/ui/contract/contract-tab-ext-vendor-info.fxml b/client/src/main/resources/ui/contract/contract-tab-ext-vendor-info.fxml similarity index 100% rename from src/main/resources/ui/contract/contract-tab-ext-vendor-info.fxml rename to client/src/main/resources/ui/contract/contract-tab-ext-vendor-info.fxml diff --git a/src/main/resources/ui/contract/contract-tab-file.fxml b/client/src/main/resources/ui/contract/contract-tab-file.fxml similarity index 100% rename from src/main/resources/ui/contract/contract-tab-file.fxml rename to client/src/main/resources/ui/contract/contract-tab-file.fxml diff --git a/src/main/resources/ui/contract/contract-tab-item-v2.fxml b/client/src/main/resources/ui/contract/contract-tab-item-v2.fxml similarity index 100% rename from src/main/resources/ui/contract/contract-tab-item-v2.fxml rename to client/src/main/resources/ui/contract/contract-tab-item-v2.fxml diff --git a/src/main/resources/ui/contract/contract-tab-item.fxml b/client/src/main/resources/ui/contract/contract-tab-item.fxml similarity index 100% rename from src/main/resources/ui/contract/contract-tab-item.fxml rename to client/src/main/resources/ui/contract/contract-tab-item.fxml diff --git a/src/main/resources/ui/contract/contract-tab-pay-plan.fxml b/client/src/main/resources/ui/contract/contract-tab-pay-plan.fxml similarity index 100% rename from src/main/resources/ui/contract/contract-tab-pay-plan.fxml rename to client/src/main/resources/ui/contract/contract-tab-pay-plan.fxml diff --git a/src/main/resources/ui/contract/contract-tab-purchase-orders.fxml b/client/src/main/resources/ui/contract/contract-tab-purchase-orders.fxml similarity index 100% rename from src/main/resources/ui/contract/contract-tab-purchase-orders.fxml rename to client/src/main/resources/ui/contract/contract-tab-purchase-orders.fxml diff --git a/src/main/resources/ui/contract/contract-tab-sale-orders.fxml b/client/src/main/resources/ui/contract/contract-tab-sale-orders.fxml similarity index 100% rename from src/main/resources/ui/contract/contract-tab-sale-orders.fxml rename to client/src/main/resources/ui/contract/contract-tab-sale-orders.fxml diff --git a/src/main/resources/ui/contract/contract-tab-sub-contract.fxml b/client/src/main/resources/ui/contract/contract-tab-sub-contract.fxml similarity index 100% rename from src/main/resources/ui/contract/contract-tab-sub-contract.fxml rename to client/src/main/resources/ui/contract/contract-tab-sub-contract.fxml diff --git a/src/main/resources/ui/contract/contract-verify.css b/client/src/main/resources/ui/contract/contract-verify.css similarity index 100% rename from src/main/resources/ui/contract/contract-verify.css rename to client/src/main/resources/ui/contract/contract-verify.css diff --git a/src/main/resources/ui/contract/contract-verify.fxml b/client/src/main/resources/ui/contract/contract-verify.fxml similarity index 100% rename from src/main/resources/ui/contract/contract-verify.fxml rename to client/src/main/resources/ui/contract/contract-verify.fxml diff --git a/src/main/resources/ui/contract/contract.css b/client/src/main/resources/ui/contract/contract.css similarity index 100% rename from src/main/resources/ui/contract/contract.css rename to client/src/main/resources/ui/contract/contract.css diff --git a/src/main/resources/ui/contract/contract.fxml b/client/src/main/resources/ui/contract/contract.fxml similarity index 100% rename from src/main/resources/ui/contract/contract.fxml rename to client/src/main/resources/ui/contract/contract.fxml diff --git a/src/main/resources/ui/contract/purchase-bill-voucher-tab-item.fxml b/client/src/main/resources/ui/contract/purchase-bill-voucher-tab-item.fxml similarity index 100% rename from src/main/resources/ui/contract/purchase-bill-voucher-tab-item.fxml rename to client/src/main/resources/ui/contract/purchase-bill-voucher-tab-item.fxml diff --git a/src/main/resources/ui/contract/purchase-bill-voucher.fxml b/client/src/main/resources/ui/contract/purchase-bill-voucher.fxml similarity index 100% rename from src/main/resources/ui/contract/purchase-bill-voucher.fxml rename to client/src/main/resources/ui/contract/purchase-bill-voucher.fxml diff --git a/src/main/resources/ui/contract/purchase-orders-tab-bill-voucher.fxml b/client/src/main/resources/ui/contract/purchase-orders-tab-bill-voucher.fxml similarity index 100% rename from src/main/resources/ui/contract/purchase-orders-tab-bill-voucher.fxml rename to client/src/main/resources/ui/contract/purchase-orders-tab-bill-voucher.fxml diff --git a/src/main/resources/ui/contract/purchase-orders-tab-item.fxml b/client/src/main/resources/ui/contract/purchase-orders-tab-item.fxml similarity index 100% rename from src/main/resources/ui/contract/purchase-orders-tab-item.fxml rename to client/src/main/resources/ui/contract/purchase-orders-tab-item.fxml diff --git a/src/main/resources/ui/contract/purchase-orders.fxml b/client/src/main/resources/ui/contract/purchase-orders.fxml similarity index 100% rename from src/main/resources/ui/contract/purchase-orders.fxml rename to client/src/main/resources/ui/contract/purchase-orders.fxml diff --git a/src/main/resources/ui/contract/sale-orders-tab-bill-voucher.fxml b/client/src/main/resources/ui/contract/sale-orders-tab-bill-voucher.fxml similarity index 100% rename from src/main/resources/ui/contract/sale-orders-tab-bill-voucher.fxml rename to client/src/main/resources/ui/contract/sale-orders-tab-bill-voucher.fxml diff --git a/src/main/resources/ui/contract/sale-orders-tab-item.fxml b/client/src/main/resources/ui/contract/sale-orders-tab-item.fxml similarity index 100% rename from src/main/resources/ui/contract/sale-orders-tab-item.fxml rename to client/src/main/resources/ui/contract/sale-orders-tab-item.fxml diff --git a/src/main/resources/ui/contract/sale-orders.fxml b/client/src/main/resources/ui/contract/sale-orders.fxml similarity index 100% rename from src/main/resources/ui/contract/sale-orders.fxml rename to client/src/main/resources/ui/contract/sale-orders.fxml diff --git a/src/main/resources/ui/contract/vendor-bid.fxml b/client/src/main/resources/ui/contract/vendor-bid.fxml similarity index 100% rename from src/main/resources/ui/contract/vendor-bid.fxml rename to client/src/main/resources/ui/contract/vendor-bid.fxml diff --git a/src/main/resources/ui/dialog.css b/client/src/main/resources/ui/dialog.css similarity index 100% rename from src/main/resources/ui/dialog.css rename to client/src/main/resources/ui/dialog.css diff --git a/src/main/resources/ui/employee/department-manager.fxml b/client/src/main/resources/ui/employee/department-manager.fxml similarity index 100% rename from src/main/resources/ui/employee/department-manager.fxml rename to client/src/main/resources/ui/employee/department-manager.fxml diff --git a/src/main/resources/ui/employee/employee-auth-bind.fxml b/client/src/main/resources/ui/employee/employee-auth-bind.fxml similarity index 100% rename from src/main/resources/ui/employee/employee-auth-bind.fxml rename to client/src/main/resources/ui/employee/employee-auth-bind.fxml diff --git a/src/main/resources/ui/employee/employee-login-history.fxml b/client/src/main/resources/ui/employee/employee-login-history.fxml similarity index 100% rename from src/main/resources/ui/employee/employee-login-history.fxml rename to client/src/main/resources/ui/employee/employee-login-history.fxml diff --git a/src/main/resources/ui/employee/employee-manager.fxml b/client/src/main/resources/ui/employee/employee-manager.fxml similarity index 100% rename from src/main/resources/ui/employee/employee-manager.fxml rename to client/src/main/resources/ui/employee/employee-manager.fxml diff --git a/src/main/resources/ui/employee/employee.fxml b/client/src/main/resources/ui/employee/employee.fxml similarity index 100% rename from src/main/resources/ui/employee/employee.fxml rename to client/src/main/resources/ui/employee/employee.fxml diff --git a/src/main/resources/ui/employee/function-tab-permission.fxml b/client/src/main/resources/ui/employee/function-tab-permission.fxml similarity index 100% rename from src/main/resources/ui/employee/function-tab-permission.fxml rename to client/src/main/resources/ui/employee/function-tab-permission.fxml diff --git a/src/main/resources/ui/employee/function.fxml b/client/src/main/resources/ui/employee/function.fxml similarity index 100% rename from src/main/resources/ui/employee/function.fxml rename to client/src/main/resources/ui/employee/function.fxml diff --git a/src/main/resources/ui/employee/functions-manager.fxml b/client/src/main/resources/ui/employee/functions-manager.fxml similarity index 100% rename from src/main/resources/ui/employee/functions-manager.fxml rename to client/src/main/resources/ui/employee/functions-manager.fxml diff --git a/src/main/resources/ui/employee/role.fxml b/client/src/main/resources/ui/employee/role.fxml similarity index 100% rename from src/main/resources/ui/employee/role.fxml rename to client/src/main/resources/ui/employee/role.fxml diff --git a/src/main/resources/ui/employee/roles-manager.fxml b/client/src/main/resources/ui/employee/roles-manager.fxml similarity index 100% rename from src/main/resources/ui/employee/roles-manager.fxml rename to client/src/main/resources/ui/employee/roles-manager.fxml diff --git a/src/main/resources/ui/home.fxml b/client/src/main/resources/ui/home.fxml similarity index 100% rename from src/main/resources/ui/home.fxml rename to client/src/main/resources/ui/home.fxml diff --git a/src/main/resources/ui/img/22844.gif b/client/src/main/resources/ui/img/22844.gif similarity index 100% rename from src/main/resources/ui/img/22844.gif rename to client/src/main/resources/ui/img/22844.gif diff --git a/src/main/resources/ui/img/22847.gif b/client/src/main/resources/ui/img/22847.gif similarity index 100% rename from src/main/resources/ui/img/22847.gif rename to client/src/main/resources/ui/img/22847.gif diff --git a/src/main/resources/ui/img/22848.gif b/client/src/main/resources/ui/img/22848.gif similarity index 100% rename from src/main/resources/ui/img/22848.gif rename to client/src/main/resources/ui/img/22848.gif diff --git a/src/main/resources/ui/img/22849.gif b/client/src/main/resources/ui/img/22849.gif similarity index 100% rename from src/main/resources/ui/img/22849.gif rename to client/src/main/resources/ui/img/22849.gif diff --git a/src/main/resources/ui/img/22949.gif b/client/src/main/resources/ui/img/22949.gif similarity index 100% rename from src/main/resources/ui/img/22949.gif rename to client/src/main/resources/ui/img/22949.gif diff --git a/src/main/resources/ui/img/23037.gif b/client/src/main/resources/ui/img/23037.gif similarity index 100% rename from src/main/resources/ui/img/23037.gif rename to client/src/main/resources/ui/img/23037.gif diff --git a/src/main/resources/ui/img/23048.gif b/client/src/main/resources/ui/img/23048.gif similarity index 100% rename from src/main/resources/ui/img/23048.gif rename to client/src/main/resources/ui/img/23048.gif diff --git a/src/main/resources/ui/img/3960.gif b/client/src/main/resources/ui/img/3960.gif similarity index 100% rename from src/main/resources/ui/img/3960.gif rename to client/src/main/resources/ui/img/3960.gif diff --git a/src/main/resources/ui/img/4955.gif b/client/src/main/resources/ui/img/4955.gif similarity index 100% rename from src/main/resources/ui/img/4955.gif rename to client/src/main/resources/ui/img/4955.gif diff --git a/src/main/resources/ui/img/5241.gif b/client/src/main/resources/ui/img/5241.gif similarity index 100% rename from src/main/resources/ui/img/5241.gif rename to client/src/main/resources/ui/img/5241.gif diff --git a/src/main/resources/ui/img/5258.gif b/client/src/main/resources/ui/img/5258.gif similarity index 100% rename from src/main/resources/ui/img/5258.gif rename to client/src/main/resources/ui/img/5258.gif diff --git a/src/main/resources/ui/img/5260.gif b/client/src/main/resources/ui/img/5260.gif similarity index 100% rename from src/main/resources/ui/img/5260.gif rename to client/src/main/resources/ui/img/5260.gif diff --git a/src/main/resources/ui/img/about.gif b/client/src/main/resources/ui/img/about.gif similarity index 100% rename from src/main/resources/ui/img/about.gif rename to client/src/main/resources/ui/img/about.gif diff --git a/src/main/resources/ui/img/about_error.gif b/client/src/main/resources/ui/img/about_error.gif similarity index 100% rename from src/main/resources/ui/img/about_error.gif rename to client/src/main/resources/ui/img/about_error.gif diff --git a/src/main/resources/ui/img/btn_print.gif b/client/src/main/resources/ui/img/btn_print.gif similarity index 100% rename from src/main/resources/ui/img/btn_print.gif rename to client/src/main/resources/ui/img/btn_print.gif diff --git a/src/main/resources/ui/img/cbook.gif b/client/src/main/resources/ui/img/cbook.gif similarity index 100% rename from src/main/resources/ui/img/cbook.gif rename to client/src/main/resources/ui/img/cbook.gif diff --git a/src/main/resources/ui/img/edit_order_mag_glass_icon.gif b/client/src/main/resources/ui/img/edit_order_mag_glass_icon.gif similarity index 100% rename from src/main/resources/ui/img/edit_order_mag_glass_icon.gif rename to client/src/main/resources/ui/img/edit_order_mag_glass_icon.gif diff --git a/src/main/resources/ui/img/error.gif b/client/src/main/resources/ui/img/error.gif similarity index 100% rename from src/main/resources/ui/img/error.gif rename to client/src/main/resources/ui/img/error.gif diff --git a/src/main/resources/ui/img/f0.png b/client/src/main/resources/ui/img/f0.png similarity index 100% rename from src/main/resources/ui/img/f0.png rename to client/src/main/resources/ui/img/f0.png diff --git a/src/main/resources/ui/img/f1.png b/client/src/main/resources/ui/img/f1.png similarity index 100% rename from src/main/resources/ui/img/f1.png rename to client/src/main/resources/ui/img/f1.png diff --git a/src/main/resources/ui/img/f2.png b/client/src/main/resources/ui/img/f2.png similarity index 100% rename from src/main/resources/ui/img/f2.png rename to client/src/main/resources/ui/img/f2.png diff --git a/src/main/resources/ui/img/f3.png b/client/src/main/resources/ui/img/f3.png similarity index 100% rename from src/main/resources/ui/img/f3.png rename to client/src/main/resources/ui/img/f3.png diff --git a/src/main/resources/ui/img/f4.png b/client/src/main/resources/ui/img/f4.png similarity index 100% rename from src/main/resources/ui/img/f4.png rename to client/src/main/resources/ui/img/f4.png diff --git a/src/main/resources/ui/img/icon_alarm.gif b/client/src/main/resources/ui/img/icon_alarm.gif similarity index 100% rename from src/main/resources/ui/img/icon_alarm.gif rename to client/src/main/resources/ui/img/icon_alarm.gif diff --git a/src/main/resources/ui/img/icon_fan.gif b/client/src/main/resources/ui/img/icon_fan.gif similarity index 100% rename from src/main/resources/ui/img/icon_fan.gif rename to client/src/main/resources/ui/img/icon_fan.gif diff --git a/src/main/resources/ui/img/icon_maint.gif b/client/src/main/resources/ui/img/icon_maint.gif similarity index 100% rename from src/main/resources/ui/img/icon_maint.gif rename to client/src/main/resources/ui/img/icon_maint.gif diff --git a/src/main/resources/ui/img/icon_oa.gif b/client/src/main/resources/ui/img/icon_oa.gif similarity index 100% rename from src/main/resources/ui/img/icon_oa.gif rename to client/src/main/resources/ui/img/icon_oa.gif diff --git a/src/main/resources/ui/img/icon_print.png b/client/src/main/resources/ui/img/icon_print.png similarity index 100% rename from src/main/resources/ui/img/icon_print.png rename to client/src/main/resources/ui/img/icon_print.png diff --git a/src/main/resources/ui/img/icon_privileges.gif b/client/src/main/resources/ui/img/icon_privileges.gif similarity index 100% rename from src/main/resources/ui/img/icon_privileges.gif rename to client/src/main/resources/ui/img/icon_privileges.gif diff --git a/src/main/resources/ui/img/icon_schedule.gif b/client/src/main/resources/ui/img/icon_schedule.gif similarity index 100% rename from src/main/resources/ui/img/icon_schedule.gif rename to client/src/main/resources/ui/img/icon_schedule.gif diff --git a/src/main/resources/ui/img/icon_schedule_group.gif b/client/src/main/resources/ui/img/icon_schedule_group.gif similarity index 100% rename from src/main/resources/ui/img/icon_schedule_group.gif rename to client/src/main/resources/ui/img/icon_schedule_group.gif diff --git a/src/main/resources/ui/img/icon_system_error_category.gif b/client/src/main/resources/ui/img/icon_system_error_category.gif similarity index 100% rename from src/main/resources/ui/img/icon_system_error_category.gif rename to client/src/main/resources/ui/img/icon_system_error_category.gif diff --git a/src/main/resources/ui/img/icon_trends.gif b/client/src/main/resources/ui/img/icon_trends.gif similarity index 100% rename from src/main/resources/ui/img/icon_trends.gif rename to client/src/main/resources/ui/img/icon_trends.gif diff --git a/src/main/resources/ui/img/info.gif b/client/src/main/resources/ui/img/info.gif similarity index 100% rename from src/main/resources/ui/img/info.gif rename to client/src/main/resources/ui/img/info.gif diff --git a/src/main/resources/ui/img/number/n1.gif b/client/src/main/resources/ui/img/number/n1.gif similarity index 100% rename from src/main/resources/ui/img/number/n1.gif rename to client/src/main/resources/ui/img/number/n1.gif diff --git a/src/main/resources/ui/img/number/n2.gif b/client/src/main/resources/ui/img/number/n2.gif similarity index 100% rename from src/main/resources/ui/img/number/n2.gif rename to client/src/main/resources/ui/img/number/n2.gif diff --git a/src/main/resources/ui/img/number/n3.gif b/client/src/main/resources/ui/img/number/n3.gif similarity index 100% rename from src/main/resources/ui/img/number/n3.gif rename to client/src/main/resources/ui/img/number/n3.gif diff --git a/src/main/resources/ui/img/number/n4.gif b/client/src/main/resources/ui/img/number/n4.gif similarity index 100% rename from src/main/resources/ui/img/number/n4.gif rename to client/src/main/resources/ui/img/number/n4.gif diff --git a/src/main/resources/ui/img/number/n5.gif b/client/src/main/resources/ui/img/number/n5.gif similarity index 100% rename from src/main/resources/ui/img/number/n5.gif rename to client/src/main/resources/ui/img/number/n5.gif diff --git a/src/main/resources/ui/img/number/n6.gif b/client/src/main/resources/ui/img/number/n6.gif similarity index 100% rename from src/main/resources/ui/img/number/n6.gif rename to client/src/main/resources/ui/img/number/n6.gif diff --git a/src/main/resources/ui/img/number/n7.gif b/client/src/main/resources/ui/img/number/n7.gif similarity index 100% rename from src/main/resources/ui/img/number/n7.gif rename to client/src/main/resources/ui/img/number/n7.gif diff --git a/src/main/resources/ui/img/number/n8.gif b/client/src/main/resources/ui/img/number/n8.gif similarity index 100% rename from src/main/resources/ui/img/number/n8.gif rename to client/src/main/resources/ui/img/number/n8.gif diff --git a/src/main/resources/ui/img/obook.gif b/client/src/main/resources/ui/img/obook.gif similarity index 100% rename from src/main/resources/ui/img/obook.gif rename to client/src/main/resources/ui/img/obook.gif diff --git a/src/main/resources/ui/img/pin-16.png b/client/src/main/resources/ui/img/pin-16.png similarity index 100% rename from src/main/resources/ui/img/pin-16.png rename to client/src/main/resources/ui/img/pin-16.png diff --git a/src/main/resources/ui/img/pin.png b/client/src/main/resources/ui/img/pin.png similarity index 100% rename from src/main/resources/ui/img/pin.png rename to client/src/main/resources/ui/img/pin.png diff --git a/src/main/resources/ui/img/polygon_icon.gif b/client/src/main/resources/ui/img/polygon_icon.gif similarity index 100% rename from src/main/resources/ui/img/polygon_icon.gif rename to client/src/main/resources/ui/img/polygon_icon.gif diff --git a/src/main/resources/ui/img/rectangle_icon.gif b/client/src/main/resources/ui/img/rectangle_icon.gif similarity index 100% rename from src/main/resources/ui/img/rectangle_icon.gif rename to client/src/main/resources/ui/img/rectangle_icon.gif diff --git a/src/main/resources/ui/img/tip_symbol.gif b/client/src/main/resources/ui/img/tip_symbol.gif similarity index 100% rename from src/main/resources/ui/img/tip_symbol.gif rename to client/src/main/resources/ui/img/tip_symbol.gif diff --git a/src/main/resources/ui/inventory/inventory-contract.fxml b/client/src/main/resources/ui/inventory/inventory-contract.fxml similarity index 100% rename from src/main/resources/ui/inventory/inventory-contract.fxml rename to client/src/main/resources/ui/inventory/inventory-contract.fxml diff --git a/src/main/resources/ui/inventory/inventory-history-price.fxml b/client/src/main/resources/ui/inventory/inventory-history-price.fxml similarity index 100% rename from src/main/resources/ui/inventory/inventory-history-price.fxml rename to client/src/main/resources/ui/inventory/inventory-history-price.fxml diff --git a/src/main/resources/ui/inventory/inventory-manager.fxml b/client/src/main/resources/ui/inventory/inventory-manager.fxml similarity index 100% rename from src/main/resources/ui/inventory/inventory-manager.fxml rename to client/src/main/resources/ui/inventory/inventory-manager.fxml diff --git a/src/main/resources/ui/inventory/inventory.css b/client/src/main/resources/ui/inventory/inventory.css similarity index 100% rename from src/main/resources/ui/inventory/inventory.css rename to client/src/main/resources/ui/inventory/inventory.css diff --git a/src/main/resources/ui/inventory/inventory.fxml b/client/src/main/resources/ui/inventory/inventory.fxml similarity index 100% rename from src/main/resources/ui/inventory/inventory.fxml rename to client/src/main/resources/ui/inventory/inventory.fxml diff --git a/src/main/resources/ui/part-footer.fxml b/client/src/main/resources/ui/part-footer.fxml similarity index 100% rename from src/main/resources/ui/part-footer.fxml rename to client/src/main/resources/ui/part-footer.fxml diff --git a/src/main/resources/ui/project/apply-new-project.fxml b/client/src/main/resources/ui/project/apply-new-project.fxml similarity index 100% rename from src/main/resources/ui/project/apply-new-project.fxml rename to client/src/main/resources/ui/project/apply-new-project.fxml diff --git a/src/main/resources/ui/project/comm.css b/client/src/main/resources/ui/project/comm.css similarity index 100% rename from src/main/resources/ui/project/comm.css rename to client/src/main/resources/ui/project/comm.css diff --git a/src/main/resources/ui/project/customer-satisfaction-survey.fxml b/client/src/main/resources/ui/project/customer-satisfaction-survey.fxml similarity index 100% rename from src/main/resources/ui/project/customer-satisfaction-survey.fxml rename to client/src/main/resources/ui/project/customer-satisfaction-survey.fxml diff --git a/src/main/resources/ui/project/product-type-manager.fxml b/client/src/main/resources/ui/project/product-type-manager.fxml similarity index 100% rename from src/main/resources/ui/project/product-type-manager.fxml rename to client/src/main/resources/ui/project/product-type-manager.fxml diff --git a/src/main/resources/ui/project/product-usage-manager.fxml b/client/src/main/resources/ui/project/product-usage-manager.fxml similarity index 100% rename from src/main/resources/ui/project/product-usage-manager.fxml rename to client/src/main/resources/ui/project/product-usage-manager.fxml diff --git a/src/main/resources/ui/project/project-bid.fxml b/client/src/main/resources/ui/project/project-bid.fxml similarity index 100% rename from src/main/resources/ui/project/project-bid.fxml rename to client/src/main/resources/ui/project/project-bid.fxml diff --git a/src/main/resources/ui/project/project-cost-tab-item.fxml b/client/src/main/resources/ui/project/project-cost-tab-item.fxml similarity index 100% rename from src/main/resources/ui/project/project-cost-tab-item.fxml rename to client/src/main/resources/ui/project/project-cost-tab-item.fxml diff --git a/src/main/resources/ui/project/project-cost.fxml b/client/src/main/resources/ui/project/project-cost.fxml similarity index 100% rename from src/main/resources/ui/project/project-cost.fxml rename to client/src/main/resources/ui/project/project-cost.fxml diff --git a/src/main/resources/ui/project/project-manager.fxml b/client/src/main/resources/ui/project/project-manager.fxml similarity index 100% rename from src/main/resources/ui/project/project-manager.fxml rename to client/src/main/resources/ui/project/project-manager.fxml diff --git a/src/main/resources/ui/project/project-quotation.fxml b/client/src/main/resources/ui/project/project-quotation.fxml similarity index 100% rename from src/main/resources/ui/project/project-quotation.fxml rename to client/src/main/resources/ui/project/project-quotation.fxml diff --git a/src/main/resources/ui/project/project-tab-bid.fxml b/client/src/main/resources/ui/project/project-tab-bid.fxml similarity index 100% rename from src/main/resources/ui/project/project-tab-bid.fxml rename to client/src/main/resources/ui/project/project-tab-bid.fxml diff --git a/src/main/resources/ui/project/project-tab-contract.fxml b/client/src/main/resources/ui/project/project-tab-contract.fxml similarity index 100% rename from src/main/resources/ui/project/project-tab-contract.fxml rename to client/src/main/resources/ui/project/project-tab-contract.fxml diff --git a/src/main/resources/ui/project/project-tab-cost.fxml b/client/src/main/resources/ui/project/project-tab-cost.fxml similarity index 100% rename from src/main/resources/ui/project/project-tab-cost.fxml rename to client/src/main/resources/ui/project/project-tab-cost.fxml diff --git a/src/main/resources/ui/project/project-tab-customer-satisfaction-survey.fxml b/client/src/main/resources/ui/project/project-tab-customer-satisfaction-survey.fxml similarity index 100% rename from src/main/resources/ui/project/project-tab-customer-satisfaction-survey.fxml rename to client/src/main/resources/ui/project/project-tab-customer-satisfaction-survey.fxml diff --git a/src/main/resources/ui/project/project-tab-customer.fxml b/client/src/main/resources/ui/project/project-tab-customer.fxml similarity index 100% rename from src/main/resources/ui/project/project-tab-customer.fxml rename to client/src/main/resources/ui/project/project-tab-customer.fxml diff --git a/src/main/resources/ui/project/project-tab-fund-plan.fxml b/client/src/main/resources/ui/project/project-tab-fund-plan.fxml similarity index 69% rename from src/main/resources/ui/project/project-tab-fund-plan.fxml rename to client/src/main/resources/ui/project/project-tab-fund-plan.fxml index a17d633..984eda6 100644 --- a/src/main/resources/ui/project/project-tab-fund-plan.fxml +++ b/client/src/main/resources/ui/project/project-tab-fund-plan.fxml @@ -17,14 +17,14 @@ - + - - - - - + + + + + diff --git a/src/main/resources/ui/project/project-tab-quotation.fxml b/client/src/main/resources/ui/project/project-tab-quotation.fxml similarity index 100% rename from src/main/resources/ui/project/project-tab-quotation.fxml rename to client/src/main/resources/ui/project/project-tab-quotation.fxml diff --git a/src/main/resources/ui/project/project-type-manager.fxml b/client/src/main/resources/ui/project/project-type-manager.fxml similarity index 100% rename from src/main/resources/ui/project/project-type-manager.fxml rename to client/src/main/resources/ui/project/project-type-manager.fxml diff --git a/src/main/resources/ui/project/project.fxml b/client/src/main/resources/ui/project/project.fxml similarity index 100% rename from src/main/resources/ui/project/project.fxml rename to client/src/main/resources/ui/project/project.fxml diff --git a/src/main/resources/ui/project/sale-type-manager.fxml b/client/src/main/resources/ui/project/sale-type-manager.fxml similarity index 100% rename from src/main/resources/ui/project/sale-type-manager.fxml rename to client/src/main/resources/ui/project/sale-type-manager.fxml diff --git a/src/main/resources/ui/project/sale-type.fxml b/client/src/main/resources/ui/project/sale-type.fxml similarity index 100% rename from src/main/resources/ui/project/sale-type.fxml rename to client/src/main/resources/ui/project/sale-type.fxml diff --git a/src/main/resources/ui/project/used-industry-manager.fxml b/client/src/main/resources/ui/project/used-industry-manager.fxml similarity index 100% rename from src/main/resources/ui/project/used-industry-manager.fxml rename to client/src/main/resources/ui/project/used-industry-manager.fxml diff --git a/src/main/resources/ui/start_lamp.css b/client/src/main/resources/ui/start_lamp.css similarity index 100% rename from src/main/resources/ui/start_lamp.css rename to client/src/main/resources/ui/start_lamp.css diff --git a/src/main/resources/ui/start_lamp.fxml b/client/src/main/resources/ui/start_lamp.fxml similarity index 100% rename from src/main/resources/ui/start_lamp.fxml rename to client/src/main/resources/ui/start_lamp.fxml diff --git a/src/main/resources/ui/task/TaskMonitorView.fxml b/client/src/main/resources/ui/task/TaskMonitorView.fxml similarity index 100% rename from src/main/resources/ui/task/TaskMonitorView.fxml rename to client/src/main/resources/ui/task/TaskMonitorView.fxml diff --git a/common/pom.xml b/common/pom.xml new file mode 100644 index 0000000..e11a1da --- /dev/null +++ b/common/pom.xml @@ -0,0 +1,29 @@ + + + 4.0.0 + + com.ecep.contract + Contract-Manager + 0.0.49-SNAPSHOT + + + com.ecep.contract + common + 0.0.49-SNAPSHOT + + + ${java.version} + ${java.version} + + + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/company/BlackReasonType.java b/common/src/main/java/com/ecep/contract/BlackReasonType.java similarity index 76% rename from src/main/java/com/ecep/contract/manager/ds/company/BlackReasonType.java rename to common/src/main/java/com/ecep/contract/BlackReasonType.java index 834abbf..d3d0704 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/BlackReasonType.java +++ b/common/src/main/java/com/ecep/contract/BlackReasonType.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.company; +package com.ecep.contract; /** * Date : 2024/2/3 diff --git a/src/main/java/com/ecep/contract/manager/cloud/CloudType.java b/common/src/main/java/com/ecep/contract/CloudType.java similarity index 85% rename from src/main/java/com/ecep/contract/manager/cloud/CloudType.java rename to common/src/main/java/com/ecep/contract/CloudType.java index 135d2d3..a3caec4 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/CloudType.java +++ b/common/src/main/java/com/ecep/contract/CloudType.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.cloud; +package com.ecep.contract; /** * 记录源类型 diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/CompanyCustomerFileType.java b/common/src/main/java/com/ecep/contract/CompanyCustomerFileType.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/customer/CompanyCustomerFileType.java rename to common/src/main/java/com/ecep/contract/CompanyCustomerFileType.java index 532a3e9..aeb637d 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/CompanyCustomerFileType.java +++ b/common/src/main/java/com/ecep/contract/CompanyCustomerFileType.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.customer; +package com.ecep.contract; public enum CompanyCustomerFileType { /** diff --git a/src/main/java/com/ecep/contract/manager/ds/company/CompanyFileType.java b/common/src/main/java/com/ecep/contract/CompanyFileType.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ds/company/CompanyFileType.java rename to common/src/main/java/com/ecep/contract/CompanyFileType.java index e80798a..47426e2 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/CompanyFileType.java +++ b/common/src/main/java/com/ecep/contract/CompanyFileType.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.company; +package com.ecep.contract; /** * 公司文件类型(资质文件) diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/CompanyVendorFileType.java b/common/src/main/java/com/ecep/contract/CompanyVendorFileType.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/vendor/CompanyVendorFileType.java rename to common/src/main/java/com/ecep/contract/CompanyVendorFileType.java index dbba308..3f3012f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/CompanyVendorFileType.java +++ b/common/src/main/java/com/ecep/contract/CompanyVendorFileType.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.vendor; +package com.ecep.contract; public enum CompanyVendorFileType { /** diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/ContractFileType.java b/common/src/main/java/com/ecep/contract/ContractFileType.java similarity index 98% rename from src/main/java/com/ecep/contract/manager/ds/contract/ContractFileType.java rename to common/src/main/java/com/ecep/contract/ContractFileType.java index 9410ad7..adc138a 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/ContractFileType.java +++ b/common/src/main/java/com/ecep/contract/ContractFileType.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.contract; +package com.ecep.contract; import lombok.Getter; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/ContractPayWay.java b/common/src/main/java/com/ecep/contract/ContractPayWay.java similarity index 93% rename from src/main/java/com/ecep/contract/manager/ds/contract/ContractPayWay.java rename to common/src/main/java/com/ecep/contract/ContractPayWay.java index ae61391..d4d2235 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/ContractPayWay.java +++ b/common/src/main/java/com/ecep/contract/ContractPayWay.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.contract; +package com.ecep.contract; /** * 付款方式 diff --git a/src/main/java/com/ecep/contract/manager/ui/Message.java b/common/src/main/java/com/ecep/contract/Message.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ui/Message.java rename to common/src/main/java/com/ecep/contract/Message.java index fba5aa0..7e479f5 100644 --- a/src/main/java/com/ecep/contract/manager/ui/Message.java +++ b/common/src/main/java/com/ecep/contract/Message.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract; import lombok.Data; diff --git a/src/main/java/com/ecep/contract/manager/ui/MessageHolder.java b/common/src/main/java/com/ecep/contract/MessageHolder.java similarity index 95% rename from src/main/java/com/ecep/contract/manager/ui/MessageHolder.java rename to common/src/main/java/com/ecep/contract/MessageHolder.java index ba8c649..34e96c6 100644 --- a/src/main/java/com/ecep/contract/manager/ui/MessageHolder.java +++ b/common/src/main/java/com/ecep/contract/MessageHolder.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract; import java.util.logging.Level; diff --git a/src/main/java/com/ecep/contract/manager/util/MyDateTimeUtils.java b/common/src/main/java/com/ecep/contract/MyDateTimeUtils.java similarity index 98% rename from src/main/java/com/ecep/contract/manager/util/MyDateTimeUtils.java rename to common/src/main/java/com/ecep/contract/MyDateTimeUtils.java index 508ad17..dd42d50 100644 --- a/src/main/java/com/ecep/contract/manager/util/MyDateTimeUtils.java +++ b/common/src/main/java/com/ecep/contract/MyDateTimeUtils.java @@ -1,6 +1,5 @@ -package com.ecep.contract.manager.util; +package com.ecep.contract; -import java.text.DateFormat; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/ProjectFileType.java b/common/src/main/java/com/ecep/contract/ProjectFileType.java similarity index 96% rename from src/main/java/com/ecep/contract/manager/ds/project/ProjectFileType.java rename to common/src/main/java/com/ecep/contract/ProjectFileType.java index 5ef1943..2112418 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/ProjectFileType.java +++ b/common/src/main/java/com/ecep/contract/ProjectFileType.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.project; +package com.ecep.contract; public enum ProjectFileType { /** diff --git a/src/main/java/com/ecep/contract/manager/ui/task/TaskStatus.java b/common/src/main/java/com/ecep/contract/TaskStatus.java similarity index 92% rename from src/main/java/com/ecep/contract/manager/ui/task/TaskStatus.java rename to common/src/main/java/com/ecep/contract/TaskStatus.java index b04be61..07728fe 100644 --- a/src/main/java/com/ecep/contract/manager/ui/task/TaskStatus.java +++ b/common/src/main/java/com/ecep/contract/TaskStatus.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui.task; +package com.ecep.contract; /** * 任务状态枚举 diff --git a/src/main/java/com/ecep/contract/manager/ds/other/UnitType.java b/common/src/main/java/com/ecep/contract/UnitType.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/other/UnitType.java rename to common/src/main/java/com/ecep/contract/UnitType.java index 9110035..3e13816 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/UnitType.java +++ b/common/src/main/java/com/ecep/contract/UnitType.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other; +package com.ecep.contract; import lombok.Getter; diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/VendorType.java b/common/src/main/java/com/ecep/contract/VendorType.java similarity index 81% rename from src/main/java/com/ecep/contract/manager/ds/vendor/VendorType.java rename to common/src/main/java/com/ecep/contract/VendorType.java index e70ed3c..48f112e 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/VendorType.java +++ b/common/src/main/java/com/ecep/contract/VendorType.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.vendor; +package com.ecep.contract; public enum VendorType { /** diff --git a/common/src/main/java/com/ecep/contract/constant/CloudServiceConstant.java b/common/src/main/java/com/ecep/contract/constant/CloudServiceConstant.java new file mode 100644 index 0000000..e03313a --- /dev/null +++ b/common/src/main/java/com/ecep/contract/constant/CloudServiceConstant.java @@ -0,0 +1,18 @@ +package com.ecep.contract.constant; + +public class CloudServiceConstant { + /** + * 集团相关方 + */ + public static final String RK_NAME = "集团相关方"; + public static final String RK_DESC = "集团相关方平台"; + public static final String RK_VENDOR_NAME = "元素征信"; + /** + * 用友 + */ + public static final String U8_NAME = "用友"; + /** + * 天眼查 + */ + public static final String TYC_NAME = "天眼查"; +} 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 f9f31bd..63a30c5 100644 --- a/common/src/main/java/com/ecep/contract/constant/CompanyCustomerConstant.java +++ b/common/src/main/java/com/ecep/contract/constant/CompanyCustomerConstant.java @@ -1,4 +1,6 @@ package com.ecep.contract.constant; -public class CompanyCustomerCpnstant { +public class CompanyCustomerConstant { + public static final String EVALUATION_FORM_NAME1 = "评定表"; + public static final String EVALUATION_FORM_NAME2 = "评估表"; } diff --git a/common/src/main/java/com/ecep/contract/constant/CompanyVendorConstant.java b/common/src/main/java/com/ecep/contract/constant/CompanyVendorConstant.java new file mode 100644 index 0000000..d19e501 --- /dev/null +++ b/common/src/main/java/com/ecep/contract/constant/CompanyVendorConstant.java @@ -0,0 +1,24 @@ +package com.ecep.contract.constant; + +public class CompanyVendorConstant { + public static final String CACHE_NAME = "company-vendor"; + public static final String EVALUATION_FORM_NAME1 = "评价表"; + public static final String EVALUATION_FORM_NAME2 = "评估表"; + public static final String EVALUATION_FORM_NAME3 = "评定表"; + /** + * 供应商存储基础目录,实际路径 + */ + public static final String KEY_BASE_PATH = "vendor.base.path"; + /** + * 供应商评价表模板 + */ + public static final String KEY_EVALUATION_FORM_TEMPLATE = "vendor.evaluation.form.template"; + /** + * 供应商审批列表存储基础目录,实际路径 + */ + public static final String KEY_APPROVED_LIST_BASE_PATH = "vendor.approved.list.base.path"; + /** + * 供应商审批列表模板 + */ + public static final String KEY_APPROVED_LIST_TEMPLATE = "vendor.approved.list.template"; +} diff --git a/common/src/main/java/com/ecep/contract/constant/ServiceConstant.java b/common/src/main/java/com/ecep/contract/constant/ServiceConstant.java new file mode 100644 index 0000000..b7a6ee3 --- /dev/null +++ b/common/src/main/java/com/ecep/contract/constant/ServiceConstant.java @@ -0,0 +1,5 @@ +package com.ecep.contract.constant; + +public class ServiceConstant { + public static final String KEY_SEARCH_TEXT = "searchText"; +} diff --git a/common/src/main/java/com/ecep/contract/model/Bank.java b/common/src/main/java/com/ecep/contract/model/Bank.java new file mode 100644 index 0000000..ec54872 --- /dev/null +++ b/common/src/main/java/com/ecep/contract/model/Bank.java @@ -0,0 +1,63 @@ +package com.ecep.contract.model; + +import java.io.Serializable; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@Entity +@Table(name = "BANK", schema = "supplier_ms") +public class Bank implements BasedEntity, IdentityEntity, Serializable { + private static final long serialVersionUID = 1L; + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID", nullable = false) + private Integer id; + + @Column(name = "CODE") + private String code; + + @Column(name = "NAME") + private String name; + + @Override + public String toPrettyString() { + return code + " " + name; + } + + @Override + public final boolean equals(Object object) { + if (this == object) + return true; + if (object == null) + return false; + Class oEffectiveClass = object instanceof HibernateProxy + ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() + : object.getClass(); + Class thisEffectiveClass = this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() + : this.getClass(); + if (thisEffectiveClass != oEffectiveClass) + return false; + Bank bank = (Bank) object; + return getId() != null && Objects.equals(getId(), bank.getId()); + } + + @Override + public final int hashCode() { + return this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() + : getClass().hashCode(); + } +} diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/BaseEnumEntity.java b/common/src/main/java/com/ecep/contract/model/BaseEnumEntity.java similarity index 63% rename from src/main/java/com/ecep/contract/manager/ds/other/model/BaseEnumEntity.java rename to common/src/main/java/com/ecep/contract/model/BaseEnumEntity.java index 5b7ee27..9cf3fbe 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/BaseEnumEntity.java +++ b/common/src/main/java/com/ecep/contract/model/BaseEnumEntity.java @@ -1,6 +1,12 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; -import jakarta.persistence.*; +import jakarta.persistence.Column; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.MappedSuperclass; import lombok.Getter; import lombok.Setter; import lombok.ToString; @@ -10,7 +16,6 @@ import lombok.ToString; @MappedSuperclass @ToString public class BaseEnumEntity> implements IdentityEntity { - @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/common/src/main/java/com/ecep/contract/model/BasedEntity.java b/common/src/main/java/com/ecep/contract/model/BasedEntity.java new file mode 100644 index 0000000..511a1c0 --- /dev/null +++ b/common/src/main/java/com/ecep/contract/model/BasedEntity.java @@ -0,0 +1,6 @@ +package com.ecep.contract.model; + +public interface BasedEntity { + + String toPrettyString(); +} diff --git a/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRk.java b/common/src/main/java/com/ecep/contract/model/CloudRk.java similarity index 54% rename from src/main/java/com/ecep/contract/manager/cloud/rk/CloudRk.java rename to common/src/main/java/com/ecep/contract/model/CloudRk.java index f9cab9b..6609c9e 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRk.java +++ b/common/src/main/java/com/ecep/contract/model/CloudRk.java @@ -1,20 +1,53 @@ -package com.ecep.contract.manager.cloud.rk; +package com.ecep.contract.model; + +import java.io.Serializable; +import java.time.Instant; +import java.time.LocalDateTime; + +import org.hibernate.annotations.ColumnDefault; -import com.ecep.contract.manager.cloud.CloudBaseInfo; import jakarta.persistence.Column; import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; -import org.hibernate.annotations.ColumnDefault; - -import java.time.Instant; +import lombok.ToString; @Getter @Setter @Entity @Table(name = "CLOUD_RK", schema = "supplier_ms") -public class CloudRk extends CloudBaseInfo { +public class CloudRk implements IdentityEntity, Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID", nullable = false) + private Integer id; + + /** + * 平台编号 + */ + @Column(name = "CLOUD_ID") + private String cloudId; + + /** + * 关联的公司 + */ + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "COMPANY_ID") + @ToString.Exclude + private Company company; + /** * 是否自动更新 */ @@ -65,20 +98,39 @@ public class CloudRk extends CloudBaseInfo { @ColumnDefault("''") @Column(name = "CREDIT_RANK", nullable = false) private String rank; - + /** + * 相关方资信评价等级描述 + */ @Column(name = "CREDIT_RANK_DESCRIPTION") private String rankDescription; - - + /** + * 云端最新更新时间 + */ @Column(name = "CLOUD_LATEST") - private Instant cloudLatest; - + private LocalDateTime cloudLatest; + /** + * 黑名单更新时间 + */ @Column(name = "BLACK_LIST_UPDATED") - private Instant cloudBlackListUpdated; - + private LocalDateTime cloudBlackListUpdated; + /** + * 企业信息更新时间 + */ @Column(name = "ENT_UPDATED") - private Instant cloudEntUpdate; - + private LocalDateTime cloudEntUpdate; + /** + * 备注 + */ @Column(name = "DESCRIPTION") private String description; + /** + * 本地更新时间戳,控制更新频率和重复更新 + */ + @Column(name = "LATEST_UPDATE") + private LocalDateTime latestUpdate; + /** + * 版本号 + */ + @Column(name = "VERSION", nullable = false) + private Integer version = 0; } \ No newline at end of file diff --git a/common/src/main/java/com/ecep/contract/model/CloudTyc.java b/common/src/main/java/com/ecep/contract/model/CloudTyc.java new file mode 100644 index 0000000..cfdf7b7 --- /dev/null +++ b/common/src/main/java/com/ecep/contract/model/CloudTyc.java @@ -0,0 +1,98 @@ +package com.ecep.contract.model; + +import java.io.Serializable; +import java.time.Instant; +import java.util.Objects; + +import org.hibernate.annotations.ColumnDefault; +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import jakarta.persistence.Version; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@Getter +@Setter +@Entity +@Table(name = "CLOUD_TYC", schema = "supplier_ms") +public class CloudTyc implements IdentityEntity, Serializable { + private static final long serialVersionUID = 1L; + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID", nullable = false) + private Integer id; + + /** + * 评分 + */ + @ColumnDefault("0") + @Column(name = "SCORE", nullable = false) + private Integer score; + + @Column(name = "CLOUD_LATEST") + private Instant cloudLatest; + + /** + * 平台编号 + */ + @Column(name = "CLOUD_ID") + private String cloudId; + + /** + * 本地更新时间戳,控制更新频率和重复更新 + */ + @Column(name = "LATEST_UPDATE") + private Instant latestUpdate; + + /** + * 关联的公司 + */ + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "COMPANY_ID") + @ToString.Exclude + private Company company; + + @Version + @ColumnDefault("0") + @Column(name = "VERSION", nullable = false) + private int version; + + @Override + public final boolean equals(Object o) { + if (this == o) + return true; + if (o == null) + return false; + Class oEffectiveClass = o instanceof HibernateProxy + ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() + : o.getClass(); + Class thisEffectiveClass = this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() + : this.getClass(); + if (thisEffectiveClass != oEffectiveClass) + return false; + CloudTyc cloudInfo = (CloudTyc) o; + return getId() != null && Objects.equals(getId(), cloudInfo.getId()); + } + + @Override + public final int hashCode() { + return this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() + : getClass().hashCode(); + } + +} \ No newline at end of file diff --git a/common/src/main/java/com/ecep/contract/model/CloudYu.java b/common/src/main/java/com/ecep/contract/model/CloudYu.java new file mode 100644 index 0000000..67ecef7 --- /dev/null +++ b/common/src/main/java/com/ecep/contract/model/CloudYu.java @@ -0,0 +1,72 @@ +package com.ecep.contract.model; + +import java.io.Serializable; +import java.time.Instant; +import java.time.LocalDate; + +import org.hibernate.annotations.ColumnDefault; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@Getter +@Setter +@Entity +@Table(name = "CLOUD_YU", schema = "supplier_ms") +@ToString +public class CloudYu implements IdentityEntity, Serializable { + private static final long serialVersionUID = 1L; + /** + * 主键 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID", nullable = false) + private Integer id; + + /** + * 本地更新时间戳,控制更新频率和重复更新 + */ + @Column(name = "LATEST_UPDATE") + private Instant latestUpdate; + + /** + * 关联的公司 + */ + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "COMPANY_ID") + @ToString.Exclude + private Company company; + + @ColumnDefault("''") + @Column(name = "EX_MSG") + private String exceptionMessage; + + /** + * 供应商信息更新日期 + */ + @Column(name = "VEN_UP_DATE") + private LocalDate vendorUpdateDate; + + /** + * 客户信息更新日期 + */ + @Column(name = "CUS_UP_DATE") + private LocalDate customerUpdateDate; + + /** + * 数据更新日期 + */ + @Column(name = "CLOUD_LATEST") + private Instant cloudLatest; +} diff --git a/src/main/java/com/ecep/contract/manager/ds/company/model/Company.java b/common/src/main/java/com/ecep/contract/model/Company.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/ds/company/model/Company.java rename to common/src/main/java/com/ecep/contract/model/Company.java index 046bf7a..0ce8fc7 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/model/Company.java +++ b/common/src/main/java/com/ecep/contract/model/Company.java @@ -1,14 +1,12 @@ -package com.ecep.contract.manager.ds.company.model; +package com.ecep.contract.model; +import java.io.Serializable; import java.time.LocalDate; import java.util.Objects; import org.hibernate.annotations.ColumnDefault; import org.hibernate.proxy.HibernateProxy; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.NamedEntity; - import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; @@ -28,7 +26,8 @@ import lombok.ToString; @Entity @Table(name = "COMPANY") @ToString -public class Company implements IdentityEntity, NamedEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class Company implements IdentityEntity, NamedEntity, BasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyBankAccount.java b/common/src/main/java/com/ecep/contract/model/CompanyBankAccount.java similarity index 63% rename from src/main/java/com/ecep/contract/manager/ds/company/model/CompanyBankAccount.java rename to common/src/main/java/com/ecep/contract/model/CompanyBankAccount.java index 4c7ca89..6c6a2ee 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyBankAccount.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyBankAccount.java @@ -1,9 +1,14 @@ -package com.ecep.contract.manager.ds.company.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.other.model.Bank; -import com.ecep.contract.manager.ds.other.model.Entity; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; +import java.io.Serializable; +import jakarta.persistence.Column; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; @@ -12,7 +17,8 @@ import lombok.ToString; @Setter @jakarta.persistence.Entity @Table(name = "COMPANY_BANK_ACCOUNT", schema = "supplier_ms") -public class CompanyBankAccount implements IdentityEntity, Entity, CompanyBasedEntity { +public class CompanyBankAccount implements IdentityEntity, BasedEntity, CompanyBasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyBasedEntity.java b/common/src/main/java/com/ecep/contract/model/CompanyBasedEntity.java similarity index 67% rename from src/main/java/com/ecep/contract/manager/ds/company/model/CompanyBasedEntity.java rename to common/src/main/java/com/ecep/contract/model/CompanyBasedEntity.java index 8176d21..355f85f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyBasedEntity.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyBasedEntity.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.company.model; +package com.ecep.contract.model; public interface CompanyBasedEntity { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/CompanyBasicFile.java b/common/src/main/java/com/ecep/contract/model/CompanyBasicFile.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/other/model/CompanyBasicFile.java rename to common/src/main/java/com/ecep/contract/model/CompanyBasicFile.java index 4517cff..06a6d40 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/CompanyBasicFile.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyBasicFile.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; import java.time.LocalDate; diff --git a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyBlackReason.java b/common/src/main/java/com/ecep/contract/model/CompanyBlackReason.java similarity index 71% rename from src/main/java/com/ecep/contract/manager/ds/company/model/CompanyBlackReason.java rename to common/src/main/java/com/ecep/contract/model/CompanyBlackReason.java index 5afcc1b..4a552e1 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyBlackReason.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyBlackReason.java @@ -1,15 +1,27 @@ -package com.ecep.contract.manager.ds.company.model; +package com.ecep.contract.model; + +import java.io.Serializable; +import java.time.LocalDate; -import com.ecep.contract.manager.ds.company.BlackReasonType; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; import org.hibernate.annotations.OnDelete; import org.hibernate.annotations.OnDeleteAction; -import java.time.LocalDate; +import com.ecep.contract.BlackReasonType; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Index; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.Lob; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; @Getter @Setter @@ -19,7 +31,8 @@ import java.time.LocalDate; }) // @org.springframework.data.relational.core.mapping.Table("COMPANY_BLACK_REASON") @JsonIgnoreProperties(ignoreUnknown = true) -public class CompanyBlackReason implements IdentityEntity, CompanyBasedEntity { +public class CompanyBlackReason implements IdentityEntity, CompanyBasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyContact.java b/common/src/main/java/com/ecep/contract/model/CompanyContact.java similarity index 59% rename from src/main/java/com/ecep/contract/manager/ds/company/model/CompanyContact.java rename to common/src/main/java/com/ecep/contract/model/CompanyContact.java index e0ddee9..5b03bc0 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyContact.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyContact.java @@ -1,16 +1,26 @@ -package com.ecep.contract.manager.ds.company.model; +package com.ecep.contract.model; + +import java.io.Serializable; +import java.time.LocalDate; +import java.util.Objects; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.NamedEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; import org.hibernate.annotations.ColumnDefault; import org.hibernate.proxy.HibernateProxy; -import java.time.LocalDate; -import java.util.Objects; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Index; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import jakarta.persistence.Version; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; @Getter @Setter @@ -19,7 +29,8 @@ import java.util.Objects; @Index(name = "CUSTOMER_ID", columnList = "COMPANY_ID") }) @ToString -public class CompanyContact implements IdentityEntity, NamedEntity, com.ecep.contract.manager.ds.other.model.Entity, CompanyBasedEntity { +public class CompanyContact implements IdentityEntity, NamedEntity, BasedEntity, CompanyBasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) @@ -28,7 +39,6 @@ public class CompanyContact implements IdentityEntity, NamedEntity, com.ecep.con @Column(name = "NAME") private String name; - @Column(name = "PHONE") private String phone; @@ -73,19 +83,27 @@ public class CompanyContact implements IdentityEntity, NamedEntity, com.ecep.con @Override public final boolean equals(Object object) { - if (this == object) return true; - if (object == null) return false; - Class oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass(); - Class thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass(); - if (thisEffectiveClass != oEffectiveClass) return false; + if (this == object) + return true; + if (object == null) + return false; + Class oEffectiveClass = object instanceof HibernateProxy + ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() + : object.getClass(); + Class thisEffectiveClass = this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() + : this.getClass(); + if (thisEffectiveClass != oEffectiveClass) + return false; CompanyContact that = (CompanyContact) object; return getId() != null && Objects.equals(getId(), that.getId()); } @Override public final int hashCode() { - return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode(); + return this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() + : getClass().hashCode(); } - } \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyContract.java b/common/src/main/java/com/ecep/contract/model/CompanyContract.java similarity index 63% rename from src/main/java/com/ecep/contract/manager/ds/company/model/CompanyContract.java rename to common/src/main/java/com/ecep/contract/model/CompanyContract.java index 2d2d85c..8a612ce 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyContract.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyContract.java @@ -1,15 +1,23 @@ -package com.ecep.contract.manager.ds.company.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.cloud.old.CompanyContactUtils; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; +import java.io.Serializable; +import java.util.Map; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Index; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import java.util.Map; - @Getter @Setter @Entity @@ -20,7 +28,8 @@ import java.util.Map; }) @ToString(exclude = {"company", "contract"}) -public class CompanyContract implements IdentityEntity, CompanyBasedEntity { +public class CompanyContract implements IdentityEntity, CompanyBasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomer.java b/common/src/main/java/com/ecep/contract/model/CompanyCustomer.java similarity index 62% rename from src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomer.java rename to common/src/main/java/com/ecep/contract/model/CompanyCustomer.java index f94f910..9543a8d 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomer.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyCustomer.java @@ -1,20 +1,25 @@ -package com.ecep.contract.manager.ds.customer.model; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyBasedEntity; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.annotations.ColumnDefault; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.model; +import java.io.Serializable; import java.time.Instant; import java.time.LocalDate; import java.util.Objects; +import org.hibernate.annotations.ColumnDefault; +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import jakarta.persistence.Version; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + @Getter @Setter @Entity @@ -22,7 +27,8 @@ import java.util.Objects; }) @ToString -public class CompanyCustomer implements IdentityEntity, CompanyBasedEntity { +public class CompanyCustomer implements IdentityEntity, CompanyBasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @Column(name = "ID", nullable = false) private Integer id; @@ -71,17 +77,26 @@ public class CompanyCustomer implements IdentityEntity, CompanyBasedEntity { @Override public final boolean equals(Object object) { - if (this == object) return true; - if (object == null) return false; - Class oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass(); - Class thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass(); - if (thisEffectiveClass != oEffectiveClass) return false; + if (this == object) + return true; + if (object == null) + return false; + Class oEffectiveClass = object instanceof HibernateProxy + ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() + : object.getClass(); + Class thisEffectiveClass = this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() + : this.getClass(); + if (thisEffectiveClass != oEffectiveClass) + return false; CompanyCustomer that = (CompanyCustomer) object; return getId() != null && Objects.equals(getId(), that.getId()); } @Override public final int hashCode() { - return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode(); + return this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() + : getClass().hashCode(); } } \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomerEntity.java b/common/src/main/java/com/ecep/contract/model/CompanyCustomerEntity.java similarity index 65% rename from src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomerEntity.java rename to common/src/main/java/com/ecep/contract/model/CompanyCustomerEntity.java index 9b9da80..ff0f857 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomerEntity.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyCustomerEntity.java @@ -1,17 +1,25 @@ -package com.ecep.contract.manager.ds.customer.model; - -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.model; +import java.io.Serializable; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Objects; +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + @Getter @Setter @Entity @@ -19,7 +27,8 @@ import java.util.Objects; }) @ToString -public class CompanyCustomerEntity implements IdentityEntity { +public class CompanyCustomerEntity implements IdentityEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @Column(name = "ID", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -89,17 +98,26 @@ public class CompanyCustomerEntity implements IdentityEntity { @Override public final boolean equals(Object object) { - if (this == object) return true; - if (object == null) return false; - Class oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass(); - Class thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass(); - if (thisEffectiveClass != oEffectiveClass) return false; + if (this == object) + return true; + if (object == null) + return false; + Class oEffectiveClass = object instanceof HibernateProxy + ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() + : object.getClass(); + Class thisEffectiveClass = this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() + : this.getClass(); + if (thisEffectiveClass != oEffectiveClass) + return false; CompanyCustomerEntity that = (CompanyCustomerEntity) object; return getId() != null && Objects.equals(getId(), that.getId()); } @Override public final int hashCode() { - return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode(); + return this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() + : getClass().hashCode(); } } diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomerEvaluationFormFile.java b/common/src/main/java/com/ecep/contract/model/CompanyCustomerEvaluationFormFile.java similarity index 74% rename from src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomerEvaluationFormFile.java rename to common/src/main/java/com/ecep/contract/model/CompanyCustomerEvaluationFormFile.java index 0fecc02..c034b56 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomerEvaluationFormFile.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyCustomerEvaluationFormFile.java @@ -1,7 +1,14 @@ -package com.ecep.contract.manager.ds.customer.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; +import java.io.Serializable; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Id; +import jakarta.persistence.OneToOne; +import jakarta.persistence.PrimaryKeyJoinColumn; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; @@ -18,7 +25,8 @@ import lombok.ToString; @Setter @ToString @Table(name = "COMPANY_CUSTOMER_EVALUATION_FORM_FILE") -public class CompanyCustomerEvaluationFormFile implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class CompanyCustomerEvaluationFormFile implements IdentityEntity, BasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @Column(name = "ID", nullable = false) private Integer id; diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomerFile.java b/common/src/main/java/com/ecep/contract/model/CompanyCustomerFile.java similarity index 61% rename from src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomerFile.java rename to common/src/main/java/com/ecep/contract/model/CompanyCustomerFile.java index 8772f13..c204a89 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomerFile.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyCustomerFile.java @@ -1,20 +1,32 @@ -package com.ecep.contract.manager.ds.customer.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.customer.CompanyCustomerFileType; -import com.ecep.contract.manager.ds.other.model.CompanyBasicFile; -import jakarta.persistence.*; +import java.io.Serializable; +import java.time.LocalDate; + +import com.ecep.contract.CompanyCustomerFileType; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import java.time.LocalDate; - @Getter @Setter @Entity @Table(name = "COMPANY_CUSTOMER_FILE") @ToString -public class CompanyCustomerFile implements CompanyBasicFile { +public class CompanyCustomerFile implements CompanyBasicFile, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomerFileTypeLocal.java b/common/src/main/java/com/ecep/contract/model/CompanyCustomerFileTypeLocal.java similarity index 56% rename from src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomerFileTypeLocal.java rename to common/src/main/java/com/ecep/contract/model/CompanyCustomerFileTypeLocal.java index a47b19e..634176b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomerFileTypeLocal.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyCustomerFileTypeLocal.java @@ -1,7 +1,9 @@ -package com.ecep.contract.manager.ds.customer.model; +package com.ecep.contract.model; + +import java.io.Serializable; + +import com.ecep.contract.CompanyCustomerFileType; -import com.ecep.contract.manager.ds.customer.CompanyCustomerFileType; -import com.ecep.contract.manager.ds.other.model.BaseEnumEntity; import jakarta.persistence.Entity; import jakarta.persistence.Table; import lombok.Getter; @@ -13,6 +15,7 @@ import lombok.ToString; @Entity @Table(name = "COMPANY_CUSTOMER_FILE_TYPE_LOCAL") @ToString -public class CompanyCustomerFileTypeLocal extends BaseEnumEntity { +public class CompanyCustomerFileTypeLocal extends BaseEnumEntity implements Serializable { + private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyExtendInfo.java b/common/src/main/java/com/ecep/contract/model/CompanyExtendInfo.java similarity index 75% rename from src/main/java/com/ecep/contract/manager/ds/company/model/CompanyExtendInfo.java rename to common/src/main/java/com/ecep/contract/model/CompanyExtendInfo.java index 60e8c8d..ffcc2b0 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyExtendInfo.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyExtendInfo.java @@ -1,20 +1,32 @@ -package com.ecep.contract.manager.ds.company.model; +package com.ecep.contract.model; + +import java.io.Serializable; +import java.util.Objects; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; import org.hibernate.annotations.ColumnDefault; import org.hibernate.proxy.HibernateProxy; -import java.util.Objects; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import jakarta.persistence.Version; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; @Getter @Setter @Entity @Table(name = "COMPANY_EXTEND_INFO", schema = "supplier_ms") @ToString -public class CompanyExtendInfo { +public class CompanyExtendInfo implements IdentityEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyFile.java b/common/src/main/java/com/ecep/contract/model/CompanyFile.java similarity index 61% rename from src/main/java/com/ecep/contract/manager/ds/company/model/CompanyFile.java rename to common/src/main/java/com/ecep/contract/model/CompanyFile.java index 7583569..dc2dc69 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyFile.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyFile.java @@ -1,14 +1,25 @@ -package com.ecep.contract.manager.ds.company.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.company.CompanyFileType; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; +import java.io.Serializable; +import java.time.LocalDate; + +import com.ecep.contract.CompanyFileType; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import java.time.LocalDate; - /** * 公司文件 */ @@ -17,7 +28,8 @@ import java.time.LocalDate; @Entity @Table(name = "COMPANY_FILE") @ToString -public class CompanyFile implements IdentityEntity, CompanyBasedEntity { +public class CompanyFile implements IdentityEntity, CompanyBasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/common/src/main/java/com/ecep/contract/model/CompanyFileTypeLocal.java b/common/src/main/java/com/ecep/contract/model/CompanyFileTypeLocal.java new file mode 100644 index 0000000..9df5569 --- /dev/null +++ b/common/src/main/java/com/ecep/contract/model/CompanyFileTypeLocal.java @@ -0,0 +1,20 @@ +package com.ecep.contract.model; + +import java.io.Serializable; + +import com.ecep.contract.CompanyFileType; + +import jakarta.persistence.Entity; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@Getter +@Setter +@Entity +@Table(name = "COMPANY_FILE_TYPE_LOCAL") +@ToString +public class CompanyFileTypeLocal extends BaseEnumEntity implements Serializable { + private static final long serialVersionUID = 1L; +} diff --git a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyInvoiceInfo.java b/common/src/main/java/com/ecep/contract/model/CompanyInvoiceInfo.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/ds/company/model/CompanyInvoiceInfo.java rename to common/src/main/java/com/ecep/contract/model/CompanyInvoiceInfo.java index 7ebfc1f..44bef72 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyInvoiceInfo.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyInvoiceInfo.java @@ -1,14 +1,22 @@ -package com.ecep.contract.manager.ds.company.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.NamedEntity; -import jakarta.persistence.*; +import java.io.Serializable; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; /** * 公司发票信息 @@ -18,7 +26,8 @@ import java.util.Objects; @Entity @Table(name = "COMPANY_INVOICE_INFO", schema = "supplier_ms") @ToString -public class CompanyInvoiceInfo implements IdentityEntity, NamedEntity, com.ecep.contract.manager.ds.other.model.Entity, CompanyBasedEntity { +public class CompanyInvoiceInfo implements IdentityEntity, NamedEntity, BasedEntity, CompanyBasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyOldName.java b/common/src/main/java/com/ecep/contract/model/CompanyOldName.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/ds/company/model/CompanyOldName.java rename to common/src/main/java/com/ecep/contract/model/CompanyOldName.java index 6af01e2..25abee9 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyOldName.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyOldName.java @@ -1,23 +1,30 @@ -package com.ecep.contract.manager.ds.company.model; +package com.ecep.contract.model; + +import java.io.Serializable; +import java.time.LocalDate; +import java.util.Objects; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.NamedEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; import org.hibernate.annotations.ColumnDefault; import org.hibernate.proxy.HibernateProxy; -import java.time.LocalDate; -import java.util.Objects; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import jakarta.persistence.Version; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; @Getter @Setter @Entity @Table(name = "COMPANY_OLDNAME") @ToString -public class CompanyOldName implements IdentityEntity, NamedEntity { +public class CompanyOldName implements IdentityEntity, NamedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendor.java b/common/src/main/java/com/ecep/contract/model/CompanyVendor.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendor.java rename to common/src/main/java/com/ecep/contract/model/CompanyVendor.java index 24ab5cb..cde811a 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendor.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyVendor.java @@ -1,22 +1,29 @@ -package com.ecep.contract.manager.ds.vendor.model; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyBasedEntity; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.vendor.VendorType; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.annotations.ColumnDefault; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.model; +import java.io.Serializable; import java.time.Instant; import java.time.LocalDate; import java.util.List; import java.util.Objects; +import org.hibernate.annotations.ColumnDefault; +import org.hibernate.proxy.HibernateProxy; + +import com.ecep.contract.VendorType; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import jakarta.persistence.Version; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * 供应商 */ @@ -27,7 +34,8 @@ import java.util.Objects; }) @ToString -public class CompanyVendor implements IdentityEntity, CompanyBasedEntity { +public class CompanyVendor implements IdentityEntity, CompanyBasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @Column(name = "ID", nullable = false) private Integer id; diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendorApprovedFile.java b/common/src/main/java/com/ecep/contract/model/CompanyVendorApprovedFile.java similarity index 66% rename from src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendorApprovedFile.java rename to common/src/main/java/com/ecep/contract/model/CompanyVendorApprovedFile.java index 4e180e7..7861424 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendorApprovedFile.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyVendorApprovedFile.java @@ -1,13 +1,21 @@ -package com.ecep.contract.manager.ds.vendor.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; +import java.io.Serializable; +import java.time.LocalDate; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import java.time.LocalDate; - /** * 供方名录里的文件 */ @@ -16,7 +24,8 @@ import java.time.LocalDate; @Entity @Table(name = "COMPANY_VENDOR_APPROVED_FILE") @ToString -public class CompanyVendorApprovedFile implements IdentityEntity { +public class CompanyVendorApprovedFile implements IdentityEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendorApprovedItem.java b/common/src/main/java/com/ecep/contract/model/CompanyVendorApprovedItem.java similarity index 80% rename from src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendorApprovedItem.java rename to common/src/main/java/com/ecep/contract/model/CompanyVendorApprovedItem.java index 47af898..5f669f9 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendorApprovedItem.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyVendorApprovedItem.java @@ -1,14 +1,24 @@ -package com.ecep.contract.manager.ds.vendor.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.vendor.VendorType; -import jakarta.persistence.*; +import java.io.Serializable; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import com.ecep.contract.VendorType; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; /** * 供方名录里的供应商 @@ -18,7 +28,8 @@ import java.util.Objects; @Entity @Table(name = "COMPANY_VENDOR_APPROVED_ITEM") @ToString -public class CompanyVendorApprovedItem implements IdentityEntity { +public class CompanyVendorApprovedItem implements IdentityEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendorApprovedList.java b/common/src/main/java/com/ecep/contract/model/CompanyVendorApprovedList.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendorApprovedList.java rename to common/src/main/java/com/ecep/contract/model/CompanyVendorApprovedList.java index 9ffcca9..c1daef0 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendorApprovedList.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyVendorApprovedList.java @@ -1,14 +1,20 @@ -package com.ecep.contract.manager.ds.vendor.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; +import java.io.Serializable; +import java.time.LocalDate; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.time.LocalDate; -import java.util.Objects; /** @@ -21,7 +27,8 @@ import java.util.Objects; @Entity @Table(name = "COMPANY_VENDOR_APPROVED") @ToString -public class CompanyVendorApprovedList implements IdentityEntity { +public class CompanyVendorApprovedList implements IdentityEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendorEntity.java b/common/src/main/java/com/ecep/contract/model/CompanyVendorEntity.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendorEntity.java rename to common/src/main/java/com/ecep/contract/model/CompanyVendorEntity.java index bfb9dd1..0f4f226 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendorEntity.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyVendorEntity.java @@ -1,17 +1,25 @@ -package com.ecep.contract.manager.ds.vendor.model; - -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.model; +import java.io.Serializable; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Objects; +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * 供应商的关联详细项,关联信息用于绑定U8系统中的供应商编号 @@ -23,7 +31,8 @@ import java.util.Objects; }) @ToString -public class CompanyVendorEntity implements IdentityEntity { +public class CompanyVendorEntity implements IdentityEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @Column(name = "ID", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendorFile.java b/common/src/main/java/com/ecep/contract/model/CompanyVendorFile.java similarity index 62% rename from src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendorFile.java rename to common/src/main/java/com/ecep/contract/model/CompanyVendorFile.java index 1df1269..8c798a1 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendorFile.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyVendorFile.java @@ -1,14 +1,25 @@ -package com.ecep.contract.manager.ds.vendor.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.other.model.CompanyBasicFile; -import com.ecep.contract.manager.ds.vendor.CompanyVendorFileType; -import jakarta.persistence.*; +import java.io.Serializable; +import java.time.LocalDate; + +import com.ecep.contract.CompanyVendorFileType; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import java.time.LocalDate; - /** * 供应商的文件 */ @@ -17,7 +28,8 @@ import java.time.LocalDate; @Entity @Table(name = "COMPANY_VENDOR_FILE") @ToString -public class CompanyVendorFile implements CompanyBasicFile { +public class CompanyVendorFile implements CompanyBasicFile, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendorFileTypeLocal.java b/common/src/main/java/com/ecep/contract/model/CompanyVendorFileTypeLocal.java similarity index 67% rename from src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendorFileTypeLocal.java rename to common/src/main/java/com/ecep/contract/model/CompanyVendorFileTypeLocal.java index 9db5d3b..d1e3a77 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendorFileTypeLocal.java +++ b/common/src/main/java/com/ecep/contract/model/CompanyVendorFileTypeLocal.java @@ -1,7 +1,7 @@ -package com.ecep.contract.manager.ds.vendor.model; +package com.ecep.contract.model; + +import com.ecep.contract.CompanyVendorFileType; -import com.ecep.contract.manager.ds.other.model.BaseEnumEntity; -import com.ecep.contract.manager.ds.vendor.CompanyVendorFileType; import jakarta.persistence.Entity; import jakarta.persistence.Table; import lombok.Getter; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/Contract.java b/common/src/main/java/com/ecep/contract/model/Contract.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/Contract.java rename to common/src/main/java/com/ecep/contract/model/Contract.java index 26eeb3f..cd86a10 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/Contract.java +++ b/common/src/main/java/com/ecep/contract/model/Contract.java @@ -1,23 +1,32 @@ -package com.ecep.contract.manager.ds.contract.model; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyBasedEntity; -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.NamedEntity; -import com.ecep.contract.manager.ds.project.model.Project; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.annotations.ColumnDefault; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.model; +import java.io.Serializable; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Objects; +import org.hibernate.annotations.ColumnDefault; +import org.hibernate.proxy.HibernateProxy; + +import com.ecep.contract.ContractPayWay; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.Lob; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import jakarta.persistence.Version; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * 合同类 */ @@ -26,7 +35,8 @@ import java.util.Objects; @Entity @Table(name = "CONTRACT", schema = "supplier_ms") @ToString -public class Contract implements IdentityEntity, NamedEntity, com.ecep.contract.manager.ds.other.model.Entity, CompanyBasedEntity { +public class Contract implements IdentityEntity, NamedEntity, BasedEntity, CompanyBasedEntity, Serializable { + private static final long serialVersionUID = 1L; /** * 主键 */ diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractBasedEntity.java b/common/src/main/java/com/ecep/contract/model/ContractBasedEntity.java similarity index 67% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/ContractBasedEntity.java rename to common/src/main/java/com/ecep/contract/model/ContractBasedEntity.java index decc298..9677ce7 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractBasedEntity.java +++ b/common/src/main/java/com/ecep/contract/model/ContractBasedEntity.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.contract.model; +package com.ecep.contract.model; public interface ContractBasedEntity { Contract getContract(); diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractBidVendor.java b/common/src/main/java/com/ecep/contract/model/ContractBidVendor.java similarity index 52% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/ContractBidVendor.java rename to common/src/main/java/com/ecep/contract/model/ContractBidVendor.java index 235e777..e53f915 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractBidVendor.java +++ b/common/src/main/java/com/ecep/contract/model/ContractBidVendor.java @@ -1,12 +1,20 @@ -package com.ecep.contract.manager.ds.contract.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; +import java.io.Serializable; +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; /** * 比价供应商 @@ -18,7 +26,8 @@ import org.hibernate.proxy.HibernateProxy; }) @ToString -public class ContractBidVendor implements IdentityEntity, ContractBasedEntity { +public class ContractBidVendor implements IdentityEntity, ContractBasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) @@ -44,17 +53,26 @@ public class ContractBidVendor implements IdentityEntity, ContractBasedEntity { @Override public final boolean equals(Object object) { - if (this == object) return true; - if (object == null) return false; - Class oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass(); - Class thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass(); - if (thisEffectiveClass != oEffectiveClass) return false; + if (this == object) + return true; + if (object == null) + return false; + Class oEffectiveClass = object instanceof HibernateProxy + ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() + : object.getClass(); + Class thisEffectiveClass = this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() + : this.getClass(); + if (thisEffectiveClass != oEffectiveClass) + return false; ContractBidVendor that = (ContractBidVendor) object; return equals(that); } @Override public final int hashCode() { - return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode(); + return this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() + : getClass().hashCode(); } } diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractCatalog.java b/common/src/main/java/com/ecep/contract/model/ContractCatalog.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/ContractCatalog.java rename to common/src/main/java/com/ecep/contract/model/ContractCatalog.java index d2c6721..64ed086 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractCatalog.java +++ b/common/src/main/java/com/ecep/contract/model/ContractCatalog.java @@ -1,13 +1,18 @@ -package com.ecep.contract.manager.ds.contract.model; +package com.ecep.contract.model; + +import java.io.Serializable; +import java.util.Objects; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.NamedEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; import org.hibernate.proxy.HibernateProxy; -import java.util.Objects; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; /** * 合同编号中前缀部分代表合同种类 @@ -18,7 +23,8 @@ import java.util.Objects; @Setter @Entity @Table(name = "CONTRACT_CATALOG", schema = "supplier_ms") -public class ContractCatalog implements IdentityEntity, NamedEntity { +public class ContractCatalog implements IdentityEntity, NamedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractFile.java b/common/src/main/java/com/ecep/contract/model/ContractFile.java similarity index 76% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/ContractFile.java rename to common/src/main/java/com/ecep/contract/model/ContractFile.java index 44793c3..7311960 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractFile.java +++ b/common/src/main/java/com/ecep/contract/model/ContractFile.java @@ -1,15 +1,27 @@ -package com.ecep.contract.manager.ds.contract.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; +import java.io.Serializable; +import java.time.LocalDate; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import com.ecep.contract.ContractFileType; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.time.LocalDate; -import java.util.Objects; /** * 合同的文件 @@ -19,7 +31,8 @@ import java.util.Objects; @Entity @Table(name = "CONTRACT_FILE") @ToString -public class ContractFile implements IdentityEntity, ContractBasedEntity { +public class ContractFile implements IdentityEntity, ContractBasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractFileTypeLocal.java b/common/src/main/java/com/ecep/contract/model/ContractFileTypeLocal.java similarity index 65% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/ContractFileTypeLocal.java rename to common/src/main/java/com/ecep/contract/model/ContractFileTypeLocal.java index d4a7b90..b079f2d 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractFileTypeLocal.java +++ b/common/src/main/java/com/ecep/contract/model/ContractFileTypeLocal.java @@ -1,8 +1,10 @@ -package com.ecep.contract.manager.ds.contract.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.other.model.BaseEnumEntity; -import jakarta.persistence.*; +import com.ecep.contract.ContractFileType; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractGroup.java b/common/src/main/java/com/ecep/contract/model/ContractGroup.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/ContractGroup.java rename to common/src/main/java/com/ecep/contract/model/ContractGroup.java index 2895552..8473485 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractGroup.java +++ b/common/src/main/java/com/ecep/contract/model/ContractGroup.java @@ -1,13 +1,18 @@ -package com.ecep.contract.manager.ds.contract.model; +package com.ecep.contract.model; + +import java.io.Serializable; +import java.util.Objects; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.NamedEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; import org.hibernate.proxy.HibernateProxy; -import java.util.Objects; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; /** * 用友U8系统中的合同分组 @@ -16,7 +21,8 @@ import java.util.Objects; @Setter @Entity @Table(name = "CONTRACT_GROUP", schema = "supplier_ms") -public class ContractGroup implements IdentityEntity, NamedEntity { +public class ContractGroup implements IdentityEntity, NamedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @Column(name = "ID", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractItem.java b/common/src/main/java/com/ecep/contract/model/ContractItem.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/ContractItem.java rename to common/src/main/java/com/ecep/contract/model/ContractItem.java index 5a2c34c..923c237 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractItem.java +++ b/common/src/main/java/com/ecep/contract/model/ContractItem.java @@ -1,18 +1,25 @@ -package com.ecep.contract.manager.ds.contract.model; - -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.Inventory; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.model; +import java.io.Serializable; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Objects; +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * 合同项目, CM_Contract_Item_B */ @@ -21,7 +28,8 @@ import java.util.Objects; @Entity @Table(name = "CONTRACT_ITEM") @ToString -public class ContractItem implements IdentityEntity, ContractBasedEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class ContractItem implements IdentityEntity, ContractBasedEntity, BasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractKind.java b/common/src/main/java/com/ecep/contract/model/ContractKind.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/ContractKind.java rename to common/src/main/java/com/ecep/contract/model/ContractKind.java index d856978..c7c3e24 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractKind.java +++ b/common/src/main/java/com/ecep/contract/model/ContractKind.java @@ -1,14 +1,19 @@ -package com.ecep.contract.manager.ds.contract.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.NamedEntity; -import jakarta.persistence.*; +import java.io.Serializable; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; /** * 用友U8系统中的合同分类 @@ -18,7 +23,8 @@ import java.util.Objects; @Entity @Table(name = "CONTRACT_KIND", schema = "supplier_ms") @ToString -public class ContractKind implements IdentityEntity, NamedEntity { +public class ContractKind implements IdentityEntity, NamedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @Column(name = "ID", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractPayPlan.java b/common/src/main/java/com/ecep/contract/model/ContractPayPlan.java similarity index 70% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/ContractPayPlan.java rename to common/src/main/java/com/ecep/contract/model/ContractPayPlan.java index 9c5ec22..2e9f802 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractPayPlan.java +++ b/common/src/main/java/com/ecep/contract/model/ContractPayPlan.java @@ -1,13 +1,21 @@ -package com.ecep.contract.manager.ds.contract.model; - -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; +package com.ecep.contract.model; +import java.io.Serializable; import java.time.LocalDate; import java.time.LocalDateTime; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; + /** * 合同付款计划, CM_Contract_Pay */ @@ -16,7 +24,8 @@ import java.time.LocalDateTime; @Entity @Table(name = "CONTRACT_PAY_PLAN", schema = "supplier_ms", indexes = { }) -public class ContractPayPlan implements IdentityEntity, ContractBasedEntity { +public class ContractPayPlan implements IdentityEntity, ContractBasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractType.java b/common/src/main/java/com/ecep/contract/model/ContractType.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/ContractType.java rename to common/src/main/java/com/ecep/contract/model/ContractType.java index e4d7f92..5ea409a 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractType.java +++ b/common/src/main/java/com/ecep/contract/model/ContractType.java @@ -1,14 +1,19 @@ -package com.ecep.contract.manager.ds.contract.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.NamedEntity; -import jakarta.persistence.*; +import java.io.Serializable; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; /** * 用友U8系统中的合同类型 @@ -18,7 +23,8 @@ import java.util.Objects; @Entity @Table(name = "CONTRACT_TYPE", schema = "supplier_ms") @ToString -public class ContractType implements IdentityEntity, NamedEntity { +public class ContractType implements IdentityEntity, NamedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @Column(name = "ID", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/model/CustomerCatalog.java b/common/src/main/java/com/ecep/contract/model/CustomerCatalog.java similarity index 60% rename from src/main/java/com/ecep/contract/manager/ds/customer/model/CustomerCatalog.java rename to common/src/main/java/com/ecep/contract/model/CustomerCatalog.java index 3e81541..91fff51 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/model/CustomerCatalog.java +++ b/common/src/main/java/com/ecep/contract/model/CustomerCatalog.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.customer.model; +package com.ecep.contract.model; import jakarta.persistence.*; import lombok.Getter; @@ -16,7 +16,7 @@ import java.util.Objects; @Entity @Table(name = "CUSTOMER_CATALOG", schema = "supplier_ms") @ToString -public class CustomerCatalog implements com.ecep.contract.manager.ds.other.model.Entity { +public class CustomerCatalog implements BasedEntity { @Id @Column(name = "ID", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -41,17 +41,26 @@ public class CustomerCatalog implements com.ecep.contract.manager.ds.other.model @Override public final boolean equals(Object object) { - if (this == object) return true; - if (object == null) return false; - Class oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass(); - Class thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass(); - if (thisEffectiveClass != oEffectiveClass) return false; + if (this == object) + return true; + if (object == null) + return false; + Class oEffectiveClass = object instanceof HibernateProxy + ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() + : object.getClass(); + Class thisEffectiveClass = this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() + : this.getClass(); + if (thisEffectiveClass != oEffectiveClass) + return false; CustomerCatalog that = (CustomerCatalog) object; return getId() != null && Objects.equals(getId(), that.getId()); } @Override public final int hashCode() { - return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode(); + return this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() + : getClass().hashCode(); } } diff --git a/src/main/java/com/ecep/contract/manager/ds/project/model/CustomerSatisfactionSurvey.java b/common/src/main/java/com/ecep/contract/model/CustomerSatisfactionSurvey.java similarity index 80% rename from src/main/java/com/ecep/contract/manager/ds/project/model/CustomerSatisfactionSurvey.java rename to common/src/main/java/com/ecep/contract/model/CustomerSatisfactionSurvey.java index 775b06d..1edad16 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/model/CustomerSatisfactionSurvey.java +++ b/common/src/main/java/com/ecep/contract/model/CustomerSatisfactionSurvey.java @@ -1,15 +1,21 @@ -package com.ecep.contract.manager.ds.project.model; - -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; +package com.ecep.contract.model; import java.time.LocalDate; import java.time.LocalDateTime; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * 项目客户满意度调查 */ diff --git a/src/main/java/com/ecep/contract/manager/ds/project/model/DeliverySignMethod.java b/common/src/main/java/com/ecep/contract/model/DeliverySignMethod.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/ds/project/model/DeliverySignMethod.java rename to common/src/main/java/com/ecep/contract/model/DeliverySignMethod.java index 6cef4f6..e92e1e1 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/model/DeliverySignMethod.java +++ b/common/src/main/java/com/ecep/contract/model/DeliverySignMethod.java @@ -1,13 +1,21 @@ -package com.ecep.contract.manager.ds.project.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; /** * 项目交货签收方式 @@ -16,7 +24,7 @@ import java.util.Objects; @Setter @Entity @Table(name = "PRODUCT_DELIVERY_SIGN_METHOD", schema = "supplier_ms") -public class DeliverySignMethod implements com.ecep.contract.manager.ds.other.model.Entity, IdentityEntity { +public class DeliverySignMethod implements BasedEntity, IdentityEntity { @Id @Column(name = "ID", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/Department.java b/common/src/main/java/com/ecep/contract/model/Department.java similarity index 76% rename from src/main/java/com/ecep/contract/manager/ds/other/model/Department.java rename to common/src/main/java/com/ecep/contract/model/Department.java index ea49c74..7c8b71e 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/Department.java +++ b/common/src/main/java/com/ecep/contract/model/Department.java @@ -1,18 +1,28 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; -import jakarta.persistence.*; +import java.io.Serializable; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; @Getter @Setter @jakarta.persistence.Entity @Table(name = "DEPARTMENT", schema = "supplier_ms") -public class Department implements Entity, IdentityEntity { +public class Department implements BasedEntity, IdentityEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/Employee.java b/common/src/main/java/com/ecep/contract/model/Employee.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/ds/other/model/Employee.java rename to common/src/main/java/com/ecep/contract/model/Employee.java index f46275c..121fb89 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/Employee.java +++ b/common/src/main/java/com/ecep/contract/model/Employee.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; import jakarta.persistence.*; import lombok.Getter; @@ -6,6 +6,7 @@ import lombok.Setter; import lombok.ToString; import org.hibernate.proxy.HibernateProxy; +import java.io.Serializable; import java.time.LocalDate; import java.util.Objects; @@ -13,7 +14,8 @@ import java.util.Objects; @Setter @jakarta.persistence.Entity @Table(name = "EMPLOYEE", schema = "supplier_ms") -public class Employee implements Entity, IdentityEntity, NamedEntity { +public class Employee implements BasedEntity, IdentityEntity, NamedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/EmployeeAuthBind.java b/common/src/main/java/com/ecep/contract/model/EmployeeAuthBind.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ds/other/model/EmployeeAuthBind.java rename to common/src/main/java/com/ecep/contract/model/EmployeeAuthBind.java index 0d2d663..d6716cb 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/EmployeeAuthBind.java +++ b/common/src/main/java/com/ecep/contract/model/EmployeeAuthBind.java @@ -1,5 +1,6 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; +import java.io.Serializable; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; @@ -13,7 +14,8 @@ import java.util.Objects; @Setter @jakarta.persistence.Entity @Table(name = "EMPLOYEE_AUTH_BIND", schema = "supplier_ms") -public class EmployeeAuthBind implements Entity, IdentityEntity { +public class EmployeeAuthBind implements BasedEntity, IdentityEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/EmployeeLoginHistory.java b/common/src/main/java/com/ecep/contract/model/EmployeeLoginHistory.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/other/model/EmployeeLoginHistory.java rename to common/src/main/java/com/ecep/contract/model/EmployeeLoginHistory.java index 3770d26..1a93152 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/EmployeeLoginHistory.java +++ b/common/src/main/java/com/ecep/contract/model/EmployeeLoginHistory.java @@ -1,10 +1,11 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; import org.hibernate.proxy.HibernateProxy; +import java.io.Serializable; import java.time.LocalDateTime; import java.util.Objects; @@ -12,7 +13,9 @@ import java.util.Objects; @Setter @jakarta.persistence.Entity @Table(name = "EMPLOYEE_LOGIN_HISTORY", schema = "supplier_ms") -public class EmployeeLoginHistory implements Entity ,IdentityEntity{ +public class EmployeeLoginHistory implements BasedEntity ,IdentityEntity, Serializable { + + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/EmployeeRole.java b/common/src/main/java/com/ecep/contract/model/EmployeeRole.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ds/other/model/EmployeeRole.java rename to common/src/main/java/com/ecep/contract/model/EmployeeRole.java index 69150a3..d0b07ee 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/EmployeeRole.java +++ b/common/src/main/java/com/ecep/contract/model/EmployeeRole.java @@ -1,14 +1,18 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; +import java.io.Serializable; + @Getter @Setter @jakarta.persistence.Entity @Table(name = "EMPLOYEE_ROLE", schema = "supplier_ms") -public class EmployeeRole implements IdentityEntity, NamedEntity { +public class EmployeeRole implements IdentityEntity, NamedEntity, Serializable { + + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/ExtendVendorInfo.java b/common/src/main/java/com/ecep/contract/model/ExtendVendorInfo.java similarity index 56% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/ExtendVendorInfo.java rename to common/src/main/java/com/ecep/contract/model/ExtendVendorInfo.java index 9a13ce2..9986527 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/ExtendVendorInfo.java +++ b/common/src/main/java/com/ecep/contract/model/ExtendVendorInfo.java @@ -1,20 +1,28 @@ -package com.ecep.contract.manager.ds.contract.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.vendor.model.VendorGroup; -import jakarta.persistence.*; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; @Getter @Setter @Entity @Table(name = "CONTRACT_EXTEND_VENDOR_INFO", schema = "supplier_ms") @ToString -public class ExtendVendorInfo { +public class ExtendVendorInfo implements IdentityEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) @@ -50,17 +58,26 @@ public class ExtendVendorInfo { @Override public final boolean equals(Object object) { - if (this == object) return true; - if (object == null) return false; - Class oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass(); - Class thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass(); - if (thisEffectiveClass != oEffectiveClass) return false; + if (this == object) + return true; + if (object == null) + return false; + Class oEffectiveClass = object instanceof HibernateProxy + ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() + : object.getClass(); + Class thisEffectiveClass = this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() + : this.getClass(); + if (thisEffectiveClass != oEffectiveClass) + return false; ExtendVendorInfo that = (ExtendVendorInfo) object; return getId() != null && Objects.equals(getId(), that.getId()); } @Override public final int hashCode() { - return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode(); + return this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() + : getClass().hashCode(); } } diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/Function.java b/common/src/main/java/com/ecep/contract/model/Function.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/ds/other/model/Function.java rename to common/src/main/java/com/ecep/contract/model/Function.java index 4560418..b0ba179 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/Function.java +++ b/common/src/main/java/com/ecep/contract/model/Function.java @@ -1,14 +1,18 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; +import java.io.Serializable; + @Getter @Setter @jakarta.persistence.Entity @Table(name = "FUNC", schema = "supplier_ms") -public class Function implements IdentityEntity, NamedEntity { +public class Function implements IdentityEntity, NamedEntity, Serializable { + + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/HistoryPrice.java b/common/src/main/java/com/ecep/contract/model/HistoryPrice.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/other/model/HistoryPrice.java rename to common/src/main/java/com/ecep/contract/model/HistoryPrice.java index bd5cbb5..25a537b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/HistoryPrice.java +++ b/common/src/main/java/com/ecep/contract/model/HistoryPrice.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; import jakarta.persistence.Embeddable; import lombok.Data; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/HolidayTable.java b/common/src/main/java/com/ecep/contract/model/HolidayTable.java similarity index 92% rename from src/main/java/com/ecep/contract/manager/ds/other/model/HolidayTable.java rename to common/src/main/java/com/ecep/contract/model/HolidayTable.java index 681388c..4fe3a4c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/HolidayTable.java +++ b/common/src/main/java/com/ecep/contract/model/HolidayTable.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; import jakarta.persistence.Column; import jakarta.persistence.Entity; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/IdentityEntity.java b/common/src/main/java/com/ecep/contract/model/IdentityEntity.java similarity index 86% rename from src/main/java/com/ecep/contract/manager/ds/other/model/IdentityEntity.java rename to common/src/main/java/com/ecep/contract/model/IdentityEntity.java index a15ab3a..7124ddb 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/IdentityEntity.java +++ b/common/src/main/java/com/ecep/contract/model/IdentityEntity.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; import java.util.Objects; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/Inventory.java b/common/src/main/java/com/ecep/contract/model/Inventory.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/other/model/Inventory.java rename to common/src/main/java/com/ecep/contract/model/Inventory.java index b04378c..b7c2956 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/Inventory.java +++ b/common/src/main/java/com/ecep/contract/model/Inventory.java @@ -1,24 +1,38 @@ -package com.ecep.contract.manager.ds.other.model; - -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.model; +import java.io.Serializable; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Objects; +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.AttributeOverride; +import jakarta.persistence.AttributeOverrides; +import jakarta.persistence.Column; +import jakarta.persistence.Embedded; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * 存货物品清单 */ @Getter @Setter -@jakarta.persistence.Entity +@Entity @Table(name = "INVENTORY", schema = "supplier_ms") -public class Inventory implements IdentityEntity, Entity { +public class Inventory implements IdentityEntity, BasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/InventoryCatalog.java b/common/src/main/java/com/ecep/contract/model/InventoryCatalog.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ds/other/model/InventoryCatalog.java rename to common/src/main/java/com/ecep/contract/model/InventoryCatalog.java index 17f23f3..63c819a 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/InventoryCatalog.java +++ b/common/src/main/java/com/ecep/contract/model/InventoryCatalog.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; import jakarta.persistence.*; import lombok.Getter; @@ -12,9 +12,9 @@ import java.util.Objects; */ @Getter @Setter -@jakarta.persistence.Entity +@Entity @Table(name = "INVENTORY_CATALOG", schema = "supplier_ms") -public class InventoryCatalog implements Entity { +public class InventoryCatalog implements IdentityEntity, BasedEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/InventoryHistoryPrice.java b/common/src/main/java/com/ecep/contract/model/InventoryHistoryPrice.java similarity index 98% rename from src/main/java/com/ecep/contract/manager/ds/other/model/InventoryHistoryPrice.java rename to common/src/main/java/com/ecep/contract/model/InventoryHistoryPrice.java index 912ed63..8a37a0f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/InventoryHistoryPrice.java +++ b/common/src/main/java/com/ecep/contract/model/InventoryHistoryPrice.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; import jakarta.persistence.Entity; import jakarta.persistence.*; diff --git a/src/main/java/com/ecep/contract/manager/ds/company/model/Invoice.java b/common/src/main/java/com/ecep/contract/model/Invoice.java similarity index 53% rename from src/main/java/com/ecep/contract/manager/ds/company/model/Invoice.java rename to common/src/main/java/com/ecep/contract/model/Invoice.java index 9604ab6..c53ace2 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/model/Invoice.java +++ b/common/src/main/java/com/ecep/contract/model/Invoice.java @@ -1,15 +1,24 @@ -package com.ecep.contract.manager.ds.company.model; +package com.ecep.contract.model; + +import java.io.Serializable; +import java.time.LocalDate; +import java.util.Objects; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; import org.hibernate.proxy.HibernateProxy; import org.springframework.util.StringUtils; -import java.time.LocalDate; -import java.util.Objects; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; /** * 发票 @@ -19,7 +28,8 @@ import java.util.Objects; @Entity @Table(name = "INVOICE", schema = "supplier_ms") @ToString -public class Invoice implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class Invoice implements IdentityEntity, BasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -62,17 +72,26 @@ public class Invoice implements IdentityEntity, com.ecep.contract.manager.ds.oth @Override public final boolean equals(Object o) { - if (this == o) return true; - if (o == null) return false; - Class oEffectiveClass = o instanceof HibernateProxy ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() : o.getClass(); - Class thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass(); - if (thisEffectiveClass != oEffectiveClass) return false; + if (this == o) + return true; + if (o == null) + return false; + Class oEffectiveClass = o instanceof HibernateProxy + ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() + : o.getClass(); + Class thisEffectiveClass = this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() + : this.getClass(); + if (thisEffectiveClass != oEffectiveClass) + return false; Invoice invoice = (Invoice) o; return getId() != null && Objects.equals(getId(), invoice.getId()); } @Override public final int hashCode() { - return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode(); + return this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() + : getClass().hashCode(); } } diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/NamedEntity.java b/common/src/main/java/com/ecep/contract/model/NamedEntity.java similarity index 63% rename from src/main/java/com/ecep/contract/manager/ds/other/model/NamedEntity.java rename to common/src/main/java/com/ecep/contract/model/NamedEntity.java index 466ac61..0f2adbb 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/NamedEntity.java +++ b/common/src/main/java/com/ecep/contract/model/NamedEntity.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; public interface NamedEntity { String getName(); diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/Permission.java b/common/src/main/java/com/ecep/contract/model/Permission.java similarity index 74% rename from src/main/java/com/ecep/contract/manager/ds/other/model/Permission.java rename to common/src/main/java/com/ecep/contract/model/Permission.java index c1cc942..956d484 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/Permission.java +++ b/common/src/main/java/com/ecep/contract/model/Permission.java @@ -1,5 +1,6 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; +import java.io.Serializable; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; @@ -9,7 +10,8 @@ import lombok.ToString; @Setter @jakarta.persistence.Entity @Table(name = "PERMISSION", schema = "supplier_ms") -public class Permission implements IdentityEntity, NamedEntity{ +public class Permission implements IdentityEntity, NamedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/Price.java b/common/src/main/java/com/ecep/contract/model/Price.java similarity index 64% rename from src/main/java/com/ecep/contract/manager/ds/other/model/Price.java rename to common/src/main/java/com/ecep/contract/model/Price.java index 3891c7b..c78ae48 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/Price.java +++ b/common/src/main/java/com/ecep/contract/model/Price.java @@ -1,11 +1,13 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; +import java.io.Serializable; import jakarta.persistence.Embeddable; import lombok.Data; @Embeddable @Data -public class Price { +public class Price implements Serializable { + private static final long serialVersionUID = 1L; /** * 税率,1% =1,100% =100 */ diff --git a/common/src/main/java/com/ecep/contract/model/ProductType.java b/common/src/main/java/com/ecep/contract/model/ProductType.java new file mode 100644 index 0000000..a2f5f93 --- /dev/null +++ b/common/src/main/java/com/ecep/contract/model/ProductType.java @@ -0,0 +1,69 @@ +package com.ecep.contract.model; + +import java.io.Serializable; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; + +/** + * 产品类型 + */ +@Getter +@Setter +@Entity +@Table(name = "PRODUCT_TYPE") +public class ProductType implements BasedEntity, IdentityEntity, Serializable { + private static final long serialVersionUID = 1L; + @Id + @Column(name = "ID", nullable = false) + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + + @Column(name = "NAME") + private String name; + + @Column(name = "CODE") + private String code; + + @Column(name = "DESCRIPTION", columnDefinition = "TEXT") + private String description; + + @Override + public String toPrettyString() { + return code + " " + name; + } + + @Override + public final boolean equals(Object object) { + if (this == object) + return true; + if (object == null) + return false; + Class oEffectiveClass = object instanceof HibernateProxy + ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() + : object.getClass(); + Class thisEffectiveClass = this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() + : this.getClass(); + if (thisEffectiveClass != oEffectiveClass) + return false; + ProductType that = (ProductType) object; + return getId() != null && Objects.equals(getId(), that.getId()); + } + + @Override + public final int hashCode() { + return this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() + : getClass().hashCode(); + } +} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/project/model/ProductUsage.java b/common/src/main/java/com/ecep/contract/model/ProductUsage.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/project/model/ProductUsage.java rename to common/src/main/java/com/ecep/contract/model/ProductUsage.java index 2c2c7f3..d9b372b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/model/ProductUsage.java +++ b/common/src/main/java/com/ecep/contract/model/ProductUsage.java @@ -1,12 +1,18 @@ -package com.ecep.contract.manager.ds.project.model; +package com.ecep.contract.model; + +import java.io.Serializable; +import java.util.Objects; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; import org.hibernate.proxy.HibernateProxy; -import java.util.Objects; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; /** * 项目产品用途 @@ -15,7 +21,8 @@ import java.util.Objects; @Setter @Entity @Table(name = "PRODUCT_USAGE", schema = "supplier_ms") -public class ProductUsage implements com.ecep.contract.manager.ds.other.model.Entity, IdentityEntity { +public class ProductUsage implements BasedEntity, IdentityEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @Column(name = "ID", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/ecep/contract/manager/ds/project/model/Project.java b/common/src/main/java/com/ecep/contract/model/Project.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/project/model/Project.java rename to common/src/main/java/com/ecep/contract/model/Project.java index d0025c5..5b3b6b2 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/model/Project.java +++ b/common/src/main/java/com/ecep/contract/model/Project.java @@ -1,21 +1,25 @@ -package com.ecep.contract.manager.ds.project.model; +package com.ecep.contract.model; + +import java.io.Serializable; +import java.time.LocalDate; +import java.util.Objects; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyBankAccount; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.company.model.CompanyInvoiceInfo; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.NamedEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; import org.hibernate.annotations.ColumnDefault; import org.hibernate.proxy.HibernateProxy; -import java.time.LocalDate; -import java.util.Objects; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import jakarta.persistence.Version; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; /** * 项目 @@ -25,7 +29,8 @@ import java.util.Objects; @Entity @Table(name = "PROJECT", schema = "supplier_ms") @ToString -public class Project implements IdentityEntity, NamedEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class Project implements IdentityEntity, NamedEntity, BasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectBasedEntity.java b/common/src/main/java/com/ecep/contract/model/ProjectBasedEntity.java similarity index 67% rename from src/main/java/com/ecep/contract/manager/ds/project/model/ProjectBasedEntity.java rename to common/src/main/java/com/ecep/contract/model/ProjectBasedEntity.java index e3a82d1..bc86ee4 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectBasedEntity.java +++ b/common/src/main/java/com/ecep/contract/model/ProjectBasedEntity.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.project.model; +package com.ecep.contract.model; public interface ProjectBasedEntity { diff --git a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectBid.java b/common/src/main/java/com/ecep/contract/model/ProjectBid.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/project/model/ProjectBid.java rename to common/src/main/java/com/ecep/contract/model/ProjectBid.java index 6441324..343d80f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectBid.java +++ b/common/src/main/java/com/ecep/contract/model/ProjectBid.java @@ -1,15 +1,21 @@ -package com.ecep.contract.manager.ds.project.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEvaluationFormFile; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; +import java.time.LocalDateTime; + +import org.hibernate.annotations.ColumnDefault; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.annotations.ColumnDefault; - -import java.time.LocalDateTime; /** * 项目投标 diff --git a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectCost.java b/common/src/main/java/com/ecep/contract/model/ProjectCost.java similarity index 93% rename from src/main/java/com/ecep/contract/manager/ds/project/model/ProjectCost.java rename to common/src/main/java/com/ecep/contract/model/ProjectCost.java index 47c4b14..2de8f5d 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectCost.java +++ b/common/src/main/java/com/ecep/contract/model/ProjectCost.java @@ -1,18 +1,24 @@ -package com.ecep.contract.manager.ds.project.model; - -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.annotations.ColumnDefault; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.model; import java.time.LocalDateTime; import java.util.Objects; +import org.hibernate.annotations.ColumnDefault; +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + @Getter @Setter @Entity diff --git a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectCostItem.java b/common/src/main/java/com/ecep/contract/model/ProjectCostItem.java similarity index 85% rename from src/main/java/com/ecep/contract/manager/ds/project/model/ProjectCostItem.java rename to common/src/main/java/com/ecep/contract/model/ProjectCostItem.java index 4122733..2b5d8b0 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectCostItem.java +++ b/common/src/main/java/com/ecep/contract/model/ProjectCostItem.java @@ -1,23 +1,31 @@ -package com.ecep.contract.manager.ds.project.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.Inventory; -import jakarta.persistence.*; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.time.LocalDateTime; -import java.util.Objects; @Getter @Setter @Entity @Table(name = "PROJECT_COST_ITEM") @ToString -public class ProjectCostItem implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class ProjectCostItem implements IdentityEntity, BasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/common/src/main/java/com/ecep/contract/model/ProjectFile.java b/common/src/main/java/com/ecep/contract/model/ProjectFile.java new file mode 100644 index 0000000..a1a6e91 --- /dev/null +++ b/common/src/main/java/com/ecep/contract/model/ProjectFile.java @@ -0,0 +1,80 @@ +package com.ecep.contract.model; + +import java.io.Serializable; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import com.ecep.contract.ProjectFileType; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +/** + * 项目文件 + */ +@Getter +@Setter +@Entity +@Table(name = "PROJECT_FILE") +@ToString +public class ProjectFile implements IdentityEntity, ProjectBasedEntity, Serializable { + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID", nullable = false) + private Integer id; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "PROJECT_ID") + @ToString.Exclude + private Project project; + + @Column(name = "TYPE") + @Enumerated(EnumType.STRING) + private ProjectFileType type; + + /** + * 资质文件路径,全路径,网盘地址 + */ + @Column(name = "FILE_PATH") + private String filePath; + + @Override + public final boolean equals(Object object) { + if (this == object) + return true; + if (object == null) + return false; + Class oEffectiveClass = object instanceof HibernateProxy + ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() + : object.getClass(); + Class thisEffectiveClass = this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() + : this.getClass(); + if (thisEffectiveClass != oEffectiveClass) + return false; + ProjectFile that = (ProjectFile) object; + return getId() != null && Objects.equals(getId(), that.getId()); + } + + @Override + public final int hashCode() { + return this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() + : getClass().hashCode(); + } +} diff --git a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectFileTypeLocal.java b/common/src/main/java/com/ecep/contract/model/ProjectFileTypeLocal.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ds/project/model/ProjectFileTypeLocal.java rename to common/src/main/java/com/ecep/contract/model/ProjectFileTypeLocal.java index 95cdf4f..36acf36 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectFileTypeLocal.java +++ b/common/src/main/java/com/ecep/contract/model/ProjectFileTypeLocal.java @@ -1,15 +1,16 @@ -package com.ecep.contract.manager.ds.project.model; +package com.ecep.contract.model; + +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import com.ecep.contract.ProjectFileType; -import com.ecep.contract.manager.ds.other.model.BaseEnumEntity; -import com.ecep.contract.manager.ds.project.ProjectFileType; import jakarta.persistence.Entity; import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; @Getter @Setter diff --git a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectFundPlan.java b/common/src/main/java/com/ecep/contract/model/ProjectFundPlan.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ds/project/model/ProjectFundPlan.java rename to common/src/main/java/com/ecep/contract/model/ProjectFundPlan.java index f8e3868..d9058fb 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectFundPlan.java +++ b/common/src/main/java/com/ecep/contract/model/ProjectFundPlan.java @@ -1,11 +1,9 @@ -package com.ecep.contract.manager.ds.project.model; +package com.ecep.contract.model; import java.time.LocalDate; import java.time.LocalDateTime; -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.model.ContractPayPlan; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; +import com.ecep.contract.ContractPayWay; import jakarta.persistence.Column; import jakarta.persistence.Entity; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectIndustry.java b/common/src/main/java/com/ecep/contract/model/ProjectIndustry.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/project/model/ProjectIndustry.java rename to common/src/main/java/com/ecep/contract/model/ProjectIndustry.java index 512cad9..58294e9 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectIndustry.java +++ b/common/src/main/java/com/ecep/contract/model/ProjectIndustry.java @@ -1,14 +1,19 @@ -package com.ecep.contract.manager.ds.project.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.NamedEntity; -import jakarta.persistence.*; +import java.io.Serializable; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; /** * 最终用户行业类型 @@ -20,7 +25,8 @@ import java.util.Objects; }) @ToString -public class ProjectIndustry implements com.ecep.contract.manager.ds.other.model.Entity, IdentityEntity, NamedEntity { +public class ProjectIndustry implements BasedEntity, IdentityEntity, NamedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @Column(name = "ID", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectQuotation.java b/common/src/main/java/com/ecep/contract/model/ProjectQuotation.java similarity index 85% rename from src/main/java/com/ecep/contract/manager/ds/project/model/ProjectQuotation.java rename to common/src/main/java/com/ecep/contract/model/ProjectQuotation.java index c09e11d..42535bf 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectQuotation.java +++ b/common/src/main/java/com/ecep/contract/model/ProjectQuotation.java @@ -1,15 +1,21 @@ -package com.ecep.contract.manager.ds.project.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEvaluationFormFile; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; +import java.time.LocalDateTime; + +import org.hibernate.annotations.ColumnDefault; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.annotations.ColumnDefault; - -import java.time.LocalDateTime; /** * 项目报价 diff --git a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectSaleType.java b/common/src/main/java/com/ecep/contract/model/ProjectSaleType.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/project/model/ProjectSaleType.java rename to common/src/main/java/com/ecep/contract/model/ProjectSaleType.java index 7c06100..964e7ed 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectSaleType.java +++ b/common/src/main/java/com/ecep/contract/model/ProjectSaleType.java @@ -1,14 +1,18 @@ -package com.ecep.contract.manager.ds.project.model; - -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.NamedEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.model; import java.util.Objects; +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; + /** * 销售类型 */ @@ -16,7 +20,7 @@ import java.util.Objects; @Setter @Entity @Table(name = "PROJECT_SALE_TYPE") -public class ProjectSaleType implements IdentityEntity, NamedEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class ProjectSaleType implements IdentityEntity, NamedEntity, BasedEntity { @Id @Column(name = "ID", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectSaleTypeRequireFileType.java b/common/src/main/java/com/ecep/contract/model/ProjectSaleTypeRequireFileType.java similarity index 55% rename from src/main/java/com/ecep/contract/manager/ds/project/model/ProjectSaleTypeRequireFileType.java rename to common/src/main/java/com/ecep/contract/model/ProjectSaleTypeRequireFileType.java index 881bc8d..f74acfb 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectSaleTypeRequireFileType.java +++ b/common/src/main/java/com/ecep/contract/model/ProjectSaleTypeRequireFileType.java @@ -1,14 +1,25 @@ -package com.ecep.contract.manager.ds.project.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import com.ecep.contract.ContractFileType; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; /** * 项目销售类型对应的必须的关联文件类型 @@ -17,7 +28,7 @@ import java.util.Objects; @Setter @Entity @Table(name = "PROJECT_SALE_TYPE_REQ_FILE_TYPE") -public class ProjectSaleTypeRequireFileType implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class ProjectSaleTypeRequireFileType implements IdentityEntity, BasedEntity { @Id @Column(name = "ID", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -46,17 +57,26 @@ public class ProjectSaleTypeRequireFileType implements IdentityEntity, com.ecep. @Override public final boolean equals(Object object) { - if (this == object) return true; - if (object == null) return false; - Class oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass(); - Class thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass(); - if (thisEffectiveClass != oEffectiveClass) return false; + if (this == object) + return true; + if (object == null) + return false; + Class oEffectiveClass = object instanceof HibernateProxy + ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() + : object.getClass(); + Class thisEffectiveClass = this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() + : this.getClass(); + if (thisEffectiveClass != oEffectiveClass) + return false; ProjectSaleTypeRequireFileType that = (ProjectSaleTypeRequireFileType) object; return getId() != null && Objects.equals(getId(), that.getId()); } @Override public final int hashCode() { - return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode(); + return this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() + : getClass().hashCode(); } } diff --git a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectType.java b/common/src/main/java/com/ecep/contract/model/ProjectType.java similarity index 81% rename from src/main/java/com/ecep/contract/manager/ds/project/model/ProjectType.java rename to common/src/main/java/com/ecep/contract/model/ProjectType.java index 56e962f..1610135 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectType.java +++ b/common/src/main/java/com/ecep/contract/model/ProjectType.java @@ -1,13 +1,18 @@ -package com.ecep.contract.manager.ds.project.model; +package com.ecep.contract.model; + +import java.io.Serializable; +import java.util.Objects; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.NamedEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; import org.hibernate.proxy.HibernateProxy; -import java.util.Objects; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; /** * 项目类型 @@ -16,7 +21,8 @@ import java.util.Objects; @Setter @Entity @Table(name = "PROJECT_TYPE") -public class ProjectType implements IdentityEntity, NamedEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class ProjectType implements IdentityEntity, NamedEntity, BasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @Column(name = "ID", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseBillVoucher.java b/common/src/main/java/com/ecep/contract/model/PurchaseBillVoucher.java similarity index 67% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseBillVoucher.java rename to common/src/main/java/com/ecep/contract/model/PurchaseBillVoucher.java index 751c82c..4df4dcd 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseBillVoucher.java +++ b/common/src/main/java/com/ecep/contract/model/PurchaseBillVoucher.java @@ -1,18 +1,23 @@ -package com.ecep.contract.manager.ds.contract.model; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.Invoice; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.model; import java.time.LocalDateTime; import java.util.Objects; +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * 采购账单凭证(专用发票), Purchase Bill Voucher * 对应 U8 的 PurBillVouch 表 @@ -22,7 +27,7 @@ import java.util.Objects; @Entity @Table(name = "PURCHASE_BILL_VOUCHER", schema = "supplier_ms") @ToString -public class PurchaseBillVoucher implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class PurchaseBillVoucher implements IdentityEntity, BasedEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) @@ -103,17 +108,26 @@ public class PurchaseBillVoucher implements IdentityEntity, com.ecep.contract.ma @Override public final boolean equals(Object o) { - if (this == o) return true; - if (o == null) return false; - Class oEffectiveClass = o instanceof HibernateProxy ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() : o.getClass(); - Class thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass(); - if (thisEffectiveClass != oEffectiveClass) return false; + if (this == o) + return true; + if (o == null) + return false; + Class oEffectiveClass = o instanceof HibernateProxy + ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() + : o.getClass(); + Class thisEffectiveClass = this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() + : this.getClass(); + if (thisEffectiveClass != oEffectiveClass) + return false; PurchaseBillVoucher that = (PurchaseBillVoucher) o; return getId() != null && Objects.equals(getId(), that.getId()); } @Override public final int hashCode() { - return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode(); + return this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() + : getClass().hashCode(); } } diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseBillVoucherItem.java b/common/src/main/java/com/ecep/contract/model/PurchaseBillVoucherItem.java similarity index 66% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseBillVoucherItem.java rename to common/src/main/java/com/ecep/contract/model/PurchaseBillVoucherItem.java index 4b0a569..0058c95 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseBillVoucherItem.java +++ b/common/src/main/java/com/ecep/contract/model/PurchaseBillVoucherItem.java @@ -1,15 +1,21 @@ -package com.ecep.contract.manager.ds.contract.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.company.model.Invoice; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.Inventory; -import jakarta.persistence.*; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; /** * 采购账单凭证(专用发票)条目, Purchase Bill Voucher Item @@ -20,7 +26,7 @@ import java.util.Objects; @Entity @Table(name = "PURCHASE_BILL_VOUCHER_ITEM", schema = "supplier_ms") @ToString -public class PurchaseBillVoucherItem implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class PurchaseBillVoucherItem implements IdentityEntity, BasedEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) @@ -75,24 +81,32 @@ public class PurchaseBillVoucherItem implements IdentityEntity, com.ecep.contrac @Column(name = "PRICE") private double price; - @Column(name = "DESCRIPTION", columnDefinition = "TEXT") private String description; @Override public final boolean equals(Object o) { - if (this == o) return true; - if (o == null) return false; - Class oEffectiveClass = o instanceof HibernateProxy ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() : o.getClass(); - Class thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass(); - if (thisEffectiveClass != oEffectiveClass) return false; + if (this == o) + return true; + if (o == null) + return false; + Class oEffectiveClass = o instanceof HibernateProxy + ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() + : o.getClass(); + Class thisEffectiveClass = this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() + : this.getClass(); + if (thisEffectiveClass != oEffectiveClass) + return false; PurchaseBillVoucherItem that = (PurchaseBillVoucherItem) o; return getId() != null && Objects.equals(getId(), that.getId()); } @Override public final int hashCode() { - return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode(); + return this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() + : getClass().hashCode(); } @Override diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseOrder.java b/common/src/main/java/com/ecep/contract/model/PurchaseOrder.java similarity index 85% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseOrder.java rename to common/src/main/java/com/ecep/contract/model/PurchaseOrder.java index 384c009..6366e28 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseOrder.java +++ b/common/src/main/java/com/ecep/contract/model/PurchaseOrder.java @@ -1,16 +1,23 @@ -package com.ecep.contract.manager.ds.contract.model; - -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.model; import java.time.LocalDateTime; import java.util.Objects; +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * 采购订单 * 对应 U8 的 PO_Pomain 表 @@ -20,7 +27,7 @@ import java.util.Objects; @Entity @Table(name = "PURCHASE_ORDER", schema = "supplier_ms") @ToString -public class PurchaseOrder implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity, ContractBasedEntity { +public class PurchaseOrder implements IdentityEntity, BasedEntity, ContractBasedEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseOrderItem.java b/common/src/main/java/com/ecep/contract/model/PurchaseOrderItem.java similarity index 60% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseOrderItem.java rename to common/src/main/java/com/ecep/contract/model/PurchaseOrderItem.java index 43ab50a..721ae85 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseOrderItem.java +++ b/common/src/main/java/com/ecep/contract/model/PurchaseOrderItem.java @@ -1,16 +1,23 @@ -package com.ecep.contract.manager.ds.contract.model; - -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.Inventory; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.model; import java.time.LocalDate; import java.util.Objects; +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * 采购订单条目 * 对应 U8 的 PO_Podetails 表 @@ -20,7 +27,7 @@ import java.util.Objects; @Entity @Table(name = "PURCHASE_ORDER_ITEM", schema = "supplier_ms") @ToString -public class PurchaseOrderItem implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class PurchaseOrderItem implements IdentityEntity, BasedEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) @@ -68,18 +75,27 @@ public class PurchaseOrderItem implements IdentityEntity, com.ecep.contract.mana @Override public final boolean equals(Object o) { - if (this == o) return true; - if (o == null) return false; - Class oEffectiveClass = o instanceof HibernateProxy ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() : o.getClass(); - Class thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass(); - if (thisEffectiveClass != oEffectiveClass) return false; + if (this == o) + return true; + if (o == null) + return false; + Class oEffectiveClass = o instanceof HibernateProxy + ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() + : o.getClass(); + Class thisEffectiveClass = this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() + : this.getClass(); + if (thisEffectiveClass != oEffectiveClass) + return false; PurchaseOrderItem that = (PurchaseOrderItem) o; return getId() != null && Objects.equals(getId(), that.getId()); } @Override public final int hashCode() { - return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode(); + return this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() + : getClass().hashCode(); } @Override diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseReceipt.java b/common/src/main/java/com/ecep/contract/model/PurchaseReceipt.java similarity index 81% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseReceipt.java rename to common/src/main/java/com/ecep/contract/model/PurchaseReceipt.java index bb523f3..c85d2f1 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseReceipt.java +++ b/common/src/main/java/com/ecep/contract/model/PurchaseReceipt.java @@ -1,15 +1,23 @@ -package com.ecep.contract.manager.ds.contract.model; - -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.model; import java.time.LocalDate; import java.util.Objects; +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * 采购入库单 * 对应 U8 的 表 @@ -19,7 +27,7 @@ import java.util.Objects; @Entity @Table(name = "PURCHASE_RECEIPT", schema = "supplier_ms") @ToString -public class PurchaseReceipt implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class PurchaseReceipt implements IdentityEntity, BasedEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseSettlementVoucher.java b/common/src/main/java/com/ecep/contract/model/PurchaseSettlementVoucher.java similarity index 86% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseSettlementVoucher.java rename to common/src/main/java/com/ecep/contract/model/PurchaseSettlementVoucher.java index ffce36e..343106a 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseSettlementVoucher.java +++ b/common/src/main/java/com/ecep/contract/model/PurchaseSettlementVoucher.java @@ -1,18 +1,23 @@ -package com.ecep.contract.manager.ds.contract.model; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.model; import java.time.LocalDate; import java.util.Objects; +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * 采购结算凭证 * 对应 U8 的 PurSettleVouch 表 @@ -22,7 +27,7 @@ import java.util.Objects; @Entity @Table(name = "PURCHASE_SETTLE_VOUCHER", schema = "supplier_ms") @ToString -public class PurchaseSettlementVoucher implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class PurchaseSettlementVoucher implements IdentityEntity, BasedEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseSettlementVoucherItem.java b/common/src/main/java/com/ecep/contract/model/PurchaseSettlementVoucherItem.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseSettlementVoucherItem.java rename to common/src/main/java/com/ecep/contract/model/PurchaseSettlementVoucherItem.java index 70274e1..b31d17b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/PurchaseSettlementVoucherItem.java +++ b/common/src/main/java/com/ecep/contract/model/PurchaseSettlementVoucherItem.java @@ -1,16 +1,21 @@ -package com.ecep.contract.manager.ds.contract.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.company.model.Invoice; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.Inventory; -import jakarta.persistence.*; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; /** * 采购结算凭证详情 @@ -21,7 +26,7 @@ import java.util.Objects; @Entity @Table(name = "PURCHASE_SETTLE_VOUCHER_ITEM", schema = "supplier_ms") @ToString -public class PurchaseSettlementVoucherItem implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class PurchaseSettlementVoucherItem implements IdentityEntity, BasedEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/SalesBillVoucher.java b/common/src/main/java/com/ecep/contract/model/SalesBillVoucher.java similarity index 67% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/SalesBillVoucher.java rename to common/src/main/java/com/ecep/contract/model/SalesBillVoucher.java index f5db2af..94beb01 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/SalesBillVoucher.java +++ b/common/src/main/java/com/ecep/contract/model/SalesBillVoucher.java @@ -1,18 +1,23 @@ -package com.ecep.contract.manager.ds.contract.model; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.Invoice; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.model; import java.time.LocalDateTime; import java.util.Objects; +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * 销售账单凭证(发票), Sales Bill Voucher * 对应 U8 的 SaleBillVouch 表 @@ -22,7 +27,7 @@ import java.util.Objects; @Entity @Table(name = "SALES_BILL_VOUCHER", schema = "supplier_ms") @ToString -public class SalesBillVoucher implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class SalesBillVoucher implements IdentityEntity, BasedEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) @@ -103,17 +108,26 @@ public class SalesBillVoucher implements IdentityEntity, com.ecep.contract.manag @Override public final boolean equals(Object o) { - if (this == o) return true; - if (o == null) return false; - Class oEffectiveClass = o instanceof HibernateProxy ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() : o.getClass(); - Class thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass(); - if (thisEffectiveClass != oEffectiveClass) return false; + if (this == o) + return true; + if (o == null) + return false; + Class oEffectiveClass = o instanceof HibernateProxy + ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() + : o.getClass(); + Class thisEffectiveClass = this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() + : this.getClass(); + if (thisEffectiveClass != oEffectiveClass) + return false; SalesBillVoucher that = (SalesBillVoucher) o; return getId() != null && Objects.equals(getId(), that.getId()); } @Override public final int hashCode() { - return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode(); + return this instanceof HibernateProxy + ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() + : getClass().hashCode(); } } diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/SalesBillVoucherItem.java b/common/src/main/java/com/ecep/contract/model/SalesBillVoucherItem.java similarity index 82% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/SalesBillVoucherItem.java rename to common/src/main/java/com/ecep/contract/model/SalesBillVoucherItem.java index c5eb1b4..28ce59a 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/SalesBillVoucherItem.java +++ b/common/src/main/java/com/ecep/contract/model/SalesBillVoucherItem.java @@ -1,15 +1,21 @@ -package com.ecep.contract.manager.ds.contract.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.company.model.Invoice; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.Inventory; -import jakarta.persistence.*; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; /** * 销售账单凭证(发票)条目, Sales Bill Voucher Item @@ -20,7 +26,7 @@ import java.util.Objects; @Entity @Table(name = "SALES_BILL_VOUCHER_ITEM", schema = "supplier_ms") @ToString -public class SalesBillVoucherItem implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class SalesBillVoucherItem implements IdentityEntity, BasedEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/SalesOrder.java b/common/src/main/java/com/ecep/contract/model/SalesOrder.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/SalesOrder.java rename to common/src/main/java/com/ecep/contract/model/SalesOrder.java index 7b7ce5f..8716555 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/SalesOrder.java +++ b/common/src/main/java/com/ecep/contract/model/SalesOrder.java @@ -1,17 +1,23 @@ -package com.ecep.contract.manager.ds.contract.model; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.model; import java.time.LocalDate; import java.util.Objects; +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * 销售订单 * 对应 U8 的 SO_SOMain 表 @@ -21,7 +27,7 @@ import java.util.Objects; @Entity @Table(name = "CONTRACT_SALES_ORDER", schema = "supplier_ms") @ToString -public class SalesOrder implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity, ContractBasedEntity { +public class SalesOrder implements IdentityEntity, BasedEntity, ContractBasedEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/SalesOrderItem.java b/common/src/main/java/com/ecep/contract/model/SalesOrderItem.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/SalesOrderItem.java rename to common/src/main/java/com/ecep/contract/model/SalesOrderItem.java index 0d9e085..a692ae2 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/model/SalesOrderItem.java +++ b/common/src/main/java/com/ecep/contract/model/SalesOrderItem.java @@ -1,15 +1,23 @@ -package com.ecep.contract.manager.ds.contract.model; - -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.model; import java.time.LocalDate; import java.util.Objects; +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * 销售订单条目 * 对应 U8 的 SO_SODetails 表 @@ -19,7 +27,7 @@ import java.util.Objects; @Entity @Table(name = "CONTRACT_SALES_ORDER_ITEM", schema = "supplier_ms") @ToString -public class SalesOrderItem implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class SalesOrderItem implements IdentityEntity, BasedEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/SysConf.java b/common/src/main/java/com/ecep/contract/model/SysConf.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/ds/other/model/SysConf.java rename to common/src/main/java/com/ecep/contract/model/SysConf.java index 795ea26..22c9f27 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/SysConf.java +++ b/common/src/main/java/com/ecep/contract/model/SysConf.java @@ -1,5 +1,6 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; +import java.io.Serializable; import java.time.LocalDateTime; import org.hibernate.annotations.ColumnDefault; @@ -15,7 +16,8 @@ import lombok.Setter; @Setter @Entity @Table(name = "SYS_CONF", schema = "supplier_ms") -public class SysConf { +public class SysConf implements Serializable { + private static final long serialVersionUID = 1L; @Id @Column(name = "ID", nullable = false) private String id; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/Unit.java b/common/src/main/java/com/ecep/contract/model/Unit.java similarity index 57% rename from src/main/java/com/ecep/contract/manager/ds/other/model/Unit.java rename to common/src/main/java/com/ecep/contract/model/Unit.java index 768c8da..8ea3b25 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/Unit.java +++ b/common/src/main/java/com/ecep/contract/model/Unit.java @@ -1,7 +1,16 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.other.UnitType; -import jakarta.persistence.*; + +import java.io.Serializable; +import com.ecep.contract.UnitType; + +import jakarta.persistence.Column; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; @@ -12,7 +21,8 @@ import lombok.Setter; @Setter @jakarta.persistence.Entity @Table(name = "UNIT", schema = "supplier_ms") -public class Unit implements IdentityEntity , NamedEntity { +public class Unit implements IdentityEntity, NamedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/model/VendorCatalog.java b/common/src/main/java/com/ecep/contract/model/VendorCatalog.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/vendor/model/VendorCatalog.java rename to common/src/main/java/com/ecep/contract/model/VendorCatalog.java index aea109f..19c2488 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/model/VendorCatalog.java +++ b/common/src/main/java/com/ecep/contract/model/VendorCatalog.java @@ -1,13 +1,21 @@ -package com.ecep.contract.manager.ds.vendor.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.vendor.VendorType; -import jakarta.persistence.*; +import java.io.Serializable; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import com.ecep.contract.VendorType; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; /** * U8系统的 供应商分类 @@ -17,7 +25,8 @@ import java.util.Objects; @Entity @Table(name = "VENDOR_CATALOG", schema = "supplier_ms") @ToString -public class VendorCatalog implements com.ecep.contract.manager.ds.other.model.Entity { +public class VendorCatalog implements BasedEntity, Serializable { + private static final long serialVersionUID = 1L; @Id @Column(name = "ID", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/model/VendorGroup.java b/common/src/main/java/com/ecep/contract/model/VendorGroup.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/vendor/model/VendorGroup.java rename to common/src/main/java/com/ecep/contract/model/VendorGroup.java index 1c72e15..10c70cb 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/model/VendorGroup.java +++ b/common/src/main/java/com/ecep/contract/model/VendorGroup.java @@ -1,14 +1,18 @@ -package com.ecep.contract.manager.ds.vendor.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.model.NamedEntity; -import jakarta.persistence.*; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; /** * 采购合同类型 @@ -18,7 +22,7 @@ import java.util.Objects; @Entity @Table(name = "VENDOR_GROUP", schema = "supplier_ms") @ToString -public class VendorGroup implements IdentityEntity, NamedEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class VendorGroup implements IdentityEntity, NamedEntity, BasedEntity { @Id @Column(name = "ID", nullable = false) diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/model/VendorGroupRequireFileType.java b/common/src/main/java/com/ecep/contract/model/VendorGroupRequireFileType.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/ds/vendor/model/VendorGroupRequireFileType.java rename to common/src/main/java/com/ecep/contract/model/VendorGroupRequireFileType.java index 2048d8b..b21f812 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/model/VendorGroupRequireFileType.java +++ b/common/src/main/java/com/ecep/contract/model/VendorGroupRequireFileType.java @@ -1,14 +1,25 @@ -package com.ecep.contract.manager.ds.vendor.model; +package com.ecep.contract.model; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; +import java.util.Objects; + +import org.hibernate.proxy.HibernateProxy; + +import com.ecep.contract.ContractFileType; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; /** * 供应商类型对应的必须的关联文件类型 @@ -17,7 +28,7 @@ import java.util.Objects; @Setter @Entity @Table(name = "VENDOR_GROUP_REQ_FILE_TYPE") -public class VendorGroupRequireFileType implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity { +public class VendorGroupRequireFileType implements IdentityEntity, BasedEntity { @Id @Column(name = "ID", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/model/VendorTypeLocal.java b/common/src/main/java/com/ecep/contract/model/VendorTypeLocal.java similarity index 66% rename from src/main/java/com/ecep/contract/manager/ds/vendor/model/VendorTypeLocal.java rename to common/src/main/java/com/ecep/contract/model/VendorTypeLocal.java index f4e874b..a42f16e 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/model/VendorTypeLocal.java +++ b/common/src/main/java/com/ecep/contract/model/VendorTypeLocal.java @@ -1,7 +1,7 @@ -package com.ecep.contract.manager.ds.vendor.model; +package com.ecep.contract.model; + +import com.ecep.contract.VendorType; -import com.ecep.contract.manager.ds.other.model.BaseEnumEntity; -import com.ecep.contract.manager.ds.vendor.VendorType; import jakarta.persistence.Entity; import jakarta.persistence.Table; import lombok.Getter; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/VolumeSize.java b/common/src/main/java/com/ecep/contract/model/VolumeSize.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ds/other/model/VolumeSize.java rename to common/src/main/java/com/ecep/contract/model/VolumeSize.java index 7425151..d6e086d 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/VolumeSize.java +++ b/common/src/main/java/com/ecep/contract/model/VolumeSize.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other.model; +package com.ecep.contract.model; import jakarta.persistence.Embeddable; import lombok.Data; diff --git a/common/src/main/java/com/ecep/contract/util/CompanyUtils.java b/common/src/main/java/com/ecep/contract/util/CompanyUtils.java index c750f15..9f3f336 100644 --- a/common/src/main/java/com/ecep/contract/util/CompanyUtils.java +++ b/common/src/main/java/com/ecep/contract/util/CompanyUtils.java @@ -1,4 +1,15 @@ package com.ecep.contract.util; public class CompanyUtils { + public static String formatCompanyVendorId(int itemId) { + if (itemId > 99) { + return String.valueOf(itemId); + } else if (itemId > 9) { + return "0" + itemId; + } else if (itemId > 0) { + return "00" + itemId; + } else { + throw new IllegalArgumentException(); + } + } } diff --git a/common/src/main/java/com/ecep/contract/util/FileUtils.java b/common/src/main/java/com/ecep/contract/util/FileUtils.java index 00a5fad..860fb22 100644 --- a/common/src/main/java/com/ecep/contract/util/FileUtils.java +++ b/common/src/main/java/com/ecep/contract/util/FileUtils.java @@ -1,4 +1,32 @@ package com.ecep.contract.util; public class FileUtils { + public final static String PDF = ".pdf"; + public final static String DOC = ".doc"; + public final static String DOCX = ".docx"; + public final static String XLS = ".xls"; + public final static String XLSX = ".xlsx"; + public final static String PNG = ".png"; + public final static String JPG = ".jpg"; + public final static String JPEG = ".jpeg"; + public final static String JSON = ".json"; + public final static String FILE_DB_THUMBS = "Thumbs.db"; + public final static String FILE_DB_JSON = "db.json"; + public final static String FILE_BLACK_LIST_JSON = "black_list.json"; + public final static String FILE_B1001_JSON = "b1001.json"; + + /** + * 检查文件是否符合后缀要求 + * + * @param name 文件名 + * @param fileExtensions 后缀 + */ + public static boolean withExtensions(String name, String... fileExtensions) { + for (String fn : fileExtensions) { + if (name.endsWith(fn)) { + return true; + } + } + return false; + } } diff --git a/src/main/java/com/ecep/contract/manager/util/HttpJsonUtils.java b/common/src/main/java/com/ecep/contract/util/HttpJsonUtils.java similarity index 98% rename from src/main/java/com/ecep/contract/manager/util/HttpJsonUtils.java rename to common/src/main/java/com/ecep/contract/util/HttpJsonUtils.java index e0ab2af..80b28e1 100644 --- a/src/main/java/com/ecep/contract/manager/util/HttpJsonUtils.java +++ b/common/src/main/java/com/ecep/contract/util/HttpJsonUtils.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.util; +package com.ecep.contract.util; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/src/main/java/com/ecep/contract/manager/util/MyStringUtils.java b/common/src/main/java/com/ecep/contract/util/MyStringUtils.java similarity index 98% rename from src/main/java/com/ecep/contract/manager/util/MyStringUtils.java rename to common/src/main/java/com/ecep/contract/util/MyStringUtils.java index ee04f64..7f684ea 100644 --- a/src/main/java/com/ecep/contract/manager/util/MyStringUtils.java +++ b/common/src/main/java/com/ecep/contract/util/MyStringUtils.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.util; +package com.ecep.contract.util; import org.springframework.util.StringUtils; diff --git a/src/main/java/com/ecep/contract/manager/util/NumberUtils.java b/common/src/main/java/com/ecep/contract/util/NumberUtils.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/util/NumberUtils.java rename to common/src/main/java/com/ecep/contract/util/NumberUtils.java index 8b49da1..1c158f0 100644 --- a/src/main/java/com/ecep/contract/manager/util/NumberUtils.java +++ b/common/src/main/java/com/ecep/contract/util/NumberUtils.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.util; +package com.ecep.contract.util; /** * 数字工具类 diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/Inverntory.sql b/docs/db/Inverntory.sql similarity index 100% rename from src/main/java/com/ecep/contract/manager/ds/other/model/Inverntory.sql rename to docs/db/Inverntory.sql diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/Unit.sql b/docs/db/Unit.sql similarity index 100% rename from src/main/java/com/ecep/contract/manager/ds/other/model/Unit.sql rename to docs/db/Unit.sql diff --git a/pom.xml b/pom.xml index a4d8120..c68b47d 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,13 @@ com.ecep.contract Contract-Manager - 0.0.47-SNAPSHOT + 0.0.49-SNAPSHOT + pom + + server + common + client + Contract-Manager Contract-Manager @@ -47,14 +53,7 @@ spring-boot-starter-actuator - - - - - - org.springframework.boot - spring-boot-starter-mail - + @@ -72,55 +71,6 @@ spring-boot-starter-test test - - com.zaxxer - HikariCP - - - - - - - - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.data - spring-data-jpa - - - - - - - - - org.openjfx - javafx-controls - ${javafx.version} - - - org.openjfx - javafx-fxml - ${javafx.version} - - - org.openjfx - javafx-web - ${javafx.version} - - - org.controlsfx - controlsfx - 11.2.0 - - - com.fasterxml.jackson.core jackson-databind @@ -149,19 +99,6 @@ pdfbox 3.0.3 - - - - - com.mysql - mysql-connector-j - runtime - - - com.microsoft.sqlserver - mssql-jdbc - runtime - @@ -181,20 +118,6 @@ - - org.openjfx - javafx-maven-plugin - 0.0.8 - - com.ecep.contract.manager.AppV2 - app - app-jlink - app-jlink-image - true - true - 2 - - org.apache.maven.plugins maven-jar-plugin diff --git a/server/pom.xml b/server/pom.xml new file mode 100644 index 0000000..69a380f --- /dev/null +++ b/server/pom.xml @@ -0,0 +1,107 @@ + + + 4.0.0 + + com.ecep.contract + Contract-Manager + 0.0.49-SNAPSHOT + + + com.ecep.contract + server + 0.0.49-SNAPSHOT + + + ${java.version} + ${java.version} + + + + + com.ecep.contract + common + 0.0.49-SNAPSHOT + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + 2.5.0 + + + + org.springframework.boot + spring-boot-starter-security + + + org.springframework.boot + spring-boot-starter-data-redis + + + org.springframework.boot + spring-boot-starter-mail + + + + + com.zaxxer + HikariCP + + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.data + spring-data-jpa + + + + + + + + + com.mysql + mysql-connector-j + runtime + + + com.microsoft.sqlserver + mssql-jdbc + runtime + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 3.3.7 + + + + repackage + + + + + + + + \ No newline at end of file diff --git a/server/src/main/java/com/ecep/contract/AppV2.java b/server/src/main/java/com/ecep/contract/AppV2.java new file mode 100644 index 0000000..8242146 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/AppV2.java @@ -0,0 +1,49 @@ +package com.ecep.contract; + +import java.time.Duration; +import java.time.Instant; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup; + +/** + * Created by Administrator on 2017/4/16. + */ +public class AppV2 { + private static final Logger logger = LoggerFactory.getLogger(AppV2.class); + + public static void main(String[] args) { + // 添加JVM参数以解决Java代理动态加载警告 + // 这些警告来自360安全卫士的Java代理(com.baize.aegis.plugin.dependency.DependencyExtension) + // 1. 启用代理使用跟踪 + System.setProperty("jdk.instrument.traceUsage", "true"); + // 2. 明确允许动态加载Java代理 + System.setProperty("jdk.instrument.allowNativeAccess", "true"); + // 3. 设置允许动态加载代理 + System.setProperty("jdk.enableDynamicAgentLoading", "true"); + + SpringApp.application = new SpringApplication(SpringApp.class); + + BufferingApplicationStartup startup = new BufferingApplicationStartup(2000); + SpringApp.application.setApplicationStartup(startup); + if (logger.isDebugEnabled()) { + logger.debug("应用程序启动参数:{}", (Object[]) args); + } + + startup.start(""); + SpringApp.context = SpringApp.application.run(args); + + Duration between = Duration.between(startup.getBufferedTimeline().getStartTime(), Instant.now()); + if (logger.isDebugEnabled()) { + logger.debug("application.run() cost:{}", between); + } + } + + public static final String DEFAULT_DB_HOST = "10.84.209.154"; // "db-server1.ecctrl.com" + public static final String DEFAULT_DB_PORT = "3306"; + public static final String DEFAULT_DB_USERNAME = "supplier_ms"; + public static final String DEFAULT_DB_PASSWORD = "[TPdseO!JKMmlrpf"; + public static final String DEFAULT_DB_DATABASE = "supplier_ms"; +} diff --git a/src/main/java/com/ecep/contract/manager/ds/other/service/IEntityService.java b/server/src/main/java/com/ecep/contract/IEntityService.java similarity index 93% rename from src/main/java/com/ecep/contract/manager/ds/other/service/IEntityService.java rename to server/src/main/java/com/ecep/contract/IEntityService.java index f6e6599..368d3bb 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/service/IEntityService.java +++ b/server/src/main/java/com/ecep/contract/IEntityService.java @@ -1,11 +1,11 @@ -package com.ecep.contract.manager.ds.other.service; +package com.ecep.contract; + +import java.util.List; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; -import java.util.List; - public interface IEntityService { T findById(Integer id); diff --git a/src/main/java/com/ecep/contract/manager/MyPersistentCookieStore.java b/server/src/main/java/com/ecep/contract/MyPersistentCookieStore.java similarity index 99% rename from src/main/java/com/ecep/contract/manager/MyPersistentCookieStore.java rename to server/src/main/java/com/ecep/contract/MyPersistentCookieStore.java index afbfcd0..d85ced9 100644 --- a/src/main/java/com/ecep/contract/manager/MyPersistentCookieStore.java +++ b/server/src/main/java/com/ecep/contract/MyPersistentCookieStore.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager; +package com.ecep.contract; import java.io.BufferedReader; import java.io.BufferedWriter; diff --git a/src/main/java/com/ecep/contract/manager/MyPersistentCookieStore2.java b/server/src/main/java/com/ecep/contract/MyPersistentCookieStore2.java similarity index 99% rename from src/main/java/com/ecep/contract/manager/MyPersistentCookieStore2.java rename to server/src/main/java/com/ecep/contract/MyPersistentCookieStore2.java index aa5d0ee..f0260e2 100644 --- a/src/main/java/com/ecep/contract/manager/MyPersistentCookieStore2.java +++ b/server/src/main/java/com/ecep/contract/MyPersistentCookieStore2.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager; +package com.ecep.contract; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/src/main/java/com/ecep/contract/manager/MyProperties.java b/server/src/main/java/com/ecep/contract/MyProperties.java similarity index 96% rename from src/main/java/com/ecep/contract/manager/MyProperties.java rename to server/src/main/java/com/ecep/contract/MyProperties.java index 6447617..8b5f98f 100644 --- a/src/main/java/com/ecep/contract/manager/MyProperties.java +++ b/server/src/main/java/com/ecep/contract/MyProperties.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager; +package com.ecep.contract; import lombok.Getter; import lombok.Setter; diff --git a/server/src/main/java/com/ecep/contract/SpringApp.java b/server/src/main/java/com/ecep/contract/SpringApp.java new file mode 100644 index 0000000..46b4465 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/SpringApp.java @@ -0,0 +1,261 @@ +package com.ecep.contract; + +import java.time.Duration; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; +import java.util.Locale; +import java.util.Properties; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeansException; +import org.springframework.boot.ConfigurableBootstrapContext; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.SpringApplicationHook; +import org.springframework.boot.SpringApplicationRunListener; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.data.redis.RedisReactiveAutoConfiguration; +import org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration; +import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup; +import org.springframework.boot.context.metrics.buffering.StartupTimeline; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.event.ContextClosedEvent; +import org.springframework.context.event.EventListener; +import org.springframework.core.env.ConfigurableEnvironment; +import org.springframework.core.env.PropertiesPropertySource; +import org.springframework.core.env.PropertySource; +import org.springframework.core.metrics.StartupStep; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; + +import com.ecep.contract.cloud.CloudRepositoriesConfig; +import com.ecep.contract.ds.DsRepositoriesConfig; +import com.ecep.contract.util.TaskMonitorCenter; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer; + +@SpringBootApplication(exclude = { + org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration.class, + RedisReactiveAutoConfiguration.class, RedisRepositoriesAutoConfiguration.class +}) +@EnableScheduling +@EnableAsync +@EnableCaching +public class SpringApp { + + private final TaskMonitorCenter taskMonitorCenter; + private static final Logger logger = LoggerFactory.getLogger(SpringApp.class); + + static SpringApplication application; + static ConfigurableApplicationContext context; + + SpringApp(TaskMonitorCenter taskMonitorCenter) { + this.taskMonitorCenter = taskMonitorCenter; + } + + public static T getBean(Class requiredType) throws BeansException { + return context.getBean(requiredType); + } + + public static void launch(Properties properties, MessageHolder holder) { + + // + holder.debug("应用程序环境准备中..."); + SpringApplication.withHook(new Hook(holder), () -> { + // 动态地注册或修改这些组件和配置 + application.addBootstrapRegistryInitializer(registry -> { + // + System.out.println("registry = " + registry); + + }); + application.addListeners(event -> { + logger.debug("SpringApp.launch ApplicationListener, event:{}", event); + }); + + application.addInitializers(app -> { + logger.debug("SpringApp.launch ApplicationContextInitializer"); + ConfigurableEnvironment environment = app.getEnvironment(); + logger.debug("environment = {}", environment); + PropertySource dynamicProperties = environment.getPropertySources().get("dynamicProperties"); + if (dynamicProperties != null) { + logger.debug("dynamicProperties = {}", dynamicProperties); + } + environment.getPropertySources().addLast(new PropertiesPropertySource("dynamicProperties", properties)); + // app.getBeanFactory().registerSingleton("dataSource", dataSource()); + logger.debug("app = {}", app); + + if (app instanceof AnnotationConfigApplicationContext ctx) { + ctx.register(DsRepositoriesConfig.class); + ctx.register(CloudRepositoriesConfig.class); + } + }); + + // startup.start(""); + context = application.run(); + logger.debug("SpringApp.launch application.run()."); + // Duration between = Duration.between(startup.getBufferedTimeline().getStartTime(), Instant.now()); + // holder.info("应用程序环境加载完成... " + between); + }); + // CompletableFuture.runAsync(() -> { + // // 在这里调用 startup 性能分析 + // analyzeStartupPerformance(startup); + // }, Desktop.instance.getExecutorService()); + } + + /** + * 分析启动性能数据并输出到日志 + */ + private static void analyzeStartupPerformance(BufferingApplicationStartup startup) { + // 获取所有记录的事件 + StartupTimeline timeline = startup.getBufferedTimeline(); + if (timeline == null || timeline.getEvents().isEmpty()) { + logger.warn("StartupTimeline 为空或没有事件!"); + return; + } + logger.info("总共有 {} 个事件", timeline.getEvents().size()); + + // 找出与 Bean 初始化相关的步骤 + timeline.getEvents().stream() + .filter(event -> event.getStartupStep().getName().startsWith("spring.beans.")) + .sorted((a, b) -> Long.compare(b.getDuration().toMillis(), a.getDuration().toMillis())) + .limit(30) + .forEach(event -> { + String name = event.getStartupStep().getName(); + long duration = event.getDuration().toMillis(); + logger.info("Bean 初始化阶段: {} - 耗时: {} ms", name, duration); + + for (StartupStep.Tag tag : event.getStartupStep().getTags()) { + if ("beanName".equals(tag.getKey())) { + logger.info(" └── Bean 名称: {}", tag.getValue()); + } + } + }); + } + + public static String getMessage(String code, Object[] args, Locale locale) { + return context.getMessage(code, args, locale); + } + + public static void shutdown() { + System.out.println("SpringApp.shutdown"); + if (logger.isDebugEnabled()) { + logger.debug("shutdown"); + } + if (context != null) { + if (context.isRunning()) { + context.close(); + } + } + } + + public static boolean isRunning() { + return context != null && context.isRunning(); + } + + static class Hook implements SpringApplicationHook, SpringApplicationRunListener { + MessageHolder holder; + + Hook(MessageHolder holder) { + this.holder = holder; + } + + public void debug(String msg) { + holder.debug(msg); + } + + @Override + public void starting(ConfigurableBootstrapContext bootstrapContext) { + logger.debug("Desktop.starting"); + debug("Spring Application 启动中..."); + } + + @Override + public void environmentPrepared(ConfigurableBootstrapContext bootstrapContext, + ConfigurableEnvironment environment) { + logger.debug("Desktop.environmentPrepared"); + debug("初始化 Environment 中,请稍后..."); + } + + @Override + public void contextPrepared(ConfigurableApplicationContext context) { + logger.debug("Desktop.contextPrepared"); + debug("Spring Application Context 预处理中,请稍后..."); + } + + @Override + public void contextLoaded(ConfigurableApplicationContext context) { + logger.debug("Desktop.contextLoaded"); + debug("Spring Application Context 初始化完毕,请稍后..."); + } + + @Override + public void started(ConfigurableApplicationContext context, Duration timeTaken) { + logger.debug("Desktop.started"); + debug("Spring Application 启动完毕."); + } + + @Override + public void ready(ConfigurableApplicationContext context, Duration timeTaken) { + logger.debug("Desktop.ready"); + debug("Spring Application ready."); + } + + @Override + public void failed(ConfigurableApplicationContext context, Throwable exception) { + logger.error("Desktop.failed", exception); + holder.error("Spring Application 启动失败(" + exception.getMessage() + ")."); + } + + @Override + public SpringApplicationRunListener getRunListener(SpringApplication springApplication) { + return this; + } + } + + @EventListener + public void handleClosedEvent(ContextClosedEvent event) { + if (logger.isDebugEnabled()) { + logger.debug("handleClosedEvent={}", event); + } + } + + // Redis缓存配置已移至application.properties文件 + // Spring Boot会根据配置自动创建RedisCacheManager + + @Bean + public ObjectMapper objectMapper() { + ObjectMapper objectMapper = new ObjectMapper(); + JavaTimeModule javaTimeModule = new JavaTimeModule(); + javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ISO_LOCAL_DATE)); + javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer( + DateTimeFormatter.ofPattern(MyDateTimeUtils.DEFAULT_DATETIME_FORMAT_PATTERN))); + javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm:ss"))); + javaTimeModule.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ISO_LOCAL_DATE)); + javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer( + DateTimeFormatter.ofPattern(MyDateTimeUtils.DEFAULT_DATETIME_FORMAT_PATTERN))); + javaTimeModule.addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ISO_LOCAL_TIME)); + objectMapper.registerModule(javaTimeModule); + return objectMapper; + } + + public static TaskMonitorCenter getTaskMonitorCenter() { + return getBean(TaskMonitorCenter.class); + } + + // @Bean + // public ScheduledExecutorService scheduledExecutorService() { + // return Desktop.instance.getExecutorService(); + // } + +} diff --git a/src/main/java/com/ecep/contract/manager/cloud/AbstractCtx.java b/server/src/main/java/com/ecep/contract/cloud/AbstractCtx.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/cloud/AbstractCtx.java rename to server/src/main/java/com/ecep/contract/cloud/AbstractCtx.java index bf24c5f..ffff8ad 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/AbstractCtx.java +++ b/server/src/main/java/com/ecep/contract/cloud/AbstractCtx.java @@ -1,12 +1,6 @@ -package com.ecep.contract.manager.cloud; +package com.ecep.contract.cloud; -import com.ecep.contract.manager.ds.other.service.SysConfService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.util.MyStringUtils; -import com.ecep.contract.manager.util.NumberUtils; -import lombok.Getter; -import lombok.Setter; -import org.springframework.util.StringUtils; +import static com.ecep.contract.SpringApp.getBean; import java.math.BigDecimal; import java.sql.Timestamp; @@ -19,7 +13,15 @@ import java.util.Objects; import java.util.function.Consumer; import java.util.function.Supplier; -import static com.ecep.contract.manager.SpringApp.getBean; +import org.springframework.util.StringUtils; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.ds.other.service.SysConfService; +import com.ecep.contract.util.MyStringUtils; +import com.ecep.contract.util.NumberUtils; + +import lombok.Getter; +import lombok.Setter; public class AbstractCtx { @Setter diff --git a/src/main/java/com/ecep/contract/manager/cloud/CloudBaseInfo.java b/server/src/main/java/com/ecep/contract/cloud/CloudBaseInfo.java similarity index 80% rename from src/main/java/com/ecep/contract/manager/cloud/CloudBaseInfo.java rename to server/src/main/java/com/ecep/contract/cloud/CloudBaseInfo.java index 9c67b9b..142a9f8 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/CloudBaseInfo.java +++ b/server/src/main/java/com/ecep/contract/cloud/CloudBaseInfo.java @@ -1,17 +1,27 @@ -package com.ecep.contract.manager.cloud; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.annotations.ColumnDefault; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.cloud; import java.time.Instant; import java.util.Objects; +import org.hibernate.annotations.ColumnDefault; +import org.hibernate.proxy.HibernateProxy; + +import com.ecep.contract.model.Company; +import com.ecep.contract.model.IdentityEntity; + +import jakarta.persistence.Column; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.MappedSuperclass; +import jakarta.persistence.Version; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * 记录同步来源 */ diff --git a/src/main/java/com/ecep/contract/manager/cloud/CloudInfo.java b/server/src/main/java/com/ecep/contract/cloud/CloudInfo.java similarity index 81% rename from src/main/java/com/ecep/contract/manager/cloud/CloudInfo.java rename to server/src/main/java/com/ecep/contract/cloud/CloudInfo.java index 4a1c92c..e33f0b2 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/CloudInfo.java +++ b/server/src/main/java/com/ecep/contract/cloud/CloudInfo.java @@ -1,16 +1,28 @@ -package com.ecep.contract.manager.cloud; - -import com.ecep.contract.manager.ds.company.model.Company; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.annotations.ColumnDefault; -import org.hibernate.proxy.HibernateProxy; +package com.ecep.contract.cloud; import java.time.Instant; import java.util.Objects; +import org.hibernate.annotations.ColumnDefault; +import org.hibernate.proxy.HibernateProxy; + +import com.ecep.contract.CloudType; +import com.ecep.contract.model.Company; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import jakarta.persistence.Version; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * 记录同步来源 */ diff --git a/src/main/java/com/ecep/contract/manager/cloud/CloudInfoRepository.java b/server/src/main/java/com/ecep/contract/cloud/CloudInfoRepository.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/cloud/CloudInfoRepository.java rename to server/src/main/java/com/ecep/contract/cloud/CloudInfoRepository.java index 01b30f8..c9616c6 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/CloudInfoRepository.java +++ b/server/src/main/java/com/ecep/contract/cloud/CloudInfoRepository.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.cloud; +package com.ecep.contract.cloud; import org.springframework.context.annotation.Lazy; import org.springframework.data.repository.CrudRepository; diff --git a/src/main/java/com/ecep/contract/manager/cloud/CloudRepositoriesConfig.java b/server/src/main/java/com/ecep/contract/cloud/CloudRepositoriesConfig.java similarity index 93% rename from src/main/java/com/ecep/contract/manager/cloud/CloudRepositoriesConfig.java rename to server/src/main/java/com/ecep/contract/cloud/CloudRepositoriesConfig.java index a8f01a1..32772e0 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/CloudRepositoriesConfig.java +++ b/server/src/main/java/com/ecep/contract/cloud/CloudRepositoriesConfig.java @@ -1,11 +1,11 @@ -package com.ecep.contract.manager.cloud; +package com.ecep.contract.cloud; import org.springframework.context.annotation.Configuration; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.data.repository.config.BootstrapMode; @Configuration -@EnableJpaRepositories(bootstrapMode = BootstrapMode.LAZY) +@EnableJpaRepositories(basePackages = {"com.ecep.contract.cloud"}, bootstrapMode = BootstrapMode.LAZY) public class CloudRepositoriesConfig { // @Bean // @Role(BeanDefinition.ROLE_INFRASTRUCTURE) diff --git a/src/main/java/com/ecep/contract/manager/cloud/old/CompanyContactUtils.java b/server/src/main/java/com/ecep/contract/cloud/old/CompanyContactUtils.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/cloud/old/CompanyContactUtils.java rename to server/src/main/java/com/ecep/contract/cloud/old/CompanyContactUtils.java index 4262f78..3d2fca9 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/old/CompanyContactUtils.java +++ b/server/src/main/java/com/ecep/contract/cloud/old/CompanyContactUtils.java @@ -1,11 +1,11 @@ -package com.ecep.contract.manager.cloud.old; - -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.company.model.CompanyContract; +package com.ecep.contract.cloud.old; import java.util.Map; import java.util.Objects; +import com.ecep.contract.model.CompanyContact; +import com.ecep.contract.model.CompanyContract; + /** * */ diff --git a/src/main/java/com/ecep/contract/manager/cloud/old/CompanyCustomerFileUtils.java b/server/src/main/java/com/ecep/contract/cloud/old/CompanyCustomerFileUtils.java similarity index 93% rename from src/main/java/com/ecep/contract/manager/cloud/old/CompanyCustomerFileUtils.java rename to server/src/main/java/com/ecep/contract/cloud/old/CompanyCustomerFileUtils.java index c85975d..7a9af34 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/old/CompanyCustomerFileUtils.java +++ b/server/src/main/java/com/ecep/contract/cloud/old/CompanyCustomerFileUtils.java @@ -1,11 +1,11 @@ -package com.ecep.contract.manager.cloud.old; - -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFile; +package com.ecep.contract.cloud.old; import java.time.LocalDate; import java.util.Map; import java.util.Objects; +import com.ecep.contract.model.CompanyCustomerFile; + public class CompanyCustomerFileUtils { public static boolean applyCustomerFileByMap(CompanyCustomerFile customerFile, Map m) { boolean modified = false; diff --git a/src/main/java/com/ecep/contract/manager/cloud/old/CompanyVendorFileUtils.java b/server/src/main/java/com/ecep/contract/cloud/old/CompanyVendorFileUtils.java similarity index 93% rename from src/main/java/com/ecep/contract/manager/cloud/old/CompanyVendorFileUtils.java rename to server/src/main/java/com/ecep/contract/cloud/old/CompanyVendorFileUtils.java index 4fcb21e..c4681bf 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/old/CompanyVendorFileUtils.java +++ b/server/src/main/java/com/ecep/contract/cloud/old/CompanyVendorFileUtils.java @@ -1,11 +1,11 @@ -package com.ecep.contract.manager.cloud.old; - -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorFile; +package com.ecep.contract.cloud.old; import java.time.LocalDate; import java.util.Map; import java.util.Objects; +import com.ecep.contract.model.CompanyVendorFile; + public class CompanyVendorFileUtils { public static boolean applyVendorFileByMap(CompanyVendorFile vendorFile, Map m) { boolean modified = false; diff --git a/src/main/java/com/ecep/contract/manager/cloud/old/OldVersionService.java b/server/src/main/java/com/ecep/contract/cloud/old/OldVersionService.java similarity index 93% rename from src/main/java/com/ecep/contract/manager/cloud/old/OldVersionService.java rename to server/src/main/java/com/ecep/contract/cloud/old/OldVersionService.java index 0a81f2b..1f89b6e 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/old/OldVersionService.java +++ b/server/src/main/java/com/ecep/contract/cloud/old/OldVersionService.java @@ -1,37 +1,19 @@ -package com.ecep.contract.manager.cloud.old; +package com.ecep.contract.cloud.old; + +import java.beans.PropertyDescriptor; +import java.io.File; +import java.time.Instant; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Consumer; +import java.util.function.Supplier; +import java.util.stream.Stream; -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.cloud.rk.CloudRk; -import com.ecep.contract.manager.cloud.rk.CloudRkService; -import com.ecep.contract.manager.cloud.tyc.CloudTyc; -import com.ecep.contract.manager.cloud.tyc.CloudTycService; -import com.ecep.contract.manager.ds.company.CompanyFileType; -import com.ecep.contract.manager.ds.company.model.*; -import com.ecep.contract.manager.ds.company.repository.CompanyContactRepository; -import com.ecep.contract.manager.ds.company.repository.CompanyOldNameRepository; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.other.repository.SysConfRepository; -import com.ecep.contract.manager.ds.other.service.SysConfService; -import com.ecep.contract.manager.ds.company.repository.CompanyFileRepository; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractFile; -import com.ecep.contract.manager.ds.contract.repository.ContractFileRepository; -import com.ecep.contract.manager.ds.contract.repository.ContractRepository; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFile; -import com.ecep.contract.manager.ds.customer.repository.CompanyCustomerFileRepository; -import com.ecep.contract.manager.ds.customer.repository.CompanyCustomerRepository; -import com.ecep.contract.manager.ds.vendor.VendorType; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorFile; -import com.ecep.contract.manager.ds.vendor.repository.CompanyVendorRepository; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorFileService; -import jakarta.transaction.Transactional; -import javafx.application.Platform; -import javafx.concurrent.Task; -import org.controlsfx.control.TaskProgressView; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; @@ -42,17 +24,38 @@ import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.beans.PropertyDescriptor; -import java.io.File; -import java.time.Instant; -import java.time.LocalDate; -import java.util.*; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicReference; -import java.util.function.Consumer; -import java.util.function.Supplier; -import java.util.stream.Stream; +import com.ecep.contract.CompanyFileType; +import com.ecep.contract.ContractFileType; +import com.ecep.contract.SpringApp; +import com.ecep.contract.VendorType; +import com.ecep.contract.cloud.rk.CloudRkService; +import com.ecep.contract.cloud.tyc.CloudTycService; +import com.ecep.contract.ds.company.repository.CompanyContactRepository; +import com.ecep.contract.ds.company.repository.CompanyFileRepository; +import com.ecep.contract.ds.company.repository.CompanyOldNameRepository; +import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.ds.contract.repository.ContractFileRepository; +import com.ecep.contract.ds.contract.repository.ContractRepository; +import com.ecep.contract.ds.customer.repository.CompanyCustomerFileRepository; +import com.ecep.contract.ds.customer.repository.CompanyCustomerRepository; +import com.ecep.contract.ds.other.service.SysConfService; +import com.ecep.contract.ds.vendor.repository.CompanyVendorRepository; +import com.ecep.contract.ds.vendor.service.CompanyVendorFileService; +import com.ecep.contract.model.CloudRk; +import com.ecep.contract.model.CloudTyc; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyContact; +import com.ecep.contract.model.CompanyContract; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyCustomerFile; +import com.ecep.contract.model.CompanyFile; +import com.ecep.contract.model.CompanyOldName; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.CompanyVendorFile; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractFile; + +import jakarta.transaction.Transactional; /** * 从老板APP的数据库中导入数据 @@ -203,30 +206,6 @@ public class OldVersionService { return -1; } - /** - * 生成定时同步任务 - * - * @param taskProgressView 任务视图 - */ - public void scheduledTasks(TaskProgressView> taskProgressView) { - // 15分钟运行一次合同合同任务 - ScheduledExecutorService executorService = Desktop.instance.getExecutorService(); - executorService.scheduleAtFixedRate(() -> { - if (logger.isDebugEnabled()) { - logger.debug("createSyncTask"); - } - - boolean autoSyncEnable = confService.getBoolean("cloud.old.auto_sync.enable"); - if (!autoSyncEnable) { - return; - } - - Desktop.instance.getTaskMonitorCenter().registerTask(new OldVersionSyncVendorTask()).schedule(5, TimeUnit.SECONDS); - Desktop.instance.getTaskMonitorCenter().registerTask(new OldVersionSyncCustomerTask()).schedule(5, TimeUnit.SECONDS); - - }, 3, TimeUnit.DAYS.toSeconds(1), TimeUnit.SECONDS); - } - /** * 更新公司信息 * diff --git a/src/main/java/com/ecep/contract/manager/cloud/old/OldVersionSyncCustomerTask.java b/server/src/main/java/com/ecep/contract/cloud/old/OldVersionSyncCustomerTask.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/cloud/old/OldVersionSyncCustomerTask.java rename to server/src/main/java/com/ecep/contract/cloud/old/OldVersionSyncCustomerTask.java index 28cb27b..42369d3 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/old/OldVersionSyncCustomerTask.java +++ b/server/src/main/java/com/ecep/contract/cloud/old/OldVersionSyncCustomerTask.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.cloud.old; +package com.ecep.contract.cloud.old; import java.io.File; import java.util.Arrays; @@ -11,12 +11,12 @@ import java.util.stream.Stream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.Contract; +import com.ecep.contract.ui.Tasker; /** * @@ -36,16 +36,12 @@ public class OldVersionSyncCustomerTask extends Tasker { updateTitle("老版本-同步客户数据"); } - @Override - protected void updateTitle(String title) { - super.updateTitle(titlePrefix + title); - } - @Override protected Object execute(MessageHolder holder) throws Exception { updateTitle("老版本-同步客户数据"); basePath = companyService.getCustomerBasePath(); - List runnable = Arrays.asList(this::loadOldNames, this::loadContacts, this::syncCustomers, this::syncContracts); + List runnable = Arrays.asList(this::loadOldNames, this::loadContacts, this::syncCustomers, + this::syncContracts); for (int i = 0; i < runnable.size(); i++) { titlePrefix = "老版本-同步客户数据-" + (i + 1) + "/" + runnable.size() + "-"; @@ -59,7 +55,6 @@ public class OldVersionSyncCustomerTask extends Tasker { return null; } - private void loadOldNames() { try (Stream> stream = service.queryAllCustomerOldNameForStream()) { updateTitle("载入曾用名"); @@ -72,6 +67,8 @@ public class OldVersionSyncCustomerTask extends Tasker { } } + + private void loadContacts() { try (Stream> stream = service.queryAllCustomerContactForStream()) { updateTitle("载入联系人"); @@ -124,5 +121,4 @@ public class OldVersionSyncCustomerTask extends Tasker { } } - } diff --git a/src/main/java/com/ecep/contract/manager/cloud/old/OldVersionSyncVendorTask.java b/server/src/main/java/com/ecep/contract/cloud/old/OldVersionSyncVendorTask.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/cloud/old/OldVersionSyncVendorTask.java rename to server/src/main/java/com/ecep/contract/cloud/old/OldVersionSyncVendorTask.java index 3bfca43..9de4db5 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/old/OldVersionSyncVendorTask.java +++ b/server/src/main/java/com/ecep/contract/cloud/old/OldVersionSyncVendorTask.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.cloud.old; +package com.ecep.contract.cloud.old; import java.io.File; import java.util.Arrays; @@ -11,12 +11,12 @@ import java.util.stream.Stream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.Contract; +import com.ecep.contract.ui.Tasker; public class OldVersionSyncVendorTask extends Tasker { private static final Logger logger = LoggerFactory.getLogger(OldVersionSyncVendorTask.class); @@ -32,11 +32,6 @@ public class OldVersionSyncVendorTask extends Tasker { updateTitle("老版本-同步供应商数据"); } - @Override - protected void updateTitle(String title) { - super.updateTitle(titlePrefix + title); - } - @Override protected Object execute(MessageHolder holder) throws Exception { basePath = companyService.getVendorBasePath(); diff --git a/src/main/java/com/ecep/contract/manager/cloud/rk/BlackListUpdateContext.java b/server/src/main/java/com/ecep/contract/cloud/rk/BlackListUpdateContext.java similarity index 95% rename from src/main/java/com/ecep/contract/manager/cloud/rk/BlackListUpdateContext.java rename to server/src/main/java/com/ecep/contract/cloud/rk/BlackListUpdateContext.java index feb8d12..89a4bd6 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/rk/BlackListUpdateContext.java +++ b/server/src/main/java/com/ecep/contract/cloud/rk/BlackListUpdateContext.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.cloud.rk; +package com.ecep.contract.cloud.rk; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.Getter; diff --git a/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkRepository.java b/server/src/main/java/com/ecep/contract/cloud/rk/CloudRkRepository.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkRepository.java rename to server/src/main/java/com/ecep/contract/cloud/rk/CloudRkRepository.java index 6aedc98..24f1352 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkRepository.java +++ b/server/src/main/java/com/ecep/contract/cloud/rk/CloudRkRepository.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.cloud.rk; +package com.ecep.contract.cloud.rk; import java.time.Instant; import java.util.List; @@ -9,8 +9,9 @@ import org.springframework.data.jpa.repository.Modifying; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; -import com.ecep.contract.manager.ds.MyRepository; -import com.ecep.contract.manager.ds.company.model.Company; +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.CloudRk; +import com.ecep.contract.model.Company; @Repository public interface CloudRkRepository extends MyRepository { diff --git a/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkService.java b/server/src/main/java/com/ecep/contract/cloud/rk/CloudRkService.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkService.java rename to server/src/main/java/com/ecep/contract/cloud/rk/CloudRkService.java index e42ea3f..b2fa62d 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkService.java +++ b/server/src/main/java/com/ecep/contract/cloud/rk/CloudRkService.java @@ -1,29 +1,17 @@ -package com.ecep.contract.manager.cloud.rk; +package com.ecep.contract.cloud.rk; -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.cloud.CloudInfo; -import com.ecep.contract.manager.ds.company.BlackReasonType; -import com.ecep.contract.manager.ds.company.CompanyFileUtils; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyBlackReason; -import com.ecep.contract.manager.ds.company.repository.CompanyBlackReasonRepository; -import com.ecep.contract.manager.ds.company.repository.CompanyOldNameRepository; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.other.service.SysConfService; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.util.HttpJsonUtils; -import com.ecep.contract.manager.util.MyStringUtils; -import com.fasterxml.jackson.annotation.JsonAlias; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import jakarta.persistence.criteria.Path; -import javafx.application.Platform; -import javafx.concurrent.Task; -import lombok.Data; -import org.controlsfx.control.TaskProgressView; +import java.io.File; +import java.io.IOException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.time.Instant; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + +import com.ecep.contract.util.FileUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -38,28 +26,34 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.io.File; -import java.io.IOException; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; -import java.time.Instant; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicReference; -import java.util.stream.Collectors; +import com.ecep.contract.BlackReasonType; +import com.ecep.contract.IEntityService; +import com.ecep.contract.cloud.CloudInfo; +import com.ecep.contract.ds.company.repository.CompanyBlackReasonRepository; +import com.ecep.contract.ds.company.repository.CompanyOldNameRepository; +import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.ds.other.service.SysConfService; +import com.ecep.contract.model.CloudRk; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyBlackReason; +import com.ecep.contract.util.HttpJsonUtils; +import com.ecep.contract.util.MyStringUtils; +import com.fasterxml.jackson.annotation.JsonAlias; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; + +import jakarta.persistence.criteria.Path; +import lombok.Data; @Lazy @Service @CacheConfig(cacheNames = "cloud-rk") -public class CloudRkService implements ViewModelService { +public class CloudRkService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(CloudRkService.class); - public static final String NAME = "集团相关方平台"; - public static final String VENDOR_NAME = "元素征信"; public final static String ENTERPRISE_CREDIT_REPORT = "企业征信报告"; public static final String KEY_PROXY = "cloud.rk.proxy"; @@ -72,6 +66,7 @@ public class CloudRkService implements ViewModelService> taskProgressView) { - ScheduledExecutorService executorService = Desktop.instance.getExecutorService(); - // 第一次延时1分钟启动 - executorService.schedule(() -> { - // 定时 30分钟 运行一次 - executorService.scheduleAtFixedRate(() -> { - Desktop.instance.getTaskMonitorCenter().registerAndStartTask(new CloudRkSyncTask()); - }, 0, 30, TimeUnit.MINUTES); - }, 1, TimeUnit.MINUTES); - } - @CacheEvict public void deleteByCompany(Company company) { int deleted = cloudRKRepository.deleteAllByCompany(company); diff --git a/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkSyncTask.java b/server/src/main/java/com/ecep/contract/cloud/rk/CloudRkSyncTask.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkSyncTask.java rename to server/src/main/java/com/ecep/contract/cloud/rk/CloudRkSyncTask.java index f69d6f2..7866a48 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkSyncTask.java +++ b/server/src/main/java/com/ecep/contract/cloud/rk/CloudRkSyncTask.java @@ -1,15 +1,4 @@ -package com.ecep.contract.manager.cloud.rk; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.cloud.rk.ctx.CloudRkCtx; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; -import org.hibernate.Hibernate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.BeansException; +package com.ecep.contract.cloud.rk; import java.time.Instant; import java.time.LocalDate; @@ -19,6 +8,20 @@ import java.util.concurrent.Executor; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; +import org.hibernate.Hibernate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeansException; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.cloud.rk.ctx.CloudRkCtx; +import com.ecep.contract.constant.CloudServiceConstant; +import com.ecep.contract.ds.contract.service.ContractService; +import com.ecep.contract.model.CloudRk; +import com.ecep.contract.model.Company; +import com.ecep.contract.ui.Tasker; + /** * 集团相关方平台同步任务 */ @@ -38,7 +41,7 @@ public class CloudRkSyncTask extends Tasker { service = SpringApp.getBean(CloudRkService.class); cloudRkCtx.setCloudRkService(service); } catch (BeansException e) { - holder.error("没有找到 " + CloudRkService.NAME + " 服务"); + holder.error("没有找到 " + CloudServiceConstant.RK_NAME + " 服务"); return null; } @@ -96,7 +99,7 @@ public class CloudRkSyncTask extends Tasker { cloudRk.setLatestUpdate(Instant.now()); service.save(cloudRk); } - updateProgress(counter.incrementAndGet(), total); + // updateProgress(counter.incrementAndGet(), total); } } @@ -106,16 +109,15 @@ public class CloudRkSyncTask extends Tasker { } catch (Exception e) { logger.error("运行至 {}/{} 时,发生错误中断", counter.get(), total, e); } - updateProgress(1, 1); + // updateProgress(1, 1); return null; } - public CompletableFuture delay(int second, Executor executor) { CompletableFuture future = new CompletableFuture<>(); long until = System.currentTimeMillis() + second * 1000L; - String title = getTitle(); + String title = ""; AtomicReference reference = new AtomicReference<>(); Runnable runnable = () -> { long let = until - System.currentTimeMillis(); diff --git a/src/main/java/com/ecep/contract/manager/cloud/rk/EntReportParser.java b/server/src/main/java/com/ecep/contract/cloud/rk/EntReportParser.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/cloud/rk/EntReportParser.java rename to server/src/main/java/com/ecep/contract/cloud/rk/EntReportParser.java index 47254e0..0195e66 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/rk/EntReportParser.java +++ b/server/src/main/java/com/ecep/contract/cloud/rk/EntReportParser.java @@ -1,19 +1,4 @@ -package com.ecep.contract.manager.cloud.rk; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.CompanyFileUtils; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.company.model.CompanyOldName; -import com.ecep.contract.manager.ds.company.repository.CompanyContactRepository; -import com.ecep.contract.manager.ds.company.service.CompanyOldNameService; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import lombok.Data; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.BeanUtils; -import org.springframework.util.StringUtils; +package com.ecep.contract.cloud.rk; import java.beans.PropertyDescriptor; import java.io.File; @@ -26,6 +11,24 @@ import java.util.List; import java.util.Objects; import java.util.Optional; +import com.ecep.contract.util.FileUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; +import org.springframework.util.StringUtils; + +import com.ecep.contract.SpringApp; +import com.ecep.contract.ds.company.repository.CompanyContactRepository; +import com.ecep.contract.ds.company.service.CompanyOldNameService; +import com.ecep.contract.model.CloudRk; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyContact; +import com.ecep.contract.model.CompanyOldName; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + +import lombok.Data; + @Data public class EntReportParser { private static final Logger logger = LoggerFactory.getLogger(EntReportParser.class); @@ -258,7 +261,7 @@ public class EntReportParser { if (StringUtils.hasText(companyPath)) { File dir = new File(companyPath); if (dir.exists()) { - File file = new File(dir, CompanyFileUtils.FILE_B1001_JSON); + File file = new File(dir, FileUtils.FILE_B1001_JSON); try { objectMapper.writeValue(file, json); } catch (IOException e) { diff --git a/src/main/java/com/ecep/contract/manager/cloud/rk/ctx/CloudRkCtx.java b/server/src/main/java/com/ecep/contract/cloud/rk/ctx/CloudRkCtx.java similarity index 96% rename from src/main/java/com/ecep/contract/manager/cloud/rk/ctx/CloudRkCtx.java rename to server/src/main/java/com/ecep/contract/cloud/rk/ctx/CloudRkCtx.java index 6f7ac87..fbe485a 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/rk/ctx/CloudRkCtx.java +++ b/server/src/main/java/com/ecep/contract/cloud/rk/ctx/CloudRkCtx.java @@ -1,34 +1,14 @@ -package com.ecep.contract.manager.cloud.rk.ctx; +package com.ecep.contract.cloud.rk.ctx; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.cloud.AbstractCtx; -import com.ecep.contract.manager.cloud.rk.CloudRk; -import com.ecep.contract.manager.cloud.rk.CloudRkService; -import com.ecep.contract.manager.ds.company.BlackReasonType; -import com.ecep.contract.manager.ds.company.CompanyFileUtils; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyBlackReason; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.company.model.CompanyOldName; -import com.ecep.contract.manager.ds.company.service.CompanyBlackReasonService; -import com.ecep.contract.manager.ds.company.service.CompanyContactService; -import com.ecep.contract.manager.ds.company.service.CompanyOldNameService; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.util.HttpJsonUtils; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import lombok.Setter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.util.StringUtils; +import static com.ecep.contract.SpringApp.getBean; -import javax.net.ssl.SSLException; import java.io.File; import java.io.IOException; -import java.net.*; +import java.net.InetSocketAddress; +import java.net.Proxy; +import java.net.SocketException; +import java.net.URI; +import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.time.Instant; import java.time.LocalDate; @@ -43,7 +23,34 @@ import java.util.function.Consumer; import java.util.function.Supplier; import java.util.stream.Collectors; -import static com.ecep.contract.manager.SpringApp.getBean; +import javax.net.ssl.SSLException; + +import com.ecep.contract.util.FileUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.util.StringUtils; + +import com.ecep.contract.BlackReasonType; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.cloud.AbstractCtx; +import com.ecep.contract.cloud.rk.CloudRkService; +import com.ecep.contract.ds.company.service.CompanyBlackReasonService; +import com.ecep.contract.ds.company.service.CompanyContactService; +import com.ecep.contract.ds.company.service.CompanyOldNameService; +import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.model.CloudRk; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyBlackReason; +import com.ecep.contract.model.CompanyContact; +import com.ecep.contract.model.CompanyOldName; +import com.ecep.contract.util.HttpJsonUtils; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; + +import lombok.Setter; public class CloudRkCtx extends AbstractCtx { private static final Logger logger = LoggerFactory.getLogger(CloudRkCtx.class); @@ -550,7 +557,7 @@ public class CloudRkCtx extends AbstractCtx { data.put("nodetype", "B1001"); }, jsonNode -> { modified.set(applyEnterpriseInfo(jsonNode, company, cloudRk, holder)); - saveJsonToFile(company, jsonNode, CompanyFileUtils.FILE_B1001_JSON, holder); + saveJsonToFile(company, jsonNode, FileUtils.FILE_B1001_JSON, holder); }); } catch (IOException e) { catchException(e, holder); diff --git a/src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycRepository.java b/server/src/main/java/com/ecep/contract/cloud/tyc/CloudTycRepository.java similarity index 76% rename from src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycRepository.java rename to server/src/main/java/com/ecep/contract/cloud/tyc/CloudTycRepository.java index 8320ed0..ee67243 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycRepository.java +++ b/server/src/main/java/com/ecep/contract/cloud/tyc/CloudTycRepository.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.cloud.tyc; +package com.ecep.contract.cloud.tyc; import java.util.List; import java.util.Optional; @@ -7,8 +7,9 @@ import org.springframework.data.jpa.repository.Modifying; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; -import com.ecep.contract.manager.ds.MyRepository; -import com.ecep.contract.manager.ds.company.model.Company; +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.CloudTyc; +import com.ecep.contract.model.Company; @Repository public interface CloudTycRepository extends MyRepository { diff --git a/src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycService.java b/server/src/main/java/com/ecep/contract/cloud/tyc/CloudTycService.java similarity index 76% rename from src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycService.java rename to server/src/main/java/com/ecep/contract/cloud/tyc/CloudTycService.java index b781202..d503a28 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycService.java +++ b/server/src/main/java/com/ecep/contract/cloud/tyc/CloudTycService.java @@ -1,6 +1,5 @@ -package com.ecep.contract.manager.cloud.tyc; +package com.ecep.contract.cloud.tyc; -import java.time.Instant; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -16,22 +15,17 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.cloud.CloudInfo; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.other.service.SysConfService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.util.MyStringUtils; -import com.ecep.contract.manager.util.UITools; - -import javafx.application.Platform; +import com.ecep.contract.IEntityService; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.cloud.CloudInfo; +import com.ecep.contract.constant.CloudServiceConstant; +import com.ecep.contract.model.CloudTyc; +import com.ecep.contract.model.Company; +import com.ecep.contract.util.MyStringUtils; @Lazy @Service -public class CloudTycService implements ViewModelService { - public static final String NAME = "天眼查"; - +public class CloudTycService implements IEntityService { public final static String TYC_ENTERPRISE_ANALYSIS_REPORT = "企业分析报告"; public final static String TYC_ENTERPRISE_BASIC_REPORT = "基础版企业信用报告"; public final static String TYC_ENTERPRISE_MAJOR_REPORT = "专业版企业信用报告"; @@ -49,7 +43,7 @@ public class CloudTycService implements ViewModelService viewModel.update(saved)); - } - } - - public void showInBrowse(String cloudId) { - String baseUrl = SpringApp.getBean(SysConfService.class).getString("cloud.tyc.company"); - if (!StringUtils.hasText(baseUrl)) { - UITools.showAlertAndWait("系统参数 cloud.tyc.company 未配置"); - return; - } - - String url = baseUrl + cloudId; - - com.ecep.contract.manager.util.DesktopUtils.showInBrowse(url); - - // UITools.showExceptionAndWait("使用浏览器打开网址出现异常", e); - - } public void deleteByCompany(Company company) { int deleted = cloudTycRepository.deleteAllByCompany(company); @@ -201,8 +168,8 @@ public class CloudTycService implements ViewModelService { + + List findAllByCompanyId(Integer companyId); + + Optional findByCompanyId(Integer companyId); + + @Modifying + @Transactional + int deleteAllByCompany(Company company); + +} diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ContractGroupSyncTask.java b/server/src/main/java/com/ecep/contract/cloud/u8/ContractGroupSyncTask.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ContractGroupSyncTask.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ContractGroupSyncTask.java index 199e761..23cc16e 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ContractGroupSyncTask.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ContractGroupSyncTask.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.cloud.u8; +package com.ecep.contract.cloud.u8; import java.util.List; import java.util.Map; @@ -9,11 +9,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.contract.model.ContractGroup; -import com.ecep.contract.manager.ds.contract.service.ContractGroupService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.ds.contract.service.ContractGroupService; +import com.ecep.contract.model.ContractGroup; +import com.ecep.contract.ui.Tasker; import lombok.Setter; @@ -58,7 +58,7 @@ public class ContractGroupSyncTask extends Tasker { holder.info("Cancelled"); return null; } - MessageHolder sub = holder.sub(counter.get() + "/" + size + ">" ); + MessageHolder sub = holder.sub(counter.get() + "/" + size + ">"); sync(map, sub); // 更新进度 updateProgress(counter.incrementAndGet(), size); diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ContractKindSyncTask.java b/server/src/main/java/com/ecep/contract/cloud/u8/ContractKindSyncTask.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ContractKindSyncTask.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ContractKindSyncTask.java index 7e0c8de..0f4c13e 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ContractKindSyncTask.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ContractKindSyncTask.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.cloud.u8; +package com.ecep.contract.cloud.u8; import java.util.List; import java.util.Map; @@ -9,11 +9,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.contract.model.ContractKind; -import com.ecep.contract.manager.ds.contract.service.ContractKindService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.ds.contract.service.ContractKindService; +import com.ecep.contract.model.ContractKind; +import com.ecep.contract.ui.Tasker; import lombok.Setter; diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ContractSyncAllTask.java b/server/src/main/java/com/ecep/contract/cloud/u8/ContractSyncAllTask.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ContractSyncAllTask.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ContractSyncAllTask.java index f878f08..7d650f1 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ContractSyncAllTask.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ContractSyncAllTask.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.cloud.u8; +package com.ecep.contract.cloud.u8; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; @@ -7,8 +7,8 @@ import java.util.stream.Stream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.ecep.contract.manager.ds.contract.tasker.AbstContractRepairTasker; -import com.ecep.contract.manager.ui.MessageHolder; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.ds.contract.tasker.AbstContractRepairTasker; /** * 用友U8系统-同步全量合同 diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ContractSyncContext.java b/server/src/main/java/com/ecep/contract/cloud/u8/ContractSyncContext.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ContractSyncContext.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ContractSyncContext.java index a2f19ff..e7d9515 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ContractSyncContext.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ContractSyncContext.java @@ -1,20 +1,22 @@ -package com.ecep.contract.manager.cloud.u8; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.contract.model.ContractGroup; -import com.ecep.contract.manager.ds.contract.model.ContractKind; -import com.ecep.contract.manager.ds.contract.model.ContractType; -import com.ecep.contract.manager.ds.contract.service.ContractGroupService; -import com.ecep.contract.manager.ds.contract.service.ContractKindService; -import com.ecep.contract.manager.ds.contract.service.ContractTypeService; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import lombok.Getter; -import lombok.Setter; -import org.springframework.beans.BeansException; +package com.ecep.contract.cloud.u8; import java.util.function.Consumer; +import org.springframework.beans.BeansException; + +import com.ecep.contract.SpringApp; +import com.ecep.contract.ds.contract.service.ContractGroupService; +import com.ecep.contract.ds.contract.service.ContractKindService; +import com.ecep.contract.ds.contract.service.ContractTypeService; +import com.ecep.contract.ds.other.service.EmployeeService; +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 lombok.Getter; +import lombok.Setter; + public class ContractSyncContext { T getBean(Class requiredType) throws BeansException { return SpringApp.getBean(requiredType); diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ContractSyncTask.java b/server/src/main/java/com/ecep/contract/cloud/u8/ContractSyncTask.java similarity index 95% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ContractSyncTask.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ContractSyncTask.java index 94dc36b..8a0ef1e 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ContractSyncTask.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ContractSyncTask.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.cloud.u8; +package com.ecep.contract.cloud.u8; import java.sql.Timestamp; import java.time.LocalDateTime; @@ -12,10 +12,10 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; import org.springframework.util.StringUtils; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.cloud.u8.ctx.ContractCtx; -import com.ecep.contract.manager.ds.contract.tasker.AbstContractRepairTasker; -import com.ecep.contract.manager.ui.MessageHolder; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.cloud.u8.ctx.ContractCtx; +import com.ecep.contract.ds.contract.tasker.AbstContractRepairTasker; /** * 合同同步任务 diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ContractTypeSyncTask.java b/server/src/main/java/com/ecep/contract/cloud/u8/ContractTypeSyncTask.java similarity index 92% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ContractTypeSyncTask.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ContractTypeSyncTask.java index c0b0f3b..2fd5a88 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ContractTypeSyncTask.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ContractTypeSyncTask.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.cloud.u8; +package com.ecep.contract.cloud.u8; import java.util.List; import java.util.Map; @@ -9,11 +9,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.contract.model.ContractType; -import com.ecep.contract.manager.ds.contract.service.ContractTypeService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.ds.contract.service.ContractTypeService; +import com.ecep.contract.model.ContractType; +import com.ecep.contract.ui.Tasker; import lombok.Setter; @@ -58,7 +58,7 @@ public class ContractTypeSyncTask extends Tasker { holder.info("Cancelled"); return null; } - MessageHolder sub = holder.sub(counter.get() + "/" + size + ">" ); + MessageHolder sub = holder.sub(counter.get() + "/" + size + ">"); sync(map, sub); // 更新进度 updateProgress(counter.incrementAndGet(), size); diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/CustomerClassSyncTask.java b/server/src/main/java/com/ecep/contract/cloud/u8/CustomerClassSyncTask.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/cloud/u8/CustomerClassSyncTask.java rename to server/src/main/java/com/ecep/contract/cloud/u8/CustomerClassSyncTask.java index 65e89f6..63d16e4 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/CustomerClassSyncTask.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/CustomerClassSyncTask.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.cloud.u8; +package com.ecep.contract.cloud.u8; import java.util.List; import java.util.Map; @@ -9,11 +9,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.customer.model.CustomerCatalog; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.ds.customer.service.CompanyCustomerService; +import com.ecep.contract.model.CustomerCatalog; +import com.ecep.contract.ui.Tasker; import lombok.Setter; @@ -58,7 +58,7 @@ public class CustomerClassSyncTask extends Tasker { holder.info("Cancelled"); return null; } - MessageHolder sub = holder.sub(counter.get() + "/" + size + ">" ); + MessageHolder sub = holder.sub(counter.get() + "/" + size + ">"); sync(map, sub); // 更新进度 updateProgress(counter.incrementAndGet(), size); diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/CustomerSyncTask.java b/server/src/main/java/com/ecep/contract/cloud/u8/CustomerSyncTask.java similarity index 86% rename from src/main/java/com/ecep/contract/manager/cloud/u8/CustomerSyncTask.java rename to server/src/main/java/com/ecep/contract/cloud/u8/CustomerSyncTask.java index 6f9bc07..eb5c4a1 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/CustomerSyncTask.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/CustomerSyncTask.java @@ -1,20 +1,4 @@ -package com.ecep.contract.manager.cloud.u8; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.cloud.u8.ctx.CompanyCtx; -import com.ecep.contract.manager.cloud.u8.ctx.CustomerCtx; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.contract.tasker.AbstContractRepairTasker; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEntity; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ui.MessageHolder; -import lombok.Setter; -import org.hibernate.Hibernate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.BeansException; +package com.ecep.contract.cloud.u8; import java.time.Instant; import java.time.LocalDate; @@ -22,6 +6,26 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Stream; +import org.hibernate.Hibernate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeansException; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.cloud.u8.ctx.CompanyCtx; +import com.ecep.contract.cloud.u8.ctx.CustomerCtx; +import com.ecep.contract.constant.CloudServiceConstant; +import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.ds.contract.tasker.AbstContractRepairTasker; +import com.ecep.contract.ds.customer.service.CompanyCustomerService; +import com.ecep.contract.model.CloudYu; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyCustomerEntity; + +import lombok.Setter; + /** * 同步客户任务 */ @@ -36,7 +40,6 @@ public class CustomerSyncTask extends AbstContractRepairTasker { updateTitle("用友U8系统-同步客户"); } - private CompanyCustomerService getCompanyCustomerService() { return customerCtx.getCompanyCustomerService(); } @@ -46,7 +49,7 @@ public class CustomerSyncTask extends AbstContractRepairTasker { try { yongYouU8Service = getBean(YongYouU8Service.class); } catch (BeansException e) { - holder.warn("未启用 " + YongYouU8Service.NAME + " 服务"); + holder.warn("未启用 " + CloudServiceConstant.U8_NAME + " 服务"); return; } repository = SpringApp.getBean(YongYouU8Repository.class); diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/DateTransferTask.java b/server/src/main/java/com/ecep/contract/cloud/u8/DateTransferTask.java similarity index 86% rename from src/main/java/com/ecep/contract/manager/cloud/u8/DateTransferTask.java rename to server/src/main/java/com/ecep/contract/cloud/u8/DateTransferTask.java index a9432ed..4fc94bd 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/DateTransferTask.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/DateTransferTask.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.cloud.u8; +package com.ecep.contract.cloud.u8; import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; @@ -7,11 +7,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.cloud.CloudBaseInfo; -import com.ecep.contract.manager.cloud.CloudInfo; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.cloud.CloudInfo; +import com.ecep.contract.model.CloudYu; +import com.ecep.contract.ui.Tasker; import lombok.Setter; @@ -94,16 +94,12 @@ public class DateTransferTask extends Tasker { } } - boolean copyTo(CloudInfo v, CloudBaseInfo cloudRk) { + boolean copyTo(CloudInfo v, CloudYu 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; diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/EmployeesSyncTask.java b/server/src/main/java/com/ecep/contract/cloud/u8/EmployeesSyncTask.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/cloud/u8/EmployeesSyncTask.java rename to server/src/main/java/com/ecep/contract/cloud/u8/EmployeesSyncTask.java index 4a80507..631636e 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/EmployeesSyncTask.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/EmployeesSyncTask.java @@ -1,14 +1,4 @@ -package com.ecep.contract.manager.cloud.u8; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.other.model.Department; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.service.DepartmentService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.util.StringUtils; +package com.ecep.contract.cloud.u8; import java.time.LocalDate; import java.util.List; @@ -16,6 +6,17 @@ import java.util.Map; import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.util.StringUtils; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.ds.other.service.DepartmentService; +import com.ecep.contract.model.Department; +import com.ecep.contract.model.Employee; +import com.ecep.contract.ui.Tasker; + /** * 用友U8系统-同步员工信息 */ @@ -70,7 +71,6 @@ public class EmployeesSyncTask extends Tasker { java.sql.Timestamp personInValidDate = (java.sql.Timestamp) rs.get("dPInValidDate"); boolean modified = false; - Employee employee = getEmployeeService().findByCode(personCode); // 按员工代码未匹配时,尝试使用名字去匹配 if (employee == null) { @@ -83,8 +83,8 @@ public class EmployeesSyncTask extends Tasker { employee.setCreated(LocalDate.now()); holder.info("创建员工:" + personCode + ", 姓名:" + personName + "."); -// consumer.accept("员工编号:" + personCode + ", 姓名:" + personName + ", 本地未创建"); -// return; + // consumer.accept("员工编号:" + personCode + ", 姓名:" + personName + ", 本地未创建"); + // return; } employee.setCode(personCode); modified = true; @@ -92,7 +92,6 @@ public class EmployeesSyncTask extends Tasker { MessageHolder subHolder = holder.sub(personName + ": "); - if (!StringUtils.hasText(employee.getName())) { employee.setName(personName); modified = true; diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/U8DataSourceFactory.java b/server/src/main/java/com/ecep/contract/cloud/u8/U8DataSourceFactory.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/cloud/u8/U8DataSourceFactory.java rename to server/src/main/java/com/ecep/contract/cloud/u8/U8DataSourceFactory.java index a320585..28c1d92 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/U8DataSourceFactory.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/U8DataSourceFactory.java @@ -1,7 +1,7 @@ -package com.ecep.contract.manager.cloud.u8; +package com.ecep.contract.cloud.u8; -import com.ecep.contract.manager.ds.other.service.SysConfService; +import com.ecep.contract.ds.other.service.SysConfService; import com.zaxxer.hikari.HikariDataSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/VendorClassSyncTask.java b/server/src/main/java/com/ecep/contract/cloud/u8/VendorClassSyncTask.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/cloud/u8/VendorClassSyncTask.java rename to server/src/main/java/com/ecep/contract/cloud/u8/VendorClassSyncTask.java index 29cff49..66d1291 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/VendorClassSyncTask.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/VendorClassSyncTask.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.cloud.u8; +package com.ecep.contract.cloud.u8; import java.util.List; import java.util.Map; @@ -9,11 +9,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.vendor.model.VendorCatalog; -import com.ecep.contract.manager.ds.vendor.repository.VendorClassRepository; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.ds.vendor.repository.VendorClassRepository; +import com.ecep.contract.model.VendorCatalog; +import com.ecep.contract.ui.Tasker; import lombok.Setter; @@ -58,7 +58,7 @@ public class VendorClassSyncTask extends Tasker { holder.info("Cancelled"); return null; } - MessageHolder sub = holder.sub(counter.get() + "/" + size + ">" ); + MessageHolder sub = holder.sub(counter.get() + "/" + size + ">"); sync(map, sub); // 更新进度 updateProgress(counter.incrementAndGet(), size); diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/VendorSyncTask.java b/server/src/main/java/com/ecep/contract/cloud/u8/VendorSyncTask.java similarity index 86% rename from src/main/java/com/ecep/contract/manager/cloud/u8/VendorSyncTask.java rename to server/src/main/java/com/ecep/contract/cloud/u8/VendorSyncTask.java index 544bc51..40b6dce 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/VendorSyncTask.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/VendorSyncTask.java @@ -1,21 +1,4 @@ -package com.ecep.contract.manager.cloud.u8; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.cloud.u8.ctx.CompanyCtx; -import com.ecep.contract.manager.cloud.u8.ctx.VendorCtx; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.contract.tasker.AbstContractRepairTasker; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorEntity; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorEntityService; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ui.MessageHolder; -import lombok.Setter; -import org.hibernate.Hibernate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.BeansException; +package com.ecep.contract.cloud.u8; import java.time.Instant; import java.time.LocalDate; @@ -23,6 +6,27 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Stream; +import org.hibernate.Hibernate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeansException; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.cloud.u8.ctx.CompanyCtx; +import com.ecep.contract.cloud.u8.ctx.VendorCtx; +import com.ecep.contract.constant.CloudServiceConstant; +import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.ds.contract.tasker.AbstContractRepairTasker; +import com.ecep.contract.ds.vendor.service.CompanyVendorEntityService; +import com.ecep.contract.ds.vendor.service.CompanyVendorService; +import com.ecep.contract.model.CloudYu; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.CompanyVendorEntity; + +import lombok.Setter; + /** * 供应商同步任务 */ @@ -58,7 +62,7 @@ public class VendorSyncTask extends AbstContractRepairTasker { try { yongYouU8Service = getBean(YongYouU8Service.class); } catch (BeansException e) { - holder.warn("未启用 " + YongYouU8Service.NAME + " 服务"); + holder.warn("未启用 " + CloudServiceConstant.U8_NAME + " 服务"); return; } repository = SpringApp.getBean(YongYouU8Repository.class); diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8Repository.java b/server/src/main/java/com/ecep/contract/cloud/u8/YongYouU8Repository.java similarity index 99% rename from src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8Repository.java rename to server/src/main/java/com/ecep/contract/cloud/u8/YongYouU8Repository.java index 51a3c68..da0e3a8 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8Repository.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/YongYouU8Repository.java @@ -1,6 +1,5 @@ -package com.ecep.contract.manager.cloud.u8; +package com.ecep.contract.cloud.u8; -import com.ecep.contract.manager.ds.contract.ContractPayWay; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -10,6 +9,8 @@ import org.springframework.jdbc.core.ColumnMapRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Repository; +import com.ecep.contract.ContractPayWay; + import javax.sql.DataSource; import java.time.LocalDate; import java.time.LocalDateTime; diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8Service.java b/server/src/main/java/com/ecep/contract/cloud/u8/YongYouU8Service.java similarity index 70% rename from src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8Service.java rename to server/src/main/java/com/ecep/contract/cloud/u8/YongYouU8Service.java index b90ac87..b1db179 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8Service.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/YongYouU8Service.java @@ -1,13 +1,10 @@ -package com.ecep.contract.manager.cloud.u8; +package com.ecep.contract.cloud.u8; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; import java.util.stream.Stream; -import org.controlsfx.control.TaskProgressView; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -19,27 +16,23 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.cloud.CloudInfo; -import com.ecep.contract.manager.cloud.CloudInfoRepository; -import com.ecep.contract.manager.cloud.u8.ctx.AbstractYongYouU8Ctx; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.ui.task.MonitoredTask; - -import javafx.concurrent.Task; +import com.ecep.contract.IEntityService; +import com.ecep.contract.cloud.CloudInfo; +import com.ecep.contract.cloud.CloudInfoRepository; +import com.ecep.contract.cloud.u8.ctx.AbstractYongYouU8Ctx; +import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.ds.customer.service.CompanyCustomerService; +import com.ecep.contract.ds.other.service.EmployeeService; +import com.ecep.contract.ds.vendor.service.CompanyVendorService; +import com.ecep.contract.model.CloudYu; +import com.ecep.contract.model.Company; @Lazy @Service @ConditionalOnProperty(name = "cloud.u8.enabled", havingValue = "true") -public class YongYouU8Service implements ViewModelService { +public class YongYouU8Service implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(YongYouU8Service.class); - public static final String NAME = "用友U8"; - + public static final String KEY_HOST_IP = "u8.db.server.ip"; public static final String KEY_DATABASE = "u8.db.database"; public static final String KEY_USER_NAME = "u8.db.server.name"; @@ -48,9 +41,9 @@ public class YongYouU8Service implements ViewModelService> taskProgressView) { - ScheduledExecutorService executorService = Desktop.instance.getExecutorService(); - executorService.scheduleAtFixedRate(() -> { - ContractSyncTask task = new ContractSyncTask(); - MonitoredTask registerTask = Desktop.instance.getTaskMonitorCenter().registerTask(task); - registerTask.schedule(5, TimeUnit.SECONDS); - }, 3, TimeUnit.MINUTES.toSeconds(15), TimeUnit.SECONDS); - - executorService.scheduleAtFixedRate(() -> { - // 1小时运行一次同步供应商任务 - VendorSyncTask vendorTask = new VendorSyncTask(); - MonitoredTask registerVendorTask = Desktop.instance.getTaskMonitorCenter().registerTask(vendorTask); - registerVendorTask.schedule(60, TimeUnit.SECONDS); - - // 1小时运行一次同步客户任务 - CustomerSyncTask customerTask = new CustomerSyncTask(); - MonitoredTask registerCustomerTask = Desktop.instance.getTaskMonitorCenter() - .registerTask(customerTask); - registerCustomerTask.schedule(60, TimeUnit.SECONDS); - - }, 3, TimeUnit.HOURS.toSeconds(1), TimeUnit.SECONDS); - - } - /** * 保存 Cloud Yu * diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/AbstractYongYouU8Ctx.java b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/AbstractYongYouU8Ctx.java similarity index 85% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ctx/AbstractYongYouU8Ctx.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ctx/AbstractYongYouU8Ctx.java index 5c392d4..b831344 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/AbstractYongYouU8Ctx.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/AbstractYongYouU8Ctx.java @@ -1,32 +1,34 @@ -package com.ecep.contract.manager.cloud.u8.ctx; +package com.ecep.contract.cloud.u8.ctx; -import com.ecep.contract.manager.cloud.AbstractCtx; -import com.ecep.contract.manager.cloud.u8.YongYouU8Repository; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEntity; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerEntityService; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorEntity; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorEntityService; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ui.MessageHolder; -import lombok.Getter; -import lombok.Setter; -import org.hibernate.Hibernate; -import org.springframework.beans.BeansException; -import org.springframework.util.StringUtils; +import static com.ecep.contract.SpringApp.getBean; import java.util.Objects; import java.util.function.Consumer; import java.util.function.Supplier; -import static com.ecep.contract.manager.SpringApp.getBean; +import org.hibernate.Hibernate; +import org.springframework.beans.BeansException; +import org.springframework.util.StringUtils; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.cloud.AbstractCtx; +import com.ecep.contract.cloud.u8.YongYouU8Repository; +import com.ecep.contract.constant.CloudServiceConstant; +import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.ds.customer.service.CompanyCustomerEntityService; +import com.ecep.contract.ds.customer.service.CompanyCustomerService; +import com.ecep.contract.ds.other.service.EmployeeService; +import com.ecep.contract.ds.vendor.service.CompanyVendorEntityService; +import com.ecep.contract.ds.vendor.service.CompanyVendorService; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyCustomerEntity; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.CompanyVendorEntity; +import com.ecep.contract.model.Employee; + +import lombok.Getter; +import lombok.Setter; public class AbstractYongYouU8Ctx extends AbstractCtx { @Getter @@ -61,7 +63,7 @@ public class AbstractYongYouU8Ctx extends AbstractCtx { try { repository = getBean(YongYouU8Repository.class); } catch (BeansException e) { - holder.warn("未启用 " + YongYouU8Service.NAME + " 服务"); + holder.warn("未启用 " + CloudServiceConstant.U8_NAME + " 服务"); } } diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/CompanyBankAccountCtx.java b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/CompanyBankAccountCtx.java similarity index 68% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ctx/CompanyBankAccountCtx.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ctx/CompanyBankAccountCtx.java index 6eee14e..d7481b1 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/CompanyBankAccountCtx.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/CompanyBankAccountCtx.java @@ -1,12 +1,13 @@ -package com.ecep.contract.manager.cloud.u8.ctx; +package com.ecep.contract.cloud.u8.ctx; + +import static com.ecep.contract.SpringApp.getBean; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.ds.company.service.CompanyBankAccountService; +import com.ecep.contract.model.Company; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyBankAccountService; -import com.ecep.contract.manager.ui.MessageHolder; import lombok.Setter; -import static com.ecep.contract.manager.SpringApp.getBean; - public class CompanyBankAccountCtx extends AbstractYongYouU8Ctx { @Setter private CompanyBankAccountService companyBankAccountService; diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/CompanyCtx.java b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/CompanyCtx.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ctx/CompanyCtx.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ctx/CompanyCtx.java index f5af6cf..50eafa5 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/CompanyCtx.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/CompanyCtx.java @@ -1,6 +1,6 @@ -package com.ecep.contract.manager.cloud.u8.ctx; +package com.ecep.contract.cloud.u8.ctx; -import static com.ecep.contract.manager.SpringApp.getBean; +import static com.ecep.contract.SpringApp.getBean; import java.time.LocalDate; import java.util.List; @@ -8,12 +8,12 @@ import java.util.Objects; import org.springframework.util.StringUtils; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyOldName; -import com.ecep.contract.manager.ds.company.service.CompanyOldNameService; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ui.MessageHolder; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.constant.CloudServiceConstant; +import com.ecep.contract.ds.company.service.CompanyOldNameService; +import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyOldName; import lombok.Setter; @@ -72,7 +72,7 @@ public class CompanyCtx extends AbstractYongYouU8Ctx { List oldNames = getCompanyOldNameService().findAllByCompanyAndName(company, name); if (oldNames.isEmpty()) { CompanyOldName companyOldName = getCompanyOldNameService().createNew(company, name, ambiguity); - companyOldName.setMemo("来自" + YongYouU8Service.NAME); + companyOldName.setMemo("来自" + CloudServiceConstant.U8_NAME); getCompanyOldNameService().save(companyOldName); holder.info("新增曾用名:" + name); } diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/ContractCtx.java b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/ContractCtx.java similarity index 95% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ctx/ContractCtx.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ctx/ContractCtx.java index 26f870a..b64f34c 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/ContractCtx.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/ContractCtx.java @@ -1,6 +1,6 @@ -package com.ecep.contract.manager.cloud.u8.ctx; +package com.ecep.contract.cloud.u8.ctx; -import static com.ecep.contract.manager.SpringApp.getBean; +import static com.ecep.contract.SpringApp.getBean; import java.io.File; import java.text.NumberFormat; @@ -23,41 +23,41 @@ import java.util.stream.Stream; import org.hibernate.Hibernate; import org.springframework.util.StringUtils; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.ds.company.CompanyFileUtils; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractCatalog; -import com.ecep.contract.manager.ds.contract.model.ContractFile; -import com.ecep.contract.manager.ds.contract.model.ContractFileTypeLocal; -import com.ecep.contract.manager.ds.contract.model.ContractGroup; -import com.ecep.contract.manager.ds.contract.model.ContractItem; -import com.ecep.contract.manager.ds.contract.model.ContractKind; -import com.ecep.contract.manager.ds.contract.model.ContractPayPlan; -import com.ecep.contract.manager.ds.contract.model.ContractType; -import com.ecep.contract.manager.ds.contract.service.ContractFileService; -import com.ecep.contract.manager.ds.contract.service.ContractItemService; -import com.ecep.contract.manager.ds.contract.service.ContractPayPlanService; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEntity; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerEntityService; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.project.ProjectCtx; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectSaleType; -import com.ecep.contract.manager.ds.project.service.SaleTypeService; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorEntity; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorEntityService; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.util.MyDateTimeUtils; -import com.ecep.contract.manager.util.NumberUtils; -import com.ecep.contract.manager.util.TaxRateUtils; +import com.ecep.contract.ContractFileType; +import com.ecep.contract.ContractPayWay; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.MyDateTimeUtils; +import com.ecep.contract.constant.CloudServiceConstant; +import com.ecep.contract.ds.company.CompanyFileUtils; +import com.ecep.contract.ds.contract.service.ContractFileService; +import com.ecep.contract.ds.contract.service.ContractItemService; +import com.ecep.contract.ds.contract.service.ContractPayPlanService; +import com.ecep.contract.ds.contract.service.ContractService; +import com.ecep.contract.ds.customer.service.CompanyCustomerEntityService; +import com.ecep.contract.ds.customer.service.CompanyCustomerService; +import com.ecep.contract.ds.project.ProjectCtx; +import com.ecep.contract.ds.project.service.SaleTypeService; +import com.ecep.contract.ds.vendor.service.CompanyVendorEntityService; +import com.ecep.contract.ds.vendor.service.CompanyVendorService; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyCustomerEntity; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.CompanyVendorEntity; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractCatalog; +import com.ecep.contract.model.ContractFile; +import com.ecep.contract.model.ContractFileTypeLocal; +import com.ecep.contract.model.ContractGroup; +import com.ecep.contract.model.ContractItem; +import com.ecep.contract.model.ContractKind; +import com.ecep.contract.model.ContractPayPlan; +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.util.NumberUtils; +import com.ecep.contract.util.TaxRateUtils; import lombok.Getter; import lombok.Setter; @@ -788,7 +788,7 @@ public class ContractCtx extends AbstractYongYouU8Ctx { Map itemMap = items.stream() .collect(Collectors.toMap(ContractItem::getRefId, item -> item)); List> ds = repository.findAllContractItemByContractCode(contract.getCode()); - holder.debug("查找到 " + ds.size() + " 条合同条目记录在 " + YongYouU8Service.NAME); + holder.debug("查找到 " + ds.size() + " 条合同条目记录在 " + CloudServiceConstant.U8_NAME); List updates = new ArrayList<>(); for (Map map : ds) { @@ -1302,7 +1302,7 @@ public class ContractCtx extends AbstractYongYouU8Ctx { Map planMap = plans.stream() .collect(Collectors.toMap(ContractPayPlan::getRefId, item -> item)); List> ds = repository.findAllContractPayPlanByContractCode(contract.getCode()); - holder.debug("查找到 " + ds.size() + " 条合同付款计划记录在 " + YongYouU8Service.NAME); + holder.debug("查找到 " + ds.size() + " 条合同付款计划记录在 " + CloudServiceConstant.U8_NAME); List updates = new ArrayList<>(); for (Map map : ds) { diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/CustomerCtx.java b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/CustomerCtx.java similarity index 95% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ctx/CustomerCtx.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ctx/CustomerCtx.java index 563eacc..1f164b4 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/CustomerCtx.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/CustomerCtx.java @@ -1,16 +1,4 @@ -package com.ecep.contract.manager.cloud.u8.ctx; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.cloud.old.OldVersionService; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEntity; -import com.ecep.contract.manager.ds.customer.model.CustomerCatalog; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerEntityService; -import com.ecep.contract.manager.ui.MessageHolder; -import lombok.Setter; -import org.hibernate.Hibernate; -import org.springframework.util.StringUtils; +package com.ecep.contract.cloud.u8.ctx; import java.time.Instant; import java.time.LocalDate; @@ -20,6 +8,20 @@ import java.util.Objects; import java.util.function.Consumer; import java.util.function.Supplier; +import org.hibernate.Hibernate; +import org.springframework.util.StringUtils; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.cloud.old.OldVersionService; +import com.ecep.contract.ds.customer.service.CompanyCustomerEntityService; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyCustomerEntity; +import com.ecep.contract.model.CustomerCatalog; + +import lombok.Setter; + public class CustomerCtx extends AbstractYongYouU8Ctx { private static final String AUTO_CREATE_CUSTOMER_AFTER = "cloud.u8.auto-create-customer-after"; @Setter diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/InventoryCtx.java b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/InventoryCtx.java similarity index 92% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ctx/InventoryCtx.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ctx/InventoryCtx.java index f6f4a75..74fa693 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/InventoryCtx.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/InventoryCtx.java @@ -1,17 +1,6 @@ -package com.ecep.contract.manager.cloud.u8.ctx; +package com.ecep.contract.cloud.u8.ctx; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.model.InventoryCatalog; -import com.ecep.contract.manager.ds.other.model.Price; -import com.ecep.contract.manager.ds.other.service.InventoryCatalogService; -import com.ecep.contract.manager.ds.other.service.InventoryService; -import com.ecep.contract.manager.ui.MessageHolder; -import lombok.Setter; -import org.hibernate.Hibernate; -import org.springframework.beans.factory.NoSuchBeanDefinitionException; -import org.springframework.dao.EmptyResultDataAccessException; -import org.springframework.util.StringUtils; +import static com.ecep.contract.SpringApp.getBean; import java.sql.Timestamp; import java.time.LocalDateTime; @@ -20,7 +9,20 @@ import java.util.Objects; import java.util.function.Consumer; import java.util.function.Supplier; -import static com.ecep.contract.manager.SpringApp.getBean; +import org.hibernate.Hibernate; +import org.springframework.beans.factory.NoSuchBeanDefinitionException; +import org.springframework.dao.EmptyResultDataAccessException; +import org.springframework.util.StringUtils; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.constant.CloudServiceConstant; +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.model.Price; + +import lombok.Setter; public class InventoryCtx extends AbstractYongYouU8Ctx { @Setter @@ -135,7 +137,7 @@ public class InventoryCtx extends AbstractYongYouU8Ctx { try { map = repository.queryInventoryDetail(inventoryCode); } catch (NoSuchBeanDefinitionException e) { - holder.warn("未启用 " + YongYouU8Service.NAME + " 服务"); + holder.warn("未启用 " + CloudServiceConstant.U8_NAME + " 服务"); return false; } catch (EmptyResultDataAccessException e) { holder.error("无此存货:" + inventoryCode); diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/InvoiceCtx.java b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/InvoiceCtx.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ctx/InvoiceCtx.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ctx/InvoiceCtx.java index ec5b2b3..457b091 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/InvoiceCtx.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/InvoiceCtx.java @@ -1,16 +1,18 @@ -package com.ecep.contract.manager.cloud.u8.ctx; +package com.ecep.contract.cloud.u8.ctx; -import com.ecep.contract.manager.ds.company.model.Invoice; -import com.ecep.contract.manager.ds.company.service.InvoiceService; -import com.ecep.contract.manager.ui.MessageHolder; -import lombok.Setter; -import org.springframework.util.StringUtils; +import static com.ecep.contract.SpringApp.getBean; import java.util.Objects; import java.util.function.Consumer; import java.util.function.Supplier; -import static com.ecep.contract.manager.SpringApp.getBean; +import org.springframework.util.StringUtils; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.ds.company.service.InvoiceService; +import com.ecep.contract.model.Invoice; + +import lombok.Setter; public class InvoiceCtx extends AbstractYongYouU8Ctx { @Setter @@ -23,7 +25,8 @@ public class InvoiceCtx extends AbstractYongYouU8Ctx { return invoiceService; } - public boolean updateInvoiceByNumber(Supplier getter, Consumer setter, String invoiceNumber, MessageHolder holder, String topic) { + public boolean updateInvoiceByNumber(Supplier getter, Consumer setter, String invoiceNumber, + MessageHolder holder, String topic) { // TODO 从U8系统中获取数据 Invoice invoice = null; if (StringUtils.hasText(invoiceNumber)) { diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/PurchaseBillVoucherCtx.java b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/PurchaseBillVoucherCtx.java similarity index 86% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ctx/PurchaseBillVoucherCtx.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ctx/PurchaseBillVoucherCtx.java index 384d7e6..e1dfe47 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/PurchaseBillVoucherCtx.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/PurchaseBillVoucherCtx.java @@ -1,19 +1,6 @@ -package com.ecep.contract.manager.cloud.u8.ctx; +package com.ecep.contract.cloud.u8.ctx; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.Invoice; -import com.ecep.contract.manager.ds.contract.model.*; -import com.ecep.contract.manager.ds.contract.service.PurchaseBillVoucherItemService; -import com.ecep.contract.manager.ds.contract.service.PurchaseBillVoucherService; -import com.ecep.contract.manager.ds.contract.service.PurchaseOrderItemService; -import com.ecep.contract.manager.ds.contract.service.PurchaseOrdersService; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorEntity; -import com.ecep.contract.manager.ui.MessageHolder; -import lombok.Setter; -import org.springframework.data.domain.Sort; +import static com.ecep.contract.SpringApp.getBean; import java.math.BigDecimal; import java.sql.Timestamp; @@ -25,7 +12,26 @@ import java.util.function.Consumer; import java.util.function.Supplier; import java.util.stream.Collectors; -import static com.ecep.contract.manager.SpringApp.getBean; +import org.springframework.data.domain.Sort; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.constant.CloudServiceConstant; +import com.ecep.contract.ds.contract.service.PurchaseBillVoucherItemService; +import com.ecep.contract.ds.contract.service.PurchaseBillVoucherService; +import com.ecep.contract.ds.contract.service.PurchaseOrderItemService; +import com.ecep.contract.ds.contract.service.PurchaseOrdersService; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.CompanyVendorEntity; +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.PurchaseOrder; +import com.ecep.contract.model.PurchaseOrderItem; + +import lombok.Setter; public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx { @Setter @@ -37,7 +43,6 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx { @Setter private PurchaseBillVoucherItemService purchaseBillVoucherItemService; - InventoryCtx inventoryCtx; InvoiceCtx invoiceCtx; ContractCtx contractCtx; @@ -101,16 +106,19 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx { return cb.equal(root.get("company"), company); }, Sort.unsorted()); holder.debug("查找到 " + vouchers.size() + " 条专用发票记录在数据库中"); - Map voucherMap = vouchers.stream().collect(Collectors.toMap(PurchaseBillVoucher::getRefId, item -> item)); + Map voucherMap = vouchers.stream() + .collect(Collectors.toMap(PurchaseBillVoucher::getRefId, item -> item)); CompanyVendor vendor = getCompanyVendorService().findByCompany(company); if (vendor != null) { List entities = getCompanyVendorEntityService().findAllByVendor(vendor); - holder.debug(company.getName() + " 有 " + entities.stream().map(CompanyVendorEntity::getCode).collect(Collectors.joining(", ")) + " 关联项"); + holder.debug(company.getName() + " 有 " + + entities.stream().map(CompanyVendorEntity::getCode).collect(Collectors.joining(", ")) + " 关联项"); for (CompanyVendorEntity entity : entities) { // 查询 U8 数据库 List> ds = repository.findAllPurchaseBillVoucherByVendorCode(entity.getCode()); - holder.debug("供应商关联项: " + entity.getCode() + " 查找到 " + ds.size() + " 条专用发票记录在 " + YongYouU8Service.NAME); + holder.debug( + "供应商关联项: " + entity.getCode() + " 查找到 " + ds.size() + " 条专用发票记录在 " + CloudServiceConstant.U8_NAME); for (Map map : ds) { Integer pbvid = (Integer) map.get("PBVID"); @@ -148,13 +156,14 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx { }, Sort.unsorted()); // 按 order 分组 - Map> itemMap = items.stream().collect(Collectors.groupingBy(PurchaseBillVoucherItem::getVoucher, - Collectors.toMap(PurchaseBillVoucherItem::getRefId, item -> item))); + Map> itemMap = items.stream() + .collect(Collectors.groupingBy(PurchaseBillVoucherItem::getVoucher, + Collectors.toMap(PurchaseBillVoucherItem::getRefId, item -> item))); for (PurchaseBillVoucher voucher : voucherMap.values()) { // 查询 U8 数据库 List> ds = repository.findAllPurchaseBillVoucherItemByPbvId(voucher.getRefId()); - holder.debug("专用发票#" + voucher.getRefId() + "查找到 " + ds.size() + "条条目记录在 " + YongYouU8Service.NAME); + holder.debug("专用发票#" + voucher.getRefId() + "查找到 " + ds.size() + "条条目记录在 " + CloudServiceConstant.U8_NAME); Map subItemMap = itemMap.computeIfAbsent(voucher, k -> new HashMap<>()); for (Map map : ds) { Integer refId = (Integer) map.get("ID"); @@ -194,10 +203,11 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx { return cb.equal(root.get("contract"), contract); }, Sort.unsorted()); - Map itemMap = items.stream().collect(Collectors.toMap(PurchaseBillVoucherItem::getRefId, item -> item)); + Map itemMap = items.stream() + .collect(Collectors.toMap(PurchaseBillVoucherItem::getRefId, item -> item)); // 查询 U8 数据库 List> ds = repository.findAllPurchaseBillVoucherItemByContractCode(contract.getCode()); - holder.debug("合同编号#" + contract.getCode() + "查找到 " + ds.size() + "条发票条目记录在 " + YongYouU8Service.NAME); + holder.debug("合同编号#" + contract.getCode() + "查找到 " + ds.size() + "条发票条目记录在 " + CloudServiceConstant.U8_NAME); for (Map map : ds) { Integer refId = (Integer) map.get("ID"); @@ -240,15 +250,14 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx { return voucher; } - - private boolean applyPurchaseBillVoucherDetail(PurchaseBillVoucher voucher, Map map, MessageHolder holder) { + private boolean applyPurchaseBillVoucherDetail(PurchaseBillVoucher voucher, Map map, + MessageHolder holder) { String code = String.valueOf(map.get("PBVID")); String vendorCode = (String) map.get("cVenCode"); String invoiceNumber = (String) map.get("cPBVCode"); String personCode = (String) map.get("cPersonCode"); String inCode = (String) map.get("cInCode"); - Timestamp invoiceDate = (Timestamp) map.get("dPBVDate"); Timestamp voucherDate = (Timestamp) map.get("dVouDate"); @@ -261,7 +270,6 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx { String description = (String) map.get("cPBVMemo"); - boolean modified = false; holder.debug("发票号码:" + invoiceNumber); @@ -304,13 +312,12 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx { return modified; } - - private boolean applyPurchaseBillVoucherItemDetail(PurchaseBillVoucherItem item, Map map, MessageHolder holder) { + private boolean applyPurchaseBillVoucherItemDetail(PurchaseBillVoucherItem item, Map map, + MessageHolder holder) { String code = String.valueOf(map.get("ID")); String inventoryCode = (String) map.get("cInvCode"); String contractCode = (String) map.get("ContractCode"); - String title = (String) map.get("cInvCode"); double quantity = (double) map.get("iPBVQuantity"); BigDecimal taxRate = (BigDecimal) map.get("iOriTaxPrice"); @@ -350,7 +357,8 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx { return modified; } - boolean updatePurchaseOrderItem(Supplier getter, Consumer setter, Integer orderItemRefId, MessageHolder holder, String topic) { + boolean updatePurchaseOrderItem(Supplier getter, Consumer setter, + Integer orderItemRefId, MessageHolder holder, String topic) { PurchaseOrderItem item = null; if (orderItemRefId != null) { item = getPurchaseOrderItemService().findByRefId(orderItemRefId); @@ -369,7 +377,8 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx { return false; } - boolean updatePurchaseOrder(Supplier getter, Consumer setter, Integer orderRefId, MessageHolder holder, String topic) { + boolean updatePurchaseOrder(Supplier getter, Consumer setter, Integer orderRefId, + MessageHolder holder, String topic) { PurchaseOrder order = null; if (orderRefId != null) { order = getPurchaseOrdersService().findByRefId(orderRefId); @@ -388,7 +397,8 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx { return false; } - boolean updateContractByContractCode(Supplier getter, Consumer setter, String contractCode, MessageHolder holder, String topic) { + boolean updateContractByContractCode(Supplier getter, Consumer setter, String contractCode, + MessageHolder holder, String topic) { Contract contract = null; if (contractCode != null) { contract = getContractCtx().findContractByCode(contractCode); @@ -407,13 +417,14 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx { return false; } - boolean updateInventory(Supplier getter, Consumer setter, String inventoryCode, MessageHolder holder, String topic) { + boolean updateInventory(Supplier getter, Consumer setter, String inventoryCode, + MessageHolder holder, String topic) { return getInventoryCtx().syncInventoryDetailByCode(getter, setter, inventoryCode, holder, topic); } - private boolean updateInvoice(Supplier getter, Consumer setter, String invoiceNumber, MessageHolder holder, String topic) { + private boolean updateInvoice(Supplier getter, Consumer setter, String invoiceNumber, + MessageHolder holder, String topic) { return getInvoiceCtx().updateInvoiceByNumber(getter, setter, invoiceNumber, holder, topic); } - } diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/PurchaseOrderCtx.java b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/PurchaseOrderCtx.java similarity index 85% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ctx/PurchaseOrderCtx.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ctx/PurchaseOrderCtx.java index b7bc2b2..066350b 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/PurchaseOrderCtx.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/PurchaseOrderCtx.java @@ -1,27 +1,33 @@ -package com.ecep.contract.manager.cloud.u8.ctx; +package com.ecep.contract.cloud.u8.ctx; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrder; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrderItem; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.service.PurchaseOrderItemService; -import com.ecep.contract.manager.ds.contract.service.PurchaseOrdersService; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.util.NumberUtils; -import lombok.Setter; -import org.hibernate.Hibernate; -import org.springframework.data.domain.Sort; +import static com.ecep.contract.SpringApp.getBean; import java.math.BigDecimal; import java.sql.Timestamp; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; import java.util.function.Consumer; import java.util.function.Supplier; import java.util.stream.Collectors; -import static com.ecep.contract.manager.SpringApp.getBean; +import org.hibernate.Hibernate; +import org.springframework.data.domain.Sort; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.constant.CloudServiceConstant; +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.model.Contract; +import com.ecep.contract.model.Inventory; +import com.ecep.contract.model.PurchaseOrder; +import com.ecep.contract.model.PurchaseOrderItem; +import com.ecep.contract.util.NumberUtils; + +import lombok.Setter; public class PurchaseOrderCtx extends AbstractYongYouU8Ctx { @Setter @@ -71,7 +77,6 @@ public class PurchaseOrderCtx extends AbstractYongYouU8Ctx { return purchaseOrderItemService; } - public List syncByContract(Contract contract, MessageHolder holder) { PurchaseOrdersService ordersService = getPurchaseOrdersService(); PurchaseOrderItemService itemService = getPurchaseOrderItemService(); @@ -80,19 +85,21 @@ public class PurchaseOrderCtx extends AbstractYongYouU8Ctx { return cb.equal(root.get("contract"), contract); }, Sort.unsorted()); holder.debug("查找到 " + orders.size() + " 条采购订单记录在数据库中"); - Map ordersMap = orders.stream().collect(Collectors.toMap(PurchaseOrder::getRefId, item -> item)); + Map ordersMap = orders.stream() + .collect(Collectors.toMap(PurchaseOrder::getRefId, item -> item)); List items = itemService.findAll((root, q, cb) -> { return cb.equal(root.get("order").get("contract"), contract); }, Sort.unsorted()); // 按 order 分组 - Map> itemMap = items.stream().collect(Collectors.groupingBy(PurchaseOrderItem::getOrder, - Collectors.toMap(PurchaseOrderItem::getRefId, item -> item))); + Map> itemMap = items.stream() + .collect(Collectors.groupingBy(PurchaseOrderItem::getOrder, + Collectors.toMap(PurchaseOrderItem::getRefId, item -> item))); // 查询 U8 数据库 List> ds = repository.findAllPurchaseOrderItemByContractCode(contract.getCode()); - holder.debug("查找到 " + ds.size() + " 条采购订单条目记录在 " + YongYouU8Service.NAME); + holder.debug("查找到 " + ds.size() + " 条采购订单条目记录在 " + CloudServiceConstant.U8_NAME); Map> updateMap = new HashMap<>(); for (Map map : ds) { @@ -198,28 +205,34 @@ public class PurchaseOrderCtx extends AbstractYongYouU8Ctx { modified = true; } - if (updateEmployeeByCode(order::getEmployee, order::setEmployee, (String) map.get("cPersonCode"), holder, "业务员")) { + if (updateEmployeeByCode(order::getEmployee, order::setEmployee, (String) map.get("cPersonCode"), holder, + "业务员")) { modified = true; } if (updateEmployeeByName(order::getMaker, order::setMaker, (String) map.get("cMaker"), holder, "制单人")) { modified = true; } - if (updateEmployeeByName(order::getVerifier, order::setVerifier, (String) map.get("cVerifier"), holder, "审核人")) { + if (updateEmployeeByName(order::getVerifier, order::setVerifier, (String) map.get("cVerifier"), holder, + "审核人")) { modified = true; } if (updateEmployeeByName(order::getCloser, order::setCloser, (String) map.get("cCloser"), holder, "订单关闭人")) { modified = true; } - if (updateLocalDateTime(order::getMakerDate, order::setMakerDate, (Timestamp) map.get("cmaketime"), holder, "制单日期")) { + if (updateLocalDateTime(order::getMakerDate, order::setMakerDate, (Timestamp) map.get("cmaketime"), holder, + "制单日期")) { modified = true; } - if (updateLocalDateTime(order::getModifyDate, order::setModifyDate, (Timestamp) map.get("cModifyTime"), holder, "修改日期")) { + if (updateLocalDateTime(order::getModifyDate, order::setModifyDate, (Timestamp) map.get("cModifyTime"), holder, + "修改日期")) { modified = true; } - if (updateLocalDateTime(order::getVerifierDate, order::setVerifierDate, (Timestamp) map.get("cAuditTime"), holder, "审核日期")) { + if (updateLocalDateTime(order::getVerifierDate, order::setVerifierDate, (Timestamp) map.get("cAuditTime"), + holder, "审核日期")) { modified = true; } - if (updateLocalDateTime(order::getCloserDate, order::setCloserDate, (Timestamp) map.get("dCloseTime"), holder, "关闭日期")) { + if (updateLocalDateTime(order::getCloserDate, order::setCloserDate, (Timestamp) map.get("dCloseTime"), holder, + "关闭日期")) { modified = true; } if (!Objects.equals(order.getVendorCode(), venCode)) { @@ -249,8 +262,8 @@ public class PurchaseOrderCtx extends AbstractYongYouU8Ctx { getCompanyBankAccountCtx().updateBankAccount(contract.getCompany(), bank, bankAccount, holder); } - - private boolean applyPurchaseOrderItemDetail(PurchaseOrderItem item, Map map, MessageHolder holder) { + private boolean applyPurchaseOrderItemDetail(PurchaseOrderItem item, Map map, + MessageHolder holder) { Integer refId = (Integer) map.get("ID"); String inventoryCode = (String) map.get("cInvCode"); String contractCode = (String) map.get("ContractCode"); @@ -262,7 +275,6 @@ public class PurchaseOrderCtx extends AbstractYongYouU8Ctx { double exclusiveTaxPrice = (double) map.get("iUnitPrice"); BigDecimal amount = (BigDecimal) map.get("iSum"); - Timestamp arriveDate = (Timestamp) map.get("dArriveDate"); boolean modified = false; @@ -299,7 +311,8 @@ public class PurchaseOrderCtx extends AbstractYongYouU8Ctx { modified = true; } - if (updateLocalDate(item::getArriveDate, item::setArriveDate, (Timestamp) map.get("dArriveDate"), holder, "开始日期")) { + if (updateLocalDate(item::getArriveDate, item::setArriveDate, (Timestamp) map.get("dArriveDate"), holder, + "开始日期")) { modified = true; } @@ -312,7 +325,8 @@ public class PurchaseOrderCtx extends AbstractYongYouU8Ctx { return modified; } - boolean updateInventory(Supplier getter, Consumer setter, String inventoryCode, MessageHolder holder, String topic) { + boolean updateInventory(Supplier getter, Consumer setter, String inventoryCode, + MessageHolder holder, String topic) { return getInventoryCtx().syncInventoryDetailByCode(getter, setter, inventoryCode, holder, topic); } } diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/PurchaseSettlementVoucherCtx.java b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/PurchaseSettlementVoucherCtx.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ctx/PurchaseSettlementVoucherCtx.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ctx/PurchaseSettlementVoucherCtx.java index adb8296..e60fcfc 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/PurchaseSettlementVoucherCtx.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/PurchaseSettlementVoucherCtx.java @@ -1,15 +1,15 @@ -package com.ecep.contract.manager.cloud.u8.ctx; - -import com.ecep.contract.manager.ds.contract.model.PurchaseSettlementVoucher; -import com.ecep.contract.manager.ds.contract.model.PurchaseSettlementVoucherItem; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ui.MessageHolder; +package com.ecep.contract.cloud.u8.ctx; import java.sql.Timestamp; import java.util.Map; import java.util.function.Consumer; import java.util.function.Supplier; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.model.Inventory; +import com.ecep.contract.model.PurchaseSettlementVoucher; +import com.ecep.contract.model.PurchaseSettlementVoucherItem; + public class PurchaseSettlementVoucherCtx extends AbstractYongYouU8Ctx { InventoryCtx inventoryCtx; @@ -21,8 +21,8 @@ public class PurchaseSettlementVoucherCtx extends AbstractYongYouU8Ctx { return inventoryCtx; } - - private boolean applyPurchaseSettlementVoucherDetail(PurchaseSettlementVoucher voucher, Map map, MessageHolder holder) { + private boolean applyPurchaseSettlementVoucherDetail(PurchaseSettlementVoucher voucher, Map map, + MessageHolder holder) { String code = (String) map.get("cSVCode"); String vendorCode = (String) map.get("cVenCode"); String personCode = (String) map.get("cPersonCode"); @@ -54,8 +54,8 @@ public class PurchaseSettlementVoucherCtx extends AbstractYongYouU8Ctx { return modified; } - - private boolean applyPurchaseSettlementVoucherItemDetail(PurchaseSettlementVoucherItem item, Map map, MessageHolder holder) { + private boolean applyPurchaseSettlementVoucherItemDetail(PurchaseSettlementVoucherItem item, + Map map, MessageHolder holder) { String inventoryCode = (String) map.get("cInvCode"); String pivCode = (String) map.get("cPIVCode"); String accountant = (String) map.get("cbAccounter"); @@ -79,7 +79,8 @@ public class PurchaseSettlementVoucherCtx extends AbstractYongYouU8Ctx { return modified; } - boolean updateInventory(Supplier getter, Consumer setter, String inventoryCode, MessageHolder holder, String topic) { + boolean updateInventory(Supplier getter, Consumer setter, String inventoryCode, + MessageHolder holder, String topic) { return getInventoryCtx().syncInventoryDetailByCode(getter, setter, inventoryCode, holder, topic); } } diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/SalesBillVoucherCtx.java b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/SalesBillVoucherCtx.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ctx/SalesBillVoucherCtx.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ctx/SalesBillVoucherCtx.java index da6293e..ec59da7 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/SalesBillVoucherCtx.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/SalesBillVoucherCtx.java @@ -1,24 +1,6 @@ -package com.ecep.contract.manager.cloud.u8.ctx; +package com.ecep.contract.cloud.u8.ctx; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.SalesBillVoucher; -import com.ecep.contract.manager.ds.contract.model.SalesBillVoucherItem; -import com.ecep.contract.manager.ds.contract.model.SalesOrder; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.service.SaleOrdersService; -import com.ecep.contract.manager.ds.contract.service.SalesBillVoucherService; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEntity; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.util.NumberUtils; -import lombok.Setter; -import org.hibernate.Hibernate; -import org.springframework.data.domain.Sort; -import org.springframework.util.StringUtils; +import static com.ecep.contract.SpringApp.getBean; import java.math.BigDecimal; import java.sql.Timestamp; @@ -30,7 +12,27 @@ import java.util.function.Consumer; import java.util.function.Supplier; import java.util.stream.Collectors; -import static com.ecep.contract.manager.SpringApp.getBean; +import org.hibernate.Hibernate; +import org.springframework.data.domain.Sort; +import org.springframework.util.StringUtils; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.constant.CloudServiceConstant; +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.model.Company; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyCustomerEntity; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.Inventory; +import com.ecep.contract.model.SalesBillVoucher; +import com.ecep.contract.model.SalesBillVoucherItem; +import com.ecep.contract.model.SalesOrder; +import com.ecep.contract.util.NumberUtils; + +import lombok.Setter; public class SalesBillVoucherCtx extends AbstractYongYouU8Ctx { @Setter @@ -85,7 +87,7 @@ public class SalesBillVoucherCtx extends AbstractYongYouU8Ctx { for (CompanyCustomerEntity entity : entities) { // 查询 U8 数据库 List> ds = repository.findAllSalesBillVoucherByCustomerCode(entity.getCode()); - holder.debug("查找" + entity.getCode() + "到 " + ds.size() + " 条专用发票记录在 " + YongYouU8Service.NAME); + holder.debug("查找" + entity.getCode() + "到 " + ds.size() + " 条专用发票记录在 " + CloudServiceConstant.U8_NAME); for (Map map : ds) { Integer sbvid = (Integer) map.get("SBVID"); @@ -127,7 +129,7 @@ public class SalesBillVoucherCtx extends AbstractYongYouU8Ctx { // 查询 U8 数据库 List> ds = repository.findAllSalesBillVoucherItemBySBVID(voucher.getRefId()); - holder.debug("专用发票#" + voucher.getRefId() + "查找到 " + ds.size() + "条条目记录在 " + YongYouU8Service.NAME); + holder.debug("专用发票#" + voucher.getRefId() + "查找到 " + ds.size() + "条条目记录在 " + CloudServiceConstant.U8_NAME); Map subItemMap = itemMap.computeIfAbsent(voucher, k -> new HashMap<>()); for (Map map : ds) { Integer refId = (Integer) map.get("ID"); @@ -170,7 +172,7 @@ public class SalesBillVoucherCtx extends AbstractYongYouU8Ctx { { // 查询 U8 数据库 List> ds = repository.findAllSalesBillVoucherBySalesOrderCode(order.getCode()); - holder.debug("查找" + order.getCode() + "到 " + ds.size() + " 条专用发票记录在 " + YongYouU8Service.NAME); + holder.debug("查找" + order.getCode() + "到 " + ds.size() + " 条专用发票记录在 " + CloudServiceConstant.U8_NAME); for (Map map : ds) { Integer sbvid = (Integer) map.get("SBVID"); @@ -216,7 +218,7 @@ public class SalesBillVoucherCtx extends AbstractYongYouU8Ctx { // 查询 U8 数据库 List> ds = repository.findAllSalesBillVoucherItemBySBVID(voucher.getRefId()); - holder.debug("专用发票#" + voucher.getRefId() + "查找到 " + ds.size() + "条条目记录在 " + YongYouU8Service.NAME); + holder.debug("专用发票#" + voucher.getRefId() + "查找到 " + ds.size() + "条条目记录在 " + CloudServiceConstant.U8_NAME); Map subItemMap = itemMap.computeIfAbsent(voucher, k -> new HashMap<>()); for (Map map : ds) { Integer refId = (Integer) map.get("AutoID"); diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/SalesOrderCtx.java b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/SalesOrderCtx.java similarity index 93% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ctx/SalesOrderCtx.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ctx/SalesOrderCtx.java index 2d7faa9..9750151 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/SalesOrderCtx.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/SalesOrderCtx.java @@ -1,22 +1,29 @@ -package com.ecep.contract.manager.cloud.u8.ctx; +package com.ecep.contract.cloud.u8.ctx; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.SalesOrder; -import com.ecep.contract.manager.ds.contract.model.SalesOrderItem; -import com.ecep.contract.manager.ds.contract.service.SaleOrdersService; -import com.ecep.contract.manager.ds.contract.service.SalesOrderItemService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.util.NumberUtils; -import lombok.Setter; -import org.springframework.data.domain.Sort; +import static com.ecep.contract.SpringApp.getBean; import java.math.BigDecimal; import java.sql.Timestamp; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; import java.util.stream.Collectors; -import static com.ecep.contract.manager.SpringApp.getBean; +import org.springframework.data.domain.Sort; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.constant.CloudServiceConstant; +import com.ecep.contract.ds.contract.service.SaleOrdersService; +import com.ecep.contract.ds.contract.service.SalesOrderItemService; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.SalesOrder; +import com.ecep.contract.model.SalesOrderItem; +import com.ecep.contract.util.NumberUtils; + +import lombok.Setter; public class SalesOrderCtx extends AbstractYongYouU8Ctx { @@ -60,7 +67,7 @@ public class SalesOrderCtx extends AbstractYongYouU8Ctx { // 查询 U8 数据库 List> ds = repository.findAllSalesOrderItemByContractCode(contract.getCode()); - holder.debug("查找到 " + ds.size() + " 条销售订单条目记录在 " + YongYouU8Service.NAME); + holder.debug("查找到 " + ds.size() + " 条销售订单条目记录在 " + CloudServiceConstant.U8_NAME); Map> updateMap = new HashMap<>(); for (Map map : ds) { diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/VendorCtx.java b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/VendorCtx.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/cloud/u8/ctx/VendorCtx.java rename to server/src/main/java/com/ecep/contract/cloud/u8/ctx/VendorCtx.java index 0f43e91..ff1876c 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/ctx/VendorCtx.java +++ b/server/src/main/java/com/ecep/contract/cloud/u8/ctx/VendorCtx.java @@ -1,18 +1,4 @@ -package com.ecep.contract.manager.cloud.u8.ctx; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.cloud.old.OldVersionService; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorEntity; -import com.ecep.contract.manager.ds.vendor.model.VendorCatalog; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorEntityService; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ui.MessageHolder; -import lombok.Setter; -import org.hibernate.Hibernate; -import org.springframework.util.StringUtils; +package com.ecep.contract.cloud.u8.ctx; import java.time.Instant; import java.time.LocalDate; @@ -22,6 +8,22 @@ import java.util.Objects; import java.util.function.Consumer; import java.util.function.Supplier; +import org.hibernate.Hibernate; +import org.springframework.util.StringUtils; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.cloud.old.OldVersionService; +import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.ds.vendor.service.CompanyVendorEntityService; +import com.ecep.contract.ds.vendor.service.CompanyVendorService; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.CompanyVendorEntity; +import com.ecep.contract.model.VendorCatalog; + +import lombok.Setter; + public class VendorCtx extends AbstractYongYouU8Ctx { private static final String AUTO_CREATE_VENDOR_AFTER = "cloud.u8.auto-create-vendor-after"; @Setter diff --git a/server/src/main/java/com/ecep/contract/config/OpenApiConfig.java b/server/src/main/java/com/ecep/contract/config/OpenApiConfig.java new file mode 100644 index 0000000..4c53095 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/config/OpenApiConfig.java @@ -0,0 +1,38 @@ +package com.ecep.contract.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Contact; +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.info.License; +import io.swagger.v3.oas.models.servers.Server; + +import java.util.List; + +/** + * OpenAPI配置类,用于配置Swagger文档 + */ +@Configuration +public class OpenApiConfig { + + @Bean + public OpenAPI customOpenAPI() { + return new OpenAPI() + .info(new Info() + .title("合同管理系统 API") + .version("1.0") + .description("合同管理系统的REST API文档") + .contact(new Contact() + .name("宋其青") + .email("qiqing.song@ecep.com")) + .license(new License() + .name("内部使用") + .url("http://10.84.210.110"))) + .servers(List.of( + new Server().url("http://localhost:8080").description("开发环境"), + new Server().url("http://10.84.210.110:8080").description("测试环境") + )); + } +} \ No newline at end of file diff --git a/server/src/main/java/com/ecep/contract/config/SecurityConfig.java b/server/src/main/java/com/ecep/contract/config/SecurityConfig.java new file mode 100644 index 0000000..e4a2dd7 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/config/SecurityConfig.java @@ -0,0 +1,160 @@ +package com.ecep.contract.config; + +import java.util.List; +import java.util.stream.Collectors; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Lazy; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.authentication.dao.DaoAuthenticationProvider; +import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; +import org.springframework.security.config.http.SessionCreationPolicy; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.SecurityFilterChain; +import org.springframework.security.config.Customizer; + +import com.ecep.contract.ds.other.service.EmployeeService; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.EmployeeRole; + +/** + * Spring Security配置类 + * 用于配置安全认证和授权规则 + */ +@Configuration +@EnableWebSecurity +public class SecurityConfig { + + @Lazy + @Autowired + private EmployeeService employeeService; + + /** + * 配置HTTP安全策略 + * 启用表单登录和HTTP Basic认证 + */ + @Bean + public SecurityFilterChain securityFilterChain(HttpSecurity http, AuthenticationManager authenticationManager) throws Exception { + http + .authorizeHttpRequests(authorize -> authorize + .requestMatchers("/login.html", "/css/**", "/js/**", "/images/**", "/webjars/**", "/login", "/error").permitAll() // 允许静态资源、登录页面和错误页面访问 + .anyRequest().authenticated() // 其他所有请求需要认证 + ) + .csrf(AbstractHttpConfigurer::disable) // 禁用CSRF保护,适合开发环境 + .formLogin(form -> form + .loginPage("/login.html") // 直接使用静态登录页面 + .loginProcessingUrl("/login") // 登录处理URL + .permitAll() // 允许所有人访问登录页面 + .defaultSuccessUrl("/", true) // 登录成功后重定向到首页 + .failureUrl("/login.html?error=true") // 登录失败后重定向到登录页面并显示错误 + .usernameParameter("username") // 用户名参数名 + .passwordParameter("password") // 密码参数名 + ) + .httpBasic(Customizer.withDefaults()) // 启用HTTP Basic认证 + .logout(logout -> logout + .logoutUrl("/logout") // 注销URL + .logoutSuccessUrl("/login?logout=true") // 注销成功后重定向到登录页面 + .invalidateHttpSession(true) // 使会话失效 + .deleteCookies("JSESSIONID") // 删除会话cookie + .permitAll() // 允许所有人访问注销URL + ) + .sessionManagement(session -> session + .sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED) // 根据需要创建会话 + .maximumSessions(1) // 每个用户最多1个会话 + .expiredUrl("/login?expired=true") // 会话过期后重定向到登录页面 + ) + .authenticationManager(authenticationManager); // 设置认证管理器 + + return http.build(); + } + + /** + * 配置AuthenticationManager + * 用于处理认证请求 + */ + @Bean + public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception { + return authenticationConfiguration.getAuthenticationManager(); + } + + /** + * 配置密码编码器 + * BCryptPasswordEncoder是Spring Security推荐的密码编码器 + */ + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } + + /** + * 配置基于EmployeeService的用户认证 + * 通过EmployeeService获取员工信息并转换为Spring Security的UserDetails + */ + @Bean + public UserDetailsService userDetailsService() { + return username -> { + // 使用EmployeeService根据用户名查找员工 + Employee employee = employeeService.findByAccount(username); + + // 如果找不到员工,抛出UsernameNotFoundException异常 + if (employee == null) { + throw new UsernameNotFoundException("用户不存在: " + username); + } + + // 检查员工是否活跃 + if (!employee.isActive()) { + throw new UsernameNotFoundException("用户已禁用: " + username); + } + + // 将员工角色转换为Spring Security的GrantedAuthority + List authorities = getAuthoritiesFromRoles(employee.getRoles()); + + // 创建并返回UserDetails对象 + // 注意:根据系统设计,Employee实体中没有密码字段,系统使用IP/MAC绑定认证 + // 这里使用密码编码器加密后的固定密码,确保认证流程能够正常工作 + return User.builder() + .username(employee.getName()) + .password(passwordEncoder().encode("default123")) // 使用默认密码进行加密 + .authorities(authorities) + .build(); + }; + } + + /** + * 将EmployeeRole列表转换为Spring Security的GrantedAuthority列表 + */ + private List getAuthoritiesFromRoles(List roles) { + if (roles == null || roles.isEmpty()) { + return List.of(); + } + + // 为每个角色创建GrantedAuthority + // 系统管理员拥有ADMIN角色,其他用户拥有USER角色 + return roles.stream() + .filter(EmployeeRole::isActive) // 只包含活跃的角色 + .map(role -> { + if (role.isSystemAdministrator()) { + return new SimpleGrantedAuthority("ROLE_ADMIN"); + } else { + return new SimpleGrantedAuthority("ROLE_USER"); + } + }) + .collect(Collectors.toList()); + } + + // Spring Security会自动配置一个使用我们定义的UserDetailsService的DaoAuthenticationProvider + // 移除显式的authenticationProvider Bean定义以避免警告 + // 当同时存在AuthenticationProvider和UserDetailsService Bean时,Spring Security会优先使用AuthenticationProvider + // 而忽略直接的UserDetailsService,虽然这不影响功能,但会产生警告 +} \ No newline at end of file diff --git a/server/src/main/java/com/ecep/contract/config/WebConfig.java b/server/src/main/java/com/ecep/contract/config/WebConfig.java new file mode 100644 index 0000000..acea40f --- /dev/null +++ b/server/src/main/java/com/ecep/contract/config/WebConfig.java @@ -0,0 +1,39 @@ +package com.ecep.contract.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import org.springframework.web.filter.CorsFilter; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +/** + * Web配置类,提供CORS支持等Web相关配置 + */ +@Configuration +public class WebConfig implements WebMvcConfigurer { + + /** + * 配置跨域资源共享(CORS) + */ + @Bean + public CorsFilter corsFilter() { + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + CorsConfiguration config = new CorsConfiguration(); + + // 允许所有来源 + config.addAllowedOriginPattern("*"); + // 允许所有请求头 + config.addAllowedHeader("*"); + // 允许所有HTTP方法 + config.addAllowedMethod("*"); + // 允许发送Cookie + config.setAllowCredentials(true); + // 设置预检请求的有效期(秒) + config.setMaxAge(3600L); + + // 应用配置到所有路径 + source.registerCorsConfiguration("/**", config); + return new CorsFilter(source); + } +} \ No newline at end of file diff --git a/server/src/main/java/com/ecep/contract/controller/IndexController.java b/server/src/main/java/com/ecep/contract/controller/IndexController.java new file mode 100644 index 0000000..4318bc8 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/controller/IndexController.java @@ -0,0 +1,28 @@ +package com.ecep.contract.controller; + +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 基础控制器,处理根路径请求和错误处理 + */ +@RestController +public class IndexController { + + /** + * 处理根路径请求,返回系统状态信息 + */ + @GetMapping("/") + public ResponseEntity index() { + return ResponseEntity.ok("合同管理系统 REST API 服务已启动"); + } + + /** + * 处理错误路径请求,避免Whitelabel Error Page显示 + */ + @GetMapping("/error") + public ResponseEntity error() { + return ResponseEntity.status(404).body("请求的资源不存在"); + } +} \ No newline at end of file diff --git a/server/src/main/java/com/ecep/contract/controller/LoginController.java b/server/src/main/java/com/ecep/contract/controller/LoginController.java new file mode 100644 index 0000000..cd35790 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/controller/LoginController.java @@ -0,0 +1,41 @@ +package com.ecep.contract.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * 登录控制器 + * 处理登录页面请求和登录相关操作 + */ +@Controller +public class LoginController { + + /** + * 提供登录页面 + * 当用户访问/login路径时,返回登录页面视图 + */ + @GetMapping("/login") + public String login() { + return "login.html"; + } + + /** + * 处理登录成功后的跳转 + * 这个方法在Spring Security配置中通过defaultSuccessUrl指定 + */ + @GetMapping("/login/success") + public String loginSuccess() { + // 登录成功后重定向到首页 + return "redirect:/"; + } + + /** + * 处理登录失败后的跳转 + * 可以根据需要自定义登录失败的处理逻辑 + */ + @GetMapping("/login/failure") + public String loginFailure() { + // 登录失败后重定向回登录页面,并添加错误参数 + return "redirect:/login?error"; + } +} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/DsRepositoriesConfig.java b/server/src/main/java/com/ecep/contract/ds/DsRepositoriesConfig.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/DsRepositoriesConfig.java rename to server/src/main/java/com/ecep/contract/ds/DsRepositoriesConfig.java index c22e5a9..143b834 100644 --- a/src/main/java/com/ecep/contract/manager/ds/DsRepositoriesConfig.java +++ b/server/src/main/java/com/ecep/contract/ds/DsRepositoriesConfig.java @@ -1,6 +1,13 @@ -package com.ecep.contract.manager.ds; +package com.ecep.contract.ds; + +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 javax.sql.DataSource; -import com.zaxxer.hikari.HikariDataSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Qualifier; @@ -10,17 +17,18 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.core.env.Environment; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean; import org.springframework.data.repository.config.BootstrapMode; import org.springframework.jdbc.core.JdbcTemplate; -import javax.sql.DataSource; - -import static com.ecep.contract.manager.AppV2.*; - -import java.util.Map; +import com.zaxxer.hikari.HikariDataSource; @Configuration -@EnableJpaRepositories(bootstrapMode = BootstrapMode.LAZY) +@EnableJpaRepositories( + basePackages = {"com.ecep.contract.ds"}, + bootstrapMode = BootstrapMode.LAZY, + repositoryFactoryBeanClass = JpaRepositoryFactoryBean.class +) public class DsRepositoriesConfig { private static final Logger logger = LoggerFactory.getLogger(DsRepositoriesConfig.class); diff --git a/src/main/java/com/ecep/contract/manager/ds/MonthDayConverter.java b/server/src/main/java/com/ecep/contract/ds/MonthDayConverter.java similarity index 95% rename from src/main/java/com/ecep/contract/manager/ds/MonthDayConverter.java rename to server/src/main/java/com/ecep/contract/ds/MonthDayConverter.java index 278aabd..453117b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/MonthDayConverter.java +++ b/server/src/main/java/com/ecep/contract/ds/MonthDayConverter.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds; +package com.ecep.contract.ds; import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; diff --git a/server/src/main/java/com/ecep/contract/ds/MyRepository.java b/server/src/main/java/com/ecep/contract/ds/MyRepository.java new file mode 100644 index 0000000..746548f --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/MyRepository.java @@ -0,0 +1,9 @@ +package com.ecep.contract.ds; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; + +public interface MyRepository extends JpaRepository, JpaSpecificationExecutor { + + +} diff --git a/src/main/java/com/ecep/contract/manager/ds/company/CompanyContactStringConverter.java b/server/src/main/java/com/ecep/contract/ds/company/CompanyContactStringConverter.java similarity index 57% rename from src/main/java/com/ecep/contract/manager/ds/company/CompanyContactStringConverter.java rename to server/src/main/java/com/ecep/contract/ds/company/CompanyContactStringConverter.java index 4d60986..37c2c90 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/CompanyContactStringConverter.java +++ b/server/src/main/java/com/ecep/contract/ds/company/CompanyContactStringConverter.java @@ -1,8 +1,8 @@ -package com.ecep.contract.manager.ds.company; +package com.ecep.contract.ds.company; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.company.service.CompanyContactService; -import com.ecep.contract.manager.ds.other.EntityStringConverter; +import com.ecep.contract.ds.company.service.CompanyContactService; +import com.ecep.contract.model.CompanyContact; +import com.ecep.contract.util.EntityStringConverter; public class CompanyContactStringConverter extends EntityStringConverter { @@ -15,5 +15,4 @@ public class CompanyContactStringConverter extends EntityStringConverter 对象泛型 * @return 是否更新了日期 */ - public static boolean fillApplyDateAbsent(File file, T vendorFile, Function getter, BiConsumer setter) { + public static boolean fillApplyDateAbsent(File file, T vendorFile, Function getter, + BiConsumer setter) { LocalDate applyDate = getter.apply(vendorFile); if (applyDate != null) { return false; @@ -165,7 +134,7 @@ public class CompanyFileUtils { public static boolean isHiddenFile(File file) { String fileName = file.getName(); - if (fileName.equals(FILE_DB_THUMBS)) { + if (fileName.equals(FileUtils.FILE_DB_THUMBS)) { return true; } return fileName.startsWith("~$"); diff --git a/src/main/java/com/ecep/contract/manager/ds/company/model/update-schema.sql b/server/src/main/java/com/ecep/contract/ds/company/model/update-schema.sql similarity index 100% rename from src/main/java/com/ecep/contract/manager/ds/company/model/update-schema.sql rename to server/src/main/java/com/ecep/contract/ds/company/model/update-schema.sql diff --git a/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyBankAccountRepository.java b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyBankAccountRepository.java new file mode 100644 index 0000000..3f226c5 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyBankAccountRepository.java @@ -0,0 +1,12 @@ +package com.ecep.contract.ds.company.repository; + +import java.util.Optional; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyBankAccount; + +public interface CompanyBankAccountRepository extends MyRepository { + + Optional findByCompanyAndAccount(Company company, String account); +} \ No newline at end of file diff --git a/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyBlackReasonRepository.java b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyBlackReasonRepository.java new file mode 100644 index 0000000..d9f3bb6 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyBlackReasonRepository.java @@ -0,0 +1,16 @@ +package com.ecep.contract.ds.company.repository; + +import java.util.List; + +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyBlackReason; + +@Repository +public interface CompanyBlackReasonRepository extends MyRepository { + + List findAllByCompany(Company company); + +} diff --git a/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyContactRepository.java b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyContactRepository.java new file mode 100644 index 0000000..0a486cb --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyContactRepository.java @@ -0,0 +1,22 @@ +package com.ecep.contract.ds.company.repository; + +import java.util.List; +import java.util.Optional; + +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyContact; + +@Repository +public interface CompanyContactRepository extends MyRepository { + + Optional findFirstByCompany(Company company); + + List findAllByCompany(Company company); + + List findAllByCompanyAndName(Company company, String name); + + int deleteAllByCompany(Company company); +} diff --git a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyContractRepository.java b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyContractRepository.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyContractRepository.java rename to server/src/main/java/com/ecep/contract/ds/company/repository/CompanyContractRepository.java index 52e2d2d..268873c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyContractRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyContractRepository.java @@ -1,17 +1,18 @@ -package com.ecep.contract.manager.ds.company.repository; +package com.ecep.contract.ds.company.repository; + +import java.util.List; +import java.util.Optional; +import java.util.stream.Stream; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyContract; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; -import java.util.List; -import java.util.Optional; -import java.util.stream.Stream; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyContract; +import com.ecep.contract.model.Contract; @Repository public interface CompanyContractRepository extends diff --git a/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyExtendInfoRepository.java b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyExtendInfoRepository.java new file mode 100644 index 0000000..38af684 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyExtendInfoRepository.java @@ -0,0 +1,12 @@ +package com.ecep.contract.ds.company.repository; + +import java.util.List; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyExtendInfo; + +public interface CompanyExtendInfoRepository extends MyRepository { + + List findByCompany(Company company); +} \ No newline at end of file diff --git a/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyFileRepository.java b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyFileRepository.java new file mode 100644 index 0000000..da6217b --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyFileRepository.java @@ -0,0 +1,15 @@ +package com.ecep.contract.ds.company.repository; + +import java.util.List; + +import com.ecep.contract.CompanyFileType; +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyFile; + +public interface CompanyFileRepository extends MyRepository { + + List findByCompany(Company company); + + List findByCompanyAndType(Company company, CompanyFileType type); +} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyFileTypeLocalRepository.java b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyFileTypeLocalRepository.java similarity index 68% rename from src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyFileTypeLocalRepository.java rename to server/src/main/java/com/ecep/contract/ds/company/repository/CompanyFileTypeLocalRepository.java index 332a356..d6da103 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyFileTypeLocalRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyFileTypeLocalRepository.java @@ -1,12 +1,11 @@ -package com.ecep.contract.manager.ds.company.repository; +package com.ecep.contract.ds.company.repository; -import com.ecep.contract.manager.ds.company.CompanyFileType; -import com.ecep.contract.manager.ds.company.model.CompanyFileTypeLocal; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.contract.model.ContractFileTypeLocal; -import com.ecep.contract.manager.ds.other.repository.BaseEnumEntityRepository; import org.springframework.stereotype.Repository; +import com.ecep.contract.CompanyFileType; +import com.ecep.contract.ds.other.repository.BaseEnumEntityRepository; +import com.ecep.contract.model.CompanyFileTypeLocal; + @Repository public interface CompanyFileTypeLocalRepository extends BaseEnumEntityRepository { diff --git a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyInvoiceInfoRepository.java b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyInvoiceInfoRepository.java similarity index 52% rename from src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyInvoiceInfoRepository.java rename to server/src/main/java/com/ecep/contract/ds/company/repository/CompanyInvoiceInfoRepository.java index e9bebaa..a1d7bc5 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyInvoiceInfoRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyInvoiceInfoRepository.java @@ -1,21 +1,21 @@ -package com.ecep.contract.manager.ds.company.repository; +package com.ecep.contract.ds.company.repository; -import com.ecep.contract.manager.ds.company.model.CompanyInvoiceInfo; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; +import com.ecep.contract.model.CompanyInvoiceInfo; + /** * 公司发票信息 Repository */ @Repository public interface CompanyInvoiceInfoRepository extends - // JDBC interfaces - CrudRepository, PagingAndSortingRepository, - // JPA interfaces - JpaRepository, JpaSpecificationExecutor { - + // JDBC interfaces + CrudRepository, PagingAndSortingRepository, + // JPA interfaces + JpaRepository, JpaSpecificationExecutor { } diff --git a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyOldNameRepository.java b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyOldNameRepository.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyOldNameRepository.java rename to server/src/main/java/com/ecep/contract/ds/company/repository/CompanyOldNameRepository.java index 4674fe7..c688ae6 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyOldNameRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyOldNameRepository.java @@ -1,6 +1,7 @@ -package com.ecep.contract.manager.ds.company.repository; +package com.ecep.contract.ds.company.repository; + +import java.util.List; -import com.ecep.contract.manager.ds.company.model.CompanyOldName; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.Modifying; @@ -9,7 +10,7 @@ import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; -import java.util.List; +import com.ecep.contract.model.CompanyOldName; @Repository public interface CompanyOldNameRepository extends @@ -18,7 +19,6 @@ public interface CompanyOldNameRepository extends // JPA interfaces JpaRepository, JpaSpecificationExecutor { - List findAllByCompanyId(Integer companyId); List findAllByCompanyIdAndName(Integer companyId, String name); @@ -29,7 +29,6 @@ public interface CompanyOldNameRepository extends List findByMemoLike(String searchText); - @Modifying @Transactional int deleteAllByCompanyId(Integer companyId); diff --git a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyRepository.java b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyRepository.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyRepository.java rename to server/src/main/java/com/ecep/contract/ds/company/repository/CompanyRepository.java index 00f2249..20f1063 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/company/repository/CompanyRepository.java @@ -1,6 +1,9 @@ -package com.ecep.contract.manager.ds.company.repository; +package com.ecep.contract.ds.company.repository; + +import java.util.List; +import java.util.Optional; +import java.util.stream.Stream; -import com.ecep.contract.manager.ds.company.model.Company; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.Query; @@ -8,9 +11,7 @@ import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; -import java.util.List; -import java.util.Optional; -import java.util.stream.Stream; +import com.ecep.contract.model.Company; @Repository public interface CompanyRepository extends diff --git a/server/src/main/java/com/ecep/contract/ds/company/repository/InvoiceRepository.java b/server/src/main/java/com/ecep/contract/ds/company/repository/InvoiceRepository.java new file mode 100644 index 0000000..c301469 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/company/repository/InvoiceRepository.java @@ -0,0 +1,14 @@ +package com.ecep.contract.ds.company.repository; + +import java.util.List; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.Invoice; + +public interface InvoiceRepository extends MyRepository { + + List findByCompany(Company company); + + Invoice findByCode(String invoiceNumber); +} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/company/service/CompanyBankAccountService.java b/server/src/main/java/com/ecep/contract/ds/company/service/CompanyBankAccountService.java similarity index 86% rename from src/main/java/com/ecep/contract/manager/ds/company/service/CompanyBankAccountService.java rename to server/src/main/java/com/ecep/contract/ds/company/service/CompanyBankAccountService.java index 65263d2..c198e39 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/service/CompanyBankAccountService.java +++ b/server/src/main/java/com/ecep/contract/ds/company/service/CompanyBankAccountService.java @@ -1,12 +1,8 @@ -package com.ecep.contract.manager.ds.company.service; +package com.ecep.contract.ds.company.service; + +import java.util.List; +import java.util.Objects; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyBankAccount; -import com.ecep.contract.manager.ds.company.repository.CompanyBankAccountRepository; -import com.ecep.contract.manager.ds.company.vo.CompanyBankAccountViewModel; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.util.SpecificationUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -19,13 +15,17 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; -import java.util.Objects; +import com.ecep.contract.IEntityService; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.ds.company.repository.CompanyBankAccountRepository; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyBankAccount; +import com.ecep.contract.util.SpecificationUtils; @Lazy @Service @CacheConfig(cacheNames = "company-bank-account") -public class CompanyBankAccountService implements ViewModelService { +public class CompanyBankAccountService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(CompanyBankAccountService.class); @Lazy @Autowired diff --git a/src/main/java/com/ecep/contract/manager/ds/company/service/CompanyBasicService.java b/server/src/main/java/com/ecep/contract/ds/company/service/CompanyBasicService.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ds/company/service/CompanyBasicService.java rename to server/src/main/java/com/ecep/contract/ds/company/service/CompanyBasicService.java index f9ac53f..e9c306c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/service/CompanyBasicService.java +++ b/server/src/main/java/com/ecep/contract/ds/company/service/CompanyBasicService.java @@ -1,21 +1,4 @@ -package com.ecep.contract.manager.ds.company.service; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.customer.CompanyCustomerFileType; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFile; -import com.ecep.contract.manager.ds.other.model.CompanyBasicFile; -import com.ecep.contract.manager.ds.other.model.HolidayTable; -import com.ecep.contract.manager.ds.vendor.CompanyVendorFileType; -import com.ecep.contract.manager.ds.other.repository.HolidayTableRepository; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorFile; -import com.ecep.contract.manager.ds.company.CompanyFileUtils; -import org.hibernate.Hibernate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; -import org.springframework.util.StringUtils; +package com.ecep.contract.ds.company.service; import java.io.File; import java.time.DayOfWeek; @@ -26,21 +9,28 @@ import java.util.Map; import java.util.Objects; import java.util.function.Consumer; +import com.ecep.contract.util.FileUtils; +import org.hibernate.Hibernate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.util.StringUtils; + +import com.ecep.contract.CompanyCustomerFileType; +import com.ecep.contract.CompanyVendorFileType; +import com.ecep.contract.SpringApp; +import com.ecep.contract.ds.company.CompanyFileUtils; +import com.ecep.contract.ds.other.repository.HolidayTableRepository; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyBasicFile; +import com.ecep.contract.model.CompanyCustomerFile; +import com.ecep.contract.model.CompanyVendorFile; +import com.ecep.contract.model.HolidayTable; + public abstract class CompanyBasicService { private static final Logger logger = LoggerFactory.getLogger(CompanyBasicService.class); - public static String formatCompanyVendorId(int itemId) { - if (itemId > 99) { - return String.valueOf(itemId); - } else if (itemId > 9) { - return "0" + itemId; - } else if (itemId > 0) { - return "00" + itemId; - } else { - throw new IllegalArgumentException(); - } - } - /** * 调整日期到工作日 * @@ -90,15 +80,15 @@ public abstract class CompanyBasicService { protected boolean isEditableFile(String fileName) { - return CompanyFileUtils.withExtensions(fileName, - CompanyFileUtils.XLS, CompanyFileUtils.XLSX, - CompanyFileUtils.DOC, CompanyFileUtils.DOCX); + return FileUtils.withExtensions(fileName, + FileUtils.XLS, FileUtils.XLSX, + FileUtils.DOC, FileUtils.DOCX); } protected boolean isArchiveFile(String fileName) { - return CompanyFileUtils.withExtensions(fileName, - CompanyFileUtils.PNG, CompanyFileUtils.PDF, - CompanyFileUtils.JPG, CompanyFileUtils.JPEG); + return FileUtils.withExtensions(fileName, + FileUtils.PNG, FileUtils.PDF, + FileUtils.JPG, FileUtils.JPEG); } public abstract , ID> void deleteFile(F file); diff --git a/src/main/java/com/ecep/contract/manager/ds/company/service/CompanyBlackReasonService.java b/server/src/main/java/com/ecep/contract/ds/company/service/CompanyBlackReasonService.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/ds/company/service/CompanyBlackReasonService.java rename to server/src/main/java/com/ecep/contract/ds/company/service/CompanyBlackReasonService.java index fad0464..c933750 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/service/CompanyBlackReasonService.java +++ b/server/src/main/java/com/ecep/contract/ds/company/service/CompanyBlackReasonService.java @@ -1,10 +1,7 @@ -package com.ecep.contract.manager.ds.company.service; +package com.ecep.contract.ds.company.service; + +import java.util.List; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyBlackReason; -import com.ecep.contract.manager.ds.company.repository.CompanyBlackReasonRepository; -import com.ecep.contract.manager.ds.company.vo.CompanyBlackReasonViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -16,11 +13,14 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.company.repository.CompanyBlackReasonRepository; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyBlackReason; @Lazy @Service -public class CompanyBlackReasonService implements ViewModelService { +public class CompanyBlackReasonService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(CompanyContactService.class); @Autowired diff --git a/src/main/java/com/ecep/contract/manager/ds/company/service/CompanyContactService.java b/server/src/main/java/com/ecep/contract/ds/company/service/CompanyContactService.java similarity index 85% rename from src/main/java/com/ecep/contract/manager/ds/company/service/CompanyContactService.java rename to server/src/main/java/com/ecep/contract/ds/company/service/CompanyContactService.java index 621e0af..3e578ef 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/service/CompanyContactService.java +++ b/server/src/main/java/com/ecep/contract/ds/company/service/CompanyContactService.java @@ -1,12 +1,7 @@ -package com.ecep.contract.manager.ds.company.service; +package com.ecep.contract.ds.company.service; + +import java.util.List; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.company.repository.CompanyContactRepository; -import com.ecep.contract.manager.ds.company.vo.CompanyContactViewModel; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.util.MyStringUtils; -import com.ecep.contract.manager.util.SpecificationUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -19,7 +14,12 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.company.repository.CompanyContactRepository; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyContact; +import com.ecep.contract.util.MyStringUtils; +import com.ecep.contract.util.SpecificationUtils; /** * 公司联系人服务 @@ -27,7 +27,7 @@ import java.util.List; @Lazy @Service @CacheConfig(cacheNames = "company-contact") -public class CompanyContactService implements ViewModelService { +public class CompanyContactService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(CompanyContactService.class); @Autowired diff --git a/src/main/java/com/ecep/contract/manager/ds/company/service/CompanyExtendInfoService.java b/server/src/main/java/com/ecep/contract/ds/company/service/CompanyExtendInfoService.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/company/service/CompanyExtendInfoService.java rename to server/src/main/java/com/ecep/contract/ds/company/service/CompanyExtendInfoService.java index 3341201..8b11134 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/service/CompanyExtendInfoService.java +++ b/server/src/main/java/com/ecep/contract/ds/company/service/CompanyExtendInfoService.java @@ -1,8 +1,7 @@ -package com.ecep.contract.manager.ds.company.service; +package com.ecep.contract.ds.company.service; + +import java.util.List; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyExtendInfo; -import com.ecep.contract.manager.ds.company.repository.CompanyExtendInfoRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -15,7 +14,9 @@ import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; -import java.util.List; +import com.ecep.contract.ds.company.repository.CompanyExtendInfoRepository; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyExtendInfo; /** * 公司文件服务 diff --git a/src/main/java/com/ecep/contract/manager/ds/company/service/CompanyFileService.java b/server/src/main/java/com/ecep/contract/ds/company/service/CompanyFileService.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ds/company/service/CompanyFileService.java rename to server/src/main/java/com/ecep/contract/ds/company/service/CompanyFileService.java index d46c91e..f93acfc 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/service/CompanyFileService.java +++ b/server/src/main/java/com/ecep/contract/ds/company/service/CompanyFileService.java @@ -1,22 +1,18 @@ -package com.ecep.contract.manager.ds.company.service; +package com.ecep.contract.ds.company.service; + +import java.io.File; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.function.Consumer; +import java.util.regex.Matcher; +import java.util.regex.Pattern; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.cloud.rk.CloudRkService; -import com.ecep.contract.manager.cloud.tyc.CloudTycService; -import com.ecep.contract.manager.ds.company.CompanyFileType; -import com.ecep.contract.manager.ds.company.CompanyFileUtils; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyFile; -import com.ecep.contract.manager.ds.company.model.CompanyFileTypeLocal; -import com.ecep.contract.manager.ds.company.model.CompanyOldName; -import com.ecep.contract.manager.ds.company.repository.CompanyFileRepository; -import com.ecep.contract.manager.ds.company.repository.CompanyFileTypeLocalRepository; -import com.ecep.contract.manager.ds.company.repository.CompanyOldNameRepository; -import com.ecep.contract.manager.ds.company.vo.CompanyFileViewModel; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.util.MyDateTimeUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -30,14 +26,23 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.io.File; -import java.time.LocalDate; -import java.util.*; -import java.util.function.Consumer; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import static com.ecep.contract.manager.ds.company.CompanyFileType.*; +import com.ecep.contract.CompanyFileType; +import com.ecep.contract.IEntityService; +import com.ecep.contract.MyDateTimeUtils; +import com.ecep.contract.SpringApp; +import com.ecep.contract.cloud.rk.CloudRkService; +import com.ecep.contract.cloud.tyc.CloudTycService; +import com.ecep.contract.constant.CloudServiceConstant; +import com.ecep.contract.ds.company.CompanyFileUtils; +import com.ecep.contract.ds.company.repository.CompanyFileRepository; +import com.ecep.contract.ds.company.repository.CompanyFileTypeLocalRepository; +import com.ecep.contract.ds.company.repository.CompanyOldNameRepository; +import com.ecep.contract.ds.contract.service.ContractService; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyFile; +import com.ecep.contract.model.CompanyFileTypeLocal; +import com.ecep.contract.model.CompanyOldName; +import com.ecep.contract.model.Contract; /** * 公司文件服务 @@ -45,7 +50,7 @@ import static com.ecep.contract.manager.ds.company.CompanyFileType.*; @Lazy @Service @CacheConfig(cacheNames = "company-file") -public class CompanyFileService implements ViewModelService { +public class CompanyFileService implements IEntityService { public final static String ENTERPRISE_REPORT = "企业信用报告"; public final static String BUSINESS_LICENSE = "营业执照"; public final static String ORGANIZATION_CODE_CERTIFICATE = "组织机构代码证"; @@ -87,17 +92,18 @@ public class CompanyFileService implements ViewModelService findAllFileTypes(String lang) { return fileTypeLocalRepository.getCompleteMapByLocal(lang); } -// public List findAllFileTypes(String lang) { -// Map map = fileTypeLocalRepository.getCompleteMapByLocal(lang); -// List list = new ArrayList<>(map.values()); -// list.sort((o1, o2) -> Objects.compare(o1.getValue(), o2.getValue(), String::compareTo)); -// return list; -// } + // public List findAllFileTypes(String lang) { + // Map map = + // fileTypeLocalRepository.getCompleteMapByLocal(lang); + // List list = new ArrayList<>(map.values()); + // list.sort((o1, o2) -> Objects.compare(o1.getValue(), o2.getValue(), + // String::compareTo)); + // return list; + // } /** * 根据公司的合同的资信报告文件,推算下一个咨询报告日期 @@ -134,7 +140,8 @@ public class CompanyFileService implements ViewModelService MyDateTimeUtils.dateValidFilter(contract.getSetupDate(), v.getApplyDate(), v.getExpiringDate(), 1))) { + if (files.stream().noneMatch(v -> MyDateTimeUtils.dateValidFilter(contract.getSetupDate(), v.getApplyDate(), + v.getExpiringDate(), 1))) { state.accept("发现未匹配的合同 " + contract.getCode() + " " + contract.getSetupDate()); return contract.getSetupDate(); } @@ -146,7 +153,9 @@ public class CompanyFileService implements ViewModelService - * 检查是否有类型为{@link CompanyFileType#CreditReport 资讯评估}的文件,且参数verifyDate在文件的{@link CompanyFile#getApplyDate()}和{@link CompanyFile#getExpiringDate()} ()}指定验证日期内有 + * 检查是否有类型为{@link CompanyFileType#CreditReport + * 资讯评估}的文件,且参数verifyDate在文件的{@link CompanyFile#getApplyDate()}和{@link CompanyFile#getExpiringDate()} + * ()}指定验证日期内有 *

* 2023-01-01后要求有资信评估报告 * @@ -258,7 +267,6 @@ public class CompanyFileService implements ViewModelService directoryMap = new HashMap<>(); // 公司目录 @@ -310,7 +318,7 @@ public class CompanyFileService implements ViewModelService v.setCompany(company)); companyFileRepository.saveAll(retrieveFiles); return true; @@ -326,42 +334,42 @@ public class CompanyFileService implements ViewModelService status) { String fileName = file.getName(); CompanyFile companyFile = new CompanyFile(); - companyFile.setType(General); + companyFile.setType(CompanyFileType.General); companyFile.setFilePath(file.getAbsolutePath()); fillApplyDateAndExpiringDateAbsent(file, companyFile); // 天眼查 基础版企业信用报告 if (fileName.contains(CloudTycService.TYC_ENTERPRISE_BASIC_REPORT) || fileName.contains(CloudTycService.TYC_ENTERPRISE_MAJOR_REPORT) - || fileName.contains(CloudTycService.TYC_ENTERPRISE_ANALYSIS_REPORT) - ) { - companyFile.setType(CreditReport); + || fileName.contains(CloudTycService.TYC_ENTERPRISE_ANALYSIS_REPORT)) { + companyFile.setType(CompanyFileType.CreditReport); fillExpiringDateAbsent(companyFile); return companyFile; } // 天眼查 企业信用信息公示报告 if (fileName.contains(CloudTycService.TYC_ENTERPRISE_CREDIT_REPORT)) { - companyFile.setType(CreditInfoPublicityReport); + companyFile.setType(CompanyFileType.CreditInfoPublicityReport); return companyFile; } // 集团相关方平台 元素征信 企业征信报告 - if (fileName.contains(CloudRkService.VENDOR_NAME) && fileName.contains(CloudRkService.ENTERPRISE_CREDIT_REPORT)) { - companyFile.setType(CreditReport); + if (fileName.contains(CloudServiceConstant.RK_VENDOR_NAME) + && fileName.contains(CloudRkService.ENTERPRISE_CREDIT_REPORT)) { + companyFile.setType(CompanyFileType.CreditReport); fillExpiringDateAbsent(companyFile); return companyFile; } // 营业执照 if (fileName.contains(BUSINESS_LICENSE)) { - companyFile.setType(BusinessLicense); + companyFile.setType(CompanyFileType.BusinessLicense); return companyFile; } // 其他企业信用报告 if (fileName.contains(ENTERPRISE_REPORT)) { - companyFile.setType(CreditReport); + companyFile.setType(CompanyFileType.CreditReport); fillExpiringDateAbsent(companyFile); return companyFile; } @@ -382,7 +390,6 @@ public class CompanyFileService implements ViewModelService v.setCompany(company)); companyFileRepository.saveAll(retrieveFiles); return true; } - /** * 从文件名生成公司文件对象 * 文件从下载目录中导入 @@ -512,13 +519,14 @@ public class CompanyFileService implements ViewModelService status) { + private CompanyFile fillDownloadFileType(Company company, File file, String companyName, File destDir, + Consumer status) { String fileName = file.getName(); // 天眼查的报告 // 目前只有 基础版企业信用报告, 企业信用信息公示报告下载保存时的文件名中没有天眼查 if (CloudTycService.isTycReport(fileName)) { CompanyFile companyFile = new CompanyFile(); - companyFile.setType(CreditReport); + companyFile.setType(CompanyFileType.CreditReport); fillApplyDateAbsent(file, companyFile); String destFileName = fileName; @@ -537,14 +545,14 @@ public class CompanyFileService implements ViewModelService one = companyFileRepository.findOne(((root, query, builder) -> { return builder.and( builder.equal(root.get("filePath"), dest.getAbsolutePath()), - builder.equal(root.get("company"), company) - ); + builder.equal(root.get("company"), company)); })); if (one.isPresent()) { companyFile = one.get(); @@ -610,7 +616,6 @@ public class CompanyFileService implements ViewModelService { +public class CompanyOldNameService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(CompanyOldNameService.class); @Lazy @Autowired @@ -144,11 +144,6 @@ public class CompanyOldNameService implements ViewModelService { +public class CompanyService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(CompanyService.class); private static final String COMPANY_BASE_PATH = "company.base.path"; @@ -114,7 +121,6 @@ public class CompanyService implements ViewModelService oldNames = companyOldNameService.findAllByName(abbName); if (!oldNames.isEmpty()) { CompanyOldName oldName = null; - Optional optional1 = oldNames.stream().filter(CompanyOldName::getAmbiguity).findFirst(); + Optional optional1 = oldNames.stream().filter(CompanyOldName::getAmbiguity) + .findFirst(); oldName = optional1.orElseGet(oldNames::getFirst); Optional optional = companyRepository.findById(oldName.getCompanyId()); if (optional.isPresent()) { @@ -227,21 +234,20 @@ public class CompanyService implements ViewModelService {} 时发生错误:{}", company.toPrettyString(), updater.toPrettyString(), e.getMessage(), e); + logger.error("合并 {} -> {} 时发生错误:{}", company.toPrettyString(), updater.toPrettyString(), e.getMessage(), + e); throw e; } } return result; } - /** * 删除 *

@@ -256,10 +262,10 @@ public class CompanyService implements ViewModelService * 或者 把关联数据转移到其他公司 *

    - *
  • {@link CompanyVendorService#resetTo(Company, Company)}
  • - *
  • {@link CompanyCustomerService#resetTo(Company, Company)}
  • - *
  • {@link CompanyOldNameService#resetTo(Company, Company)}
  • - *
  • {@link CompanyContactService#resetTo(Company, Company)}
  • + *
  • {@link CompanyVendorService#resetTo(Company, Company)}
  • + *
  • {@link CompanyCustomerService#resetTo(Company, Company)}
  • + *
  • {@link CompanyOldNameService#resetTo(Company, Company)}
  • + *
  • {@link CompanyContactService#resetTo(Company, Company)}
  • *
  • {@link ContractService#resetTo(Company, Company)}
  • *
  • {@link CompanyContactService#resetTo(Company, Company)}
  • *
@@ -267,12 +273,10 @@ public class CompanyService implements ViewModelService * 下述关联数据重设绑定到 to *
    - *
  1. 曾用名
  2. - *
  3. 供应商
  4. - *
  5. 客户
  6. - *
  7. 合同
  8. - *
  9. 公司合同
  10. + *
  11. 曾用名
  12. + *
  13. 供应商
  14. + *
  15. 客户
  16. + *
  17. 合同
  18. + *
  19. 公司合同
  20. *
*

*/ @@ -336,29 +340,20 @@ public class CompanyService implements ViewModelService { return builder.or( builder.like(root.get("id").as(String.class), "%" + searchText + "%"), - builder.like(root.get("uniscid"), "%" + searchText + "%") - ); + builder.like(root.get("uniscid"), "%" + searchText + "%")); }; } Specification spec = null; - Set idSet = companyOldNameService.search(searchText).stream().map(CompanyOldName::getCompanyId).collect(Collectors.toSet()); + Set idSet = companyOldNameService.search(searchText).stream().map(CompanyOldName::getCompanyId) + .collect(Collectors.toSet()); if (!idSet.isEmpty()) { spec = SpecificationUtils.or(spec, (root, query, builder) -> { return root.get("id").in(idSet); @@ -568,7 +561,8 @@ public class CompanyService implements ViewModelService buildSearchPredicate(searchText, root, query, builder); } - public Predicate buildSearchPredicate(String searchText, Path root, @Nullable CriteriaQuery query, CriteriaBuilder builder) { + public Predicate buildSearchPredicate(String searchText, Path root, @Nullable CriteriaQuery query, + CriteriaBuilder builder) { return builder.or( builder.like(root.get("name"), "%" + searchText + "%"), builder.like(root.get("shortName"), "%" + searchText + "%"), @@ -576,8 +570,7 @@ public class CompanyService implements ViewModelService getAllNames(Company company) { List list = new ArrayList<>(); list.add(company.getName()); diff --git a/src/main/java/com/ecep/contract/manager/ds/company/service/InvoiceService.java b/server/src/main/java/com/ecep/contract/ds/company/service/InvoiceService.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/company/service/InvoiceService.java rename to server/src/main/java/com/ecep/contract/ds/company/service/InvoiceService.java index 72f8711..257f4cb 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/service/InvoiceService.java +++ b/server/src/main/java/com/ecep/contract/ds/company/service/InvoiceService.java @@ -1,9 +1,7 @@ -package com.ecep.contract.manager.ds.company.service; +package com.ecep.contract.ds.company.service; + +import java.util.List; -import com.ecep.contract.manager.ds.company.model.Invoice; -import com.ecep.contract.manager.ds.company.repository.InvoiceRepository; -import com.ecep.contract.manager.ds.company.vo.InvoiceViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -18,12 +16,14 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.company.repository.InvoiceRepository; +import com.ecep.contract.model.Invoice; @Lazy @Service @CacheConfig(cacheNames = "invoice") -public class InvoiceService implements ViewModelService { +public class InvoiceService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(InvoiceService.class); @Autowired diff --git a/src/main/java/com/ecep/contract/manager/ds/company/tasker/CompanyCompositeUpdateTasker.java b/server/src/main/java/com/ecep/contract/ds/company/tasker/CompanyCompositeUpdateTasker.java similarity index 76% rename from src/main/java/com/ecep/contract/manager/ds/company/tasker/CompanyCompositeUpdateTasker.java rename to server/src/main/java/com/ecep/contract/ds/company/tasker/CompanyCompositeUpdateTasker.java index d92ad78..2668bbc 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/tasker/CompanyCompositeUpdateTasker.java +++ b/server/src/main/java/com/ecep/contract/ds/company/tasker/CompanyCompositeUpdateTasker.java @@ -1,25 +1,28 @@ -package com.ecep.contract.manager.ds.company.tasker; +package com.ecep.contract.ds.company.tasker; + +import java.time.Instant; +import java.time.LocalDate; -import com.ecep.contract.manager.cloud.rk.CloudRk; -import com.ecep.contract.manager.cloud.rk.CloudRkService; -import com.ecep.contract.manager.cloud.rk.ctx.CloudRkCtx; -import com.ecep.contract.manager.cloud.tyc.CloudTycService; -import com.ecep.contract.manager.cloud.u8.CloudYu; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.cloud.u8.ctx.CompanyCtx; -import com.ecep.contract.manager.cloud.u8.ctx.ContractCtx; -import com.ecep.contract.manager.cloud.u8.ctx.CustomerCtx; -import com.ecep.contract.manager.cloud.u8.ctx.VendorCtx; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; -import lombok.Setter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; -import java.time.Instant; -import java.time.LocalDate; +import com.ecep.contract.MessageHolder; +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.cloud.u8.ctx.CompanyCtx; +import com.ecep.contract.cloud.u8.ctx.ContractCtx; +import com.ecep.contract.cloud.u8.ctx.CustomerCtx; +import com.ecep.contract.cloud.u8.ctx.VendorCtx; +import com.ecep.contract.constant.CloudServiceConstant; +import com.ecep.contract.model.CloudRk; +import com.ecep.contract.model.CloudYu; +import com.ecep.contract.model.Company; +import com.ecep.contract.ui.Tasker; + +import lombok.Setter; /** * 合并更新 @@ -52,11 +55,11 @@ public class CompanyCompositeUpdateTasker extends Tasker { private void syncFromCloudRk(MessageHolder holder) { - holder.debug("1. 从 " + CloudRkService.NAME + " 更新..."); + holder.debug("1. 从 " + CloudServiceConstant.RK_NAME + " 更新..."); try { cloudRkService = getBean(CloudRkService.class); } catch (BeansException e) { - holder.warn("未启用 " + CloudRkService.NAME + " 服务"); + holder.warn("未启用 " + CloudServiceConstant.RK_NAME + " 服务"); return; } CloudRk cloudRk = cloudRkService.getOrCreateCloudRk(company); @@ -79,11 +82,11 @@ public class CompanyCompositeUpdateTasker extends Tasker { } private void syncFromYongYouU8(MessageHolder holder) { - holder.debug("2. 从 " + YongYouU8Service.NAME + " 更新..."); + holder.debug("2. 从 " + CloudServiceConstant.U8_NAME + " 更新..."); try { yongYouU8Service = getBean(YongYouU8Service.class); } catch (BeansException e) { - holder.warn("未启用 " + YongYouU8Service.NAME + " 服务"); + holder.warn("未启用 " + CloudServiceConstant.U8_NAME + " 服务"); return; } @@ -134,11 +137,11 @@ public class CompanyCompositeUpdateTasker extends Tasker { } private void syncFromCloudTyc(MessageHolder holder) { - holder.debug("3. 从 " + CloudTycService.NAME + " 更新..."); + holder.debug("3. 从 " + CloudServiceConstant.TYC_NAME + " 更新..."); try { cloudTycService = getBean(CloudTycService.class); } catch (BeansException e) { - holder.warn("未启用 " + CloudTycService.NAME + " 服务"); + holder.warn("未启用 " + CloudServiceConstant.TYC_NAME + " 服务"); return; } cloudTycService.syncCompany(company, holder); diff --git a/src/main/java/com/ecep/contract/manager/ds/company/tasker/CompanyFilesRebuildTasker.java b/server/src/main/java/com/ecep/contract/ds/company/tasker/CompanyFilesRebuildTasker.java similarity index 86% rename from src/main/java/com/ecep/contract/manager/ds/company/tasker/CompanyFilesRebuildTasker.java rename to server/src/main/java/com/ecep/contract/ds/company/tasker/CompanyFilesRebuildTasker.java index 89c748c..853b8ef 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/tasker/CompanyFilesRebuildTasker.java +++ b/server/src/main/java/com/ecep/contract/ds/company/tasker/CompanyFilesRebuildTasker.java @@ -1,16 +1,16 @@ -package com.ecep.contract.manager.ds.company.tasker; +package com.ecep.contract.ds.company.tasker; + +import java.util.concurrent.atomic.AtomicInteger; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyFileService; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; 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 java.util.concurrent.atomic.AtomicInteger; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.ds.company.service.CompanyFileService; +import com.ecep.contract.model.Company; +import com.ecep.contract.ui.Tasker; /** * 对所有公司的文件进行重置 @@ -62,6 +62,7 @@ public class CompanyFilesRebuildTasker extends Tasker { return super.call(); } + private CompanyFileService getCompanyFileService() { if (companyFileService == null) { companyFileService = getBean(CompanyFileService.class); diff --git a/src/main/java/com/ecep/contract/manager/ds/company/tasker/CompanyVerifyTasker.java b/server/src/main/java/com/ecep/contract/ds/company/tasker/CompanyVerifyTasker.java similarity index 80% rename from src/main/java/com/ecep/contract/manager/ds/company/tasker/CompanyVerifyTasker.java rename to server/src/main/java/com/ecep/contract/ds/company/tasker/CompanyVerifyTasker.java index d944c8e..4459506 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/tasker/CompanyVerifyTasker.java +++ b/server/src/main/java/com/ecep/contract/ds/company/tasker/CompanyVerifyTasker.java @@ -1,13 +1,4 @@ -package com.ecep.contract.manager.ds.company.tasker; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.tasker.ContractVerifyComm; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; -import lombok.Getter; -import lombok.Setter; +package com.ecep.contract.ds.company.tasker; import java.time.LocalDate; import java.util.List; @@ -15,6 +6,16 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.ds.contract.tasker.ContractVerifyComm; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.Contract; +import com.ecep.contract.ui.Tasker; + +import lombok.Getter; +import lombok.Setter; + public class CompanyVerifyTasker extends Tasker { @Setter private CompanyService companyService; @@ -34,10 +35,10 @@ public class CompanyVerifyTasker extends Tasker { } @Override - protected Object call() throws Exception { - comm.getVerifyCompanyPath().set(false); - comm.getVerifyCompanyStatus().set(false); - comm.getVerifyCompanyCredit().set(false); + public Object call() throws Exception { + comm.setVerifyCompanyPath(false); + comm.setVerifyCompanyStatus(false); + comm.setVerifyCompanyCredit(false); return execute(new MessageHolderImpl() { @Override public void addMessage(Level level, String message) { diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/ContractStringConverter.java b/server/src/main/java/com/ecep/contract/ds/contract/ContractStringConverter.java similarity index 67% rename from src/main/java/com/ecep/contract/manager/ds/contract/ContractStringConverter.java rename to server/src/main/java/com/ecep/contract/ds/contract/ContractStringConverter.java index ab39ea4..905fbf7 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/ContractStringConverter.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/ContractStringConverter.java @@ -1,13 +1,15 @@ -package com.ecep.contract.manager.ds.contract; +package com.ecep.contract.ds.contract; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; +import com.ecep.contract.ds.contract.service.ContractService; +import com.ecep.contract.model.Contract; +import com.ecep.contract.util.EntityStringConverter; + +import jakarta.annotation.PostConstruct; + @Lazy @Component public class ContractStringConverter extends EntityStringConverter { @@ -22,7 +24,7 @@ public class ContractStringConverter extends EntityStringConverter { private void init() { setInitialized(project -> service.findById(project.getId())); setSuggestion(service::search); - //TODO 按名称找出,容易出问题 + // TODO 按名称找出,容易出问题 setFromString(service::findByName); } } \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractCost.sql b/server/src/main/java/com/ecep/contract/ds/contract/model/ContractCost.sql similarity index 100% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/ContractCost.sql rename to server/src/main/java/com/ecep/contract/ds/contract/model/ContractCost.sql diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/ContractCostItem.sql b/server/src/main/java/com/ecep/contract/ds/contract/model/ContractCostItem.sql similarity index 100% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/ContractCostItem.sql rename to server/src/main/java/com/ecep/contract/ds/contract/model/ContractCostItem.sql diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/model/SalesBillVoucher.sql b/server/src/main/java/com/ecep/contract/ds/contract/model/SalesBillVoucher.sql similarity index 100% rename from src/main/java/com/ecep/contract/manager/ds/contract/model/SalesBillVoucher.sql rename to server/src/main/java/com/ecep/contract/ds/contract/model/SalesBillVoucher.sql diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractBidVendorRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractBidVendorRepository.java similarity index 86% rename from src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractBidVendorRepository.java rename to server/src/main/java/com/ecep/contract/ds/contract/repository/ContractBidVendorRepository.java index c754b1f..5000da3 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractBidVendorRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractBidVendorRepository.java @@ -1,13 +1,14 @@ -package com.ecep.contract.manager.ds.contract.repository; +package com.ecep.contract.ds.contract.repository; + +import java.util.List; -import com.ecep.contract.manager.ds.contract.model.ContractBidVendor; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; -import java.util.List; +import com.ecep.contract.model.ContractBidVendor; @Repository public interface ContractBidVendorRepository extends @@ -16,7 +17,6 @@ public interface ContractBidVendorRepository extends // JPA interfaces JpaRepository, JpaSpecificationExecutor { - List findByContractId(Integer contractId); List findByContractIdAndCompanyId(Integer contractId, Integer companyId); diff --git a/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractCatalogRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractCatalogRepository.java new file mode 100644 index 0000000..e17077a --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractCatalogRepository.java @@ -0,0 +1,17 @@ +package com.ecep.contract.ds.contract.repository; + +import java.util.Optional; + +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.ContractCatalog; + +@Repository +public interface ContractCatalogRepository extends MyRepository { + + Optional findByCode(String code); + + Optional findByName(String name); + +} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractFileRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractFileRepository.java similarity index 69% rename from src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractFileRepository.java rename to server/src/main/java/com/ecep/contract/ds/contract/repository/ContractFileRepository.java index 417a2be..1e72a6d 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractFileRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractFileRepository.java @@ -1,13 +1,14 @@ -package com.ecep.contract.manager.ds.contract.repository; +package com.ecep.contract.ds.contract.repository; + +import java.util.List; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractFile; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; -import java.util.List; +import com.ecep.contract.ContractFileType; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractFile; @Repository public interface ContractFileRepository extends JpaRepository, JpaSpecificationExecutor { diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractFileTypeLocalRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractFileTypeLocalRepository.java similarity index 64% rename from src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractFileTypeLocalRepository.java rename to server/src/main/java/com/ecep/contract/ds/contract/repository/ContractFileTypeLocalRepository.java index c2283b4..114203e 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractFileTypeLocalRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractFileTypeLocalRepository.java @@ -1,12 +1,14 @@ -package com.ecep.contract.manager.ds.contract.repository; +package com.ecep.contract.ds.contract.repository; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.contract.model.ContractFileTypeLocal; -import com.ecep.contract.manager.ds.other.repository.BaseEnumEntityRepository; import org.springframework.stereotype.Repository; +import com.ecep.contract.ContractFileType; +import com.ecep.contract.ds.other.repository.BaseEnumEntityRepository; +import com.ecep.contract.model.ContractFileTypeLocal; + @Repository -public interface ContractFileTypeLocalRepository extends BaseEnumEntityRepository { +public interface ContractFileTypeLocalRepository + extends BaseEnumEntityRepository { @Override default ContractFileType[] getEnumConstants() { return ContractFileType.values(); diff --git a/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractGroupRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractGroupRepository.java new file mode 100644 index 0000000..7868674 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractGroupRepository.java @@ -0,0 +1,18 @@ +package com.ecep.contract.ds.contract.repository; + +import java.util.Optional; + +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.ContractGroup; + +@Repository +public interface ContractGroupRepository extends MyRepository { + + Optional findByCode(String code); + + Optional findFirstByNameContains(String name); + + Optional findByName(String name); +} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractItemRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractItemRepository.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractItemRepository.java rename to server/src/main/java/com/ecep/contract/ds/contract/repository/ContractItemRepository.java index 332b519..e9ae2f3 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractItemRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractItemRepository.java @@ -1,11 +1,12 @@ -package com.ecep.contract.manager.ds.contract.repository; +package com.ecep.contract.ds.contract.repository; + +import java.util.List; -import com.ecep.contract.manager.ds.contract.model.ContractItem; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; -import java.util.List; +import com.ecep.contract.model.ContractItem; @Repository public interface ContractItemRepository extends JpaRepository, JpaSpecificationExecutor { diff --git a/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractKindRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractKindRepository.java new file mode 100644 index 0000000..351ccc9 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractKindRepository.java @@ -0,0 +1,15 @@ +package com.ecep.contract.ds.contract.repository; + +import java.util.Optional; + +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.ContractKind; + +@Repository +public interface ContractKindRepository extends MyRepository { + Optional findByCode(String code); + + Optional findByName(String name); +} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractPayPlanRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractPayPlanRepository.java similarity index 57% rename from src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractPayPlanRepository.java rename to server/src/main/java/com/ecep/contract/ds/contract/repository/ContractPayPlanRepository.java index 12cb046..f21fe23 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractPayPlanRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractPayPlanRepository.java @@ -1,12 +1,13 @@ -package com.ecep.contract.manager.ds.contract.repository; - -import com.ecep.contract.manager.ds.MyRepository; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractPayPlan; -import org.springframework.stereotype.Repository; +package com.ecep.contract.ds.contract.repository; import java.util.List; +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractPayPlan; + @Repository public interface ContractPayPlanRepository extends MyRepository { diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractRepository.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractRepository.java rename to server/src/main/java/com/ecep/contract/ds/contract/repository/ContractRepository.java index 7143c36..67bf3bd 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractRepository.java @@ -1,13 +1,13 @@ -package com.ecep.contract.manager.ds.contract.repository; +package com.ecep.contract.ds.contract.repository; import java.util.List; import java.util.Optional; import org.springframework.stereotype.Repository; -import com.ecep.contract.manager.ds.MyRepository; -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.model.Contract; +import com.ecep.contract.ContractPayWay; +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Contract; @Repository public interface ContractRepository extends MyRepository { diff --git a/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractTypeRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractTypeRepository.java new file mode 100644 index 0000000..5c29cf2 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/ContractTypeRepository.java @@ -0,0 +1,16 @@ +package com.ecep.contract.ds.contract.repository; + +import java.util.Optional; + +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.ContractType; + +@Repository +public interface ContractTypeRepository extends MyRepository { + + Optional findByCode(String code); + + Optional findByName(String name); +} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ExtendVendorInfoRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/ExtendVendorInfoRepository.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/contract/repository/ExtendVendorInfoRepository.java rename to server/src/main/java/com/ecep/contract/ds/contract/repository/ExtendVendorInfoRepository.java index 2c9e10a..cc0cca5 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ExtendVendorInfoRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/ExtendVendorInfoRepository.java @@ -1,11 +1,12 @@ -package com.ecep.contract.manager.ds.contract.repository; +package com.ecep.contract.ds.contract.repository; + +import java.util.Optional; -import com.ecep.contract.manager.ds.contract.model.ExtendVendorInfo; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; -import java.util.Optional; +import com.ecep.contract.model.ExtendVendorInfo; @Repository public interface ExtendVendorInfoRepository extends diff --git a/server/src/main/java/com/ecep/contract/ds/contract/repository/PurchaseBillVoucherItemRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/PurchaseBillVoucherItemRepository.java new file mode 100644 index 0000000..70c6a6a --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/PurchaseBillVoucherItemRepository.java @@ -0,0 +1,19 @@ +package com.ecep.contract.ds.contract.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +import com.ecep.contract.model.PurchaseBillVoucherItem; + +@Repository +public interface PurchaseBillVoucherItemRepository extends + // JDBC interfaces + CrudRepository, + PagingAndSortingRepository, + // JPA interfaces + JpaRepository, JpaSpecificationExecutor { + +} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/PurchaseBillVoucherRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/PurchaseBillVoucherRepository.java similarity index 86% rename from src/main/java/com/ecep/contract/manager/ds/contract/repository/PurchaseBillVoucherRepository.java rename to server/src/main/java/com/ecep/contract/ds/contract/repository/PurchaseBillVoucherRepository.java index 0812911..f6bc96f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/PurchaseBillVoucherRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/PurchaseBillVoucherRepository.java @@ -1,13 +1,14 @@ -package com.ecep.contract.manager.ds.contract.repository; +package com.ecep.contract.ds.contract.repository; + +import java.util.Optional; -import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucher; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; -import java.util.Optional; +import com.ecep.contract.model.PurchaseBillVoucher; @Repository public interface PurchaseBillVoucherRepository extends diff --git a/server/src/main/java/com/ecep/contract/ds/contract/repository/PurchaseOrderItemRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/PurchaseOrderItemRepository.java new file mode 100644 index 0000000..6d106a7 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/PurchaseOrderItemRepository.java @@ -0,0 +1,18 @@ +package com.ecep.contract.ds.contract.repository; + +import java.util.List; + +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.PurchaseOrder; +import com.ecep.contract.model.PurchaseOrderItem; + +@Repository +public interface PurchaseOrderItemRepository extends MyRepository{ + + List findAllByRefId(int refId); + + List findAllByOrder(PurchaseOrder order); + +} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/PurchaseOrderRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/PurchaseOrderRepository.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/contract/repository/PurchaseOrderRepository.java rename to server/src/main/java/com/ecep/contract/ds/contract/repository/PurchaseOrderRepository.java index f1329a8..212c560 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/PurchaseOrderRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/PurchaseOrderRepository.java @@ -1,16 +1,16 @@ -package com.ecep.contract.manager.ds.contract.repository; +package com.ecep.contract.ds.contract.repository; + +import java.util.List; +import java.util.Optional; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrder; -import com.ecep.contract.manager.ds.contract.model.SalesOrder; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; -import java.util.List; -import java.util.Optional; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.PurchaseOrder; @Repository public interface PurchaseOrderRepository extends @@ -20,6 +20,7 @@ public interface PurchaseOrderRepository extends JpaRepository, JpaSpecificationExecutor { Optional findByCode(String code); + Optional findByRefId(Integer refId); List findAllByContract(Contract contract); diff --git a/server/src/main/java/com/ecep/contract/ds/contract/repository/SalesBillVoucherItemRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/SalesBillVoucherItemRepository.java new file mode 100644 index 0000000..e0d92e1 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/SalesBillVoucherItemRepository.java @@ -0,0 +1,19 @@ +package com.ecep.contract.ds.contract.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +import com.ecep.contract.model.SalesBillVoucherItem; + +@Repository +public interface SalesBillVoucherItemRepository extends + // JDBC interfaces + CrudRepository, + PagingAndSortingRepository, + // JPA interfaces + JpaRepository, JpaSpecificationExecutor { + +} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/SalesBillVoucherRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/SalesBillVoucherRepository.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/contract/repository/SalesBillVoucherRepository.java rename to server/src/main/java/com/ecep/contract/ds/contract/repository/SalesBillVoucherRepository.java index 5e835c6..cf56707 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/SalesBillVoucherRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/SalesBillVoucherRepository.java @@ -1,14 +1,14 @@ -package com.ecep.contract.manager.ds.contract.repository; +package com.ecep.contract.ds.contract.repository; + +import java.util.Optional; -import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucher; -import com.ecep.contract.manager.ds.contract.model.SalesBillVoucher; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; -import java.util.Optional; +import com.ecep.contract.model.SalesBillVoucher; @Repository public interface SalesBillVoucherRepository extends diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/SalesOrderItemRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/SalesOrderItemRepository.java similarity index 81% rename from src/main/java/com/ecep/contract/manager/ds/contract/repository/SalesOrderItemRepository.java rename to server/src/main/java/com/ecep/contract/ds/contract/repository/SalesOrderItemRepository.java index c7cd9fc..c79f456 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/SalesOrderItemRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/SalesOrderItemRepository.java @@ -1,15 +1,16 @@ -package com.ecep.contract.manager.ds.contract.repository; +package com.ecep.contract.ds.contract.repository; + +import java.util.List; +import java.util.Optional; -import com.ecep.contract.manager.ds.contract.model.SalesOrder; -import com.ecep.contract.manager.ds.contract.model.SalesOrderItem; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; -import java.util.List; -import java.util.Optional; +import com.ecep.contract.model.SalesOrder; +import com.ecep.contract.model.SalesOrderItem; @Repository public interface SalesOrderItemRepository extends diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/SalesOrderRepository.java b/server/src/main/java/com/ecep/contract/ds/contract/repository/SalesOrderRepository.java similarity index 81% rename from src/main/java/com/ecep/contract/manager/ds/contract/repository/SalesOrderRepository.java rename to server/src/main/java/com/ecep/contract/ds/contract/repository/SalesOrderRepository.java index 0a4dce3..d4d5410 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/SalesOrderRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/repository/SalesOrderRepository.java @@ -1,15 +1,16 @@ -package com.ecep.contract.manager.ds.contract.repository; +package com.ecep.contract.ds.contract.repository; + +import java.util.List; +import java.util.Optional; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.SalesOrder; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; -import java.util.List; -import java.util.Optional; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.SalesOrder; @Repository public interface SalesOrderRepository extends diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractBidVendorService.java b/server/src/main/java/com/ecep/contract/ds/contract/service/ContractBidVendorService.java similarity index 65% rename from src/main/java/com/ecep/contract/manager/ds/contract/service/ContractBidVendorService.java rename to server/src/main/java/com/ecep/contract/ds/contract/service/ContractBidVendorService.java index 3f9edb1..abd75c6 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractBidVendorService.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/service/ContractBidVendorService.java @@ -1,11 +1,7 @@ -package com.ecep.contract.manager.ds.contract.service; +package com.ecep.contract.ds.contract.service; + +import java.util.List; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractBidVendor; -import com.ecep.contract.manager.ds.contract.repository.ContractBidVendorRepository; -import com.ecep.contract.manager.ds.contract.vo.ContractBidVendorViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -18,12 +14,16 @@ import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.contract.repository.ContractBidVendorRepository; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractBidVendor; @Lazy @Service @CacheConfig(cacheNames = "contract-ven-bid") -public class ContractBidVendorService implements ViewModelService { +public class ContractBidVendorService implements IEntityService { @Lazy @Autowired private ContractBidVendorRepository repository; @@ -48,22 +48,18 @@ public class ContractBidVendorService implements ViewModelService findByContractAndCompany(Contract contract, Company company) { return repository.findByContractIdAndCompanyId(contract.getId(), company.getId()); } diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractCatalogService.java b/server/src/main/java/com/ecep/contract/ds/contract/service/ContractCatalogService.java similarity index 68% rename from src/main/java/com/ecep/contract/manager/ds/contract/service/ContractCatalogService.java rename to server/src/main/java/com/ecep/contract/ds/contract/service/ContractCatalogService.java index dc0ff00..881ee74 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractCatalogService.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/service/ContractCatalogService.java @@ -1,7 +1,7 @@ -package com.ecep.contract.manager.ds.contract.service; +package com.ecep.contract.ds.contract.service; + +import java.util.List; -import com.ecep.contract.manager.ds.contract.model.ContractCatalog; -import com.ecep.contract.manager.ds.contract.repository.ContractCatalogRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -10,7 +10,8 @@ import org.springframework.cache.annotation.Caching; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; -import java.util.List; +import com.ecep.contract.ds.contract.repository.ContractCatalogRepository; +import com.ecep.contract.model.ContractCatalog; /** * 合同分类服务 @@ -21,28 +22,28 @@ import java.util.List; public class ContractCatalogService { @Lazy @Autowired - private ContractCatalogRepository contractCatalogRepository; + private ContractCatalogRepository repository; /** * 根据 id 查找 ContractCatalog */ @Cacheable(key = "#p0") public ContractCatalog findById(Integer id) { - return contractCatalogRepository.findById(id).orElse(null); + return repository.findById(id).orElse(null); } public ContractCatalog findByName(String name) { - return contractCatalogRepository.findByName(name).orElse(null); + return repository.findByName(name).orElse(null); } @Cacheable(key = "'code-'+#p0") public ContractCatalog findByCode(String code) { - return contractCatalogRepository.findByCode(code).orElse(null); + return repository.findByCode(code).orElse(null); } @Cacheable(key = "'catalogs'") public List findAll() { - return contractCatalogRepository.findAll(); + return repository.findAll(); } @Caching(evict = { @@ -51,7 +52,7 @@ public class ContractCatalogService { @CacheEvict(key = "'catalogs'"), }) public ContractCatalog save(ContractCatalog catalog) { - return contractCatalogRepository.save(catalog); + return repository.save(catalog); } @Caching(evict = { @@ -60,6 +61,6 @@ public class ContractCatalogService { @CacheEvict(key = "'catalogs'"), }) public void delete(ContractCatalog catalog) { - contractCatalogRepository.delete(catalog); + repository.delete(catalog); } } \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractFileService.java b/server/src/main/java/com/ecep/contract/ds/contract/service/ContractFileService.java similarity index 76% rename from src/main/java/com/ecep/contract/manager/ds/contract/service/ContractFileService.java rename to server/src/main/java/com/ecep/contract/ds/contract/service/ContractFileService.java index 6c2892a..96c0f80 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractFileService.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/service/ContractFileService.java @@ -1,13 +1,9 @@ -package com.ecep.contract.manager.ds.contract.service; +package com.ecep.contract.ds.contract.service; + +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; -import com.ecep.contract.manager.ds.contract.ContractFileType; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractFile; -import com.ecep.contract.manager.ds.contract.model.ContractFileTypeLocal; -import com.ecep.contract.manager.ds.contract.repository.ContractFileRepository; -import com.ecep.contract.manager.ds.contract.repository.ContractFileTypeLocalRepository; -import com.ecep.contract.manager.ds.contract.vo.ContractFileViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -23,14 +19,18 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; -import java.util.Map; -import java.util.function.Consumer; +import com.ecep.contract.ContractFileType; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.contract.repository.ContractFileRepository; +import com.ecep.contract.ds.contract.repository.ContractFileTypeLocalRepository; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractFile; +import com.ecep.contract.model.ContractFileTypeLocal; @Lazy @Service @CacheConfig(cacheNames = "contract-file") -public class ContractFileService implements ViewModelService { +public class ContractFileService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(ContractFileService.class); /** * 销售成本核算审批表模板 @@ -53,7 +53,6 @@ public class ContractFileService implements ViewModelService { return builder.or( builder.like(root.get("fileName"), "%" + searchText + "%"), - builder.like(root.get("description"), "%" + searchText + "%") - ); + builder.like(root.get("description"), "%" + searchText + "%")); }; } @@ -84,7 +82,6 @@ public class ContractFileService implements ViewModelService findAll(Specification spec, Sort by) { return contractFileRepository.findAll(spec, by); } @@ -139,25 +136,22 @@ public class ContractFileService implements ViewModelService findAllFileTypes(String lang) { -// Map map = contractFileTypeLocalRepository.getCompleteMapByLocal(lang); -// List list = new ArrayList<>(map.values()); -// list.sort((o1, o2) -> Objects.compare(o1.getValue(), o2.getValue(), String::compareTo)); -// return list; -// } + // @Cacheable(key = "'type-locals-'+#p0") + // public List findAllFileTypes(String lang) { + // Map map = + // contractFileTypeLocalRepository.getCompleteMapByLocal(lang); + // List list = new ArrayList<>(map.values()); + // list.sort((o1, o2) -> Objects.compare(o1.getValue(), o2.getValue(), + // String::compareTo)); + // return list; + // } @Cacheable(key = "'type-locals-'+#p0") public Map findAllFileTypes(String lang) { return contractFileTypeLocalRepository.getCompleteMapByLocal(lang); } - @Caching( - evict = { - @CacheEvict(key = "'type-locals-'+#p0.lang"), - @CacheEvict(key = "'type-'+#p0.type+'-local-'+#p0.lang"), - } - ) + @Caching(evict = { + @CacheEvict(key = "'type-locals-'+#p0.lang"), + @CacheEvict(key = "'type-'+#p0.type+'-local-'+#p0.lang"), + }) public ContractFileTypeLocal save(ContractFileTypeLocal type) { return contractFileTypeLocalRepository.save(type); } @@ -211,5 +204,4 @@ public class ContractFileService implements ViewModelService { +public class ContractItemService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(ContractItemService.class); @Lazy @@ -56,10 +57,7 @@ public class ContractItemService implements ViewModelService findAllByInventory(Inventory inventory) { return itemRepository.findByInventoryId(inventory.getId()); } @@ -81,23 +78,18 @@ public class ContractItemService implements ViewModelService { +public class ContractPayPlanService implements IEntityService { @Lazy @Autowired private ContractPayPlanRepository repository; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractService.java b/server/src/main/java/com/ecep/contract/ds/contract/service/ContractService.java similarity index 91% rename from src/main/java/com/ecep/contract/manager/ds/contract/service/ContractService.java rename to server/src/main/java/com/ecep/contract/ds/contract/service/ContractService.java index 040dd47..3f134d6 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractService.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/service/ContractService.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.contract.service; +package com.ecep.contract.ds.contract.service; import java.io.File; import java.time.LocalDate; @@ -9,17 +9,6 @@ import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; -import com.ecep.contract.manager.cloud.u8.ctx.ContractCtx; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.repository.ContractRepository; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.other.service.SysConfService; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.util.MyStringUtils; -import com.ecep.contract.manager.util.SpecificationUtils; -import jakarta.persistence.criteria.Predicate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -35,13 +24,23 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractCatalog; -import com.ecep.contract.manager.ds.contract.model.ContractGroup; -import com.ecep.contract.manager.ds.contract.model.ContractKind; -import com.ecep.contract.manager.ds.contract.model.ContractType; -import com.ecep.contract.manager.ds.contract.vo.ContractViewModel; -import com.ecep.contract.manager.ui.ViewModelService; +import com.ecep.contract.ContractPayWay; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.contract.repository.ContractRepository; +import com.ecep.contract.ds.other.service.SysConfService; +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.ContractCatalog; +import com.ecep.contract.model.ContractGroup; +import com.ecep.contract.model.ContractKind; +import com.ecep.contract.model.ContractType; +import com.ecep.contract.model.Project; +import com.ecep.contract.util.MyStringUtils; +import com.ecep.contract.util.SpecificationUtils; + +import jakarta.persistence.criteria.Predicate; /** * 合同服务类 @@ -50,7 +49,7 @@ import com.ecep.contract.manager.ui.ViewModelService; @Lazy @Service @CacheConfig(cacheNames = "contract") -public class ContractService implements ViewModelService { +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 @@ -75,7 +74,6 @@ public class ContractService implements ViewModelService findAllByCompanyVendor(CompanyVendor vendor, LocalDate beginDate, LocalDate endDate) { Company company = vendor.getCompany(); return contractRepository.findAll((root, query, cb) -> { @@ -373,7 +370,6 @@ public class ContractService implements ViewModelService { repository.delete(type); } - @Override public Specification getSpecification(String searchText) { return (root, query, builder) -> { return builder.or( builder.like(root.get("code"), "%" + searchText + "%"), - builder.like(root.get("name"), "%" + searchText + "%") - ); + builder.like(root.get("name"), "%" + searchText + "%")); }; } } \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/service/ExtendVendorInfoService.java b/server/src/main/java/com/ecep/contract/ds/contract/service/ExtendVendorInfoService.java similarity index 77% rename from src/main/java/com/ecep/contract/manager/ds/contract/service/ExtendVendorInfoService.java rename to server/src/main/java/com/ecep/contract/ds/contract/service/ExtendVendorInfoService.java index 89396ce..d55f780 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/service/ExtendVendorInfoService.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/service/ExtendVendorInfoService.java @@ -1,9 +1,9 @@ -package com.ecep.contract.manager.ds.contract.service; +package com.ecep.contract.ds.contract.service; + +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ExtendVendorInfo; -import com.ecep.contract.manager.ds.contract.repository.ExtendVendorInfoRepository; -import com.ecep.contract.manager.ds.vendor.service.VendorGroupService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -15,9 +15,10 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; +import com.ecep.contract.ds.contract.repository.ExtendVendorInfoRepository; +import com.ecep.contract.ds.vendor.service.VendorGroupService; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ExtendVendorInfo; @Lazy @Service @@ -40,22 +41,18 @@ public class ExtendVendorInfoService { return repository.findByContractId(contract.getId()).orElse(null); } - @Caching( - evict = { - @CacheEvict(key = "#p0.id"), - @CacheEvict(key = "'bycontract-'+#p0.contract.id") - } - ) + @Caching(evict = { + @CacheEvict(key = "#p0.id"), + @CacheEvict(key = "'bycontract-'+#p0.contract.id") + }) public ExtendVendorInfo save(ExtendVendorInfo bidVendor) { return repository.save(bidVendor); } - @Caching( - evict = { - @CacheEvict(key = "#p0.id"), - @CacheEvict(key = "'bycontract-'+#p0.contract.id") - } - ) + @Caching(evict = { + @CacheEvict(key = "#p0.id"), + @CacheEvict(key = "'bycontract-'+#p0.contract.id") + }) public void delete(ExtendVendorInfo bidVendor) { repository.delete(bidVendor); } diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/service/PurchaseBillVoucherItemService.java b/server/src/main/java/com/ecep/contract/ds/contract/service/PurchaseBillVoucherItemService.java similarity index 67% rename from src/main/java/com/ecep/contract/manager/ds/contract/service/PurchaseBillVoucherItemService.java rename to server/src/main/java/com/ecep/contract/ds/contract/service/PurchaseBillVoucherItemService.java index f766d35..018f7eb 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/service/PurchaseBillVoucherItemService.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/service/PurchaseBillVoucherItemService.java @@ -1,9 +1,7 @@ -package com.ecep.contract.manager.ds.contract.service; +package com.ecep.contract.ds.contract.service; + +import java.util.List; -import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucherItem; -import com.ecep.contract.manager.ds.contract.repository.PurchaseBillVoucherItemRepository; -import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherItemViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -16,12 +14,14 @@ import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.contract.repository.PurchaseBillVoucherItemRepository; +import com.ecep.contract.model.PurchaseBillVoucherItem; @Lazy @Service @CacheConfig(cacheNames = "purchase-bill-voucher-item") -public class PurchaseBillVoucherItemService implements ViewModelService { +public class PurchaseBillVoucherItemService implements IEntityService { @Lazy @Autowired private PurchaseBillVoucherItemRepository repository; @@ -36,8 +36,7 @@ public class PurchaseBillVoucherItemService implements ViewModelService getSpecification(String searchText) { return (root, query, builder) -> { return builder.or( - builder.like(root.get("description"), "%" + searchText + "%") - ); + builder.like(root.get("description"), "%" + searchText + "%")); }; } @@ -46,23 +45,19 @@ public class PurchaseBillVoucherItemService implements ViewModelService { +public class PurchaseBillVoucherService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(PurchaseBillVoucherService.class); @Lazy diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/service/PurchaseOrderItemService.java b/server/src/main/java/com/ecep/contract/ds/contract/service/PurchaseOrderItemService.java similarity index 86% rename from src/main/java/com/ecep/contract/manager/ds/contract/service/PurchaseOrderItemService.java rename to server/src/main/java/com/ecep/contract/ds/contract/service/PurchaseOrderItemService.java index 123866b..af1ad99 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/service/PurchaseOrderItemService.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/service/PurchaseOrderItemService.java @@ -1,9 +1,7 @@ -package com.ecep.contract.manager.ds.contract.service; +package com.ecep.contract.ds.contract.service; + +import java.util.List; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrderItem; -import com.ecep.contract.manager.ds.contract.repository.PurchaseOrderItemRepository; -import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderItemViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -19,12 +17,14 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.contract.repository.PurchaseOrderItemRepository; +import com.ecep.contract.model.PurchaseOrderItem; @Lazy @Service @CacheConfig(cacheNames = "contract-purchase-order-item") -public class PurchaseOrderItemService implements ViewModelService { +public class PurchaseOrderItemService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(PurchaseOrderItemService.class); @Lazy @Autowired diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/service/PurchaseOrdersService.java b/server/src/main/java/com/ecep/contract/ds/contract/service/PurchaseOrdersService.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/contract/service/PurchaseOrdersService.java rename to server/src/main/java/com/ecep/contract/ds/contract/service/PurchaseOrdersService.java index 0dbe9e7..dd9e983 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/service/PurchaseOrdersService.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/service/PurchaseOrdersService.java @@ -1,10 +1,7 @@ -package com.ecep.contract.manager.ds.contract.service; +package com.ecep.contract.ds.contract.service; + +import java.util.List; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrder; -import com.ecep.contract.manager.ds.contract.repository.PurchaseOrderRepository; -import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -19,7 +16,10 @@ import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.contract.repository.PurchaseOrderRepository; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.PurchaseOrder; /** * 采购订单服务 @@ -27,7 +27,7 @@ import java.util.List; @Lazy @Service @CacheConfig(cacheNames = "contract-purchase-order") -public class PurchaseOrdersService implements ViewModelService { +public class PurchaseOrdersService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(PurchaseOrdersService.class); @Lazy diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/service/SaleOrdersService.java b/server/src/main/java/com/ecep/contract/ds/contract/service/SaleOrdersService.java similarity index 77% rename from src/main/java/com/ecep/contract/manager/ds/contract/service/SaleOrdersService.java rename to server/src/main/java/com/ecep/contract/ds/contract/service/SaleOrdersService.java index aacee34..6edfee1 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/service/SaleOrdersService.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/service/SaleOrdersService.java @@ -1,10 +1,7 @@ -package com.ecep.contract.manager.ds.contract.service; +package com.ecep.contract.ds.contract.service; + +import java.util.List; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.SalesOrder; -import com.ecep.contract.manager.ds.contract.repository.SalesOrderRepository; -import com.ecep.contract.manager.ds.contract.vo.SalesOrderViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -20,7 +17,10 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.contract.repository.SalesOrderRepository; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.SalesOrder; /** * 合同服务 @@ -28,14 +28,13 @@ import java.util.List; @Lazy @Service @CacheConfig(cacheNames = "contract-sale-order") -public class SaleOrdersService implements ViewModelService { +public class SaleOrdersService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(SaleOrdersService.class); @Lazy @Autowired private SalesOrderRepository salesOrderRepository; - @Cacheable(key = "#p0") public SalesOrder findById(Integer id) { return salesOrderRepository.findById(id).orElse(null); @@ -49,8 +48,7 @@ public class SaleOrdersService implements ViewModelService { return builder.or( builder.like(root.get("name"), "%" + searchText + "%"), - builder.like(root.get("code"), "%" + searchText + "%") - ); + builder.like(root.get("code"), "%" + searchText + "%")); }; } @@ -65,22 +63,18 @@ public class SaleOrdersService implements ViewModelService { +public class SalesBillVoucherService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(SalesBillVoucherService.class); @Lazy diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/service/SalesOrderItemService.java b/server/src/main/java/com/ecep/contract/ds/contract/service/SalesOrderItemService.java similarity index 82% rename from src/main/java/com/ecep/contract/manager/ds/contract/service/SalesOrderItemService.java rename to server/src/main/java/com/ecep/contract/ds/contract/service/SalesOrderItemService.java index 29b5cb8..37a2d43 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/service/SalesOrderItemService.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/service/SalesOrderItemService.java @@ -1,9 +1,7 @@ -package com.ecep.contract.manager.ds.contract.service; +package com.ecep.contract.ds.contract.service; + +import java.util.List; -import com.ecep.contract.manager.ds.contract.model.SalesOrderItem; -import com.ecep.contract.manager.ds.contract.repository.SalesOrderItemRepository; -import com.ecep.contract.manager.ds.contract.vo.SalesOrderItemViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -16,12 +14,14 @@ import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.contract.repository.SalesOrderItemRepository; +import com.ecep.contract.model.SalesOrderItem; @Lazy @Service @CacheConfig(cacheNames = "contract-sale-order-item") -public class SalesOrderItemService implements ViewModelService { +public class SalesOrderItemService implements IEntityService { @Lazy @Autowired private SalesOrderItemRepository repository; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/AbstContractRepairTasker.java b/server/src/main/java/com/ecep/contract/ds/contract/tasker/AbstContractRepairTasker.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ds/contract/tasker/AbstContractRepairTasker.java rename to server/src/main/java/com/ecep/contract/ds/contract/tasker/AbstContractRepairTasker.java index 3807090..6f25fc6 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/AbstContractRepairTasker.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/tasker/AbstContractRepairTasker.java @@ -1,28 +1,33 @@ -package com.ecep.contract.manager.ds.contract.tasker; +package com.ecep.contract.ds.contract.tasker; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.cloud.u8.ctx.*; -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.SalesOrder; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; -import javafx.beans.property.ObjectProperty; -import javafx.beans.property.SimpleObjectProperty; -import lombok.Getter; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Consumer; import org.hibernate.Hibernate; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.jdbc.CannotGetJdbcConnectionException; import org.springframework.util.StringUtils; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.function.Consumer; +import com.ecep.contract.ContractPayWay; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.cloud.u8.YongYouU8Service; +import com.ecep.contract.cloud.u8.ctx.ContractCtx; +import com.ecep.contract.cloud.u8.ctx.PurchaseBillVoucherCtx; +import com.ecep.contract.cloud.u8.ctx.PurchaseOrderCtx; +import com.ecep.contract.cloud.u8.ctx.SalesBillVoucherCtx; +import com.ecep.contract.cloud.u8.ctx.SalesOrderCtx; +import com.ecep.contract.constant.CloudServiceConstant; +import com.ecep.contract.ds.contract.service.ContractService; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.SalesOrder; +import com.ecep.contract.ui.Tasker; + +import lombok.Getter; public abstract class AbstContractRepairTasker extends Tasker { @Getter @@ -82,7 +87,7 @@ public abstract class AbstContractRepairTasker extends Tasker { YongYouU8Service u8Service = SpringApp.getBean(YongYouU8Service.class); u8Service.initialize(contractCtx); } catch (NoSuchBeanDefinitionException ignored) { - holder.warn("无法使用 " + YongYouU8Service.NAME + " 服务"); + holder.warn("无法使用 " + CloudServiceConstant.U8_NAME + " 服务"); } try { repair(holder); @@ -103,7 +108,7 @@ public abstract class AbstContractRepairTasker extends Tasker { String contractName = (String) rs.get("strContractName"); String state = (String) rs.get("strState"); - updateTitle("同步合同 " + contractID + " " + contractName); + holder.info("同步合同 " + contractID + " " + contractName); Contract contract = contractCtx.findOrCreatByGuidOrContractId(guid, contractID, holder); if (contract == null) { holder.warn("未知合同" + contractID + ", " + rs.get("strContractName")); @@ -149,9 +154,9 @@ public abstract class AbstContractRepairTasker extends Tasker { parent = contractCtx.findContractByCode(contract.getParentCode()); } } - SimpleObjectProperty contractProperty = new SimpleObjectProperty<>(contract); + AtomicReference refer = new AtomicReference<>(contract); try { - return repair(contractProperty, parent, holder, progress -> { + return repair(refer, parent, holder, progress -> { }); } catch (Exception e) { holder.error(state); @@ -166,7 +171,7 @@ public abstract class AbstContractRepairTasker extends Tasker { * @return */ public boolean repair( - ObjectProperty contractProperty, + AtomicReference contractProperty, Contract parent, MessageHolder holder, Consumer progress) { boolean repaired = false; boolean modified = false; @@ -247,7 +252,7 @@ public abstract class AbstContractRepairTasker extends Tasker { if (project == null) { project = v.getProject(); } - SimpleObjectProperty contractProperty = new SimpleObjectProperty<>(v); + AtomicReference contractProperty = new AtomicReference<>(v); try { repair(contractProperty, parent, subHolder, p -> { }); diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractFilesRebuildAllTasker.java b/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractFilesRebuildAllTasker.java similarity index 81% rename from src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractFilesRebuildAllTasker.java rename to server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractFilesRebuildAllTasker.java index 4f2f4df..23e3bfa 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractFilesRebuildAllTasker.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractFilesRebuildAllTasker.java @@ -1,18 +1,20 @@ -package com.ecep.contract.manager.ds.contract.tasker; +package com.ecep.contract.ds.contract.tasker; + +import java.util.concurrent.atomic.AtomicInteger; -import com.ecep.contract.manager.cloud.u8.ctx.ContractCtx; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractGroup; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; -import lombok.Setter; 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 java.util.concurrent.atomic.AtomicInteger; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.cloud.u8.ctx.ContractCtx; +import com.ecep.contract.ds.contract.service.ContractService; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractGroup; +import com.ecep.contract.ui.Tasker; + +import lombok.Setter; /** * 对所有合同的文件进行重置 @@ -38,7 +40,6 @@ public class ContractFilesRebuildAllTasker extends Tasker { updateTitle("合同文件重置"); } - @Override protected Object execute(MessageHolder holder) { Pageable pageRequest = PageRequest.ofSize(200); @@ -67,7 +68,8 @@ public class ContractFilesRebuildAllTasker extends Tasker { if (isCancelled()) { break; } - MessageHolder subHolder = holder.sub(counter.get() + " / " + total + "> " + contract.getCode() + " #" + contract.getId() + "> "); + MessageHolder subHolder = holder.sub( + counter.get() + " / " + total + "> " + contract.getCode() + " #" + contract.getId() + "> "); getContractCtx().syncContractFiles(contract, subHolder); updateProgress(counter.incrementAndGet(), total); } diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractFilesRebuildTasker.java b/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractFilesRebuildTasker.java similarity index 73% rename from src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractFilesRebuildTasker.java rename to server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractFilesRebuildTasker.java index 8207a67..f815f14 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractFilesRebuildTasker.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractFilesRebuildTasker.java @@ -1,10 +1,11 @@ -package com.ecep.contract.manager.ds.contract.tasker; +package com.ecep.contract.ds.contract.tasker; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.cloud.u8.ctx.ContractCtx; +import com.ecep.contract.ds.contract.service.ContractService; +import com.ecep.contract.model.Contract; +import com.ecep.contract.ui.Tasker; -import com.ecep.contract.manager.cloud.u8.ctx.ContractCtx; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; import lombok.Getter; import lombok.Setter; @@ -25,7 +26,6 @@ public class ContractFilesRebuildTasker extends Tasker { updateTitle("合同文件重置"); } - @Override protected Object execute(MessageHolder holder) { updateTitle("遍历合同的文件进行“重置”操作"); diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractRepairAllTasker.java b/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractRepairAllTasker.java similarity index 81% rename from src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractRepairAllTasker.java rename to server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractRepairAllTasker.java index edf4eec..502b89e 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractRepairAllTasker.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractRepairAllTasker.java @@ -1,12 +1,12 @@ -package com.ecep.contract.manager.ds.contract.tasker; +package com.ecep.contract.ds.contract.tasker; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicReference; +import java.util.logging.Level; +import java.util.stream.Collectors; -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ui.Message; -import com.ecep.contract.manager.ui.MessageHolder; -import jakarta.persistence.criteria.Path; -import javafx.beans.property.SimpleObjectProperty; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.domain.Page; @@ -15,11 +15,13 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; import org.springframework.util.StringUtils; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.logging.Level; -import java.util.stream.Collectors; +import com.ecep.contract.ContractPayWay; +import com.ecep.contract.Message; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.ds.contract.service.ContractService; +import com.ecep.contract.model.Contract; + +import jakarta.persistence.criteria.Path; /** * 对所有合同进行修复 @@ -52,10 +54,7 @@ public class ContractRepairAllTasker extends AbstContractRepairTasker { builder.equal(payWay, ContractPayWay.PAY), builder.or( builder.equal(parentCode, ""), - builder.isNull(parentCode) - ) - ) - ); + builder.isNull(parentCode)))); }; updateTitle("遍历所有合同,对每个可以合同的文件进行“修复”操作"); @@ -75,7 +74,8 @@ public class ContractRepairAllTasker extends AbstContractRepairTasker { if (isCancelled()) { break; } - MessageHolder subHolder = holder.sub(counter.get() + " / " + total + "> " + contract.getCode() + " #" + contract.getId() + "> "); + MessageHolder subHolder = holder.sub( + counter.get() + " / " + total + "> " + contract.getCode() + " #" + contract.getId() + "> "); MessageHolderImpl messageHolder = new MessageHolderImpl(); try { Contract parent = null; @@ -84,14 +84,13 @@ public class ContractRepairAllTasker extends AbstContractRepairTasker { parent = contractCtx.findContractByCode(contract.getParentCode()); } } - SimpleObjectProperty contractProperty = new SimpleObjectProperty<>(contract); + AtomicReference contractProperty = new AtomicReference<>(contract); boolean repaired = repair(contractProperty, parent, messageHolder, progress -> { }); String msg = messageHolder.messages.stream() .filter(v -> v.getLevel().intValue() > Level.INFO.intValue()) .map(Message::getMessage) - .collect(Collectors.joining(", ") - ); + .collect(Collectors.joining(", ")); if (StringUtils.hasText(msg)) { if (repaired) { subHolder.info(msg); diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractRepairByCompanyTask.java b/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractRepairByCompanyTask.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractRepairByCompanyTask.java rename to server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractRepairByCompanyTask.java index 34d8443..2c36f76 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractRepairByCompanyTask.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractRepairByCompanyTask.java @@ -1,18 +1,21 @@ -package com.ecep.contract.manager.ds.contract.tasker; - -import com.ecep.contract.manager.cloud.u8.CloudYu; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.cloud.u8.ctx.CustomerCtx; -import com.ecep.contract.manager.cloud.u8.ctx.VendorCtx; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ui.MessageHolder; -import lombok.Getter; -import lombok.Setter; -import org.springframework.beans.BeansException; +package com.ecep.contract.ds.contract.tasker; import java.time.Instant; import java.time.LocalDate; +import org.springframework.beans.BeansException; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.cloud.u8.YongYouU8Service; +import com.ecep.contract.cloud.u8.ctx.CustomerCtx; +import com.ecep.contract.cloud.u8.ctx.VendorCtx; +import com.ecep.contract.constant.CloudServiceConstant; +import com.ecep.contract.model.CloudYu; +import com.ecep.contract.model.Company; + +import lombok.Getter; +import lombok.Setter; + public class ContractRepairByCompanyTask extends AbstContractRepairTasker { @Getter @Setter @@ -30,7 +33,7 @@ public class ContractRepairByCompanyTask extends AbstContractRepairTasker { try { yongYouU8Service = getBean(YongYouU8Service.class); } catch (BeansException e) { - holder.warn("未启用 " + YongYouU8Service.NAME + " 服务"); + holder.warn("未启用 " + CloudServiceConstant.U8_NAME + " 服务"); return; } diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractRepairComm.java b/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractRepairComm.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractRepairComm.java rename to server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractRepairComm.java index e82ece5..82fed2a 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractRepairComm.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractRepairComm.java @@ -1,22 +1,24 @@ -package com.ecep.contract.manager.ds.contract.tasker; +package com.ecep.contract.ds.contract.tasker; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.CompanyFileUtils; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.model.ContractCatalog; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ui.MessageHolder; -import lombok.Data; -import lombok.Setter; -import org.springframework.util.StringUtils; +import static com.ecep.contract.SpringApp.getBean; import java.io.File; -import static com.ecep.contract.manager.SpringApp.getBean; +import org.springframework.util.StringUtils; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.ds.company.CompanyFileUtils; +import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.ds.contract.service.ContractService; +import com.ecep.contract.ds.project.service.ProjectService; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.ContractCatalog; +import com.ecep.contract.model.Project; + +import lombok.Data; +import lombok.Setter; @Data public class ContractRepairComm { diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractRepairTask.java b/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractRepairTask.java similarity index 73% rename from src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractRepairTask.java rename to server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractRepairTask.java index 5a1e135..7f771aa 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractRepairTask.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractRepairTask.java @@ -1,12 +1,15 @@ -package com.ecep.contract.manager.ds.contract.tasker; +package com.ecep.contract.ds.contract.tasker; + +import java.util.concurrent.atomic.AtomicReference; + +import org.springframework.util.StringUtils; + +import com.ecep.contract.ContractPayWay; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.ContractPayWay; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ui.MessageHolder; -import javafx.beans.property.SimpleObjectProperty; import lombok.Getter; import lombok.Setter; -import org.springframework.util.StringUtils; /** * 合同修复任务 @@ -17,6 +20,8 @@ public class ContractRepairTask extends AbstContractRepairTasker { private Contract contract; @Getter boolean repaired = false; + + private final ContractRepairComm comm = new ContractRepairComm(); public ContractRepairTask() { @@ -33,7 +38,7 @@ public class ContractRepairTask extends AbstContractRepairTasker { } } - SimpleObjectProperty contractProperty = new SimpleObjectProperty<>(contract); + AtomicReference contractProperty = new AtomicReference<>(contract); if (repair(contractProperty, parent, holder, progress -> updateProgress(progress, 1))) { repaired = true; } @@ -43,4 +48,5 @@ public class ContractRepairTask extends AbstContractRepairTasker { updateProgress(1, 1); } + } 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 new file mode 100644 index 0000000..316d3a4 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractVerifyComm.java @@ -0,0 +1,848 @@ +package com.ecep.contract.ds.contract.tasker; + +import com.ecep.contract.*; +import com.ecep.contract.ds.company.CompanyFileUtils; +import com.ecep.contract.ds.company.service.CompanyExtendInfoService; +import com.ecep.contract.ds.company.service.CompanyFileService; +import com.ecep.contract.ds.company.service.CompanyService; +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.customer.service.CompanyCustomerFileService; +import com.ecep.contract.ds.customer.service.CompanyCustomerService; +import com.ecep.contract.ds.other.service.EmployeeService; +import com.ecep.contract.ds.project.ProjectCostImportItemsFromContractsTasker; +import com.ecep.contract.ds.project.service.*; +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 lombok.Data; +import org.hibernate.Hibernate; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.util.StringUtils; + +import java.io.File; +import java.text.NumberFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.*; +import java.util.stream.Collectors; + +@Data +public class ContractVerifyComm { + // Project + private ProjectService projectService; + private ProjectSaleTypeRequireFileTypeService saleTypeRequireFileTypeService; + private SaleTypeService saleTypeService; + private ProjectCostService projectCostService; + private ProjectQuotationService projectQuotationService; + private ProjectBidService projectBidService; + // Contract + private ContractService contractService; + private ContractFileService contractFileService; + private ContractBidVendorService contractBidVendorService; + + // Company + private CompanyService companyService; + private CompanyFileService companyFileService; + // Vendor + private CompanyVendorService companyVendorService; + private VendorGroupService vendorGroupService; + private VendorGroupRequireFileTypeService vendorGroupRequireFileTypeService; + private ExtendVendorInfoService extendVendorInfoService; + // Customer + private CompanyCustomerService companyCustomerService; + private CompanyCustomerFileService companyCustomerFileService; + private CompanyExtendInfoService companyExtendInfoService; + // Employee + private EmployeeService employeeService; + + private ProjectService getProjectService() { + if (projectService == null) { + projectService = SpringApp.getBean(ProjectService.class); + } + return projectService; + } + + private SaleTypeService getSaleTypeService() { + if (saleTypeService == null) { + saleTypeService = SpringApp.getBean(SaleTypeService.class); + } + return saleTypeService; + } + + ProjectCostService getProjectCostService() { + if (projectCostService == null) { + projectCostService = SpringApp.getBean(ProjectCostService.class); + } + return projectCostService; + } + + ProjectQuotationService getProjectQuotationService() { + if (projectQuotationService == null) { + projectQuotationService = SpringApp.getBean(ProjectQuotationService.class); + } + return projectQuotationService; + } + + ProjectBidService getProjectBidService() { + if (projectBidService == null) { + projectBidService = SpringApp.getBean(ProjectBidService.class); + } + return projectBidService; + } + + private ProjectSaleTypeRequireFileTypeService getSaleTypeRequireFileTypeService() { + if (saleTypeRequireFileTypeService == null) { + saleTypeRequireFileTypeService = SpringApp.getBean(ProjectSaleTypeRequireFileTypeService.class); + } + return saleTypeRequireFileTypeService; + } + + public ContractService getContractService() { + if (contractService == null) { + contractService = SpringApp.getBean(ContractService.class); + } + return contractService; + } + + private ContractFileService getContractFileService() { + if (contractFileService == null) { + contractFileService = SpringApp.getBean(ContractFileService.class); + } + return contractFileService; + } + + private ContractBidVendorService getContractBidVendorService() { + if (contractBidVendorService == null) { + contractBidVendorService = SpringApp.getBean(ContractBidVendorService.class); + } + return contractBidVendorService; + } + + private CompanyService getCompanyService() { + if (companyService == null) { + companyService = SpringApp.getBean(CompanyService.class); + } + return companyService; + } + + private CompanyFileService getCompanyFileService() { + if (companyFileService == null) { + companyFileService = SpringApp.getBean(CompanyFileService.class); + } + return companyFileService; + } + + private VendorGroupService getVendorGroupService() { + if (vendorGroupService == null) { + vendorGroupService = SpringApp.getBean(VendorGroupService.class); + } + return vendorGroupService; + } + + private VendorGroupRequireFileTypeService getVendorGroupRequireFileTypeService() { + if (vendorGroupRequireFileTypeService == null) { + vendorGroupRequireFileTypeService = SpringApp.getBean(VendorGroupRequireFileTypeService.class); + } + return vendorGroupRequireFileTypeService; + } + + private ExtendVendorInfoService getExtendVendorInfoService() { + if (extendVendorInfoService == null) { + extendVendorInfoService = SpringApp.getBean(ExtendVendorInfoService.class); + } + return extendVendorInfoService; + } + + private CompanyVendorService getCompanyVendorService() { + if (companyVendorService == null) { + companyVendorService = SpringApp.getBean(CompanyVendorService.class); + } + return companyVendorService; + } + + private CompanyCustomerService getCompanyCustomerService() { + if (companyCustomerService == null) { + companyCustomerService = SpringApp.getBean(CompanyCustomerService.class); + } + return companyCustomerService; + } + + private CompanyCustomerFileService getCompanyCustomerFileService() { + if (companyCustomerFileService == null) { + companyCustomerFileService = SpringApp.getBean(CompanyCustomerFileService.class); + } + return companyCustomerFileService; + } + + private CompanyExtendInfoService getCompanyExtendInfoService() { + if (companyExtendInfoService == null) { + companyExtendInfoService = SpringApp.getBean(CompanyExtendInfoService.class); + } + return companyExtendInfoService; + } + + private EmployeeService getEmployeeService() { + if (employeeService == null) { + employeeService = SpringApp.getBean(EmployeeService.class); + } + return employeeService; + } + + /** + * + */ + private Map fileTypeLocalMap = null; + private Locale locale = Locale.getDefault(); + private Contract contract; + + /** + * 是否验证企业存储目录 + */ + private boolean verifyCompanyPath = true; + /** + * 是否验证企业状态 + */ + private boolean verifyCompanyStatus = true; + /** + * 是否验证企业文件(资信报告) + */ + private boolean verifyCompanyCredit = true; + /** + * 是否验证客户 + */ + private boolean verifyCustomer = true; + /** + * 是否验证客户文件(合同文件) + */ + private boolean verifyCustomerFiles = true; + /** + * 是否验证客户子合同日期 + */ + private boolean verifyCustomerSubContractDate = true; + /** + * 是否验证供应商 + */ + private boolean verifyVendor = true; + /** + * 是否验证供应商文件(供应商合同) + */ + private boolean verifyVendorFiles = true; + + /** + * 合同合规性检测 + * + * @param contract 要验证的合同对象 + * @param holder 输出 + */ + public void verify(Contract contract, MessageHolder holder) { + LocalDate setupDate = contract.getSetupDate(); + if (setupDate == null) { + holder.error("未设置合同提交日期"); + return; + } + + Company company = contract.getCompany(); + if (company == null) { + holder.error("未关联企业"); + return; + } + if (!Hibernate.isInitialized(company)) { + company = getCompanyService().findById(company.getId()); + } + verify(company, contract, holder); + } + + public void verify(Company company, Contract contract, MessageHolder holder) { + LocalDate setupDate = contract.getSetupDate(); + + Employee employee = contract.getEmployee(); + if (employee == null) { + holder.error("未关联业务员"); + } + + if (contract.getAmount() == null || contract.getAmount() <= 0) { + holder.error("合同金额小于等于0"); + } + + CompanyExtendInfo companyExtendInfo = getCompanyExtendInfoService().findByCompany(company); + + if (companyExtendInfo.isDisableVerify()) { + holder.debug("公司设定不做校验"); + } else { + if (verifyCompanyPath) { + if (!CompanyFileUtils.exists(company.getPath())) { + holder.error("公司目录未设置"); + } else { + File basePath = getCompanyService().getBasePath(); + if (!company.getPath().startsWith(basePath.getAbsolutePath())) { + holder.error("公司目录未在规定目录下"); + } + } + } + + if (verifyCompanyStatus) { + getCompanyService().verifyEnterpriseStatus(company, setupDate, msg -> { + holder.error(company.getName() + ":" + msg); + }); + } + + if (verifyCompanyCredit) { + getCompanyFileService().verify(company, contract.getSetupDate(), msg -> { + holder.error(company.getName() + ":" + msg); + }); + } + } + + // 合同类型 + switch (contract.getPayWay()) { + case RECEIVE -> { + // 销售合同 + verifyAsCustomer(company, companyExtendInfo, contract, holder); + + // 销售合同下的采购合同 + List list = getContractService().findAllByParent(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())) { + holder.error("合同目录未在规定目录下"); + } + } else { + holder.error("合同目录未设置"); + } + } + + DoubleSummaryStatistics statistics = list.stream().mapToDouble(c -> { + return Objects.requireNonNullElse(c.getAmount(), 0.0); + }).summaryStatistics(); + NumberFormat numberFormat = NumberFormat.getCurrencyInstance(locale); + + holder.debug("采购合同金额合计:" + numberFormat.format(statistics.getSum())); + holder.debug("采购合同金额平均值:" + numberFormat.format(statistics.getAverage())); + holder.debug("采购合同金额最大值:" + numberFormat.format(statistics.getMax())); + holder.debug("采购合同金额最小值:" + numberFormat.format(statistics.getMin())); + if (contract.getAmount() != null && statistics.getSum() > contract.getAmount()) { + holder.warn("采购合同金额合计大于销售合同金额"); + } + } + + break; + } + case PAY -> { + verifyAsVendor(company, contract, holder); + break; + } + case OTHER -> { + holder.error("合同付款类型:其他"); + break; + } + default -> { + holder.error("合同付款类型:未设置"); + } + } + } + + private void verifyAsVendor(Company company, Contract contract, MessageHolder holder) { + // 供应商,检查评价表 + ExtendVendorInfo vendorInfo = getExtendVendorInfoService().findByContract(contract); + if (vendorInfo == null) { + ExtendVendorInfo info = getExtendVendorInfoService().newInstanceByContract(contract); + vendorInfo = getExtendVendorInfoService().save(info); + holder.info("创建供应商信息 #" + vendorInfo.getId()); + } + VendorGroup group = vendorInfo.getGroup(); + boolean assignedProvider = vendorInfo.isAssignedProvider(); + if (assignedProvider) { + holder.debug("采购信息中设定为指定供应商"); + } + + if (group != null) { + if (!Hibernate.isInitialized(group)) { + group = getVendorGroupService().findById(group.getId()); + vendorInfo.setGroup(group); + } + } + if (verifyCustomerSubContractDate) { + // 检查子合同日期是否在销售合同之后 + if (!vendorInfo.isPrePurchase()) { + String parentCode = contract.getParentCode(); + if (StringUtils.hasText(parentCode)) { + Contract parent = getContractService().findByCode(parentCode); + if (parent != null) { + if (contract.getSetupDate().isBefore(parent.getSetupDate())) { + holder.warn("采购合同:" + contract.getCode() + " 提交日期在销售合同之前"); + } + } + } + } + } + if (verifyVendor) { + getCompanyVendorService().verify(contract, holder); + } + + if (verifyVendorFiles) { + holder.debug("核验文件..."); + verifyVendorFile(group, assignedProvider, contract, holder); + } + } + + private void verifyVendorFile(VendorGroup group, boolean assignedProvider, Contract contract, + MessageHolder holder) { + if (group == null) { + return; + } + boolean loseFile = false; + List files = getContractFileService().findAllByContract(contract); + List list = getVendorGroupRequireFileTypeService().findByGroupId(group.getId()); + if (list != null && !list.isEmpty()) { + for (VendorGroupRequireFileType item : list) { + ContractFileType fileType = item.getFileType(); + if (fileType == null) { + continue; + } + if (fileType == ContractFileType.QuotationSheet && assignedProvider + && group.isRequireQuotationSheetForBid()) { + continue; + } + if (!hasFileType(files, fileType)) { + holder.error("供应商" + getFileTypeLocalValue(fileType) + "未上传"); + loseFile = true; + } + + } + } + + // 供应商比价 + if (group.isPriceComparison()) { + if (assignedProvider) { + holder.debug("指定供应商, 跳过供应商比价"); + } else { + boolean requireQuotation = group.isRequireQuotationSheetForBid(); + List bidVendors = getContractBidVendorService().findByContract(contract); + if (bidVendors == null || bidVendors.isEmpty()) { + holder.error("未上报供应商比价"); + } else { + for (ContractBidVendor bidVendor : bidVendors) { + ContractFile contractFile = bidVendor.getQuotationSheet(); + if (contractFile == null) { + if (requireQuotation && bidVendor.getCompany().equals(contract.getCompany())) { + holder.debug("供应商类型启用了允许选中供应商不必须要有报价表"); + } else { + holder.error("供应商比价:" + bidVendor.getCompany().getName() + " 未上传/关联报价表"); + loseFile = true; + } + } else { + if (!Hibernate.isInitialized(contractFile)) { + contractFile = getContractFileService().findById(contractFile.getId()); + } + ContractFileType type = contractFile.getType(); + if (type != ContractFileType.QuotationSheet) { + holder.error("供应商比价:" + contractFile.getFileName() + " 报价表记录异常,类型错误"); + } + File file = new File(contract.getPath(), contractFile.getFileName()); + if (!file.exists()) { + holder.error("供应商比价:" + file.getName() + " 报价表记录异常,文件不存在"); + loseFile = true; + } + } + } + } + } + } + if (loseFile && files.isEmpty()) { + holder.warn("!上传文件空!"); + } + } + + ContractFileTypeLocal getFileTypeLocal(ContractFileType type) { + if (fileTypeLocalMap == null) { + fileTypeLocalMap = getContractFileService().findAllFileTypes(getLocale().toLanguageTag()); + } + return fileTypeLocalMap.get(type); + } + + String getFileTypeLocalValue(ContractFileType type) { + ContractFileTypeLocal fileTypeLocal = getFileTypeLocal(type); + if (fileTypeLocal == null) { + return type.name(); + } + return fileTypeLocal.getValue(); + } + + private boolean hasFileType(List files, ContractFileType fileType) { + if (files == null || files.isEmpty()) { + return false; + } + for (ContractFile file : files) { + if (file.getType() == fileType) { + return true; + } + } + return false; + } + + private void verifyAsCustomer(Company company, CompanyExtendInfo companyExtendInfo, Contract contract, + MessageHolder holder) { + boolean valiad = true; + Project project = contract.getProject(); + if (project == null) { + // 收款的合同时,检查是否关联了项目,如果没有则创建 + if (contract.getPayWay() == ContractPayWay.RECEIVE) { + project = getProjectService().findByCode(contract.getCode()); + if (project == null) { + holder.info("创建关联项目"); + try { + project = getProjectService().newInstanceByContract(contract); + project = getProjectService().save(project); + } catch (Exception e) { + holder.error("创建关联项目失败: " + e.getMessage()); + throw new RuntimeException("code=" + contract.getCode(), e); + } + } + contract.setProject(project); + contract = getContractService().save(contract); + } + } + if (project != null) { + if (!Hibernate.isInitialized(project)) { + project = getProjectService().findById(project.getId()); + // fixed + contract.setProject(project); + } + + } + + if (project != null) { + holder.info("验证项目信息:" + project.getCode() + " " + project.getName()); + verifyProject(contract, project, holder.sub("项目")); + + ProjectSaleType saleType = project.getSaleType(); + if (saleType != null) { + if (CompanyFileUtils.exists(contract.getPath())) { + if (!Hibernate.isInitialized(saleType)) { + saleType = getSaleTypeService().findById(saleType.getId()); + project.setSaleType(saleType); + } + if (!contract.getPath().startsWith(saleType.getPath())) { + holder.error("合同目录未在销售类型目录下"); + } + } + } + } + + if (!companyExtendInfo.isDisableVerify()) { + if (!verifyCustomerContract(contract, holder)) { + valiad = false; + } + + if (verifyCustomerFiles) { + holder.debug("核验文件..."); + if (!verifyContractFileAsCustomer(project, contract, holder)) { + valiad = false; + } + } + } + } + + /** + * 客户,检查评估表 + */ + private boolean verifyCustomerContract(Contract contract, MessageHolder holder) { + if (!verifyCustomer) { + return false; + } + boolean valid = true; + Company company = contract.getCompany(); + if (company == null) { + holder.warn("合同未关联公司"); + valid = false; + } + + CompanyCustomer companyCustomer = getCompanyCustomerService().findByCompany(company); + if (companyCustomer == null) { + holder.warn("合同未关联客户"); + valid = false; + } else { + if (!StringUtils.hasText(companyCustomer.getPath())) { + holder.warn("客户未设置文件夹"); + valid = false; + } + LocalDate developDate = companyCustomer.getDevelopDate(); + if (developDate == null) { + holder.warn("客户未设置开发日期"); + valid = false; + } + if (!verifyCustomerFileByContract(companyCustomer, contract, holder)) { + valid = false; + } + } + return valid; + } + + private boolean verifyCustomerFileByContract(CompanyCustomer companyCustomer, Contract contract, + MessageHolder holder) { + List verifyDates = new ArrayList<>(); + LocalDate minDate = LocalDate.of(2022, 1, 1); + LocalDate developDate = companyCustomer.getDevelopDate(); + if (developDate != null) { + if (developDate.isAfter(minDate)) { + minDate = developDate; + } + } + if (contract.getSetupDate() != null) { + LocalDate setupDate = contract.getSetupDate(); + if (setupDate.isBefore(developDate)) { + holder.error("合同提交日期 " + setupDate + " 早于客户开发日期 " + developDate + "."); + return false; + } + if (setupDate.isBefore(minDate)) { + holder.debug("合同提交日期 " + setupDate + " 早于 " + minDate + ", 跳过"); + } else { + verifyDates.add(setupDate); + } + } + if (contract.getStartDate() != null) { + LocalDate startDate = contract.getStartDate(); + if (startDate.isBefore(developDate)) { + holder.warn("合同起始日期 " + startDate + " 早于客户开发日期 " + developDate + "."); + } + + if (startDate.isBefore(minDate)) { + holder.debug("合同起始日期 " + startDate + " 早于 " + minDate + ", 跳过"); + } else { + verifyDates.add(startDate); + } + } + if (contract.getOrderDate() != null) { + LocalDate orderDate = contract.getOrderDate(); + if (orderDate.isBefore(developDate)) { + holder.error("合同签订日期 " + orderDate + " 早于客户开发日期 " + developDate + "."); + return false; + } + if (orderDate.isBefore(minDate)) { + holder.debug("合同签订日期 " + orderDate + " 早于 " + minDate + ", 跳过"); + } else { + verifyDates.add(orderDate); + } + } + + if (verifyDates.isEmpty()) { + holder.warn("合同没有符合可核验的日期"); + return false; + } + + // 客户 + List files = getCompanyCustomerFileService().findAllByCustomer(companyCustomer); + if (files == null || files.isEmpty()) { + holder.warn("未见客户评估表"); + return false; + } + + for (LocalDate verifyDate : verifyDates) { + CompanyCustomerFile customerFile = files.stream() + .filter(v -> v.getSignDate() != null && v.isValid()) + .filter(v -> v.getType() == CompanyCustomerFileType.EvaluationForm) + .filter(v -> MyDateTimeUtils.dateValidFilter(verifyDate, v.getSignDate(), + v.getSignDate().plusYears(1), 7)) + .findFirst().orElse(null); + if (customerFile != null) { + return true; + } + } + + CompanyCustomerFile latestFile = files.stream() + .filter(v -> v.getSignDate() != null && v.isValid()) + .filter(v -> v.getType() == CompanyCustomerFileType.EvaluationForm) + .max(Comparator.comparing(CompanyCustomerFile::getSignDate)) + .orElse(null); + + if (latestFile == null) { + holder.error("未匹配的客户评估"); + return false; + } + + holder.error("客户评估已过期,最后一个客户评估报告日期:" + latestFile.getSignDate() + ", 检测日期:" + + verifyDates.stream().map(LocalDate::toString).collect(Collectors.joining(", "))); + return false; + } + + private void verifyProject(Contract contract, Project project, MessageHolder holder) { + ProjectSaleType saleType = project.getSaleType(); + if (saleType == null) { + String code = contract.getCode(); + if (code != null && code.length() > 5) { + saleType = getSaleTypeService().findByCode(code.substring(0, 1)); + } + } + + if (saleType == null) { + holder.warn("销售类型未设置"); + } + if (project.getAmount() == null || project.getAmount() <= 0) { + holder.error("金额小于等于0"); + } + + // + boolean needImport = false; + + ProjectCost autoCost = getProjectCostService().findAutoCostByProject(project); + if (autoCost == null) { + // 创建 V0 项目成本 + ProjectCost cost = getProjectCostService().newInstanceByProject(project); + cost.setVersion(0); + cost.setApplicant(getEmployeeService().findById(EmployeeService.DEFAULT_SYSTEM_EMPLOYEE_ID)); + cost.setApplyTime(LocalDateTime.now()); + cost.setDescription("自动导入"); + autoCost = getProjectCostService().save(cost); + needImport = true; + } else { + // 检查 V0 项目成本 + if (autoCost.getGrossProfitMargin() <= 0) { + NumberFormat instance = NumberFormat.getNumberInstance(getLocale()); + instance.setMaximumFractionDigits(2); + NumberStringConverter converter = new NumberStringConverter(instance); + holder.warn("V0项目成本毛利率异常:" + converter.toString(autoCost.getGrossProfitMargin()) + "<=0%"); + needImport = true; + } + } + + if (needImport && !autoCost.isImportLock()) { + ProjectCostImportItemsFromContractsTasker tasker = new ProjectCostImportItemsFromContractsTasker(); + tasker.setCost(autoCost); + + // 在类中添加以下依赖,假设使用 Spring Security 来获取当前登录用户 + // 以下代码替换原有的获取当前用户逻辑,假设用户名即为员工 ID + // 需根据实际业务调整 UserDetails 中的信息获取方式 + tasker.setCurrentUser(() -> { + Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + String username; + if (principal instanceof UserDetails) { + username = ((UserDetails) principal).getUsername(); + } else { + username = principal.toString(); + } + try { + return getEmployeeService().findByName(username); + } catch (NumberFormatException e) { + // 处理转换失败的情况,可根据实际需求调整 + return null; + } + }); + + autoCost.setApplyTime(LocalDateTime.now()); + holder.debug("更新V0项目成本"); + SpringApp.getTaskMonitorCenter().registerAndStartTask(tasker); + } + + // 检查最新的项目成本,默认 V1 + ProjectCost latestCost = getProjectCostService().findLatestByProject(project); + if (latestCost == null) { + ProjectCost cost = getProjectCostService().newInstanceByProject(project); + cost.setVersion(1); + Employee applicant = project.getApplicant(); + if (applicant == null) { + applicant = contract.getEmployee(); + } + cost.setApplicant(applicant); + cost.setApplyTime(project.getCreated().atTime(LocalTime.now())); + latestCost = getProjectCostService().save(cost); + } else { + // + if (latestCost.getGrossProfitMargin() <= 0) { + NumberFormat instance = NumberFormat.getNumberInstance(getLocale()); + instance.setMaximumFractionDigits(2); + NumberStringConverter converter = new NumberStringConverter(instance); + holder.warn("V" + latestCost.getVersion() + "项目成本毛利率异常:" + + converter.toString(latestCost.getGrossProfitMargin()) + "<=0%"); + } else if (latestCost.getGrossProfitMargin() >= 50) { + NumberFormat instance = NumberFormat.getNumberInstance(getLocale()); + instance.setMaximumFractionDigits(2); + NumberStringConverter converter = new NumberStringConverter(instance); + holder.warn("V" + latestCost.getVersion() + "项目成本毛利率异常:" + + converter.toString(latestCost.getGrossProfitMargin()) + ">=50%"); + } + } + + if (project.isUseBid()) { + List bids = getProjectBidService().findAllByProject(project); + if (bids.isEmpty()) { + holder.warn("投标未创建"); + } + } + if (project.isUseOffer()) { + List quotations = getProjectQuotationService().findAllByProject(project); + if (quotations.isEmpty()) { + holder.warn("报价未创建"); + } + } + } + + private boolean verifyContractFileAsCustomer(Project project, Contract contract, MessageHolder holder) { + boolean loseFile = false; + List files = getContractFileService().findAllByContract(contract); + if (project != null) { + // 投标 + if (project.isUseBid()) { + // 投标审批表 + if (!hasFileType(files, ContractFileType.BidApprovalForm)) { + holder.error(getFileTypeLocalValue(ContractFileType.BidApprovalForm) + "未上传"); + loseFile = true; + } + // 中标通知书 + if (!hasFileType(files, ContractFileType.BidAcceptanceLetter)) { + holder.error(getFileTypeLocalValue(ContractFileType.BidAcceptanceLetter) + "未上传"); + loseFile = true; + } + } + // 报价 + if (project.isUseOffer()) { + if (!hasFileType(files, ContractFileType.QuotationApprovalForm)) { + holder.error(getFileTypeLocalValue(ContractFileType.QuotationApprovalForm) + "未上传"); + loseFile = true; + } + } + + ProjectSaleType saleType = project.getSaleType(); + if (saleType != null) { + List list = getSaleTypeRequireFileTypeService() + .findBySaleTypeId(saleType.getId()); + for (ProjectSaleTypeRequireFileType item : list) { + ContractFileType fileType = item.getFileType(); + if (fileType != null) { + if (!hasFileType(files, fileType)) { + holder.error(getFileTypeLocalValue(fileType) + "未上传"); + loseFile = true; + } + } + } + if (!Hibernate.isInitialized(saleType)) { + saleType = getSaleTypeService().findById(saleType.getId()); + } + if (saleType.isCriticalProjectDecision()) { + if (contract.getAmount() != null && contract.getAmount() >= saleType.getCriticalProjectLimit()) { + holder.debug("合同金额 " + contract.getAmount() + " 超过 " + saleType.getCriticalProjectLimit()); + if (!hasFileType(files, ContractFileType.CriticalProjectDecisionRecord)) { + holder.error(getFileTypeLocalValue(ContractFileType.CriticalProjectDecisionRecord) + "未上传"); + loseFile = true; + } + } + } + } + } + if (loseFile && files.isEmpty()) { + holder.warn("!上传文件空!"); + } + + return !loseFile; + } +} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractVerifyTasker.java b/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractVerifyTasker.java similarity index 81% rename from src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractVerifyTasker.java rename to server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractVerifyTasker.java index cb8eb0e..f3b42ab 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/ContractVerifyTasker.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/tasker/ContractVerifyTasker.java @@ -1,16 +1,17 @@ -package com.ecep.contract.manager.ds.contract.tasker; - -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; -import lombok.Getter; -import lombok.Setter; +package com.ecep.contract.ds.contract.tasker; import java.util.Locale; import java.util.concurrent.atomic.AtomicBoolean; import java.util.logging.Level; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.ds.contract.service.ContractService; +import com.ecep.contract.model.Contract; +import com.ecep.contract.ui.Tasker; + +import lombok.Getter; +import lombok.Setter; + public class ContractVerifyTasker extends Tasker { @Getter @@ -21,7 +22,7 @@ public class ContractVerifyTasker extends Tasker { AtomicBoolean verified = new AtomicBoolean(true); @Override - protected Object call() throws Exception { + public Object call() throws Exception { updateTitle("验证合同 " + contract.getCode() + " 及其子合同是否符合合规要求"); return execute(new MessageHolderImpl() { @Override diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/CustomerContractCostFormUpdateTask.java b/server/src/main/java/com/ecep/contract/ds/contract/tasker/CustomerContractCostFormUpdateTask.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/contract/tasker/CustomerContractCostFormUpdateTask.java rename to server/src/main/java/com/ecep/contract/ds/contract/tasker/CustomerContractCostFormUpdateTask.java index f04f919..bd302a2 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/tasker/CustomerContractCostFormUpdateTask.java +++ b/server/src/main/java/com/ecep/contract/ds/contract/tasker/CustomerContractCostFormUpdateTask.java @@ -1,17 +1,17 @@ -package com.ecep.contract.manager.ds.contract.tasker; +package com.ecep.contract.ds.contract.tasker; + +import static com.ecep.contract.util.ExcelUtils.setCellValue; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.time.LocalDate; +import java.util.List; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import com.ecep.contract.manager.ds.project.model.*; -import com.ecep.contract.manager.ds.project.service.*; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; -import lombok.Getter; -import lombok.Setter; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; @@ -20,11 +20,30 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.StringUtils; -import java.io.*; -import java.time.LocalDate; -import java.util.List; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.ds.project.service.DeliverySignMethodService; +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.model.Company; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.ProductType; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectCost; +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 static com.ecep.contract.manager.util.ExcelUtils.setCellValue; +import lombok.Getter; +import lombok.Setter; /** * 合同成本审批表更新任务 diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/CustomerClassStringConverter.java b/server/src/main/java/com/ecep/contract/ds/customer/CustomerClassStringConverter.java similarity index 85% rename from src/main/java/com/ecep/contract/manager/ds/customer/CustomerClassStringConverter.java rename to server/src/main/java/com/ecep/contract/ds/customer/CustomerClassStringConverter.java index d9aa773..1079bf3 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/CustomerClassStringConverter.java +++ b/server/src/main/java/com/ecep/contract/ds/customer/CustomerClassStringConverter.java @@ -1,11 +1,12 @@ -package com.ecep.contract.manager.ds.customer; - -import com.ecep.contract.manager.ds.customer.model.CustomerCatalog; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import org.hibernate.Hibernate; +package com.ecep.contract.ds.customer; import java.util.function.Function; +import org.hibernate.Hibernate; + +import com.ecep.contract.model.CustomerCatalog; +import com.ecep.contract.util.EntityStringConverter; + public class CustomerClassStringConverter extends EntityStringConverter { private Function initialized; diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/model/Customer.sql b/server/src/main/java/com/ecep/contract/ds/customer/model/Customer.sql similarity index 100% rename from src/main/java/com/ecep/contract/manager/ds/customer/model/Customer.sql rename to server/src/main/java/com/ecep/contract/ds/customer/model/Customer.sql diff --git a/server/src/main/java/com/ecep/contract/ds/customer/repository/CompanyCustomerEntityRepository.java b/server/src/main/java/com/ecep/contract/ds/customer/repository/CompanyCustomerEntityRepository.java new file mode 100644 index 0000000..4fad375 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/customer/repository/CompanyCustomerEntityRepository.java @@ -0,0 +1,18 @@ +package com.ecep.contract.ds.customer.repository; + +import java.util.List; +import java.util.Optional; + +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyCustomerEntity; + +@Repository +public interface CompanyCustomerEntityRepository extends MyRepository +{ + Optional findByCode(String code); + + List findByCustomer(CompanyCustomer customer); +} diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/repository/CompanyCustomerEvaluationFormFileRepository.java b/server/src/main/java/com/ecep/contract/ds/customer/repository/CompanyCustomerEvaluationFormFileRepository.java similarity index 82% rename from src/main/java/com/ecep/contract/manager/ds/customer/repository/CompanyCustomerEvaluationFormFileRepository.java rename to server/src/main/java/com/ecep/contract/ds/customer/repository/CompanyCustomerEvaluationFormFileRepository.java index 7927a7e..5817d14 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/repository/CompanyCustomerEvaluationFormFileRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/customer/repository/CompanyCustomerEvaluationFormFileRepository.java @@ -1,14 +1,15 @@ -package com.ecep.contract.manager.ds.customer.repository; +package com.ecep.contract.ds.customer.repository; + +import java.util.List; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEvaluationFormFile; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; -import java.util.List; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyCustomerEvaluationFormFile; @Repository public interface CompanyCustomerEvaluationFormFileRepository extends JpaRepository, JpaSpecificationExecutor { diff --git a/server/src/main/java/com/ecep/contract/ds/customer/repository/CompanyCustomerFileRepository.java b/server/src/main/java/com/ecep/contract/ds/customer/repository/CompanyCustomerFileRepository.java new file mode 100644 index 0000000..c438bc2 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/customer/repository/CompanyCustomerFileRepository.java @@ -0,0 +1,18 @@ +package com.ecep.contract.ds.customer.repository; + +import java.util.List; + +import org.springframework.stereotype.Repository; + +import com.ecep.contract.CompanyCustomerFileType; +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyCustomerFile; + +@Repository +public interface CompanyCustomerFileRepository extends MyRepository { + + List findAllByCustomer(CompanyCustomer companyCustomer); + + List findAllByCustomerAndType(CompanyCustomer customer, CompanyCustomerFileType type); +} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/repository/CompanyCustomerFileTypeLocalRepository.java b/server/src/main/java/com/ecep/contract/ds/customer/repository/CompanyCustomerFileTypeLocalRepository.java similarity index 62% rename from src/main/java/com/ecep/contract/manager/ds/customer/repository/CompanyCustomerFileTypeLocalRepository.java rename to server/src/main/java/com/ecep/contract/ds/customer/repository/CompanyCustomerFileTypeLocalRepository.java index 7d8edaa..0e33be4 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/repository/CompanyCustomerFileTypeLocalRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/customer/repository/CompanyCustomerFileTypeLocalRepository.java @@ -1,10 +1,11 @@ -package com.ecep.contract.manager.ds.customer.repository; +package com.ecep.contract.ds.customer.repository; -import com.ecep.contract.manager.ds.customer.CompanyCustomerFileType; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFileTypeLocal; -import com.ecep.contract.manager.ds.other.repository.BaseEnumEntityRepository; import org.springframework.stereotype.Repository; +import com.ecep.contract.CompanyCustomerFileType; +import com.ecep.contract.ds.other.repository.BaseEnumEntityRepository; +import com.ecep.contract.model.CompanyCustomerFileTypeLocal; + @Repository public interface CompanyCustomerFileTypeLocalRepository extends BaseEnumEntityRepository { diff --git a/server/src/main/java/com/ecep/contract/ds/customer/repository/CompanyCustomerRepository.java b/server/src/main/java/com/ecep/contract/ds/customer/repository/CompanyCustomerRepository.java new file mode 100644 index 0000000..ed0c489 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/customer/repository/CompanyCustomerRepository.java @@ -0,0 +1,21 @@ +package com.ecep.contract.ds.customer.repository; + +import java.util.Optional; + +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyCustomer; + +@Repository +public interface CompanyCustomerRepository extends MyRepository { + + Optional findByCompany(Company company); + + @Modifying + @Transactional + int deleteAllByCompany(Company company); +} diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/repository/CustomerCatalogRepository.java b/server/src/main/java/com/ecep/contract/ds/customer/repository/CustomerCatalogRepository.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/customer/repository/CustomerCatalogRepository.java rename to server/src/main/java/com/ecep/contract/ds/customer/repository/CustomerCatalogRepository.java index 0ff2c6c..5d60fec 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/repository/CustomerCatalogRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/customer/repository/CustomerCatalogRepository.java @@ -1,11 +1,12 @@ -package com.ecep.contract.manager.ds.customer.repository; +package com.ecep.contract.ds.customer.repository; + +import java.util.Optional; -import com.ecep.contract.manager.ds.customer.model.CustomerCatalog; import org.springframework.data.repository.ListCrudRepository; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; -import java.util.Optional; +import com.ecep.contract.model.CustomerCatalog; @Repository public interface CustomerCatalogRepository extends diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/service/CompanyCustomerEntityService.java b/server/src/main/java/com/ecep/contract/ds/customer/service/CompanyCustomerEntityService.java similarity index 75% rename from src/main/java/com/ecep/contract/manager/ds/customer/service/CompanyCustomerEntityService.java rename to server/src/main/java/com/ecep/contract/ds/customer/service/CompanyCustomerEntityService.java index d7946dd..fd8e2a4 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/service/CompanyCustomerEntityService.java +++ b/server/src/main/java/com/ecep/contract/ds/customer/service/CompanyCustomerEntityService.java @@ -1,11 +1,7 @@ -package com.ecep.contract.manager.ds.customer.service; +package com.ecep.contract.ds.customer.service; + +import java.util.List; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEntity; -import com.ecep.contract.manager.ds.customer.repository.CompanyCustomerEntityRepository; -import com.ecep.contract.manager.ds.customer.vo.CustomerEntityViewModel; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.util.SpecificationUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -18,12 +14,16 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.customer.repository.CompanyCustomerEntityRepository; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyCustomerEntity; +import com.ecep.contract.util.SpecificationUtils; @Lazy @Service @CacheConfig(cacheNames = "company-customer-entity") -public class CompanyCustomerEntityService implements ViewModelService { +public class CompanyCustomerEntityService implements IEntityService { @Lazy @Autowired private CompanyCustomerEntityRepository repository; @@ -47,8 +47,7 @@ public class CompanyCustomerEntityService implements ViewModelService findAllByCustomer(CompanyCustomer companyCustomer) { return repository.findByCustomer(companyCustomer); } diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/service/CompanyCustomerFileService.java b/server/src/main/java/com/ecep/contract/ds/customer/service/CompanyCustomerFileService.java similarity index 90% rename from src/main/java/com/ecep/contract/manager/ds/customer/service/CompanyCustomerFileService.java rename to server/src/main/java/com/ecep/contract/ds/customer/service/CompanyCustomerFileService.java index e489bfb..e24c1b1 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/service/CompanyCustomerFileService.java +++ b/server/src/main/java/com/ecep/contract/ds/customer/service/CompanyCustomerFileService.java @@ -1,19 +1,12 @@ -package com.ecep.contract.manager.ds.customer.service; +package com.ecep.contract.ds.customer.service; + +import java.io.File; +import java.time.LocalDate; +import java.util.Comparator; +import java.util.List; +import java.util.Optional; +import java.util.function.Consumer; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.service.CompanyBasicService; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.customer.CompanyCustomerFileType; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEvaluationFormFile; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFile; -import com.ecep.contract.manager.ds.customer.repository.CompanyCustomerEvaluationFormFileRepository; -import com.ecep.contract.manager.ds.customer.repository.CompanyCustomerFileRepository; -import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerFileViewModel; -import com.ecep.contract.manager.ds.other.service.SysConfService; -import com.ecep.contract.manager.ui.ViewModelService; -import jakarta.persistence.criteria.Path; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -28,17 +21,25 @@ import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; -import java.io.File; -import java.time.LocalDate; -import java.util.Comparator; -import java.util.List; -import java.util.Optional; -import java.util.function.Consumer; +import com.ecep.contract.CompanyCustomerFileType; +import com.ecep.contract.IEntityService; +import com.ecep.contract.SpringApp; +import com.ecep.contract.ds.company.service.CompanyBasicService; +import com.ecep.contract.ds.contract.service.ContractService; +import com.ecep.contract.ds.customer.repository.CompanyCustomerEvaluationFormFileRepository; +import com.ecep.contract.ds.customer.repository.CompanyCustomerFileRepository; +import com.ecep.contract.ds.other.service.SysConfService; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyCustomerEvaluationFormFile; +import com.ecep.contract.model.CompanyCustomerFile; +import com.ecep.contract.model.Contract; + +import jakarta.persistence.criteria.Path; @Lazy @Service @CacheConfig(cacheNames = "company-customer-file") -public class CompanyCustomerFileService implements ViewModelService { +public class CompanyCustomerFileService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(CompanyCustomerFileService.class); /** * 客户资信评估表 diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/service/CompanyCustomerService.java b/server/src/main/java/com/ecep/contract/ds/customer/service/CompanyCustomerService.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/customer/service/CompanyCustomerService.java rename to server/src/main/java/com/ecep/contract/ds/customer/service/CompanyCustomerService.java index 5bd0aef..8998479 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/service/CompanyCustomerService.java +++ b/server/src/main/java/com/ecep/contract/ds/customer/service/CompanyCustomerService.java @@ -1,23 +1,19 @@ -package com.ecep.contract.manager.ds.customer.service; +package com.ecep.contract.ds.customer.service; -import com.ecep.contract.manager.ds.company.CompanyFileUtils; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyBasicService; -import com.ecep.contract.manager.ds.customer.CompanyCustomerFileType; -import com.ecep.contract.manager.ds.customer.model.*; -import com.ecep.contract.manager.ds.customer.repository.CompanyCustomerEvaluationFormFileRepository; -import com.ecep.contract.manager.ds.customer.repository.CompanyCustomerRepository; -import com.ecep.contract.manager.ds.customer.repository.CustomerCatalogRepository; -import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel; -import com.ecep.contract.manager.ds.other.model.CompanyBasicFile; -import com.ecep.contract.manager.ds.other.service.SysConfService; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.util.MyStringUtils; -import com.ecep.contract.manager.util.SpecificationUtils; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import jakarta.persistence.criteria.Path; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.function.Consumer; +import java.util.stream.Collectors; + +import com.ecep.contract.constant.CompanyCustomerConstant; +import com.ecep.contract.util.CompanyUtils; +import com.ecep.contract.util.FileUtils; import org.hibernate.Hibernate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -33,22 +29,36 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.io.File; -import java.io.IOException; -import java.util.*; -import java.util.function.Consumer; -import java.util.stream.Collectors; +import com.ecep.contract.CompanyCustomerFileType; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.company.CompanyFileUtils; +import com.ecep.contract.ds.company.service.CompanyBasicService; +import com.ecep.contract.ds.customer.repository.CompanyCustomerEvaluationFormFileRepository; +import com.ecep.contract.ds.customer.repository.CompanyCustomerRepository; +import com.ecep.contract.ds.customer.repository.CustomerCatalogRepository; +import com.ecep.contract.ds.other.service.SysConfService; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyBasicFile; +import com.ecep.contract.model.CompanyCustomer; +import com.ecep.contract.model.CompanyCustomerEntity; +import com.ecep.contract.model.CompanyCustomerEvaluationFormFile; +import com.ecep.contract.model.CompanyCustomerFile; +import com.ecep.contract.model.CustomerCatalog; +import com.ecep.contract.util.MyStringUtils; +import com.ecep.contract.util.SpecificationUtils; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; + +import jakarta.persistence.criteria.Path; @Lazy @Service @CacheConfig(cacheNames = "company-customer") public class CompanyCustomerService extends CompanyBasicService - implements ViewModelService { + implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(CompanyCustomerService.class); - private 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"; @@ -201,7 +211,7 @@ public class CompanyCustomerService extends CompanyBasicService // 文件名,不含后缀 String name = StringUtils.stripFilenameExtension(fileName); - String jsonFileName = name + CompanyFileUtils.JSON; + String jsonFileName = name + FileUtils.JSON; for (File f : fileList) { // 查找存档文件 if (f.getName().equals(jsonFileName)) { @@ -271,10 +281,10 @@ public class CompanyCustomerService extends CompanyBasicService } protected boolean isEvaluationFile(String fileName) { - return (fileName.contains(EVALUATION_FORM_NAME1) - || fileName.contains(EVALUATION_FORM_NAME2)) - && (CompanyFileUtils.withExtensions(fileName, CompanyFileUtils.JPG, CompanyFileUtils.JPEG, - CompanyFileUtils.PDF)); + return (fileName.contains(CompanyCustomerConstant.EVALUATION_FORM_NAME1) + || fileName.contains(CompanyCustomerConstant.EVALUATION_FORM_NAME2)) + && (FileUtils.withExtensions(fileName, FileUtils.JPG, FileUtils.JPEG, + FileUtils.PDF)); } public boolean makePathAbsent(CompanyCustomer companyCustomer) { @@ -305,7 +315,7 @@ public class CompanyCustomerService extends CompanyBasicService } String companyName = company.getName(); - String fileName = formatCompanyVendorId(companyCustomer.getId()) + "-" + String fileName = CompanyUtils.formatCompanyVendorId(companyCustomer.getId()) + "-" + CompanyFileUtils.escapeFileName(companyName); File dir = new File(basePath, fileName); diff --git a/server/src/main/java/com/ecep/contract/ds/other/controller/EmployyeController.java b/server/src/main/java/com/ecep/contract/ds/other/controller/EmployyeController.java new file mode 100644 index 0000000..ed3cdcf --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/other/controller/EmployyeController.java @@ -0,0 +1,51 @@ +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.ds.other.service.EmployeeService; +import com.ecep.contract.model.Employee; + +@RestController +@RequestMapping("/employee") +public class EmployyeController { + @Autowired + private EmployeeService employeeService; + + @RequestMapping("/findById") + public Employee findById(Integer id) { + return employeeService.findById(id); + } + + @RequestMapping("/list") + public Page list( + Map params, + @RequestParam(defaultValue = "0") int pageNumber, + @RequestParam(defaultValue = "10") int pageSize) { + Specification spec = (root, query, cb) -> cb.conjunction(); + Sort sort = Sort.by(Sort.Order.desc("id")); + Pageable pageable = PageRequest.of(pageNumber, pageSize, sort); + return employeeService.findAll(spec, pageable); + } + + @RequestMapping("/save") + public Employee save(Employee employee) { + return employeeService.save(employee); + } + + @RequestMapping("/delete") + public void delete(Integer id) { + Employee employee = employeeService.findById(id); + employeeService.delete(employee); + } + +} diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventorySyncTask.java b/server/src/main/java/com/ecep/contract/ds/other/controller/InventorySyncTask.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventorySyncTask.java rename to server/src/main/java/com/ecep/contract/ds/other/controller/InventorySyncTask.java index 09dcd1c..e40eb05 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventorySyncTask.java +++ b/server/src/main/java/com/ecep/contract/ds/other/controller/InventorySyncTask.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ds.other.controller.inventory; +package com.ecep.contract.ds.other.controller; import java.util.concurrent.atomic.AtomicInteger; @@ -7,11 +7,11 @@ import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; -import com.ecep.contract.manager.cloud.u8.ctx.InventoryCtx; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.service.InventoryService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.cloud.u8.ctx.InventoryCtx; +import com.ecep.contract.ds.other.service.InventoryService; +import com.ecep.contract.model.Inventory; +import com.ecep.contract.ui.Tasker; public class InventorySyncTask extends Tasker { private InventoryCtx inventoryCtx; diff --git a/server/src/main/java/com/ecep/contract/ds/other/repository/BankRepository.java b/server/src/main/java/com/ecep/contract/ds/other/repository/BankRepository.java new file mode 100644 index 0000000..bf3e344 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/other/repository/BankRepository.java @@ -0,0 +1,15 @@ +package com.ecep.contract.ds.other.repository; + +import java.util.Optional; + +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Bank; + +@Lazy +@Repository +public interface BankRepository extends MyRepository { + Optional findFirstByName(String name); +} diff --git a/src/main/java/com/ecep/contract/manager/ds/other/repository/BaseEnumEntityRepository.java b/server/src/main/java/com/ecep/contract/ds/other/repository/BaseEnumEntityRepository.java similarity index 63% rename from src/main/java/com/ecep/contract/manager/ds/other/repository/BaseEnumEntityRepository.java rename to server/src/main/java/com/ecep/contract/ds/other/repository/BaseEnumEntityRepository.java index 3a9414e..f8b81b3 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/repository/BaseEnumEntityRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/other/repository/BaseEnumEntityRepository.java @@ -1,25 +1,20 @@ -package com.ecep.contract.manager.ds.other.repository; +package com.ecep.contract.ds.other.repository; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; -import com.ecep.contract.manager.ds.other.model.BaseEnumEntity; -import javafx.collections.FXCollections; -import javafx.collections.ObservableMap; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.repository.NoRepositoryBean; -import java.util.*; +import com.ecep.contract.model.BaseEnumEntity; @NoRepositoryBean -public interface BaseEnumEntityRepository, T extends BaseEnumEntity, ID> extends JpaRepository { +public interface BaseEnumEntityRepository, T extends BaseEnumEntity, ID> + extends JpaRepository { List findAllByLang(String lang); - default ObservableMap getObservableMapByLocal() { - return getObservableMapByLocal(Locale.getDefault()); - } - - default ObservableMap getObservableMapByLocal(Locale locale) { - return FXCollections.observableMap(getCompleteMapByLocal(locale.toLanguageTag())); - } - default Map getCompleteMapByLocal(String lang) { HashMap map = new HashMap<>(); for (T t : findAllByLang(lang)) { diff --git a/server/src/main/java/com/ecep/contract/ds/other/repository/DepartmentRepository.java b/server/src/main/java/com/ecep/contract/ds/other/repository/DepartmentRepository.java new file mode 100644 index 0000000..25be15c --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/other/repository/DepartmentRepository.java @@ -0,0 +1,20 @@ +package com.ecep.contract.ds.other.repository; + +import java.util.Optional; + +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Department; + +/** + * 部门 Repository + */ +@Lazy +@Repository +public interface DepartmentRepository extends MyRepository { + Optional findByName(String name); + + Optional findByCode(String code); +} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/other/repository/EmployeeAuthBindRepository.java b/server/src/main/java/com/ecep/contract/ds/other/repository/EmployeeAuthBindRepository.java similarity index 82% rename from src/main/java/com/ecep/contract/manager/ds/other/repository/EmployeeAuthBindRepository.java rename to server/src/main/java/com/ecep/contract/ds/other/repository/EmployeeAuthBindRepository.java index de6cb83..eb7d661 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/repository/EmployeeAuthBindRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/other/repository/EmployeeAuthBindRepository.java @@ -1,7 +1,7 @@ -package com.ecep.contract.manager.ds.other.repository; +package com.ecep.contract.ds.other.repository; + +import java.util.List; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.EmployeeAuthBind; import org.springframework.context.annotation.Lazy; import org.springframework.data.domain.Sort; import org.springframework.data.jpa.repository.JpaRepository; @@ -10,7 +10,8 @@ import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; -import java.util.List; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.EmployeeAuthBind; @Lazy @Repository diff --git a/src/main/java/com/ecep/contract/manager/ds/other/repository/EmployeeLoginHistoryRepository.java b/server/src/main/java/com/ecep/contract/ds/other/repository/EmployeeLoginHistoryRepository.java similarity index 51% rename from src/main/java/com/ecep/contract/manager/ds/other/repository/EmployeeLoginHistoryRepository.java rename to server/src/main/java/com/ecep/contract/ds/other/repository/EmployeeLoginHistoryRepository.java index dee0fc7..a008076 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/repository/EmployeeLoginHistoryRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/other/repository/EmployeeLoginHistoryRepository.java @@ -1,6 +1,5 @@ -package com.ecep.contract.manager.ds.other.repository; +package com.ecep.contract.ds.other.repository; -import com.ecep.contract.manager.ds.other.model.EmployeeLoginHistory; import org.springframework.context.annotation.Lazy; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; @@ -8,11 +7,14 @@ import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; +import com.ecep.contract.model.EmployeeLoginHistory; + @Lazy @Repository public interface EmployeeLoginHistoryRepository extends - // JDBC interfaces - CrudRepository, PagingAndSortingRepository, - // JPA interfaces - JpaRepository, JpaSpecificationExecutor { + // JDBC interfaces + CrudRepository, + PagingAndSortingRepository, + // JPA interfaces + JpaRepository, JpaSpecificationExecutor { } diff --git a/server/src/main/java/com/ecep/contract/ds/other/repository/EmployeeRepository.java b/server/src/main/java/com/ecep/contract/ds/other/repository/EmployeeRepository.java new file mode 100644 index 0000000..272674c --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/other/repository/EmployeeRepository.java @@ -0,0 +1,28 @@ +package com.ecep.contract.ds.other.repository; + +import java.util.Optional; + +import org.springframework.context.annotation.Lazy; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Employee; + +@Lazy +@Repository +public interface EmployeeRepository extends MyRepository { + Optional findByAccount(String username); + + Optional findByName(String name); + + Optional findByAlias(String alias); + + Optional findByCode(String personCode); + + @Modifying + @Query(value = "update EMPLOYEE_LOGIN_HISTORY e set e.LATEST_ACTIVE = now() where e.id = ?1", nativeQuery = true) + void updateActive(int sessionId); + +} diff --git a/server/src/main/java/com/ecep/contract/ds/other/repository/EmployeeRoleRepository.java b/server/src/main/java/com/ecep/contract/ds/other/repository/EmployeeRoleRepository.java new file mode 100644 index 0000000..8cdee7f --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/other/repository/EmployeeRoleRepository.java @@ -0,0 +1,18 @@ +package com.ecep.contract.ds.other.repository; + +import java.util.Optional; + +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.EmployeeRole; + +@Lazy +@Repository +public interface EmployeeRoleRepository extends MyRepository { + + Optional findByName(String name); + + Optional findByCode(String personCode); +} diff --git a/src/main/java/com/ecep/contract/manager/ds/other/repository/FunctionRepository.java b/server/src/main/java/com/ecep/contract/ds/other/repository/FunctionRepository.java similarity index 55% rename from src/main/java/com/ecep/contract/manager/ds/other/repository/FunctionRepository.java rename to server/src/main/java/com/ecep/contract/ds/other/repository/FunctionRepository.java index f25a4aa..9c03faf 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/repository/FunctionRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/other/repository/FunctionRepository.java @@ -1,10 +1,10 @@ -package com.ecep.contract.manager.ds.other.repository; +package com.ecep.contract.ds.other.repository; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Repository; -import com.ecep.contract.manager.ds.MyRepository; -import com.ecep.contract.manager.ds.other.model.Function; +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Function; @Lazy @Repository diff --git a/src/main/java/com/ecep/contract/manager/ds/other/repository/HolidayTableRepository.java b/server/src/main/java/com/ecep/contract/ds/other/repository/HolidayTableRepository.java similarity index 76% rename from src/main/java/com/ecep/contract/manager/ds/other/repository/HolidayTableRepository.java rename to server/src/main/java/com/ecep/contract/ds/other/repository/HolidayTableRepository.java index 3fddcb6..b1938e4 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/repository/HolidayTableRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/other/repository/HolidayTableRepository.java @@ -1,10 +1,11 @@ -package com.ecep.contract.manager.ds.other.repository; +package com.ecep.contract.ds.other.repository; -import com.ecep.contract.manager.ds.other.model.HolidayTable; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; +import com.ecep.contract.model.HolidayTable; + import java.time.LocalDate; @Repository diff --git a/src/main/java/com/ecep/contract/manager/ds/other/repository/InventoryCatalogRepository.java b/server/src/main/java/com/ecep/contract/ds/other/repository/InventoryCatalogRepository.java similarity index 72% rename from src/main/java/com/ecep/contract/manager/ds/other/repository/InventoryCatalogRepository.java rename to server/src/main/java/com/ecep/contract/ds/other/repository/InventoryCatalogRepository.java index ee44990..ea3078b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/repository/InventoryCatalogRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/other/repository/InventoryCatalogRepository.java @@ -1,12 +1,12 @@ -package com.ecep.contract.manager.ds.other.repository; +package com.ecep.contract.ds.other.repository; + +import java.util.Optional; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.model.InventoryCatalog; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; -import java.util.Optional; +import com.ecep.contract.model.InventoryCatalog; @Repository public interface InventoryCatalogRepository extends JpaRepository, JpaSpecificationExecutor { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/repository/InventoryHistoryPriceRepository.java b/server/src/main/java/com/ecep/contract/ds/other/repository/InventoryHistoryPriceRepository.java similarity index 58% rename from src/main/java/com/ecep/contract/manager/ds/other/repository/InventoryHistoryPriceRepository.java rename to server/src/main/java/com/ecep/contract/ds/other/repository/InventoryHistoryPriceRepository.java index 1df52c2..c0477c7 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/repository/InventoryHistoryPriceRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/other/repository/InventoryHistoryPriceRepository.java @@ -1,12 +1,13 @@ -package com.ecep.contract.manager.ds.other.repository; +package com.ecep.contract.ds.other.repository; + +import java.util.List; -import com.ecep.contract.manager.ds.MyRepository; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.model.InventoryHistoryPrice; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Repository; -import java.util.List; +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Inventory; +import com.ecep.contract.model.InventoryHistoryPrice; @Lazy @Repository diff --git a/src/main/java/com/ecep/contract/manager/ds/other/repository/InventoryRepository.java b/server/src/main/java/com/ecep/contract/ds/other/repository/InventoryRepository.java similarity index 77% rename from src/main/java/com/ecep/contract/manager/ds/other/repository/InventoryRepository.java rename to server/src/main/java/com/ecep/contract/ds/other/repository/InventoryRepository.java index 31dc403..0cc62e9 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/repository/InventoryRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/other/repository/InventoryRepository.java @@ -1,11 +1,12 @@ -package com.ecep.contract.manager.ds.other.repository; +package com.ecep.contract.ds.other.repository; + +import java.util.Optional; -import com.ecep.contract.manager.ds.other.model.Inventory; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; -import java.util.Optional; +import com.ecep.contract.model.Inventory; @Repository public interface InventoryRepository extends JpaRepository, JpaSpecificationExecutor { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/repository/PermissionRepository.java b/server/src/main/java/com/ecep/contract/ds/other/repository/PermissionRepository.java similarity index 86% rename from src/main/java/com/ecep/contract/manager/ds/other/repository/PermissionRepository.java rename to server/src/main/java/com/ecep/contract/ds/other/repository/PermissionRepository.java index 9fdedd9..9fdf39a 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/repository/PermissionRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/other/repository/PermissionRepository.java @@ -1,6 +1,7 @@ -package com.ecep.contract.manager.ds.other.repository; +package com.ecep.contract.ds.other.repository; + +import java.util.List; -import com.ecep.contract.manager.ds.other.model.Permission; import org.springframework.context.annotation.Lazy; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; @@ -8,7 +9,7 @@ import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; -import java.util.List; +import com.ecep.contract.model.Permission; @Lazy @Repository diff --git a/server/src/main/java/com/ecep/contract/ds/other/repository/SysConfRepository.java b/server/src/main/java/com/ecep/contract/ds/other/repository/SysConfRepository.java new file mode 100644 index 0000000..2001fee --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/other/repository/SysConfRepository.java @@ -0,0 +1,11 @@ +package com.ecep.contract.ds.other.repository; + +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.SysConf; + +@Repository +public interface SysConfRepository extends MyRepository { + +} diff --git a/src/main/java/com/ecep/contract/manager/ds/other/service/BankService.java b/server/src/main/java/com/ecep/contract/ds/other/service/BankService.java similarity index 77% rename from src/main/java/com/ecep/contract/manager/ds/other/service/BankService.java rename to server/src/main/java/com/ecep/contract/ds/other/service/BankService.java index 6ca7d42..4c7ea46 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/service/BankService.java +++ b/server/src/main/java/com/ecep/contract/ds/other/service/BankService.java @@ -1,9 +1,7 @@ -package com.ecep.contract.manager.ds.other.service; +package com.ecep.contract.ds.other.service; + +import java.util.List; -import com.ecep.contract.manager.ds.other.model.Bank; -import com.ecep.contract.manager.ds.other.repository.BankRepository; -import com.ecep.contract.manager.ds.other.vo.BankViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.context.annotation.Lazy; @@ -13,12 +11,14 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.other.repository.BankRepository; +import com.ecep.contract.model.Bank; @Lazy @Service @CacheConfig(cacheNames = "bank") -public class BankService implements ViewModelService { +public class BankService implements IEntityService { @Lazy @Autowired private BankRepository bankRepository; @@ -27,7 +27,6 @@ public class BankService implements ViewModelService { return bankRepository.findById(id).orElse(null); } - public Page findAll(Specification spec, Pageable pageable) { return bankRepository.findAll(spec, pageable); } @@ -40,8 +39,7 @@ public class BankService implements ViewModelService { return (root, query, builder) -> { return builder.or( builder.like(root.get("code"), "%" + searchText + "%"), - builder.like(root.get("name"), "%" + searchText + "%") - ); + builder.like(root.get("name"), "%" + searchText + "%")); }; } @@ -58,11 +56,6 @@ public class BankService implements ViewModelService { return bankRepository.save(entity); } - @Override - public BankViewModel from(Bank entity) { - return BankViewModel.from(entity); - } - public void delete(Bank entity) { bankRepository.delete(entity); } diff --git a/src/main/java/com/ecep/contract/manager/ds/other/service/DepartmentService.java b/server/src/main/java/com/ecep/contract/ds/other/service/DepartmentService.java similarity index 86% rename from src/main/java/com/ecep/contract/manager/ds/other/service/DepartmentService.java rename to server/src/main/java/com/ecep/contract/ds/other/service/DepartmentService.java index 2947042..3fc4335 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/service/DepartmentService.java +++ b/server/src/main/java/com/ecep/contract/ds/other/service/DepartmentService.java @@ -1,9 +1,7 @@ -package com.ecep.contract.manager.ds.other.service; +package com.ecep.contract.ds.other.service; + +import java.util.List; -import com.ecep.contract.manager.ds.other.model.Department; -import com.ecep.contract.manager.ds.other.repository.DepartmentRepository; -import com.ecep.contract.manager.ds.other.vo.DepartmentViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -16,7 +14,9 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.other.repository.DepartmentRepository; +import com.ecep.contract.model.Department; /** * 部门 @@ -24,7 +24,7 @@ import java.util.List; @Lazy @Service @CacheConfig(cacheNames = "department") -public class DepartmentService implements ViewModelService { +public class DepartmentService implements IEntityService { @Lazy @Autowired private DepartmentRepository repository; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/service/EmployeeAuthBindService.java b/server/src/main/java/com/ecep/contract/ds/other/service/EmployeeAuthBindService.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/other/service/EmployeeAuthBindService.java rename to server/src/main/java/com/ecep/contract/ds/other/service/EmployeeAuthBindService.java index 636fca2..c03866c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/service/EmployeeAuthBindService.java +++ b/server/src/main/java/com/ecep/contract/ds/other/service/EmployeeAuthBindService.java @@ -1,10 +1,7 @@ -package com.ecep.contract.manager.ds.other.service; +package com.ecep.contract.ds.other.service; + +import java.util.List; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.EmployeeAuthBind; -import com.ecep.contract.manager.ds.other.repository.EmployeeAuthBindRepository; -import com.ecep.contract.manager.ds.other.vo.EmployeeAuthBindViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.context.annotation.Lazy; @@ -15,12 +12,15 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.other.repository.EmployeeAuthBindRepository; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.EmployeeAuthBind; @Lazy @Service @CacheConfig(cacheNames = "employee-auth-bind") -public class EmployeeAuthBindService implements ViewModelService { +public class EmployeeAuthBindService implements IEntityService { @Lazy @Autowired private EmployeeAuthBindRepository repository; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/service/EmployeeLoginHistoryService.java b/server/src/main/java/com/ecep/contract/ds/other/service/EmployeeLoginHistoryService.java similarity index 77% rename from src/main/java/com/ecep/contract/manager/ds/other/service/EmployeeLoginHistoryService.java rename to server/src/main/java/com/ecep/contract/ds/other/service/EmployeeLoginHistoryService.java index 83b30c1..c797184 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/service/EmployeeLoginHistoryService.java +++ b/server/src/main/java/com/ecep/contract/ds/other/service/EmployeeLoginHistoryService.java @@ -1,9 +1,5 @@ -package com.ecep.contract.manager.ds.other.service; +package com.ecep.contract.ds.other.service; -import com.ecep.contract.manager.ds.other.model.EmployeeLoginHistory; -import com.ecep.contract.manager.ds.other.repository.EmployeeLoginHistoryRepository; -import com.ecep.contract.manager.ds.other.vo.EmployeeLoginHistoryViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.context.annotation.Lazy; @@ -13,10 +9,14 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.other.repository.EmployeeLoginHistoryRepository; +import com.ecep.contract.model.EmployeeLoginHistory; + @Lazy @Service @CacheConfig(cacheNames = "employee-login-history") -public class EmployeeLoginHistoryService implements ViewModelService { +public class EmployeeLoginHistoryService implements IEntityService { @Lazy @Autowired private EmployeeLoginHistoryRepository repository; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/service/EmployeeRoleService.java b/server/src/main/java/com/ecep/contract/ds/other/service/EmployeeRoleService.java similarity index 69% rename from src/main/java/com/ecep/contract/manager/ds/other/service/EmployeeRoleService.java rename to server/src/main/java/com/ecep/contract/ds/other/service/EmployeeRoleService.java index fbe805b..f288dd3 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/service/EmployeeRoleService.java +++ b/server/src/main/java/com/ecep/contract/ds/other/service/EmployeeRoleService.java @@ -1,11 +1,8 @@ -package com.ecep.contract.manager.ds.other.service; +package com.ecep.contract.ds.other.service; + +import java.util.List; +import java.util.Optional; -import com.ecep.contract.manager.ds.other.model.EmployeeRole; -import com.ecep.contract.manager.ds.other.model.Function; -import com.ecep.contract.manager.ds.other.repository.EmployeeRoleRepository; -import com.ecep.contract.manager.ds.other.vo.EmployeeRoleViewModel; -import com.ecep.contract.manager.ui.ViewModelService; -import jakarta.transaction.Transactional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -18,18 +15,23 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; -import java.util.Optional; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.other.repository.EmployeeRoleRepository; +import com.ecep.contract.model.EmployeeRole; +import com.ecep.contract.model.Function; -@Lazy +import jakarta.transaction.Transactional; + +/** + * 员工角色服务 + */ @Service @CacheConfig(cacheNames = "employee-role") -public class EmployeeRoleService implements ViewModelService { +public class EmployeeRoleService implements IEntityService { @Lazy @Autowired private EmployeeRoleRepository roleRepository; - @Cacheable(key = "#p0") public EmployeeRole findById(Integer id) { return roleRepository.findById(id).orElse(null); @@ -43,8 +45,7 @@ public class EmployeeRoleService implements ViewModelService { return builder.or( builder.like(root.get("code"), "%" + searchText + "%"), - builder.like(root.get("name"), "%" + searchText + "%") - ); + builder.like(root.get("name"), "%" + searchText + "%")); }; } @@ -53,27 +54,18 @@ public class EmployeeRoleService implements ViewModelService getFunctionsByRoleId(int roleId) { Optional optional = roleRepository.findById(roleId); diff --git a/src/main/java/com/ecep/contract/manager/ds/other/service/EmployeeService.java b/server/src/main/java/com/ecep/contract/ds/other/service/EmployeeService.java similarity index 81% rename from src/main/java/com/ecep/contract/manager/ds/other/service/EmployeeService.java rename to server/src/main/java/com/ecep/contract/ds/other/service/EmployeeService.java index d3fe16e..bafcafd 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/service/EmployeeService.java +++ b/server/src/main/java/com/ecep/contract/ds/other/service/EmployeeService.java @@ -1,13 +1,8 @@ -package com.ecep.contract.manager.ds.other.service; +package com.ecep.contract.ds.other.service; + +import java.util.List; +import java.util.Optional; -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.model.EmployeeLoginHistory; -import com.ecep.contract.manager.ds.other.model.EmployeeRole; -import com.ecep.contract.manager.ds.other.repository.EmployeeLoginHistoryRepository; -import com.ecep.contract.manager.ds.other.repository.EmployeeRepository; -import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel; -import com.ecep.contract.manager.ui.ViewModelService; -import jakarta.transaction.Transactional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -18,13 +13,16 @@ import org.springframework.cache.annotation.Caching; import org.springframework.context.annotation.Lazy; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; -import java.util.Optional; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.other.repository.EmployeeRepository; +import com.ecep.contract.model.Employee; +import com.ecep.contract.model.EmployeeRole; + +import jakarta.transaction.Transactional; /** * 员工服务类 @@ -32,7 +30,7 @@ import java.util.Optional; @Lazy @Service @CacheConfig(cacheNames = "employee") -public class EmployeeService implements ViewModelService { +public class EmployeeService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(EmployeeService.class); public static final int DEFAULT_SYSTEM_EMPLOYEE_ID = 26; @Lazy @@ -53,7 +51,10 @@ public class EmployeeService implements ViewModelService { +public class FunctionService implements IEntityService { @Lazy @Autowired private FunctionRepository repository; @@ -41,11 +40,6 @@ public class FunctionService implements ViewModelService { +public class InventoryHistoryPriceService implements IEntityService { @Lazy @Autowired InventoryHistoryPriceRepository repository; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/service/InventoryService.java b/server/src/main/java/com/ecep/contract/ds/other/service/InventoryService.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/other/service/InventoryService.java rename to server/src/main/java/com/ecep/contract/ds/other/service/InventoryService.java index ee71496..9042eb2 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/service/InventoryService.java +++ b/server/src/main/java/com/ecep/contract/ds/other/service/InventoryService.java @@ -1,14 +1,8 @@ -package com.ecep.contract.manager.ds.other.service; +package com.ecep.contract.ds.other.service; + +import java.time.LocalDate; +import java.util.List; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.repository.InventoryRepository; -import com.ecep.contract.manager.ds.other.vo.InventoryViewModel; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.util.SpecificationUtils; -import jakarta.persistence.criteria.Join; -import jakarta.persistence.criteria.JoinType; -import lombok.Getter; -import lombok.Setter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -22,13 +16,20 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.time.LocalDate; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.other.repository.InventoryRepository; +import com.ecep.contract.model.Inventory; +import com.ecep.contract.util.SpecificationUtils; + +import jakarta.persistence.criteria.Join; +import jakarta.persistence.criteria.JoinType; +import lombok.Getter; +import lombok.Setter; @Lazy @Service @CacheConfig(cacheNames = "inventory") -public class InventoryService implements ViewModelService { +public class InventoryService implements IEntityService { @Lazy @Autowired private InventoryRepository inventoryRepository; @@ -41,7 +42,6 @@ public class InventoryService implements ViewModelService findAll(Specification spec, Pageable pageable) { return inventoryRepository.findAll(spec, pageable); } @@ -59,17 +59,14 @@ public class InventoryService implements ViewModelService catalog = root.join("catalog", JoinType.LEFT); query.orderBy( builder.asc(builder.length(root.get("name"))), - builder.asc(builder.length(root.get("specification"))) - ); + builder.asc(builder.length(root.get("specification")))); return builder.or( builder.and( builder.isNotNull(catalog), - builder.equal(catalog.get("name"), searchText) - ), + builder.equal(catalog.get("name"), searchText)), builder.like(root.get("code"), "%" + searchText + "%"), builder.like(root.get("specification"), "%" + searchText + "%"), - builder.like(root.get("name"), "%" + searchText + "%") - ); + builder.like(root.get("name"), "%" + searchText + "%")); }; } @@ -80,33 +77,23 @@ public class InventoryService implements ViewModelService { +public class PermissionService implements IEntityService { @Lazy @Autowired @@ -41,23 +41,20 @@ public class PermissionService implements ViewModelService { return builder.or( - builder.like(root.get("name"), "%" + searchText + "%") - ); + builder.like(root.get("name"), "%" + searchText + "%")); }; } @Cacheable(key = "'permission-code-'+#p0") public Permission findByCode(String code) { -// return permissionRepository.findByCode(code).orElse(null); + // return permissionRepository.findByCode(code).orElse(null); throw new UnsupportedOperationException(); } - @Caching( - evict = { - @CacheEvict(key = "'permission-'+#p0.id"), -// @CacheEvict(key = "'permission-code-'+#p0.code") - } - ) + @Caching(evict = { + @CacheEvict(key = "'permission-'+#p0.id"), + // @CacheEvict(key = "'permission-code-'+#p0.code") + }) public Permission save(Permission role) { return permissionRepository.save(role); } @@ -75,5 +72,4 @@ public class PermissionService implements ViewModelService { @Setter private ProjectCostService costService; @@ -47,7 +55,6 @@ public class ProjectCostImportItemsFromContractsTasker extends Tasker { return null; } - public void importFromContracts(ProjectCost projectCost, MessageHolder holder) { Project project = projectCost.getProject(); List projectCostItems = getItemService().findByCost(projectCost); @@ -86,7 +93,6 @@ public class ProjectCostImportItemsFromContractsTasker extends Tasker { getCostService().save(projectCost); } - /** * 计算统计数 * @@ -104,10 +110,12 @@ public class ProjectCostImportItemsFromContractsTasker extends Tasker { double outExclusiveTaxAmount = 0; for (ProjectCostItem row : items) { - inTaxAmount += TaxRateUtils.toInclusiveTax(row.getInExclusiveTaxPrice(), row.getInTaxRate()) * row.getInQuantity(); + inTaxAmount += TaxRateUtils.toInclusiveTax(row.getInExclusiveTaxPrice(), row.getInTaxRate()) + * row.getInQuantity(); inExclusiveTaxAmount += row.getInExclusiveTaxPrice() * row.getInQuantity(); - outTaxAmount += TaxRateUtils.toExclusiveTax(row.getOutExclusiveTaxPrice(), row.getOutTaxRate()) * row.getOutQuantity(); + outTaxAmount += TaxRateUtils.toExclusiveTax(row.getOutExclusiveTaxPrice(), row.getOutTaxRate()) + * row.getOutQuantity(); outExclusiveTaxAmount += row.getOutExclusiveTaxPrice() * row.getOutQuantity(); } @@ -117,8 +125,12 @@ public class ProjectCostImportItemsFromContractsTasker extends Tasker { projectCost.setOutExclusiveTaxAmount(outExclusiveTaxAmount); projectCost.setStampTaxFee((float) (inTaxAmount / 100 * projectCost.getStampTax())); - projectCost.setTaxAndSurchargesFee((float) (((inTaxAmount - inExclusiveTaxAmount) - (outTaxAmount - outExclusiveTaxAmount)) * projectCost.getTaxAndSurcharges() / 100)); - projectCost.setGrossProfitMargin((float) (inExclusiveTaxAmount - outExclusiveTaxAmount - projectCost.getStampTaxFee() - projectCost.getTaxAndSurchargesFee()) * projectCost.getTaxAndSurcharges() / 100); + projectCost.setTaxAndSurchargesFee( + (float) (((inTaxAmount - inExclusiveTaxAmount) - (outTaxAmount - outExclusiveTaxAmount)) + * projectCost.getTaxAndSurcharges() / 100)); + projectCost.setGrossProfitMargin( + (float) (inExclusiveTaxAmount - outExclusiveTaxAmount - projectCost.getStampTaxFee() + - projectCost.getTaxAndSurchargesFee()) * projectCost.getTaxAndSurcharges() / 100); } String toKey(ContractItem item) { @@ -129,18 +141,23 @@ public class ProjectCostImportItemsFromContractsTasker extends Tasker { return item.getTitle() + "_" + item.getSpecification(); } - private void compositeOut(Map> map, List results, MessageHolder holder) { + private void compositeOut(Map> map, List results, + MessageHolder holder) { // 根据存货匹配,可对多个相同的存货进行合并 for (Map.Entry> entry : map.entrySet()) { - Inventory inventory = Hibernate.isInitialized(entry.getKey()) ? entry.getKey() : getInventoryService().findById(entry.getKey().getId()); + Inventory inventory = Hibernate.isInitialized(entry.getKey()) ? entry.getKey() + : getInventoryService().findById(entry.getKey().getId()); if (inventory == null) { // 存货编号没有,则使用 项目名称+规格 来判断是否有数据 - entry.getValue().stream().filter(item -> item.getInventory() == null).collect(Collectors.groupingBy(this::toKey)).forEach((key, value) -> { - List list = results.stream().filter(v -> v.getInventory() == null && key.equals(toKey(v))).toList(); - compositeOut(null, value, list, results); - }); + entry.getValue().stream().filter(item -> item.getInventory() == null) + .collect(Collectors.groupingBy(this::toKey)).forEach((key, value) -> { + List list = results.stream() + .filter(v -> v.getInventory() == null && key.equals(toKey(v))).toList(); + compositeOut(null, value, list, results); + }); } else { - List list = results.stream().filter(v -> Objects.equals(v.getInventory(), inventory)).toList(); + List list = results.stream().filter(v -> Objects.equals(v.getInventory(), inventory)) + .toList(); compositeOut(inventory, entry.getValue(), list, results); } } @@ -148,24 +165,26 @@ public class ProjectCostImportItemsFromContractsTasker extends Tasker { private void compositeIn(List contractItems, List results, MessageHolder holder) { // 存货编号没有,则使用 项目名称+规格 来判断是否有数据 - contractItems.stream().filter(item -> item.getInventory() == null).collect(Collectors.groupingBy(this::toKey)).forEach((key, value) -> { - List list = results.stream().filter(v -> v.getInventory() == null && key.equals(toKey(v))).toList(); - compositeIn(null, value, list, results, holder); - }); + contractItems.stream().filter(item -> item.getInventory() == null).collect(Collectors.groupingBy(this::toKey)) + .forEach((key, value) -> { + List list = results.stream() + .filter(v -> v.getInventory() == null && key.equals(toKey(v))).toList(); + compositeIn(null, value, list, results, holder); + }); // 根据存货编号来判断是否有数据 - contractItems.stream().filter(item -> item.getInventory() != null).collect(Collectors.groupingBy(ContractItem::getInventory)).forEach((inventory, value) -> { - List list = results.stream().filter(v -> Objects.equals(v.getInventory(), inventory)).toList(); - compositeIn(inventory, value, list, results, holder); - }); + contractItems.stream().filter(item -> item.getInventory() != null) + .collect(Collectors.groupingBy(ContractItem::getInventory)).forEach((inventory, value) -> { + List list = results.stream() + .filter(v -> Objects.equals(v.getInventory(), inventory)).toList(); + compositeIn(inventory, value, list, results, holder); + }); } - private void compositeIn( Inventory inventory, List contractItems, List costItems, - List results, MessageHolder holder - ) { + List results, MessageHolder holder) { // contractItems 对应的 costItems // 同步处理 contractItems 中的多个 ContractItem 和 costItems 中的多个 ProjectCostItem for (int i = 0; i < Math.max(contractItems.size(), costItems.size()); i++) { @@ -240,7 +259,8 @@ public class ProjectCostImportItemsFromContractsTasker extends Tasker { if (!NumberUtils.equals(costItem.getInExclusiveTaxPrice(), exclusiveTaxPrice)) { costItem.setInExclusiveTaxPrice(exclusiveTaxPrice); holder.warn("成本进项税自动调整 " + contractItem.getTaxRate() + " -> " + costItem.getInTaxRate() - + ", 进项未税价格调整 " + contractItem.getExclusiveTaxPrice() + " -> " + costItem.getInExclusiveTaxPrice() + "!"); + + ", 进项未税价格调整 " + contractItem.getExclusiveTaxPrice() + " -> " + + costItem.getInExclusiveTaxPrice() + "!"); } return; } @@ -266,13 +286,13 @@ public class ProjectCostImportItemsFromContractsTasker extends Tasker { private void compositeOut( Inventory inventory, List contractItems, List costItems, - List results - ) { + List results) { // 合计总金额 double totalFee = contractItems.stream().mapToDouble(v -> v.getTaxPrice() * v.getQuantity()).sum(); // 如果有存货,则使用存货的税率,否则使用13% float taxRate = inventory == null ? TaxRateUtils.TAX_RATE_GENERAL : inventory.getPurchasePrice().getTaxRate(); - if (taxRate >= TaxRateUtils.TAX_RATE_GENERAL_OLDEST && TaxRateUtils.isAfterTaxRateChangeTo13(cost.getApplyTime())) { + if (taxRate >= TaxRateUtils.TAX_RATE_GENERAL_OLDEST + && TaxRateUtils.isAfterTaxRateChangeTo13(cost.getApplyTime())) { taxRate = TaxRateUtils.TAX_RATE_GENERAL; } // 合计数量 diff --git a/src/main/java/com/ecep/contract/manager/ds/project/ProjectCtx.java b/server/src/main/java/com/ecep/contract/ds/project/ProjectCtx.java similarity index 75% rename from src/main/java/com/ecep/contract/manager/ds/project/ProjectCtx.java rename to server/src/main/java/com/ecep/contract/ds/project/ProjectCtx.java index d4bdde0..52cd54c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/ProjectCtx.java +++ b/server/src/main/java/com/ecep/contract/ds/project/ProjectCtx.java @@ -1,17 +1,19 @@ -package com.ecep.contract.manager.ds.project; +package com.ecep.contract.ds.project; -import com.ecep.contract.manager.cloud.AbstractCtx; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import com.ecep.contract.manager.ui.MessageHolder; -import lombok.Setter; -import org.hibernate.Hibernate; +import static com.ecep.contract.SpringApp.getBean; import java.util.Objects; -import static com.ecep.contract.manager.SpringApp.getBean; +import org.hibernate.Hibernate; + +import com.ecep.contract.MessageHolder; +import com.ecep.contract.cloud.AbstractCtx; +import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.ds.project.service.ProjectService; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.Project; + +import lombok.Setter; public class ProjectCtx extends AbstractCtx { @Setter diff --git a/src/main/java/com/ecep/contract/manager/ds/project/repository/CustomerSatisfactionSurveyRepository.java b/server/src/main/java/com/ecep/contract/ds/project/repository/CustomerSatisfactionSurveyRepository.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ds/project/repository/CustomerSatisfactionSurveyRepository.java rename to server/src/main/java/com/ecep/contract/ds/project/repository/CustomerSatisfactionSurveyRepository.java index 2b2a8ec..0439c0c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/repository/CustomerSatisfactionSurveyRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/project/repository/CustomerSatisfactionSurveyRepository.java @@ -1,10 +1,11 @@ -package com.ecep.contract.manager.ds.project.repository; +package com.ecep.contract.ds.project.repository; -import com.ecep.contract.manager.ds.project.model.CustomerSatisfactionSurvey; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; +import com.ecep.contract.model.CustomerSatisfactionSurvey; + /** * 项目客户满意度调查数据访问层 */ diff --git a/server/src/main/java/com/ecep/contract/ds/project/repository/ProductDeliverySignMethodRepository.java b/server/src/main/java/com/ecep/contract/ds/project/repository/ProductDeliverySignMethodRepository.java new file mode 100644 index 0000000..d668412 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/project/repository/ProductDeliverySignMethodRepository.java @@ -0,0 +1,22 @@ +package com.ecep.contract.ds.project.repository; + +import java.util.List; +import java.util.Optional; + +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.DeliverySignMethod; +import com.ecep.contract.model.ProjectSaleType; + +@Repository +public interface ProductDeliverySignMethodRepository extends MyRepository{ + + Optional findBySaleTypeAndName(ProjectSaleType saleType, String name); + + Optional findBySaleTypeAndCode(ProjectSaleType saleType, String code); + + Optional findBySaleTypeAndId(ProjectSaleType saleType, Integer id); + + List findAllBySaleTypeId(Integer saleTypeId); +} diff --git a/server/src/main/java/com/ecep/contract/ds/project/repository/ProductTypeRepository.java b/server/src/main/java/com/ecep/contract/ds/project/repository/ProductTypeRepository.java new file mode 100644 index 0000000..ac4c97c --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/project/repository/ProductTypeRepository.java @@ -0,0 +1,16 @@ +package com.ecep.contract.ds.project.repository; + +import java.util.Optional; + +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.ProductType; + +@Repository +public interface ProductTypeRepository extends MyRepository { + + Optional findByName(String name); + + Optional findByCode(String code); +} diff --git a/server/src/main/java/com/ecep/contract/ds/project/repository/ProductUsageRepository.java b/server/src/main/java/com/ecep/contract/ds/project/repository/ProductUsageRepository.java new file mode 100644 index 0000000..053133c --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/project/repository/ProductUsageRepository.java @@ -0,0 +1,16 @@ +package com.ecep.contract.ds.project.repository; + +import java.util.Optional; + +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.ProductUsage; + +@Repository +public interface ProductUsageRepository extends MyRepository { + + Optional findByName(String name); + + Optional findByCode(String code); +} diff --git a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectBidRepository.java b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectBidRepository.java similarity index 60% rename from src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectBidRepository.java rename to server/src/main/java/com/ecep/contract/ds/project/repository/ProjectBidRepository.java index 6f92566..4a12784 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectBidRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectBidRepository.java @@ -1,12 +1,12 @@ -package com.ecep.contract.manager.ds.project.repository; +package com.ecep.contract.ds.project.repository; import java.util.List; import org.springframework.stereotype.Repository; -import com.ecep.contract.manager.ds.MyRepository; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectBid; +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectBid; @Repository public interface ProjectBidRepository extends MyRepository { diff --git a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectCostItemRepository.java b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectCostItemRepository.java similarity index 72% rename from src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectCostItemRepository.java rename to server/src/main/java/com/ecep/contract/ds/project/repository/ProjectCostItemRepository.java index 1dd0db7..94c3fb0 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectCostItemRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectCostItemRepository.java @@ -1,12 +1,13 @@ -package com.ecep.contract.manager.ds.project.repository; +package com.ecep.contract.ds.project.repository; + +import java.util.List; -import com.ecep.contract.manager.ds.project.model.ProjectCost; -import com.ecep.contract.manager.ds.project.model.ProjectCostItem; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; -import java.util.List; +import com.ecep.contract.model.ProjectCost; +import com.ecep.contract.model.ProjectCostItem; @Repository public interface ProjectCostItemRepository extends JpaRepository, JpaSpecificationExecutor { diff --git a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectCostRepository.java b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectCostRepository.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectCostRepository.java rename to server/src/main/java/com/ecep/contract/ds/project/repository/ProjectCostRepository.java index 13bc316..7668603 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectCostRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectCostRepository.java @@ -1,14 +1,15 @@ -package com.ecep.contract.manager.ds.project.repository; +package com.ecep.contract.ds.project.repository; + +import java.util.List; +import java.util.Optional; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectCost; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; -import java.util.List; -import java.util.Optional; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectCost; @Repository public interface ProjectCostRepository extends JpaRepository, JpaSpecificationExecutor { diff --git a/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectFileRepository.java b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectFileRepository.java new file mode 100644 index 0000000..fdef407 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectFileRepository.java @@ -0,0 +1,15 @@ +package com.ecep.contract.ds.project.repository; + +import java.util.List; + +import com.ecep.contract.ProjectFileType; +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectFile; + +public interface ProjectFileRepository extends MyRepository { + + List findByProject(Project project); + + List findByProjectAndType(Project project, ProjectFileType type); +} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectFileTypeLocalRepository.java b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectFileTypeLocalRepository.java similarity index 60% rename from src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectFileTypeLocalRepository.java rename to server/src/main/java/com/ecep/contract/ds/project/repository/ProjectFileTypeLocalRepository.java index 8b603b6..e81954f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectFileTypeLocalRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectFileTypeLocalRepository.java @@ -1,10 +1,11 @@ -package com.ecep.contract.manager.ds.project.repository; +package com.ecep.contract.ds.project.repository; -import com.ecep.contract.manager.ds.project.model.ProjectFileTypeLocal; -import com.ecep.contract.manager.ds.project.ProjectFileType; -import com.ecep.contract.manager.ds.other.repository.BaseEnumEntityRepository; import org.springframework.stereotype.Repository; +import com.ecep.contract.ProjectFileType; +import com.ecep.contract.ds.other.repository.BaseEnumEntityRepository; +import com.ecep.contract.model.ProjectFileTypeLocal; + @Repository public interface ProjectFileTypeLocalRepository extends BaseEnumEntityRepository { @Override diff --git a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectFundPlanRepository.java b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectFundPlanRepository.java similarity index 60% rename from src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectFundPlanRepository.java rename to server/src/main/java/com/ecep/contract/ds/project/repository/ProjectFundPlanRepository.java index f55ead4..afa5160 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectFundPlanRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectFundPlanRepository.java @@ -1,12 +1,12 @@ -package com.ecep.contract.manager.ds.project.repository; +package com.ecep.contract.ds.project.repository; import java.util.List; import org.springframework.stereotype.Repository; -import com.ecep.contract.manager.ds.MyRepository; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectFundPlan; +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectFundPlan; @Repository public interface ProjectFundPlanRepository extends MyRepository { diff --git a/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectIndustryRepository.java b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectIndustryRepository.java new file mode 100644 index 0000000..75917cd --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectIndustryRepository.java @@ -0,0 +1,16 @@ +package com.ecep.contract.ds.project.repository; + +import java.util.Optional; + +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.ProjectIndustry; + +@Repository +public interface ProjectIndustryRepository extends MyRepository { + + Optional findByName(String name); + + Optional findByCode(String code); +} diff --git a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectQuotationRepository.java b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectQuotationRepository.java similarity index 74% rename from src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectQuotationRepository.java rename to server/src/main/java/com/ecep/contract/ds/project/repository/ProjectQuotationRepository.java index a0cf5d5..0651fe6 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectQuotationRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectQuotationRepository.java @@ -1,12 +1,13 @@ -package com.ecep.contract.manager.ds.project.repository; +package com.ecep.contract.ds.project.repository; + +import java.util.List; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectQuotation; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; -import java.util.List; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectQuotation; @Repository public interface ProjectQuotationRepository diff --git a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectRepository.java b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectRepository.java similarity index 59% rename from src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectRepository.java rename to server/src/main/java/com/ecep/contract/ds/project/repository/ProjectRepository.java index 0177d78..7c47919 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectRepository.java @@ -1,16 +1,13 @@ -package com.ecep.contract.manager.ds.project.repository; - -import com.ecep.contract.manager.ds.MyRepository; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectSaleType; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; +package com.ecep.contract.ds.project.repository; import java.util.Optional; +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectSaleType; + @Repository public interface ProjectRepository extends MyRepository { diff --git a/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectSaleTypeRepository.java b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectSaleTypeRepository.java new file mode 100644 index 0000000..0151596 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectSaleTypeRepository.java @@ -0,0 +1,16 @@ +package com.ecep.contract.ds.project.repository; + +import java.util.Optional; + +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.ProjectSaleType; + +@Repository +public interface ProjectSaleTypeRepository extends MyRepository { + + Optional findByName(String name); + + Optional findByCode(String code); +} diff --git a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectSaleTypeRequireFileTypeRepository.java b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectSaleTypeRequireFileTypeRepository.java similarity index 53% rename from src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectSaleTypeRequireFileTypeRepository.java rename to server/src/main/java/com/ecep/contract/ds/project/repository/ProjectSaleTypeRequireFileTypeRepository.java index 9e5033d..6e87f40 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectSaleTypeRequireFileTypeRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectSaleTypeRequireFileTypeRepository.java @@ -1,17 +1,17 @@ -package com.ecep.contract.manager.ds.project.repository; +package com.ecep.contract.ds.project.repository; + +import java.util.List; -import com.ecep.contract.manager.ds.other.model.Function; -import com.ecep.contract.manager.ds.project.model.ProjectSaleTypeRequireFileType; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; -import java.util.List; +import com.ecep.contract.model.ProjectSaleTypeRequireFileType; @Repository public interface ProjectSaleTypeRequireFileTypeRepository extends - JpaRepository, JpaSpecificationExecutor { - + JpaRepository, + JpaSpecificationExecutor { List findBySaleTypeId(int saleTypeId); } diff --git a/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectTypeRepository.java b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectTypeRepository.java new file mode 100644 index 0000000..8065a9a --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/project/repository/ProjectTypeRepository.java @@ -0,0 +1,16 @@ +package com.ecep.contract.ds.project.repository; + +import java.util.Optional; + +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.ProjectType; + +@Repository +public interface ProjectTypeRepository extends MyRepository { + + Optional findByName(String name); + + Optional findByCode(String code); +} diff --git a/src/main/java/com/ecep/contract/manager/ds/project/service/CustomerSatisfactionSurveyService.java b/server/src/main/java/com/ecep/contract/ds/project/service/CustomerSatisfactionSurveyService.java similarity index 83% rename from src/main/java/com/ecep/contract/manager/ds/project/service/CustomerSatisfactionSurveyService.java rename to server/src/main/java/com/ecep/contract/ds/project/service/CustomerSatisfactionSurveyService.java index 8b2fa04..ce588da 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/service/CustomerSatisfactionSurveyService.java +++ b/server/src/main/java/com/ecep/contract/ds/project/service/CustomerSatisfactionSurveyService.java @@ -1,9 +1,7 @@ -package com.ecep.contract.manager.ds.project.service; +package com.ecep.contract.ds.project.service; + +import java.util.List; -import com.ecep.contract.manager.ds.project.model.CustomerSatisfactionSurvey; -import com.ecep.contract.manager.ds.project.repository.CustomerSatisfactionSurveyRepository; -import com.ecep.contract.manager.ds.project.vo.CustomerSatisfactionSurveyViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.data.domain.Page; @@ -12,7 +10,9 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.project.repository.CustomerSatisfactionSurveyRepository; +import com.ecep.contract.model.CustomerSatisfactionSurvey; /** * 项目客户满意度调查服务 @@ -20,7 +20,7 @@ import java.util.List; @Lazy @Service public class CustomerSatisfactionSurveyService - implements ViewModelService { + implements IEntityService { public final static String KEY_TEMPLATE = "project.customer-satisfaction-survey.template"; @Lazy diff --git a/src/main/java/com/ecep/contract/manager/ds/project/service/DeliverySignMethodService.java b/server/src/main/java/com/ecep/contract/ds/project/service/DeliverySignMethodService.java similarity index 65% rename from src/main/java/com/ecep/contract/manager/ds/project/service/DeliverySignMethodService.java rename to server/src/main/java/com/ecep/contract/ds/project/service/DeliverySignMethodService.java index e935916..f6ceb8e 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/service/DeliverySignMethodService.java +++ b/server/src/main/java/com/ecep/contract/ds/project/service/DeliverySignMethodService.java @@ -1,10 +1,7 @@ -package com.ecep.contract.manager.ds.project.service; +package com.ecep.contract.ds.project.service; + +import java.util.List; -import com.ecep.contract.manager.ds.project.model.DeliverySignMethod; -import com.ecep.contract.manager.ds.project.model.ProjectSaleType; -import com.ecep.contract.manager.ds.project.repository.ProductDeliverySignMethodRepository; -import com.ecep.contract.manager.ds.project.vo.DeliverySignMethodViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -17,17 +14,19 @@ import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.project.repository.ProductDeliverySignMethodRepository; +import com.ecep.contract.model.DeliverySignMethod; +import com.ecep.contract.model.ProjectSaleType; @Lazy @Service @CacheConfig(cacheNames = "project-sign-method") -public class DeliverySignMethodService implements ViewModelService { +public class DeliverySignMethodService implements IEntityService { @Lazy @Autowired private ProductDeliverySignMethodRepository deliverySignMethodRepository; - @Cacheable(key = "#p0") public DeliverySignMethod findById(Integer id) { return deliverySignMethodRepository.findById(id).orElse(null); @@ -60,31 +59,22 @@ public class DeliverySignMethodService implements ViewModelService { +public class ProductTypeService implements IEntityService { @Lazy @Autowired private ProductTypeRepository productTypeRepository; @@ -58,31 +58,26 @@ public class ProductTypeService implements ViewModelService { return builder.or( builder.like(root.get("code"), "%" + searchText + "%"), - builder.like(root.get("name"), "%" + searchText + "%") - ); + builder.like(root.get("name"), "%" + searchText + "%")); }; } - @Caching( - evict = { - @CacheEvict(key = "#p0.id"), - @CacheEvict(key = "'all'"), - @CacheEvict(key = "'code-'+#p0.code"), - @CacheEvict(key = "'name-'+#p0.name"), - } - ) + @Caching(evict = { + @CacheEvict(key = "#p0.id"), + @CacheEvict(key = "'all'"), + @CacheEvict(key = "'code-'+#p0.code"), + @CacheEvict(key = "'name-'+#p0.name"), + }) public ProductType save(ProductType type) { return productTypeRepository.save(type); } - @Caching( - evict = { - @CacheEvict(key = "#p0.id"), - @CacheEvict(key = "'all'"), - @CacheEvict(key = "'code-'+#p0.code"), - @CacheEvict(key = "'name-'+#p0.name"), - } - ) + @Caching(evict = { + @CacheEvict(key = "#p0.id"), + @CacheEvict(key = "'all'"), + @CacheEvict(key = "'code-'+#p0.code"), + @CacheEvict(key = "'name-'+#p0.name"), + }) public void delete(ProductType type) { productTypeRepository.delete(type); } diff --git a/src/main/java/com/ecep/contract/manager/ds/project/service/ProductUsageService.java b/server/src/main/java/com/ecep/contract/ds/project/service/ProductUsageService.java similarity index 82% rename from src/main/java/com/ecep/contract/manager/ds/project/service/ProductUsageService.java rename to server/src/main/java/com/ecep/contract/ds/project/service/ProductUsageService.java index 0d75aaa..db4644e 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/service/ProductUsageService.java +++ b/server/src/main/java/com/ecep/contract/ds/project/service/ProductUsageService.java @@ -1,9 +1,7 @@ -package com.ecep.contract.manager.ds.project.service; +package com.ecep.contract.ds.project.service; + +import java.util.List; -import com.ecep.contract.manager.ds.project.model.ProductUsage; -import com.ecep.contract.manager.ds.project.repository.ProductUsageRepository; -import com.ecep.contract.manager.ds.project.vo.ProductUsageViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -16,12 +14,14 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.project.repository.ProductUsageRepository; +import com.ecep.contract.model.ProductUsage; @Lazy @Service @CacheConfig(cacheNames = "product-usage") -public class ProductUsageService implements ViewModelService { +public class ProductUsageService implements IEntityService { @Lazy @Autowired private ProductUsageRepository productUsageRepository; @@ -75,11 +75,6 @@ public class ProductUsageService implements ViewModelService { +public class ProjectBidService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(ProjectBidService.class); @Lazy @Autowired private ProjectBidRepository repository; - public ProjectBid findById(Integer id) { return repository.findById(id).orElse(null); } @@ -51,8 +50,7 @@ public class ProjectBidService implements ViewModelService { +public class ProjectCostItemService implements IEntityService { @Lazy @Autowired private ProjectCostItemRepository repository; @@ -39,8 +39,7 @@ public class ProjectCostItemService implements ViewModelService { return builder.or( builder.like(root.get("title"), "%" + searchText + "%"), - builder.like(root.get("specification"), "%" + searchText + "%") - ); + builder.like(root.get("specification"), "%" + searchText + "%")); }; } diff --git a/src/main/java/com/ecep/contract/manager/ds/project/service/ProjectCostService.java b/server/src/main/java/com/ecep/contract/ds/project/service/ProjectCostService.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/project/service/ProjectCostService.java rename to server/src/main/java/com/ecep/contract/ds/project/service/ProjectCostService.java index d54cfdd..a07c9a1 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/service/ProjectCostService.java +++ b/server/src/main/java/com/ecep/contract/ds/project/service/ProjectCostService.java @@ -1,11 +1,8 @@ -package com.ecep.contract.manager.ds.project.service; +package com.ecep.contract.ds.project.service; + +import java.util.Comparator; +import java.util.List; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectCost; -import com.ecep.contract.manager.ds.project.repository.ProjectCostRepository; -import com.ecep.contract.manager.ds.project.vo.ProjectCostViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -17,12 +14,15 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.Comparator; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.project.repository.ProjectCostRepository; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectCost; @Lazy @Service -public class ProjectCostService implements ViewModelService { +public class ProjectCostService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(ProjectCostService.class); @Lazy diff --git a/src/main/java/com/ecep/contract/manager/ds/project/service/ProjectFileService.java b/server/src/main/java/com/ecep/contract/ds/project/service/ProjectFileService.java similarity index 79% rename from src/main/java/com/ecep/contract/manager/ds/project/service/ProjectFileService.java rename to server/src/main/java/com/ecep/contract/ds/project/service/ProjectFileService.java index d5eddb4..e9b5df5 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/service/ProjectFileService.java +++ b/server/src/main/java/com/ecep/contract/ds/project/service/ProjectFileService.java @@ -1,11 +1,10 @@ -package com.ecep.contract.manager.ds.project.service; +package com.ecep.contract.ds.project.service; + +import java.time.LocalDate; +import java.util.List; +import java.util.Optional; +import java.util.function.Consumer; -import com.ecep.contract.manager.ds.project.ProjectFileType; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectFile; -import com.ecep.contract.manager.ds.project.repository.ProjectFileRepository; -import com.ecep.contract.manager.ds.project.vo.ProjectFileViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -17,14 +16,15 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.time.LocalDate; -import java.util.List; -import java.util.Optional; -import java.util.function.Consumer; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ProjectFileType; +import com.ecep.contract.ds.project.repository.ProjectFileRepository; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectFile; @Lazy @Service -public class ProjectFileService implements ViewModelService { +public class ProjectFileService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(ProjectFileService.class); @Autowired @@ -79,11 +79,6 @@ public class ProjectFileService implements ViewModelService saveAll(List files) { return projectFileRepository.saveAll(files); } diff --git a/src/main/java/com/ecep/contract/manager/ds/project/service/ProjectFundPlanService.java b/server/src/main/java/com/ecep/contract/ds/project/service/ProjectFundPlanService.java similarity index 81% rename from src/main/java/com/ecep/contract/manager/ds/project/service/ProjectFundPlanService.java rename to server/src/main/java/com/ecep/contract/ds/project/service/ProjectFundPlanService.java index 34d3414..fa6f835 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/service/ProjectFundPlanService.java +++ b/server/src/main/java/com/ecep/contract/ds/project/service/ProjectFundPlanService.java @@ -1,10 +1,8 @@ -package com.ecep.contract.manager.ds.project.service; +package com.ecep.contract.ds.project.service; + +import java.time.LocalDateTime; +import java.util.List; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectFundPlan; -import com.ecep.contract.manager.ds.project.repository.ProjectFundPlanRepository; -import com.ecep.contract.manager.ds.project.vo.ProjectFundPlanViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -15,12 +13,14 @@ import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; -import java.time.LocalDateTime; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.project.repository.ProjectFundPlanRepository; +import com.ecep.contract.model.Project; +import com.ecep.contract.model.ProjectFundPlan; @Lazy @Service -public class ProjectFundPlanService implements ViewModelService { +public class ProjectFundPlanService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(ProjectFundPlanService.class); @Lazy diff --git a/src/main/java/com/ecep/contract/manager/ds/project/service/ProjectIndustryService.java b/server/src/main/java/com/ecep/contract/ds/project/service/ProjectIndustryService.java similarity index 80% rename from src/main/java/com/ecep/contract/manager/ds/project/service/ProjectIndustryService.java rename to server/src/main/java/com/ecep/contract/ds/project/service/ProjectIndustryService.java index 436c626..8a70e9b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/service/ProjectIndustryService.java +++ b/server/src/main/java/com/ecep/contract/ds/project/service/ProjectIndustryService.java @@ -1,10 +1,7 @@ -package com.ecep.contract.manager.ds.project.service; +package com.ecep.contract.ds.project.service; + +import java.util.List; -import com.ecep.contract.manager.ds.project.model.ProductType; -import com.ecep.contract.manager.ds.project.model.ProjectIndustry; -import com.ecep.contract.manager.ds.project.repository.ProjectIndustryRepository; -import com.ecep.contract.manager.ds.project.vo.ProjectIndustryViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -17,12 +14,14 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.project.repository.ProjectIndustryRepository; +import com.ecep.contract.model.ProjectIndustry; @Lazy @Service @CacheConfig(cacheNames = "project-industry") -public class ProjectIndustryService implements ViewModelService { +public class ProjectIndustryService implements IEntityService { @Lazy @Autowired private ProjectIndustryRepository industryRepository; @@ -76,11 +75,6 @@ public class ProjectIndustryService implements ViewModelService { +public class ProjectQuotationService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(ProjectQuotationService.class); diff --git a/src/main/java/com/ecep/contract/manager/ds/project/service/ProjectSaleTypeRequireFileTypeService.java b/server/src/main/java/com/ecep/contract/ds/project/service/ProjectSaleTypeRequireFileTypeService.java similarity index 75% rename from src/main/java/com/ecep/contract/manager/ds/project/service/ProjectSaleTypeRequireFileTypeService.java rename to server/src/main/java/com/ecep/contract/ds/project/service/ProjectSaleTypeRequireFileTypeService.java index 5a69b2a..ea94d25 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/service/ProjectSaleTypeRequireFileTypeService.java +++ b/server/src/main/java/com/ecep/contract/ds/project/service/ProjectSaleTypeRequireFileTypeService.java @@ -1,9 +1,7 @@ -package com.ecep.contract.manager.ds.project.service; +package com.ecep.contract.ds.project.service; + +import java.util.List; -import com.ecep.contract.manager.ds.project.model.ProjectSaleTypeRequireFileType; -import com.ecep.contract.manager.ds.project.repository.ProjectSaleTypeRequireFileTypeRepository; -import com.ecep.contract.manager.ds.project.vo.ProjectSaleTypeRequireFileTypeViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -15,12 +13,14 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.project.repository.ProjectSaleTypeRequireFileTypeRepository; +import com.ecep.contract.model.ProjectSaleTypeRequireFileType; @Lazy @Service @CacheConfig(cacheNames = "project-sale-type-require-file-type") -public class ProjectSaleTypeRequireFileTypeService implements ViewModelService { +public class ProjectSaleTypeRequireFileTypeService implements IEntityService { @Lazy @Autowired private ProjectSaleTypeRequireFileTypeRepository repository; @@ -63,10 +63,6 @@ public class ProjectSaleTypeRequireFileTypeService implements ViewModelService

{ +public class ProjectService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(ProjectService.class); public static final String KEY_BASE_PATH = "project.base.path"; - @Lazy @Autowired private ProjectRepository projectRepository; @@ -75,7 +80,8 @@ public class ProjectService implements ViewModelService findAll(Specification spec, Pageable pageable) { return projectRepository.findAll(spec, pageable); } @@ -135,9 +135,9 @@ public class ProjectService implements ViewModelService optional = projectRepository.findFirstBySaleTypeAndCodeYearOrderByCodeSequenceNumberDesc(type, year); + Optional optional = projectRepository.findFirstBySaleTypeAndCodeYearOrderByCodeSequenceNumberDesc(type, + year); if (optional.isEmpty()) { return 1; } @@ -158,8 +158,7 @@ public class ProjectService implements ViewModelService 3) { - DeliverySignMethod signMethod = deliverySignMethodService.findBySaleTypeAndCode(saleType, String.valueOf(extCode.charAt(0))); + DeliverySignMethod signMethod = deliverySignMethodService.findBySaleTypeAndCode(saleType, + String.valueOf(extCode.charAt(0))); if (signMethod != null) { project.setDeliverySignMethod(signMethod); } diff --git a/src/main/java/com/ecep/contract/manager/ds/project/service/ProjectStringConverter.java b/server/src/main/java/com/ecep/contract/ds/project/service/ProjectStringConverter.java similarity index 77% rename from src/main/java/com/ecep/contract/manager/ds/project/service/ProjectStringConverter.java rename to server/src/main/java/com/ecep/contract/ds/project/service/ProjectStringConverter.java index 1a787e9..5dcfb84 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/service/ProjectStringConverter.java +++ b/server/src/main/java/com/ecep/contract/ds/project/service/ProjectStringConverter.java @@ -1,12 +1,14 @@ -package com.ecep.contract.manager.ds.project.service; +package com.ecep.contract.ds.project.service; -import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ds.project.model.Project; -import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; +import com.ecep.contract.model.Project; +import com.ecep.contract.util.EntityStringConverter; + +import jakarta.annotation.PostConstruct; + @Lazy @Component public class ProjectStringConverter extends EntityStringConverter { diff --git a/src/main/java/com/ecep/contract/manager/ds/project/service/ProjectTypeService.java b/server/src/main/java/com/ecep/contract/ds/project/service/ProjectTypeService.java similarity index 68% rename from src/main/java/com/ecep/contract/manager/ds/project/service/ProjectTypeService.java rename to server/src/main/java/com/ecep/contract/ds/project/service/ProjectTypeService.java index 66df993..ecb602b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/service/ProjectTypeService.java +++ b/server/src/main/java/com/ecep/contract/ds/project/service/ProjectTypeService.java @@ -1,9 +1,7 @@ -package com.ecep.contract.manager.ds.project.service; +package com.ecep.contract.ds.project.service; + +import java.util.List; -import com.ecep.contract.manager.ds.project.model.ProjectType; -import com.ecep.contract.manager.ds.project.repository.ProjectTypeRepository; -import com.ecep.contract.manager.ds.project.vo.ProjectTypeViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -16,17 +14,18 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.project.repository.ProjectTypeRepository; +import com.ecep.contract.model.ProjectType; @Lazy @Service @CacheConfig(cacheNames = "project-type") -public class ProjectTypeService implements ViewModelService { +public class ProjectTypeService implements IEntityService { @Lazy @Autowired private ProjectTypeRepository projectTypeRepository; - @Cacheable(key = "#p0") public ProjectType findById(Integer id) { return projectTypeRepository.findById(id).orElse(null); @@ -59,31 +58,26 @@ public class ProjectTypeService implements ViewModelService { return builder.or( builder.like(root.get("code"), "%" + searchText + "%"), - builder.like(root.get("name"), "%" + searchText + "%") - ); + builder.like(root.get("name"), "%" + searchText + "%")); }; } - @Caching( - evict = { - @CacheEvict(key = "#p0.id"), - @CacheEvict(key = "'all'"), - @CacheEvict(key = "'code-'+#p0.code"), - @CacheEvict(key = "'name-'+#p0.name"), - } - ) + @Caching(evict = { + @CacheEvict(key = "#p0.id"), + @CacheEvict(key = "'all'"), + @CacheEvict(key = "'code-'+#p0.code"), + @CacheEvict(key = "'name-'+#p0.name"), + }) public ProjectType save(ProjectType type) { return projectTypeRepository.save(type); } - @Caching( - evict = { - @CacheEvict(key = "#p0.id"), - @CacheEvict(key = "'all'"), - @CacheEvict(key = "'code-'+#p0.code"), - @CacheEvict(key = "'name-'+#p0.name"), - } - ) + @Caching(evict = { + @CacheEvict(key = "#p0.id"), + @CacheEvict(key = "'all'"), + @CacheEvict(key = "'code-'+#p0.code"), + @CacheEvict(key = "'name-'+#p0.name"), + }) public void delete(ProjectType type) { projectTypeRepository.delete(type); } diff --git a/src/main/java/com/ecep/contract/manager/ds/project/service/SaleTypeService.java b/server/src/main/java/com/ecep/contract/ds/project/service/SaleTypeService.java similarity index 67% rename from src/main/java/com/ecep/contract/manager/ds/project/service/SaleTypeService.java rename to server/src/main/java/com/ecep/contract/ds/project/service/SaleTypeService.java index 65415c0..78c7088 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/service/SaleTypeService.java +++ b/server/src/main/java/com/ecep/contract/ds/project/service/SaleTypeService.java @@ -1,9 +1,7 @@ -package com.ecep.contract.manager.ds.project.service; +package com.ecep.contract.ds.project.service; + +import java.util.List; -import com.ecep.contract.manager.ds.project.model.ProjectSaleType; -import com.ecep.contract.manager.ds.project.repository.ProjectSaleTypeRepository; -import com.ecep.contract.manager.ds.project.vo.SaleTypeViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -16,12 +14,14 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.project.repository.ProjectSaleTypeRepository; +import com.ecep.contract.model.ProjectSaleType; @Lazy @Service @CacheConfig(cacheNames = "sale-type") -public class SaleTypeService implements ViewModelService { +public class SaleTypeService implements IEntityService { @Lazy @Autowired private ProjectSaleTypeRepository saleTypeRepository; @@ -57,34 +57,24 @@ public class SaleTypeService implements ViewModelService { return builder.or( builder.like(root.get("code"), "%" + searchText + "%"), - builder.like(root.get("name"), "%" + searchText + "%") - ); + builder.like(root.get("name"), "%" + searchText + "%")); }; } - @Caching( - evict = { - @CacheEvict(key = "#p0.id"), - @CacheEvict(key = "'code-'+#p0.name"), - @CacheEvict(key = "'all'"), - } - ) + @Caching(evict = { + @CacheEvict(key = "#p0.id"), + @CacheEvict(key = "'code-'+#p0.name"), + @CacheEvict(key = "'all'"), + }) public ProjectSaleType save(ProjectSaleType type) { return saleTypeRepository.save(type); } - @Override - public SaleTypeViewModel from(ProjectSaleType entity) { - return SaleTypeViewModel.from(entity); - } - - @Caching( - evict = { - @CacheEvict(key = "#p0.id"), - @CacheEvict(key = "'code-'+#p0.name"), - @CacheEvict(key = "'all'"), - } - ) + @Caching(evict = { + @CacheEvict(key = "#p0.id"), + @CacheEvict(key = "'code-'+#p0.name"), + @CacheEvict(key = "'all'"), + }) public void delete(ProjectSaleType type) { saleTypeRepository.delete(type); } diff --git a/src/main/java/com/ecep/contract/manager/ds/project/state_workflow.xml b/server/src/main/java/com/ecep/contract/ds/project/state_workflow.xml similarity index 100% rename from src/main/java/com/ecep/contract/manager/ds/project/state_workflow.xml rename to server/src/main/java/com/ecep/contract/ds/project/state_workflow.xml diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendor.sql b/server/src/main/java/com/ecep/contract/ds/vendor/model/CompanyVendor.sql similarity index 100% rename from src/main/java/com/ecep/contract/manager/ds/vendor/model/CompanyVendor.sql rename to server/src/main/java/com/ecep/contract/ds/vendor/model/CompanyVendor.sql diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorApprovedFileRepository.java b/server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorApprovedFileRepository.java similarity index 65% rename from src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorApprovedFileRepository.java rename to server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorApprovedFileRepository.java index f011cae..3bb7179 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorApprovedFileRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorApprovedFileRepository.java @@ -1,11 +1,12 @@ -package com.ecep.contract.manager.ds.vendor.repository; - -import com.ecep.contract.manager.ds.MyRepository; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedFile; -import org.springframework.stereotype.Repository; +package com.ecep.contract.ds.vendor.repository; import java.util.List; +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.CompanyVendorApprovedFile; + @Repository public interface CompanyVendorApprovedFileRepository extends MyRepository { diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorApprovedItemRepository.java b/server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorApprovedItemRepository.java similarity index 72% rename from src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorApprovedItemRepository.java rename to server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorApprovedItemRepository.java index 14e7cdc..09f7a98 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorApprovedItemRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorApprovedItemRepository.java @@ -1,13 +1,14 @@ -package com.ecep.contract.manager.ds.vendor.repository; +package com.ecep.contract.ds.vendor.repository; + +import java.util.List; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedItem; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; -import java.util.List; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.CompanyVendorApprovedItem; +import com.ecep.contract.model.CompanyVendorApprovedList; /** * 合格供方名录 @@ -16,7 +17,6 @@ import java.util.List; public interface CompanyVendorApprovedItemRepository extends JpaRepository, JpaSpecificationExecutor { - List findAllByList(CompanyVendorApprovedList list); List findAllByListAndVendor(CompanyVendorApprovedList list, CompanyVendor vendor); diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorApprovedListRepository.java b/server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorApprovedListRepository.java similarity index 75% rename from src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorApprovedListRepository.java rename to server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorApprovedListRepository.java index 86680e2..e1950b1 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorApprovedListRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorApprovedListRepository.java @@ -1,10 +1,11 @@ -package com.ecep.contract.manager.ds.vendor.repository; +package com.ecep.contract.ds.vendor.repository; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; +import com.ecep.contract.model.CompanyVendorApprovedList; + /** * 合格供方名录 */ diff --git a/server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorEntityRepository.java b/server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorEntityRepository.java new file mode 100644 index 0000000..17522e4 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorEntityRepository.java @@ -0,0 +1,18 @@ +package com.ecep.contract.ds.vendor.repository; + +import java.util.List; +import java.util.Optional; + +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.CompanyVendorEntity; + +@Repository +public interface CompanyVendorEntityRepository extends MyRepository { + Optional findByCode(String code); + + List findByVendor(CompanyVendor vendor); + +} diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorFileRepository.java b/server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorFileRepository.java similarity index 70% rename from src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorFileRepository.java rename to server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorFileRepository.java index 3b8c7a2..38fc7b6 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorFileRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorFileRepository.java @@ -1,13 +1,14 @@ -package com.ecep.contract.manager.ds.vendor.repository; +package com.ecep.contract.ds.vendor.repository; + +import java.util.List; -import com.ecep.contract.manager.ds.vendor.CompanyVendorFileType; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorFile; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; -import java.util.List; +import com.ecep.contract.CompanyVendorFileType; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.CompanyVendorFile; @Repository public interface CompanyVendorFileRepository diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorFileTypeLocalRepository.java b/server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorFileTypeLocalRepository.java similarity index 62% rename from src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorFileTypeLocalRepository.java rename to server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorFileTypeLocalRepository.java index 9d51d84..f3fde62 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorFileTypeLocalRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorFileTypeLocalRepository.java @@ -1,10 +1,11 @@ -package com.ecep.contract.manager.ds.vendor.repository; +package com.ecep.contract.ds.vendor.repository; -import com.ecep.contract.manager.ds.other.repository.BaseEnumEntityRepository; -import com.ecep.contract.manager.ds.vendor.CompanyVendorFileType; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorFileTypeLocal; import org.springframework.stereotype.Repository; +import com.ecep.contract.CompanyVendorFileType; +import com.ecep.contract.ds.other.repository.BaseEnumEntityRepository; +import com.ecep.contract.model.CompanyVendorFileTypeLocal; + @Repository public interface CompanyVendorFileTypeLocalRepository extends BaseEnumEntityRepository { diff --git a/server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorRepository.java b/server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorRepository.java new file mode 100644 index 0000000..e3601b4 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/vendor/repository/CompanyVendorRepository.java @@ -0,0 +1,30 @@ +package com.ecep.contract.ds.vendor.repository; + +import java.util.List; +import java.util.Optional; + +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.VendorCatalog; + +/** + * 供应商 Repository + */ +@Repository +public interface CompanyVendorRepository extends MyRepository { + + List findAllByCatalog(VendorCatalog catalog); + + List findAllByCatalogId(Integer catalogId); + + Optional findByCompany(Company company); + + @Modifying + @Transactional + int deleteAllByCompany(Company company); +} diff --git a/server/src/main/java/com/ecep/contract/ds/vendor/repository/VendorClassRepository.java b/server/src/main/java/com/ecep/contract/ds/vendor/repository/VendorClassRepository.java new file mode 100644 index 0000000..76caa0a --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ds/vendor/repository/VendorClassRepository.java @@ -0,0 +1,13 @@ +package com.ecep.contract.ds.vendor.repository; + +import java.util.Optional; + +import org.springframework.stereotype.Repository; + +import com.ecep.contract.ds.MyRepository; +import com.ecep.contract.model.VendorCatalog; + +@Repository +public interface VendorClassRepository extends MyRepository { + Optional findByCode(String code); +} diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/VendorGroupRepository.java b/server/src/main/java/com/ecep/contract/ds/vendor/repository/VendorGroupRepository.java similarity index 71% rename from src/main/java/com/ecep/contract/manager/ds/vendor/repository/VendorGroupRepository.java rename to server/src/main/java/com/ecep/contract/ds/vendor/repository/VendorGroupRepository.java index e566ef8..174f296 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/VendorGroupRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/repository/VendorGroupRepository.java @@ -1,12 +1,12 @@ -package com.ecep.contract.manager.ds.vendor.repository; +package com.ecep.contract.ds.vendor.repository; + +import java.util.Optional; -import com.ecep.contract.manager.ds.project.model.ProjectSaleType; -import com.ecep.contract.manager.ds.vendor.model.VendorGroup; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; -import java.util.Optional; +import com.ecep.contract.model.VendorGroup; @Repository public interface VendorGroupRepository extends diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/VendorGroupRequireFileTypeRepository.java b/server/src/main/java/com/ecep/contract/ds/vendor/repository/VendorGroupRequireFileTypeRepository.java similarity index 77% rename from src/main/java/com/ecep/contract/manager/ds/vendor/repository/VendorGroupRequireFileTypeRepository.java rename to server/src/main/java/com/ecep/contract/ds/vendor/repository/VendorGroupRequireFileTypeRepository.java index 9b3f4ec..7779fec 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/VendorGroupRequireFileTypeRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/repository/VendorGroupRequireFileTypeRepository.java @@ -1,11 +1,12 @@ -package com.ecep.contract.manager.ds.vendor.repository; +package com.ecep.contract.ds.vendor.repository; + +import java.util.List; -import com.ecep.contract.manager.ds.vendor.model.VendorGroupRequireFileType; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; -import java.util.List; +import com.ecep.contract.model.VendorGroupRequireFileType; @Repository public interface VendorGroupRequireFileTypeRepository extends diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/VendorTypeLocalRepository.java b/server/src/main/java/com/ecep/contract/ds/vendor/repository/VendorTypeLocalRepository.java similarity index 60% rename from src/main/java/com/ecep/contract/manager/ds/vendor/repository/VendorTypeLocalRepository.java rename to server/src/main/java/com/ecep/contract/ds/vendor/repository/VendorTypeLocalRepository.java index 11c83d7..36e7c25 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/VendorTypeLocalRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/repository/VendorTypeLocalRepository.java @@ -1,10 +1,11 @@ -package com.ecep.contract.manager.ds.vendor.repository; +package com.ecep.contract.ds.vendor.repository; -import com.ecep.contract.manager.ds.vendor.VendorType; -import com.ecep.contract.manager.ds.vendor.model.VendorTypeLocal; -import com.ecep.contract.manager.ds.other.repository.BaseEnumEntityRepository; import org.springframework.stereotype.Repository; +import com.ecep.contract.VendorType; +import com.ecep.contract.ds.other.repository.BaseEnumEntityRepository; +import com.ecep.contract.model.VendorTypeLocal; + @Repository public interface VendorTypeLocalRepository extends BaseEnumEntityRepository { @Override diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/service/CompanyVendorApprovedFileService.java b/server/src/main/java/com/ecep/contract/ds/vendor/service/CompanyVendorApprovedFileService.java similarity index 75% rename from src/main/java/com/ecep/contract/manager/ds/vendor/service/CompanyVendorApprovedFileService.java rename to server/src/main/java/com/ecep/contract/ds/vendor/service/CompanyVendorApprovedFileService.java index 8f6ba81..62d1491 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/service/CompanyVendorApprovedFileService.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/service/CompanyVendorApprovedFileService.java @@ -1,10 +1,7 @@ -package com.ecep.contract.manager.ds.vendor.service; +package com.ecep.contract.ds.vendor.service; + +import java.util.List; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedFile; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; -import com.ecep.contract.manager.ds.vendor.repository.CompanyVendorApprovedFileRepository; -import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorApprovedFileViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.data.domain.Page; @@ -12,11 +9,14 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.vendor.repository.CompanyVendorApprovedFileRepository; +import com.ecep.contract.model.CompanyVendorApprovedFile; +import com.ecep.contract.model.CompanyVendorApprovedList; @Lazy @Service -public class CompanyVendorApprovedFileService implements ViewModelService { +public class CompanyVendorApprovedFileService implements IEntityService { @Lazy @Autowired private CompanyVendorApprovedFileRepository repository; diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/service/CompanyVendorApprovedItemService.java b/server/src/main/java/com/ecep/contract/ds/vendor/service/CompanyVendorApprovedItemService.java similarity index 77% rename from src/main/java/com/ecep/contract/manager/ds/vendor/service/CompanyVendorApprovedItemService.java rename to server/src/main/java/com/ecep/contract/ds/vendor/service/CompanyVendorApprovedItemService.java index 0af260d..462a046 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/service/CompanyVendorApprovedItemService.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/service/CompanyVendorApprovedItemService.java @@ -1,16 +1,8 @@ -package com.ecep.contract.manager.ds.vendor.service; +package com.ecep.contract.ds.vendor.service; + +import java.util.List; +import java.util.stream.Collectors; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyOldName; -import com.ecep.contract.manager.ds.company.service.CompanyOldNameService; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedItem; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; -import com.ecep.contract.manager.ds.vendor.repository.CompanyVendorApprovedItemRepository; -import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorApprovedItemViewModel; -import com.ecep.contract.manager.ui.ViewModelService; -import jakarta.persistence.criteria.Path; -import jakarta.persistence.criteria.Predicate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.data.domain.Page; @@ -19,12 +11,21 @@ import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; -import java.util.List; -import java.util.stream.Collectors; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.company.service.CompanyOldNameService; +import com.ecep.contract.ds.vendor.repository.CompanyVendorApprovedItemRepository; +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 jakarta.persistence.criteria.Path; +import jakarta.persistence.criteria.Predicate; @Lazy @Service -public class CompanyVendorApprovedItemService implements ViewModelService { +public class CompanyVendorApprovedItemService implements IEntityService { @Lazy @Autowired private CompanyVendorApprovedItemRepository repository; diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/service/CompanyVendorApprovedListService.java b/server/src/main/java/com/ecep/contract/ds/vendor/service/CompanyVendorApprovedListService.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/vendor/service/CompanyVendorApprovedListService.java rename to server/src/main/java/com/ecep/contract/ds/vendor/service/CompanyVendorApprovedListService.java index 42ebbc6..f59bdc1 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/service/CompanyVendorApprovedListService.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/service/CompanyVendorApprovedListService.java @@ -1,14 +1,13 @@ -package com.ecep.contract.manager.ds.vendor.service; +package com.ecep.contract.ds.vendor.service; -import com.ecep.contract.manager.ds.company.CompanyFileUtils; -import com.ecep.contract.manager.ds.other.service.SysConfService; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedFile; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; -import com.ecep.contract.manager.ds.vendor.repository.CompanyVendorApprovedListRepository; -import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorApprovedListViewModel; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.util.MyDateTimeUtils; +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -20,19 +19,20 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.function.Consumer; +import com.ecep.contract.IEntityService; +import com.ecep.contract.MyDateTimeUtils; +import com.ecep.contract.constant.CompanyVendorConstant; +import com.ecep.contract.ds.company.CompanyFileUtils; +import com.ecep.contract.ds.other.service.SysConfService; +import com.ecep.contract.ds.vendor.repository.CompanyVendorApprovedListRepository; +import com.ecep.contract.model.CompanyVendorApprovedFile; +import com.ecep.contract.model.CompanyVendorApprovedList; @Lazy @Service -public class CompanyVendorApprovedListService implements ViewModelService { +public class CompanyVendorApprovedListService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(CompanyVendorApprovedListService.class); - private static final String VENDOR_APPROVED_LIST_BASE_PATH = "vendor.approved.list.base.path"; @Lazy @Autowired private CompanyVendorApprovedListRepository repository; @@ -49,7 +49,7 @@ public class CompanyVendorApprovedListService implements ViewModelService findAll(Specification spec, PageRequest pageRequest) { return repository.findAll(spec, pageRequest); } diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/service/CompanyVendorEntityService.java b/server/src/main/java/com/ecep/contract/ds/vendor/service/CompanyVendorEntityService.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ds/vendor/service/CompanyVendorEntityService.java rename to server/src/main/java/com/ecep/contract/ds/vendor/service/CompanyVendorEntityService.java index 7354aec..21bc730 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/service/CompanyVendorEntityService.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/service/CompanyVendorEntityService.java @@ -1,11 +1,7 @@ -package com.ecep.contract.manager.ds.vendor.service; +package com.ecep.contract.ds.vendor.service; + +import java.util.List; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorEntity; -import com.ecep.contract.manager.ds.vendor.repository.CompanyVendorEntityRepository; -import com.ecep.contract.manager.ds.vendor.vo.VendorEntityViewModel; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.util.SpecificationUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -18,12 +14,16 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.vendor.repository.CompanyVendorEntityRepository; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.CompanyVendorEntity; +import com.ecep.contract.util.SpecificationUtils; @Lazy @Service @CacheConfig(cacheNames = "company-vendor-entity") -public class CompanyVendorEntityService implements ViewModelService { +public class CompanyVendorEntityService implements IEntityService { @Lazy @Autowired private CompanyVendorEntityRepository repository; diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/service/CompanyVendorFileService.java b/server/src/main/java/com/ecep/contract/ds/vendor/service/CompanyVendorFileService.java similarity index 87% rename from src/main/java/com/ecep/contract/manager/ds/vendor/service/CompanyVendorFileService.java rename to server/src/main/java/com/ecep/contract/ds/vendor/service/CompanyVendorFileService.java index 1e3900d..08758c4 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/service/CompanyVendorFileService.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/service/CompanyVendorFileService.java @@ -1,18 +1,11 @@ -package com.ecep.contract.manager.ds.vendor.service; +package com.ecep.contract.ds.vendor.service; + +import java.io.File; +import java.time.LocalDate; +import java.util.Comparator; +import java.util.List; +import java.util.function.Consumer; -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.service.CompanyBasicService; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.service.ContractFileService; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.vendor.CompanyVendorFileType; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorFile; -import com.ecep.contract.manager.ds.vendor.repository.CompanyVendorFileRepository; -import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorFileViewModel; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.util.MyDateTimeUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -23,16 +16,23 @@ import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; -import java.io.File; -import java.time.LocalDate; -import java.util.Comparator; -import java.util.List; -import java.util.function.Consumer; +import com.ecep.contract.CompanyVendorFileType; +import com.ecep.contract.IEntityService; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.MyDateTimeUtils; +import com.ecep.contract.SpringApp; +import com.ecep.contract.ds.company.service.CompanyBasicService; +import com.ecep.contract.ds.contract.service.ContractFileService; +import com.ecep.contract.ds.contract.service.ContractService; +import com.ecep.contract.ds.vendor.repository.CompanyVendorFileRepository; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.CompanyVendorFile; +import com.ecep.contract.model.Contract; @Lazy @Service -public class CompanyVendorFileService implements ViewModelService { +public class CompanyVendorFileService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(CompanyVendorFileService.class); @Autowired diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/service/CompanyVendorService.java b/server/src/main/java/com/ecep/contract/ds/vendor/service/CompanyVendorService.java similarity index 86% rename from src/main/java/com/ecep/contract/manager/ds/vendor/service/CompanyVendorService.java rename to server/src/main/java/com/ecep/contract/ds/vendor/service/CompanyVendorService.java index b12fbee..129a1c7 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/service/CompanyVendorService.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/service/CompanyVendorService.java @@ -1,23 +1,17 @@ -package com.ecep.contract.manager.ds.vendor.service; +package com.ecep.contract.ds.vendor.service; -import com.ecep.contract.manager.ds.company.CompanyFileUtils; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyBasicService; -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.other.model.CompanyBasicFile; -import com.ecep.contract.manager.ds.other.service.SysConfService; -import com.ecep.contract.manager.ds.vendor.CompanyVendorFileType; -import com.ecep.contract.manager.ds.vendor.VendorType; -import com.ecep.contract.manager.ds.vendor.model.*; -import com.ecep.contract.manager.ds.vendor.repository.CompanyVendorRepository; -import com.ecep.contract.manager.ds.vendor.repository.VendorClassRepository; -import com.ecep.contract.manager.ds.vendor.repository.VendorTypeLocalRepository; -import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorViewModel; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.util.MyStringUtils; -import com.ecep.contract.manager.util.SpecificationUtils; -import jakarta.persistence.criteria.Path; +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.Objects; +import java.util.Optional; +import java.util.function.Consumer; +import java.util.stream.Collectors; + +import com.ecep.contract.util.CompanyUtils; import org.hibernate.Hibernate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -33,27 +27,37 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.io.File; -import java.time.LocalDate; -import java.util.*; -import java.util.function.Consumer; -import java.util.stream.Collectors; +import com.ecep.contract.CompanyVendorFileType; +import com.ecep.contract.IEntityService; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.VendorType; +import com.ecep.contract.constant.CompanyVendorConstant; +import com.ecep.contract.ds.company.CompanyFileUtils; +import com.ecep.contract.ds.company.service.CompanyBasicService; +import com.ecep.contract.ds.other.service.SysConfService; +import com.ecep.contract.ds.vendor.repository.CompanyVendorRepository; +import com.ecep.contract.ds.vendor.repository.VendorClassRepository; +import com.ecep.contract.ds.vendor.repository.VendorTypeLocalRepository; +import com.ecep.contract.model.Company; +import com.ecep.contract.model.CompanyBasicFile; +import com.ecep.contract.model.CompanyVendor; +import com.ecep.contract.model.CompanyVendorEntity; +import com.ecep.contract.model.CompanyVendorFile; +import com.ecep.contract.model.Contract; +import com.ecep.contract.model.VendorCatalog; +import com.ecep.contract.model.VendorTypeLocal; +import com.ecep.contract.util.MyStringUtils; +import com.ecep.contract.util.SpecificationUtils; + +import jakarta.persistence.criteria.Path; @Lazy @Service -@CacheConfig(cacheNames = "company-vendor") -public class CompanyVendorService extends CompanyBasicService implements ViewModelService { +@CacheConfig(cacheNames = CompanyVendorConstant.CACHE_NAME) +public class CompanyVendorService extends CompanyBasicService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(CompanyVendorService.class); - public static final String EVALUATION_FORM_NAME1 = "评价表"; - private static final String EVALUATION_FORM_NAME2 = "评估表"; - private static final String EVALUATION_FORM_NAME3 = "评定表"; - - public static final String KEY_APPROVED_LIST_TEMPLATE = "vendor.approved.list.template"; - public static final String KEY_EVALUATION_FORM_TEMPLATE = "vendor.evaluation.form.template"; - public static final String KEY_BASE_PATH = "vendor.base.path"; - @Lazy @Autowired private CompanyVendorRepository companyVendorRepository; @@ -151,7 +155,7 @@ public class CompanyVendorService extends CompanyBasicService implements ViewMod } public File getBasePath() { - return new File(confService.getString(KEY_BASE_PATH)); + return new File(confService.getString(CompanyVendorConstant.KEY_BASE_PATH)); } /** @@ -230,9 +234,9 @@ public class CompanyVendorService extends CompanyBasicService implements ViewMod } protected boolean isEvaluationFile(String fileName) { - return fileName.contains(EVALUATION_FORM_NAME1) - || fileName.contains(EVALUATION_FORM_NAME2) - || fileName.contains(EVALUATION_FORM_NAME3); + return fileName.contains(CompanyVendorConstant.EVALUATION_FORM_NAME1) + || fileName.contains(CompanyVendorConstant.EVALUATION_FORM_NAME2) + || fileName.contains(CompanyVendorConstant.EVALUATION_FORM_NAME3); } @@ -340,7 +344,7 @@ public class CompanyVendorService extends CompanyBasicService implements ViewMod } public File getEvaluationFormTemplate() { - String path = confService.getString(KEY_EVALUATION_FORM_TEMPLATE); + String path = confService.getString(CompanyVendorConstant.KEY_EVALUATION_FORM_TEMPLATE); if (path == null) { return null; } @@ -348,7 +352,7 @@ public class CompanyVendorService extends CompanyBasicService implements ViewMod } public File getVendorApprovedListTemplate() { - String path = confService.getString(KEY_APPROVED_LIST_TEMPLATE); + String path = confService.getString(CompanyVendorConstant.KEY_APPROVED_LIST_TEMPLATE); if (path == null) { return null; } @@ -384,7 +388,7 @@ public class CompanyVendorService extends CompanyBasicService implements ViewMod } String companyName = company.getName(); - String fileName = formatCompanyVendorId(companyVendor.getId()) + "-" + CompanyFileUtils.escapeFileName(companyName); + String fileName = CompanyUtils.formatCompanyVendorId(companyVendor.getId()) + "-" + CompanyFileUtils.escapeFileName(companyName); File dir = new File(basePath, fileName); if (!dir.exists()) { @@ -458,4 +462,6 @@ public class CompanyVendorService extends CompanyBasicService implements ViewMod public long count(Specification spec) { return companyVendorRepository.count(spec); } + + } diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/service/VendorGroupRequireFileTypeService.java b/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorGroupRequireFileTypeService.java similarity index 88% rename from src/main/java/com/ecep/contract/manager/ds/vendor/service/VendorGroupRequireFileTypeService.java rename to server/src/main/java/com/ecep/contract/ds/vendor/service/VendorGroupRequireFileTypeService.java index 92a0728..a279b43 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/service/VendorGroupRequireFileTypeService.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorGroupRequireFileTypeService.java @@ -1,7 +1,7 @@ -package com.ecep.contract.manager.ds.vendor.service; +package com.ecep.contract.ds.vendor.service; + +import java.util.List; -import com.ecep.contract.manager.ds.vendor.model.VendorGroupRequireFileType; -import com.ecep.contract.manager.ds.vendor.repository.VendorGroupRequireFileTypeRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -10,7 +10,8 @@ import org.springframework.cache.annotation.Caching; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; -import java.util.List; +import com.ecep.contract.ds.vendor.repository.VendorGroupRequireFileTypeRepository; +import com.ecep.contract.model.VendorGroupRequireFileType; @Lazy @Service diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/service/VendorGroupService.java b/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorGroupService.java similarity index 68% rename from src/main/java/com/ecep/contract/manager/ds/vendor/service/VendorGroupService.java rename to server/src/main/java/com/ecep/contract/ds/vendor/service/VendorGroupService.java index 80ffcb7..07c3773 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/service/VendorGroupService.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorGroupService.java @@ -1,9 +1,7 @@ -package com.ecep.contract.manager.ds.vendor.service; +package com.ecep.contract.ds.vendor.service; + +import java.util.List; -import com.ecep.contract.manager.ds.vendor.model.VendorGroup; -import com.ecep.contract.manager.ds.vendor.repository.VendorGroupRepository; -import com.ecep.contract.manager.ds.vendor.vo.VendorGroupViewModel; -import com.ecep.contract.manager.ui.ViewModelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -15,17 +13,18 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; -import java.util.List; +import com.ecep.contract.IEntityService; +import com.ecep.contract.ds.vendor.repository.VendorGroupRepository; +import com.ecep.contract.model.VendorGroup; @Lazy @Service @CacheConfig(cacheNames = "vendor-group") -public class VendorGroupService implements ViewModelService { +public class VendorGroupService implements IEntityService { @Lazy @Autowired private VendorGroupRepository vendorGroupRepository; - @Cacheable(key = "#p0") public VendorGroup findById(Integer id) { return vendorGroupRepository.findById(id).orElse(null); @@ -54,29 +53,20 @@ public class VendorGroupService implements ViewModelService { - static class MessageHolderImpl implements MessageHolder { - List messages = new ArrayList<>(); - - @Override - public void addMessage(Level level, String message) { - Message msg = new Message(level, message); - messages.add(msg); - } - } - - public VendorVerifyAllTasker() { - updateTitle("遍历核验所有供应商"); - } - - private ContractRepairComm comm = new ContractRepairComm(); @Override protected Object execute(MessageHolder holder) { + updateTitle("遍历核验所有供应商"); Pageable pageRequest = PageRequest.ofSize(200); AtomicInteger counter = new AtomicInteger(0); Specification spec = null; @@ -73,24 +49,28 @@ public class VendorVerifyAllTasker extends Tasker { break; } MessageHolder subHolder = holder.sub(counter.get() + " / " + total + "> #" + vendor.getId() + "> "); - MessageHolderImpl messageHolder = new MessageHolderImpl(); - try { - vendorService.verify(vendor, subHolder); - String msg = messageHolder.messages.stream() - .filter(v -> v.getLevel().intValue() > Level.INFO.intValue()) - .map(Message::getMessage) - .collect(Collectors.joining(", ") - ); - if (StringUtils.hasText(msg)) { - subHolder.error(msg); + List meesages = new ArrayList<>(); + MessageHolderImpl messageHolder = new MessageHolderImpl() { + @Override + public void addMessage(Level level, String message) { + if (level.intValue() > Level.INFO.intValue()) { + meesages.add(message); + } } + }; + try { + vendorService.verify(vendor, messageHolder); + } catch (Exception e) { subHolder.error(e.getMessage()); e.printStackTrace(); } - updateProgress(counter.incrementAndGet(), total); + String msg = meesages.stream().collect(Collectors.joining(", ")); + if (StringUtils.hasText(msg)) { + subHolder.error(msg); + } } if (!page.hasNext()) { break; diff --git a/server/src/main/java/com/ecep/contract/ui/Tasker.java b/server/src/main/java/com/ecep/contract/ui/Tasker.java new file mode 100644 index 0000000..5e66ad3 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/ui/Tasker.java @@ -0,0 +1,121 @@ +package com.ecep.contract.ui; + +import java.util.HashMap; +import java.util.Locale; +import java.util.logging.Level; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeansException; + +import com.ecep.contract.Message; +import com.ecep.contract.MessageHolder; +import com.ecep.contract.SpringApp; +import com.ecep.contract.ds.company.service.CompanyService; +import com.ecep.contract.ds.other.service.EmployeeService; +import com.ecep.contract.ds.other.service.SysConfService; +import com.ecep.contract.model.Employee; + +import lombok.Getter; +import lombok.Setter; + +public abstract class Tasker implements java.util.concurrent.Callable { + private static final Logger logger = LoggerFactory.getLogger(Tasker.class); + @Setter + protected java.util.function.Predicate messageHandler; + @Setter + private java.util.function.Predicate titleHandler; + @Setter + private Locale locale = Locale.getDefault(); + private HashMap, Object> cachedMap = new HashMap<>(); + @Setter + private Employee currentUser; + @Setter + @Getter + private boolean cancelled = false; + + public SysConfService getConfService() { + return getCachedBean(SysConfService.class); + } + + public CompanyService getCompanyService() { + return getCachedBean(CompanyService.class); + } + + public EmployeeService getEmployeeService() { + return getCachedBean(EmployeeService.class); + } + + protected K getBean(Class requiredType) throws BeansException { + return SpringApp.getBean(requiredType); + } + + protected K getCachedBean(Class requiredType) { + @SuppressWarnings("unchecked") + K bean = (K) cachedMap.get(requiredType); + if (bean == null) { + bean = getBean(requiredType); + cachedMap.put(requiredType, bean); + } + return bean; + } + + public Employee getCurrentUser() { + return currentUser; + } + + @Override + public T call() throws Exception { + MessageHolderImpl holder = new MessageHolderImpl(); + try { + return execute(holder); + } catch (Exception e) { + holder.error(e.getMessage()); + logger.error(e.getMessage(), e); + throw e; + } + } + + protected abstract T execute(MessageHolder holder) throws Exception; + + protected void updateMessage(String message) { + updateMessage(Level.INFO, message); + } + + public void updateTitle(String title) { + if (titleHandler != null) { + if (titleHandler.test(title)) { + return; + } + } + updateMessage(Level.INFO, title); + } + + protected void updateMessage(Level level, String message) { + if (messageHandler != null) { + if (messageHandler.test(new Message(level, message))) { + return; + } + } + } + + /** + * 错误消息处理 + */ + public class MessageHolderImpl implements MessageHolder { + public MessageHolderImpl() { + } + + @Override + public void addMessage(Level level, String message) { + updateMessage(level, message); + } + } + + public Locale getLocale() { + return locale; + } + + public void updateProgress(double d, double total) { + } +} diff --git a/server/src/main/java/com/ecep/contract/util/AsyncUtils.java b/server/src/main/java/com/ecep/contract/util/AsyncUtils.java new file mode 100644 index 0000000..0eac368 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/util/AsyncUtils.java @@ -0,0 +1,125 @@ +package com.ecep.contract.util; + +import static com.ecep.contract.SpringApp.getBean; + +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Executor; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import java.util.function.Supplier; + +/** + * 异步任务工具类 - 提供超时处理等增强功能 + */ +public class AsyncUtils { + /** + * 执行带超时的CompletableFuture任务 + */ + public static CompletableFuture supplyAsyncWithTimeout(Supplier supplier, long timeout, TimeUnit unit) { + CompletableFuture future = CompletableFuture.supplyAsync(supplier); + return withTimeout(future, timeout, unit); + } + + /** + * 执行带超时的CompletableFuture任务,并指定线程池 + */ + public static CompletableFuture supplyAsyncWithTimeout(Supplier supplier, Executor executor, long timeout, + TimeUnit unit) { + CompletableFuture future = CompletableFuture.supplyAsync(supplier, executor); + return withTimeout(future, timeout, unit); + } + + /** + * 为已有的CompletableFuture添加超时处理 + */ + public static CompletableFuture withTimeout(CompletableFuture future, long timeout, TimeUnit unit) { + CompletableFuture timeoutFuture = new CompletableFuture<>(); + ScheduledExecutorService executor = getBean(ScheduledExecutorService.class); + ScheduledFuture schedule = executor.schedule(() -> { + TimeoutException timeoutException = new TimeoutException( + "Task timed out after " + timeout + " " + unit.name()); + timeoutFuture.completeExceptionally(timeoutException); + }, timeout, unit); + ; + + return future.applyToEither(timeoutFuture, t -> t) + .whenComplete((t, ex) -> schedule.cancel(true)); + } + + /** + * 带重试机制的CompletableFuture任务 + */ + public static CompletableFuture supplyAsyncWithRetry(Supplier supplier, int maxRetries, + long delayBetweenRetries, TimeUnit unit) { + return supplyAsyncWithRetry(supplier, maxRetries, delayBetweenRetries, unit, null); + } + + /** + * 带重试机制的CompletableFuture任务,并指定哪些异常需要重试 + */ + public static CompletableFuture supplyAsyncWithRetry( + Supplier supplier, + int maxRetries, + long delayBetweenRetries, + TimeUnit unit, + Class[] retryableExceptions) { + + CompletableFuture resultFuture = new CompletableFuture<>(); + + // 执行任务的方法 + executeWithRetry(supplier, resultFuture, 0, maxRetries, delayBetweenRetries, unit, retryableExceptions); + + return resultFuture; + } + + private static void executeWithRetry( + Supplier supplier, + CompletableFuture resultFuture, + int currentAttempt, + int maxRetries, + long delayBetweenRetries, + TimeUnit unit, + Class[] retryableExceptions) { + + CompletableFuture.supplyAsync(supplier) + .thenAccept(resultFuture::complete) + .exceptionally(ex -> { + if (currentAttempt < maxRetries && shouldRetry(ex, retryableExceptions)) { + // 延迟后重试 + try { + Thread.sleep(unit.toMillis(delayBetweenRetries)); + } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); + resultFuture.completeExceptionally(ie); + return null; + } + + // 递归调用,增加尝试次数 + executeWithRetry(supplier, resultFuture, currentAttempt + 1, + maxRetries, delayBetweenRetries, unit, retryableExceptions); + } else { + // 达到最大重试次数或异常不可重试,完成Future + resultFuture.completeExceptionally(ex); + } + return null; + }); + } + + private static boolean shouldRetry(Throwable ex, Class[] retryableExceptions) { + // 如果未指定重试异常类型,则所有异常都重试 + if (retryableExceptions == null || retryableExceptions.length == 0) { + return true; + } + + // 检查异常是否属于可重试类型 + for (Class exceptionClass : retryableExceptions) { + if (exceptionClass.isInstance(ex.getCause())) { + return true; + } + } + + return false; + } +} \ No newline at end of file diff --git a/server/src/main/java/com/ecep/contract/util/EntityStringConverter.java b/server/src/main/java/com/ecep/contract/util/EntityStringConverter.java new file mode 100644 index 0000000..09eca80 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/util/EntityStringConverter.java @@ -0,0 +1,80 @@ +package com.ecep.contract.util; + +import java.util.List; +import java.util.function.Function; + +import org.hibernate.Hibernate; + +import com.ecep.contract.model.BasedEntity; +import com.ecep.contract.model.NamedEntity; + + +public class EntityStringConverter { + + private Function initialized; + private Function fromString; + private Function formater; + private Function> suggestion; + + public String toString(T cc) { + if (cc == null) { + return "-"; + } + cc = prefixObject(cc); + return toPrettyString(cc); + } + + public T prefixObject(T cc) { + if (cc == null) { + return null; + } + if (initialized != null && !Hibernate.isInitialized(cc)) { + cc = initialized.apply(cc); + } + return cc; + } + + public String toPrettyString(T cc) { + if (formater != null) { + return formater.apply(cc); + } + if (cc == null) { + return null; + } + if (cc instanceof BasedEntity e) { + return e.toPrettyString(); + } + if (cc instanceof NamedEntity e) { + return e.getName(); + } + return cc.toString(); + } + + public T fromString(String string) { + if (fromString == null) { + return null; + } + return fromString.apply(string); + } + + public void setFromString(Function fromString) { + this.fromString = fromString; + } + + public void setInitialized(Function initialized) { + this.initialized = initialized; + } + + public void setFormater(Function formater) { + this.formater = formater; + } + + /** + * 设置自动补全的数据提供方法 + * + * @param suggestion 数据提供方法 + */ + public void setSuggestion(Function> suggestion) { + this.suggestion = suggestion; + } +} diff --git a/server/src/main/java/com/ecep/contract/util/ExcelUtils.java b/server/src/main/java/com/ecep/contract/util/ExcelUtils.java new file mode 100644 index 0000000..0714fe9 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/util/ExcelUtils.java @@ -0,0 +1,172 @@ +package com.ecep.contract.util; + +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellAddress; +import org.apache.poi.ss.util.CellRangeAddress; + +import java.time.LocalDate; + +/** + * + */ +public class ExcelUtils { + public static Row getRow(Sheet sheet, int rowIndex, boolean autoCreate) { + Row row = sheet.getRow(rowIndex); + if (row == null) { + if (autoCreate) { + return sheet.createRow(rowIndex); + } + return null; + } + return row; + } + + public static Cell getCell(Sheet sheet, String cellAddress) { + return getCell(sheet, cellAddress, false); + } + + public static Cell getCell(Sheet sheet, String cellAddress, boolean autoCreate) { + CellAddress address = new CellAddress(cellAddress); + Row row = getRow(sheet, address.getRow(), autoCreate); + if (row == null) { + return null; + } + return getCell(row, address.getColumn(), autoCreate); + } + + public static Cell getCell(Sheet sheet, int rowIndex, int columnIndex, boolean autoCreate) { + Row row = getRow(sheet, rowIndex, autoCreate); + if (row == null) { + return null; + } + return getCell(row, columnIndex, autoCreate); + } + + public static Cell getCell(Row row, int columnIndex, boolean autoCreate) { + Cell cell = row.getCell(columnIndex); + if (cell == null) { + if (autoCreate) { + return row.createCell(columnIndex); + } + return null; + } + return cell; + } + + public static String getCellValue(Sheet sheet, String cellAddress) { + Cell cell = getCell(sheet, cellAddress); + if (cell == null) { + return null; + } + return cell.getStringCellValue(); + } + + + public static Cell setCellValue(Sheet sheet, String cellAddress, String text) { + CellAddress address = new CellAddress(cellAddress); + return setCellValue(sheet, address.getRow(), address.getColumn(), text); + } + + public static Cell setCellValue(Sheet sheet, String cellAddress, double value) { + CellAddress address = new CellAddress(cellAddress); + return setCellValue(sheet, address.getRow(), address.getColumn(), value); + } + + public static Cell setCellValue(Sheet sheet, String cellAddress, LocalDate date) { + CellAddress address = new CellAddress(cellAddress); + return setCellValue(sheet, address.getRow(), address.getColumn(), date); + } + + + public static Cell setCellValue(Sheet sheet, int rowIndex, int columnIndex, String text) { + Row row = getRow(sheet, rowIndex, true); + return setCellValue(row, columnIndex, text); + } + + public static Cell setCellValue(Row row, int columnIndex, String text) { + assert row != null; + Cell cell = getCell(row, columnIndex, true); + assert cell != null; + cell.setCellValue(text); + return cell; + } + + public static Cell setCellValue(Sheet sheet, int rowIndex, int columnIndex, double value) { + Row row = getRow(sheet, rowIndex, true); + return setCellValue(row, columnIndex, value); + } + + public static Cell setCellValue(Row row, int columnIndex, double value) { + assert row != null; + Cell cell = getCell(row, columnIndex, true); + assert cell != null; + cell.setCellValue(value); + return cell; + } + + public static Cell setCellValue(Sheet sheet, int rowIndex, int columnIndex, LocalDate date) { + Row row = getRow(sheet, rowIndex, true); + assert row != null; + return setCellValue(row, columnIndex, date); + } + + public static Cell setCellValue(Row row, int columnIndex, LocalDate date) { + assert row != null; + Cell cell = getCell(row, columnIndex, true); + assert cell != null; + cell.setCellValue(date); + return cell; + } + + public static Cell setCellValue(Sheet sheet, int rowIndex, int columnIndex, Double value) { + Row row = getRow(sheet, rowIndex, true); + assert row != null; + Cell cell = getCell(row, columnIndex, true); + assert cell != null; + if (value == null) { + cell.setBlank(); + } else { + cell.setCellValue(value); + } + return cell; + } + + public static void setBorder(CellStyle cellStyle, BorderStyle borderStyle) { + cellStyle.setBorderTop(borderStyle); + cellStyle.setBorderBottom(borderStyle); + cellStyle.setBorderLeft(borderStyle); + cellStyle.setBorderRight(borderStyle); + } + + public static void mergedCells(Sheet sheet, String address) { + CellRangeAddress cellAddresses = CellRangeAddress.valueOf(address); + sheet.addMergedRegion(cellAddresses); + } + + public static void mergedCells(Cell cell, int rows, int cols) { + Sheet sheet = cell.getSheet(); + CellRangeAddress region = new CellRangeAddress(cell.getRowIndex(), cell.getRowIndex() + rows, cell.getColumnIndex(), cell.getColumnIndex() + cols); + sheet.addMergedRegion(region); + } + + public static void copyStyle(Sheet source, String sourceCellAddress, Sheet target, String targetCellAddress) { + Cell sourceCell = getCell(source, sourceCellAddress); + Cell targetCell = getCell(target, targetCellAddress); + copyStyle(sourceCell, targetCell); + } + + public static void copyStyle(Sheet source, String sourceCellAddress, Cell targetCell) { + Cell sourceCell = getCell(source, sourceCellAddress); + copyStyle(sourceCell, targetCell); + } + + public static void copyStyle(Cell source, Cell target) { + if (source == null) { + return; + } + if (target == null) { + return; + } + target.setCellStyle(source.getCellStyle()); + } +} diff --git a/server/src/main/java/com/ecep/contract/util/HibernateUtils.java b/server/src/main/java/com/ecep/contract/util/HibernateUtils.java new file mode 100644 index 0000000..75e434b --- /dev/null +++ b/server/src/main/java/com/ecep/contract/util/HibernateUtils.java @@ -0,0 +1,40 @@ +package com.ecep.contract.util; + +import java.beans.PropertyDescriptor; +import java.lang.reflect.InvocationTargetException; +import java.util.Optional; + +import org.hibernate.Hibernate; +import org.springframework.beans.BeanUtils; +import org.springframework.data.repository.CrudRepository; + +import com.ecep.contract.SpringApp; + +public class HibernateUtils { + /** + * @param bean + * @param repositoryClass + * @param + * @param + * @return + */ + public static T initialize( + T bean, + Class> repositoryClass + ) { + if (Hibernate.isInitialized(bean)) { + return bean; + } + PropertyDescriptor idDescriptor = BeanUtils.getPropertyDescriptor(bean.getClass(), "id"); + if (idDescriptor != null) { + try { + ID id = (ID) idDescriptor.getReadMethod().invoke(bean); + return SpringApp.getBean(repositoryClass).findById(id).orElse(bean); + } catch (IllegalAccessException | InvocationTargetException e) { + throw new RuntimeException(e); + } + } + return bean; + } + +} diff --git a/server/src/main/java/com/ecep/contract/util/MonitoredTask.java b/server/src/main/java/com/ecep/contract/util/MonitoredTask.java new file mode 100644 index 0000000..dac6a98 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/util/MonitoredTask.java @@ -0,0 +1,193 @@ +package com.ecep.contract.util; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ecep.contract.Message; +import com.ecep.contract.SpringApp; +import com.ecep.contract.TaskStatus; +import com.ecep.contract.ui.Tasker; + +import lombok.Getter; +import lombok.Setter; + +/** + * 被监控的任务包装类 + */ +public class MonitoredTask implements Runnable { + private static final Logger logger = LoggerFactory.getLogger(MonitoredTask.class); + private final Tasker delegate; + private CompletableFuture future; + @Getter + private final String taskId; + @Getter + private final long startTime; + @Getter + private long endTime = 0; + @Setter + private Long timeoutSeconds; + private ScheduledFuture timeoutExecutor; + @Getter + private String title; + private List messages = new ArrayList<>(); + @Getter + private TaskStatus state = null; + @Getter + private Throwable exception = null; + private Runnable succeededProperty = null; + private Runnable failedProperty = null; + private Runnable cancelledHandler = null; + private AtomicBoolean timeoutHandled = new AtomicBoolean(false); + + public MonitoredTask(Tasker delegate, String taskId) { + this.delegate = delegate; + this.taskId = taskId; + this.startTime = System.currentTimeMillis(); + delegate.setMessageHandler(this::messageHandler); + delegate.setTitleHandler(this::titleHandler); + } + + private boolean messageHandler(Message message) { + messages.add(message); + return true; + } + + private boolean titleHandler(String title) { + this.title = title; + return true; + } + + public List getMessages() { + return messages; + } + + @Override + public void run() { + if (logger.isDebugEnabled()) { + logger.debug("任务 {} 开始执行", taskId); + } + state = TaskStatus.RUNNING; + future = CompletableFuture.supplyAsync(this::callDelegate); + future.whenComplete((result, ex) -> { + endTime = System.currentTimeMillis(); + if (ex != null) { + exception = ex; + state = TaskStatus.FAILED; + if (logger.isDebugEnabled()) { + logger.debug("任务 {} 执行异常", taskId, ex); + } + if (failedProperty != null) { + failedProperty.run(); + } + return; + } + state = TaskStatus.SUCCEEDED; + if (logger.isDebugEnabled()) { + logger.debug("任务 {} 执行完成", taskId); + } + if (succeededProperty != null) { + succeededProperty.run(); + } + + }); + } + + private T callDelegate() { + // 设置超时监控 + if (timeoutSeconds != null) { + setupTimeoutMonitor(); + } + try { + return delegate.call(); + } catch (Exception e) { + throw new RuntimeException(e); + } finally { + // 取消超时监控 + if (timeoutExecutor != null) { + timeoutExecutor.cancel(true); + } + } + } + + /** + * 设置超时监控 + */ + private void setupTimeoutMonitor() { + timeoutExecutor = getExecutorService().schedule(() -> { + if (isRunning() && timeoutHandled.compareAndSet(false, true)) { + updateMessage("任务执行超时,正在取消..."); + state = TaskStatus.TIMED_OUT; + future.cancel(true); + } + }, timeoutSeconds, TimeUnit.SECONDS); + } + + public boolean isRunning() { + return state == TaskStatus.RUNNING; + } + + public void submit() { + getExecutorService().submit(this); + } + + public ScheduledFuture schedule(long delay, TimeUnit unit) { + ScheduledFuture schedule = getExecutorService().schedule(this, delay, unit); + state = TaskStatus.DELAYED; + return schedule; + } + + private void updateMessage(String string) { + this.messageHandler(Message.info(string)); + } + + public boolean cancel() { + if (future != null && future.cancel(true)) { + delegate.setCancelled(true); + state = TaskStatus.CANCELLED; + if (cancelledHandler != null) { + cancelledHandler.run(); + } + return true; + } + return false; + } + + /** + * 获取任务执行耗时 + */ + public long getExecutionTime() { + if (endTime == 0) { + return System.currentTimeMillis() - startTime; + } + return endTime - startTime; + } + + public void setTimeout(Long timeoutSeconds2) { + this.timeoutSeconds = timeoutSeconds2; + } + + ScheduledExecutorService getExecutorService() { + return SpringApp.getBean(ScheduledExecutorService.class); + } + + public void setOnSucceeded(Runnable runnable) { + succeededProperty = runnable; + } + + public void setOnCancelled(Runnable runnable) { + cancelledHandler = runnable; + } + + public void setOnFailed(Runnable runnable) { + failedProperty = runnable; + } + +} \ No newline at end of file diff --git a/server/src/main/java/com/ecep/contract/util/NumberStringConverter.java b/server/src/main/java/com/ecep/contract/util/NumberStringConverter.java new file mode 100644 index 0000000..41effd0 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/util/NumberStringConverter.java @@ -0,0 +1,89 @@ +package com.ecep.contract.util; + +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; +import java.text.NumberFormat; +import java.text.ParseException; +import java.util.Locale; + +public class NumberStringConverter { + final Locale locale; + final String pattern; + final NumberFormat numberFormat; + + public NumberStringConverter() { + this(Locale.getDefault()); + } + + public NumberStringConverter(Locale locale) { + this(locale, null); + } + + public NumberStringConverter(String pattern) { + this(Locale.getDefault(), pattern); + } + + public NumberStringConverter(Locale locale, String pattern) { + this(locale, pattern, null); + } + + public NumberStringConverter(NumberFormat numberFormat) { + this(null, null, numberFormat); + } + + NumberStringConverter(Locale locale, String pattern, NumberFormat numberFormat) { + this.locale = locale; + this.pattern = pattern; + this.numberFormat = numberFormat; + } + + public Number fromString(String value) { + try { + // If the specified value is null or zero-length, return null + if (value == null) { + return null; + } + + value = value.trim(); + + if (value.length() < 1) { + return null; + } + + // Create and configure the parser to be used + NumberFormat parser = getNumberFormat(); + + // Perform the requested parsing + return parser.parse(value); + } catch (ParseException ex) { + throw new RuntimeException(ex); + } + } + + public String toString(Number value) { + // If the specified value is null, return a zero-length String + if (value == null) { + return ""; + } + + // Create and configure the formatter to be used + NumberFormat formatter = getNumberFormat(); + + // Perform the requested formatting + return formatter.format(value); + } + + @Deprecated(forRemoval = true, since = "22") + protected NumberFormat getNumberFormat() { + Locale _locale = locale == null ? Locale.getDefault() : locale; + + if (numberFormat != null) { + return numberFormat; + } else if (pattern != null) { + DecimalFormatSymbols symbols = new DecimalFormatSymbols(_locale); + return new DecimalFormat(pattern, symbols); + } else { + return NumberFormat.getNumberInstance(_locale); + } + } +} diff --git a/src/main/java/com/ecep/contract/manager/util/SpecificationUtils.java b/server/src/main/java/com/ecep/contract/util/SpecificationUtils.java similarity index 97% rename from src/main/java/com/ecep/contract/manager/util/SpecificationUtils.java rename to server/src/main/java/com/ecep/contract/util/SpecificationUtils.java index 90c4182..91e476b 100644 --- a/src/main/java/com/ecep/contract/manager/util/SpecificationUtils.java +++ b/server/src/main/java/com/ecep/contract/util/SpecificationUtils.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.util; +package com.ecep.contract.util; import org.springframework.data.jpa.domain.Specification; import org.springframework.util.StringUtils; diff --git a/server/src/main/java/com/ecep/contract/util/TaskHistory.java b/server/src/main/java/com/ecep/contract/util/TaskHistory.java new file mode 100644 index 0000000..7c4e481 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/util/TaskHistory.java @@ -0,0 +1,71 @@ +package com.ecep.contract.util; + +import java.io.StringWriter; +import java.util.ArrayList; +import java.util.List; + +import com.ecep.contract.Message; +import com.ecep.contract.TaskStatus; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 任务历史记录 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class TaskHistory { + private String taskId; + private String title; + private TaskStatus status; + private long startTime; + private long endTime; + private String errorMessage; + private List messages; + + /** + * 获取任务执行耗时(毫秒) + */ + public long getExecutionTime() { + return endTime - startTime; + } + + /** + * 获取格式化的执行耗时 + */ + public String getFormattedExecutionTime() { + long ms = getExecutionTime(); + if (ms < 1000) { + return ms + "ms"; + } else if (ms < 60000) { + return String.format("%.2fs", ms / 1000.0); + } else { + return String.format("%dm %.2fs", ms / 60000, (ms % 60000) / 1000.0); + } + } + + public TaskHistory(MonitoredTask task, TaskStatus status2, long timeMillis, Object object) { + this.taskId = task.getTaskId(); + this.title = task.getTitle(); + this.status = status2; + this.startTime = task.getStartTime(); + this.endTime = timeMillis; + this.messages = new ArrayList<>(task.getMessages()); + + if (object == null) { + if (task.getException() != null) { + // 打印异常栈 到 字符串 + StringWriter sw = new StringWriter(); + task.getException().printStackTrace(new java.io.PrintWriter(sw)); + String exceptionStack = sw.toString(); + setErrorMessage(exceptionStack); + } + } else { + setErrorMessage(object.toString()); + + } + } +} diff --git a/server/src/main/java/com/ecep/contract/util/TaskMonitorCenter.java b/server/src/main/java/com/ecep/contract/util/TaskMonitorCenter.java new file mode 100644 index 0000000..7457a16 --- /dev/null +++ b/server/src/main/java/com/ecep/contract/util/TaskMonitorCenter.java @@ -0,0 +1,146 @@ +package com.ecep.contract.util; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.atomic.AtomicInteger; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +import com.ecep.contract.SpringApp; +import com.ecep.contract.TaskStatus; +import com.ecep.contract.ui.Tasker; + +import lombok.Getter; + +/** + * 任务监控中心 - 统一管理所有异步任务 + */ +@Component +public class TaskMonitorCenter { + private static final Logger logger = LoggerFactory.getLogger(TaskMonitorCenter.class); + + // 正在运行的任务列表 + @Getter + private final List> activeTasks = new ArrayList<>(); + // 任务ID映射 + private final Map> taskMap = new ConcurrentHashMap<>(); + // 任务计数器 + private final AtomicInteger taskCounter = new AtomicInteger(0); + /** + * 注册并启动任务 + */ + public MonitoredTask registerTask(Tasker task) { + return registerTask(task, null); + } + + /** + * 注册并启动任务,支持设置超时时间 + */ + public MonitoredTask registerTask(Tasker task, Long timeoutSeconds) { + String taskId = generateTaskId(); + MonitoredTask monitoredTask = new MonitoredTask<>(task, taskId); + + // 设置超时处理 + if (timeoutSeconds != null && timeoutSeconds > 0) { + monitoredTask.setTimeout(timeoutSeconds); + } + + // 添加任务状态变更监听器 + monitoredTask.setOnSucceeded(() -> { + if (logger.isInfoEnabled()) { + logger.info("任务[{}]执行成功: {}", taskId, monitoredTask.getTitle()); + } + recordHistory(monitoredTask, TaskStatus.SUCCEEDED); + removeActiveTask(monitoredTask); + }); + + monitoredTask.setOnFailed(() -> { + if (logger.isErrorEnabled()) { + logger.error("任务[{}]执行失败: {}", taskId, monitoredTask.getTitle(), + monitoredTask.getException()); + } + recordHistory(monitoredTask, TaskStatus.FAILED); + removeActiveTask(monitoredTask); + }); + + monitoredTask.setOnCancelled(() -> { + if (logger.isInfoEnabled()) { + logger.info("任务[{}]被取消: {}", taskId, monitoredTask.getTitle()); + } + recordHistory(monitoredTask, TaskStatus.CANCELLED); + removeActiveTask(monitoredTask); + }); + + // 保存任务引用并启动 + taskMap.put(taskId, monitoredTask); + activeTasks.add(monitoredTask); + + if (logger.isInfoEnabled()) { + logger.info("任务[{}]已注册并启动: {}", taskId, monitoredTask.getTitle()); + } + return monitoredTask; + } + + /** + * 取消任务 + */ + public boolean cancelTask(String taskId) { + MonitoredTask task = taskMap.get(taskId); + if (task != null && task.isRunning()) { + task.cancel(); + return true; + } + return false; + } + + /** + * 取消所有任务 + */ + public void cancelAllTasks() { + for (MonitoredTask task : new ArrayList<>(activeTasks)) { + task.cancel(); + } + } + + /** + * 从活动列表中移除任务 + */ + private void removeActiveTask(MonitoredTask task) { + activeTasks.remove(task); + taskMap.remove(task.getTaskId()); + } + + /** + * 记录任务历史 + */ + private void recordHistory(MonitoredTask task, TaskStatus status) { + TaskHistory history = new TaskHistory( + task, + status, + System.currentTimeMillis(), null); + + // saved in db + } + + /** + * 生成任务ID + */ + private String generateTaskId() { + return "task-" + UUID.randomUUID().toString().substring(0, 8) + "-" + taskCounter.incrementAndGet(); + } + + public void registerAndStartTask(Tasker task) { + MonitoredTask registerTask = registerTask(task); + getExecutorService().submit(registerTask); + } + + ScheduledExecutorService getExecutorService() { + return SpringApp.getBean(ScheduledExecutorService.class); + } +} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/util/TaxRateUtils.java b/server/src/main/java/com/ecep/contract/util/TaxRateUtils.java similarity index 98% rename from src/main/java/com/ecep/contract/manager/util/TaxRateUtils.java rename to server/src/main/java/com/ecep/contract/util/TaxRateUtils.java index dd51776..0f48ea3 100644 --- a/src/main/java/com/ecep/contract/manager/util/TaxRateUtils.java +++ b/server/src/main/java/com/ecep/contract/util/TaxRateUtils.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.util; +package com.ecep.contract.util; import java.time.LocalDate; import java.time.LocalDateTime; diff --git a/src/main/resources/application.properties b/server/src/main/resources/application.properties similarity index 73% rename from src/main/resources/application.properties rename to server/src/main/resources/application.properties index 653a096..99fc3d5 100644 --- a/src/main/resources/application.properties +++ b/server/src/main/resources/application.properties @@ -26,9 +26,22 @@ spring.data.jpa.repositories.enabled=true spring.lifecycle.performance.enabled=true # my.downloadsPath = C:\\Users\\SQQ\\Downloads\\ +spring.data.redis.host=10.84.209.229 +spring.data.redis.database=3 logging.level.org.hibernate.tool.hbm2ddl=DEBUG # 在application.properties中添加 logging.level.org.springframework.boot.context.metrics.buffering=DEBUG -logging.level.com.ecep.contract.manager.SpringApp=DEBUG \ No newline at end of file +logging.level.com.ecep.contract.manager.SpringApp=DEBUG + +# Redis缓存配置 +spring.cache.type=redis +spring.cache.redis.time-to-live=6h +spring.cache.redis.key-prefix=contract_manager_ +spring.cache.redis.use-key-prefix=true +spring.cache.redis.cache-null-values=false + +# Redis序列化配置 +spring.data.redis.serializer.key=org.springframework.data.redis.serializer.StringRedisSerializer +spring.data.redis.serializer.value=org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer \ No newline at end of file diff --git a/src/main/resources/logback.xml b/server/src/main/resources/logback.xml similarity index 90% rename from src/main/resources/logback.xml rename to server/src/main/resources/logback.xml index 4f67896..f0d50f9 100644 --- a/src/main/resources/logback.xml +++ b/server/src/main/resources/logback.xml @@ -1,5 +1,9 @@ + + + + UTF-8 diff --git a/src/main/resources/messages.properties b/server/src/main/resources/messages.properties similarity index 100% rename from src/main/resources/messages.properties rename to server/src/main/resources/messages.properties diff --git a/src/main/resources/messages_zh_CN.properties b/server/src/main/resources/messages_zh_CN.properties similarity index 100% rename from src/main/resources/messages_zh_CN.properties rename to server/src/main/resources/messages_zh_CN.properties diff --git a/server/src/main/resources/static/login.html b/server/src/main/resources/static/login.html new file mode 100644 index 0000000..276cbcf --- /dev/null +++ b/server/src/main/resources/static/login.html @@ -0,0 +1,111 @@ + + + + + + 合同管理系统 - 登录 + + + + + + \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/cloud/CloudInfoViewModel.java b/src/main/java/com/ecep/contract/manager/cloud/CloudInfoViewModel.java deleted file mode 100644 index d9f9337..0000000 --- a/src/main/java/com/ecep/contract/manager/cloud/CloudInfoViewModel.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.ecep.contract.manager.cloud; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import javafx.beans.property.SimpleIntegerProperty; -import javafx.beans.property.SimpleObjectProperty; -import javafx.beans.property.SimpleStringProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.time.*; -import java.util.Objects; - -/** - * 云信息 - */ -@EqualsAndHashCode(callSuper = false) -@Data -public class CloudInfoViewModel extends IdentityViewModel { - - /** - * 云端Id - */ - private SimpleStringProperty cloudId = new SimpleStringProperty(); - /** - * 公司 - */ - private SimpleObjectProperty company = new SimpleObjectProperty<>(); - /** - * 最后更新日期 - */ - private SimpleObjectProperty latest = new SimpleObjectProperty<>(); - /** - * Version - */ - private SimpleIntegerProperty version = new SimpleIntegerProperty(); - - @Override - protected void updateFrom(V info) { - super.updateFrom(info); - cloudId.set(info.getCloudId()); - company.set(info.getCompany()); - - if (info.getLatestUpdate() != null) { - ZoneId zone = ZoneId.systemDefault(); - ZonedDateTime zonedDateTime = info.getLatestUpdate().atZone(zone); - LocalDateTime localDateTime = zonedDateTime.toLocalDateTime(); - latest.set(localDateTime); - } else { - latest.set(null); - } - version.set(info.getVersion()); - } - - @Override - public boolean copyTo(V info) { - boolean changed = super.copyTo(info); - - if (!Objects.equals(cloudId.get(), info.getCloudId())) { - info.setCloudId(cloudId.get()); - changed = true; - } - - Instant latestUpdate = null; - LocalDateTime latestUpdateDateTime = latest.get(); - if (latestUpdateDateTime != null) { - latestUpdate = latestUpdateDateTime.toInstant(ZoneOffset.ofHours(8)); - } - if (!Objects.equals(latestUpdate, info.getLatestUpdate())) { - info.setLatestUpdate(latestUpdate); - changed = true; - } - return changed; - } - - -} - - diff --git a/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkDataRepairTask.java b/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkDataRepairTask.java deleted file mode 100644 index 11d6a5a..0000000 --- a/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkDataRepairTask.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.ecep.contract.manager.cloud.rk; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; -import lombok.Setter; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; - -/** - * 数据修复任务 - */ -public class CloudRkDataRepairTask extends Tasker { - @Setter - private int batchSize = 50; - - @Override - protected Object execute(MessageHolder holder) { - CompanyService companyService = getBean(CompanyService.class); - CloudRkService cloudRkService = getBean(CloudRkService.class); - - Pageable pageRequest = PageRequest.ofSize(batchSize); - while (!isCancelled()) { - Page page = companyService.findAll(null, pageRequest); - int index = page.getNumber() * page.getSize(); - - int i = 1; - for (Company company : page) { - if (isCancelled()) { - break; - } - - String prefix = (index + i) + "/" + page.getTotalElements() + ", " + company.getName() + "> "; - - cloudRkService.getOrCreateCloudRk(company); - holder.info(prefix + " 完成"); - - updateProgress(index + i, page.getTotalElements()); - i++; - } - if (!page.hasNext()) { - break; - } - pageRequest = page.nextPageable(); - - } - if (isCancelled()) { - updateMessage("Cancelled"); - } - - return null; - } -} diff --git a/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkInfoViewModel.java b/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkInfoViewModel.java deleted file mode 100644 index 779f94d..0000000 --- a/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkInfoViewModel.java +++ /dev/null @@ -1,172 +0,0 @@ -package com.ecep.contract.manager.cloud.rk; - -import java.time.Instant; -import java.time.LocalDateTime; -import java.time.ZoneId; -import java.time.ZonedDateTime; -import java.util.Objects; - -import com.ecep.contract.manager.cloud.CloudInfoViewModel; -import com.ecep.contract.manager.ui.util.MyDateTimePropertyUtils; - -import javafx.beans.property.SimpleBooleanProperty; -import javafx.beans.property.SimpleIntegerProperty; -import javafx.beans.property.SimpleObjectProperty; -import javafx.beans.property.SimpleStringProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -@Data -@EqualsAndHashCode(callSuper = false) -public class CloudRkInfoViewModel extends CloudInfoViewModel { - private SimpleBooleanProperty autoUpdate = new SimpleBooleanProperty(); - - private SimpleStringProperty rank = new SimpleStringProperty(); - private SimpleStringProperty rankDescription = new SimpleStringProperty(); - - - private SimpleStringProperty customerGrade = new SimpleStringProperty(); - private SimpleIntegerProperty customerScore = new SimpleIntegerProperty(); - private SimpleStringProperty customerDescription = new SimpleStringProperty(); - - private SimpleStringProperty vendorGrade = new SimpleStringProperty(); - private SimpleIntegerProperty vendorScore = new SimpleIntegerProperty(); - private SimpleStringProperty vendorDescription = new SimpleStringProperty(); - - private SimpleObjectProperty cloudLatest = new SimpleObjectProperty<>(); - private SimpleObjectProperty cloudBlackListUpdated = new SimpleObjectProperty<>(); - private SimpleObjectProperty cloudEntUpdate = new SimpleObjectProperty<>(); - - private SimpleStringProperty description = new SimpleStringProperty(); - - @Override - protected void updateFrom(CloudRk info) { - super.updateFrom(info); - update_((CloudRk) info); - } - - private void update_(CloudRk info) { - autoUpdate.set(info.isAutoUpdate()); - rank.set(info.getRank()); - rankDescription.set(info.getRankDescription()); - - customerGrade.set(info.getCustomerGrade()); - customerScore.set(info.getCustomerScore()); - customerDescription.set(info.getCustomerDescription()); - - vendorGrade.set(info.getVendorGrade()); - vendorScore.set(info.getVendorScore()); - vendorDescription.set(info.getVendorDescription()); - - description.set(info.getDescription()); - - if (info.getCloudLatest() != null) { - ZoneId zone = ZoneId.systemDefault(); - ZonedDateTime zonedDateTime = info.getCloudLatest().atZone(zone); - LocalDateTime localDateTime = zonedDateTime.toLocalDateTime(); - cloudLatest.set(localDateTime); - } else { - cloudLatest.set(null); - } - - if (info.getCloudBlackListUpdated() != null) { - ZoneId zone = ZoneId.systemDefault(); - ZonedDateTime zonedDateTime = info.getCloudBlackListUpdated().atZone(zone); - LocalDateTime localDateTime = zonedDateTime.toLocalDateTime(); - cloudBlackListUpdated.set(localDateTime); - } else { - cloudBlackListUpdated.set(null); - } - - if (info.getCloudEntUpdate() != null) { - ZoneId zone = ZoneId.systemDefault(); - ZonedDateTime zonedDateTime = info.getCloudEntUpdate().atZone(zone); - LocalDateTime localDateTime = zonedDateTime.toLocalDateTime(); - cloudEntUpdate.set(localDateTime); - } else { - cloudEntUpdate.set(null); - } - } - - @Override - public boolean copyTo(CloudRk info) { - boolean modified = super.copyTo(info); - if (copyTo_((CloudRk) info)) { - modified = true; - } - return modified; - } - - private boolean copyTo_(CloudRk info) { - boolean modified = false; - if (info.isAutoUpdate() != autoUpdate.get()) { - info.setAutoUpdate(autoUpdate.get()); - modified = true; - } - - if (!Objects.equals(info.getRank(), rank.get())) { - info.setRank(rank.get()); - modified = true; - } - if (!Objects.equals(info.getRankDescription(), rankDescription.get())) { - info.setRankDescription(rankDescription.get()); - modified = true; - } - if (!Objects.equals(info.getCustomerGrade(), customerGrade.get())) { - info.setCustomerGrade(customerGrade.get()); - modified = true; - } - if (!Objects.equals(info.getCustomerScore(), customerScore.get())) { - info.setCustomerScore(customerScore.get()); - modified = true; - } - if (!Objects.equals(info.getCustomerDescription(), customerDescription.get())) { - info.setCustomerDescription(customerDescription.get()); - modified = true; - } - if (!Objects.equals(info.getVendorGrade(), vendorGrade.get())) { - info.setVendorGrade(vendorGrade.get()); - modified = true; - } - if (!Objects.equals(info.getVendorScore(), vendorScore.get())) { - info.setVendorScore(vendorScore.get()); - modified = true; - } - if (!Objects.equals(info.getVendorDescription(), vendorDescription.get())) { - info.setVendorDescription(vendorDescription.get()); - modified = true; - } - - Instant latest = MyDateTimePropertyUtils.localDateTimeToInstant(cloudLatest); - if (!Objects.equals(info.getCloudLatest(), latest)) { - info.setCloudLatest(latest); - modified = true; - } - - Instant blackListUpdated = MyDateTimePropertyUtils.localDateTimeToInstant(cloudBlackListUpdated); - if (!Objects.equals(info.getCloudBlackListUpdated(), blackListUpdated)) { - info.setCloudBlackListUpdated(blackListUpdated); - modified = true; - } - - if (!Objects.equals(info.getDescription(), description.get())) { - info.setDescription(description.get()); - modified = true; - } - - Instant entUpdated = MyDateTimePropertyUtils.localDateTimeToInstant(cloudEntUpdate); - if (!Objects.equals(info.getCloudEntUpdate(), entUpdated)) { - info.setCloudEntUpdate(entUpdated); - modified = true; - } - return modified; - } - - public static CloudRkInfoViewModel from(CloudRk info) { - CloudRkInfoViewModel viewModel = new CloudRkInfoViewModel(); - viewModel.updateFrom(info); - return viewModel; - } - - -} diff --git a/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkManagerWindowController.java b/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkManagerWindowController.java deleted file mode 100644 index 75728af..0000000 --- a/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkManagerWindowController.java +++ /dev/null @@ -1,160 +0,0 @@ -package com.ecep.contract.manager.cloud.rk; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.cloud.CloudBaseInfo; -import com.ecep.contract.manager.cloud.CloudInfo; -import com.ecep.contract.manager.cloud.tyc.CloudTyc; -import com.ecep.contract.manager.cloud.tyc.CloudTycService; -import com.ecep.contract.manager.cloud.u8.CloudYu; -import com.ecep.contract.manager.cloud.u8.YongYouU8Service; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ui.AbstManagerWindowController; -import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.Message; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.util.UITools; -import javafx.concurrent.Task; -import javafx.event.ActionEvent; -import javafx.scene.control.TableColumn; -import javafx.stage.WindowEvent; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -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 java.time.LocalDateTime; -import java.util.Objects; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ScheduledExecutorService; -import java.util.function.Consumer; - -@Lazy -@Scope("prototype") -@Component -@FxmlPath("/ui/cloud/rk_manager.fxml") -public class CloudRkManagerWindowController - extends AbstManagerWindowController { - private static final Logger logger = LoggerFactory.getLogger(CloudRkManagerWindowController.class); - - public static void show() { - show(CloudRkManagerWindowController.class, null); - } - - @Autowired - private CloudRkService cloudRkService; - - public TableColumn idColumn; - public TableColumn latestUpdateColumn; - - public TableColumn companyColumn; - public TableColumn cloudIdColumn; - public TableColumn cloudLatestColumn; - public TableColumn cloudBlackListUpdatedColumn; - public TableColumn cloudEntUpdateColumn; - public TableColumn autoUpdateColumn; - public TableColumn descriptionColumn; - - - @Override - protected CloudRkManagerSkin createDefaultSkin() { - return new CloudRkManagerSkin(this); - } - - @Override - public void onShown(WindowEvent windowEvent) { - super.onShown(windowEvent); - 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; - } - - /** - * 数据迁移,从 CloudInfo 迁移到 CloudRk - */ - public void onDateTransferAction(ActionEvent event) { - - CompletableFuture.runAsync(() -> { - com.ecep.contract.manager.cloud.CloudInfoRepository cloudInfoRepository = SpringApp.getBean(com.ecep.contract.manager.cloud.CloudInfoRepository.class); - CloudTycService tycService = SpringApp.getBean(CloudTycService.class); - YongYouU8Service u8Service = SpringApp.getBean(YongYouU8Service.class); - - cloudInfoRepository.findAll().forEach(v -> { - try { - CloudRk cloudRk = cloudRkService.getOrCreateCloudRk(v); - if (copyTo(v, cloudRk)) { - cloudRkService.save(cloudRk); - } - - CloudTyc cloudTyc = tycService.getOrCreateCloudTyc(v); - if (copyTo(v, cloudTyc)) { - tycService.save(cloudTyc); - } - - CloudYu cloudYu = u8Service.getOrCreateCloudYu(v); - if (copyTo(v, cloudYu)) { - u8Service.save(cloudYu); - } - } catch (Exception e) { - e.printStackTrace(); - } - }); - - }); - } - - - private void initializeTask(Task task, String prefix, Consumer consumer) { - task.setOnScheduled(e -> { - consumer.accept("正在从相关方平台同步" + prefix + ",请稍后..."); - }); - task.setOnRunning(e -> { - consumer.accept("开始" + prefix + "..."); - }); - task.setOnSucceeded(e -> { - consumer.accept(prefix + "完成..."); - }); - task.exceptionProperty().addListener((observable, oldValue, newValue) -> { - consumer.accept(newValue.getMessage()); - logger.error("{} 发生异常", prefix, newValue); - }); - SpringApp.getBean(ScheduledExecutorService.class).submit(task); - consumer.accept("任务已创建..."); - } - - public void onDataRepairAction(ActionEvent event) { - CloudRkDataRepairTask task = new CloudRkDataRepairTask(); - task.titleProperty().get(); - UITools.showTaskDialogAndWait("修复数据", task, null); - } - - public void onSyncAction(ActionEvent event) { - CloudRkSyncTask task = new CloudRkSyncTask(); - UITools.showTaskDialogAndWait("同步数据", task, consumer -> { - initializeTask(task, "同步数据", msg -> consumer.accept(Message.info(msg))); - }); - } - - @Override - public CloudRkService getViewModelService() { - return cloudRkService; - } -} diff --git a/src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTyc.java b/src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTyc.java deleted file mode 100644 index 6ddddf7..0000000 --- a/src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTyc.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.ecep.contract.manager.cloud.tyc; - -import com.ecep.contract.manager.cloud.CloudBaseInfo; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.Table; -import lombok.Getter; -import lombok.Setter; -import org.hibernate.annotations.ColumnDefault; - -import java.time.Instant; - -@Getter -@Setter -@Entity -@Table(name = "CLOUD_TYC", schema = "supplier_ms") -public class CloudTyc extends CloudBaseInfo { - - @ColumnDefault("0") - @Column(name = "SCORE", nullable = false) - private Integer score; - - @Column(name = "CLOUD_LATEST") - private Instant cloudLatest; - - - -} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/CloudYu.java b/src/main/java/com/ecep/contract/manager/cloud/u8/CloudYu.java deleted file mode 100644 index 048f211..0000000 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/CloudYu.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.ecep.contract.manager.cloud.u8; - -import com.ecep.contract.manager.cloud.CloudBaseInfo; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.Table; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.annotations.ColumnDefault; - -import java.time.Instant; -import java.time.LocalDate; - -@Getter -@Setter -@Entity -@Table(name = "CLOUD_YU", schema = "supplier_ms") -@ToString -public class CloudYu extends CloudBaseInfo { - @ColumnDefault("''") - @Column(name = "EX_MSG") - private String exceptionMessage; - - /** - * 供应商信息更新日期 - */ - @Column(name = "VEN_UP_DATE") - private LocalDate vendorUpdateDate; - - /** - * 客户信息更新日期 - */ - @Column(name = "CUS_UP_DATE") - private LocalDate customerUpdateDate; - - /** - * 数据更新日期 - */ - @Column(name = "CLOUD_LATEST") - private Instant cloudLatest; -} diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/CloudYuRepository.java b/src/main/java/com/ecep/contract/manager/cloud/u8/CloudYuRepository.java deleted file mode 100644 index d6ac591..0000000 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/CloudYuRepository.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.ecep.contract.manager.cloud.u8; - -import com.ecep.contract.manager.ds.company.model.Company; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -@Repository -public interface CloudYuRepository - // curd - extends CrudRepository, PagingAndSortingRepository, - // JPA interfaces - JpaRepository, JpaSpecificationExecutor { - - List findAllByCompanyId(Integer companyId); - - Optional findByCompanyId(Integer companyId); - - @Modifying - @Transactional - int deleteAllByCompany(Company company); - - -} diff --git a/src/main/java/com/ecep/contract/manager/ds/MyRepository.java b/src/main/java/com/ecep/contract/manager/ds/MyRepository.java deleted file mode 100644 index 41f7712..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/MyRepository.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.ecep.contract.manager.ds; - -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.ListCrudRepository; - -public interface MyRepository extends ListCrudRepository, JpaSpecificationExecutor { - - -} diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/AbstCompanyBasedTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/AbstCompanyBasedTabSkin.java deleted file mode 100644 index 86ae5d4..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/AbstCompanyBasedTabSkin.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.ecep.contract.manager.ds.company.controller; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.company.vo.CompanyViewModel; -import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; - -public abstract class AbstCompanyBasedTabSkin - extends AbstEntityBasedTabSkin - implements TabSkin { - - public AbstCompanyBasedTabSkin(CompanyWindowController controller) { - super(controller); - } - - protected CompanyService getCompanyService() { - return controller.getViewModelService(); - } -} diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/AbstCompanyTableTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/AbstCompanyTableTabSkin.java deleted file mode 100644 index 31ae190..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/AbstCompanyTableTabSkin.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.ecep.contract.manager.ds.company.controller; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.company.vo.CompanyBasedViewModel; -import com.ecep.contract.manager.ds.company.vo.CompanyViewModel; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.ui.table.TableOfTabSkin; -import com.ecep.contract.manager.util.SpecificationUtils; -import lombok.Setter; -import org.springframework.data.jpa.domain.Specification; - -public abstract class AbstCompanyTableTabSkin> - extends AbstEntityTableTabSkin - implements TabSkin, TableOfTabSkin { - - @Setter - private CompanyService companyService; - - public AbstCompanyTableTabSkin(CompanyWindowController controller) { - super(controller); - viewModel = controller.getViewModel(); - } - - @Override - protected TV createNewViewModel() { - TV model = super.createNewViewModel(); - if (model instanceof CompanyBasedViewModel m) { - m.getCompany().set(getEntity()); - } - return model; - } - - protected CompanyService getCompanyService(){ - return getParentService(); - } - - protected CompanyService getParentService() { - if (companyService == null) { - companyService = getBean(CompanyService.class); - } - return companyService; - } - - @Override - public Specification getSpecification(Company parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.equal(root.get("company"), parent); - }); - } - - -} diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/old_name/CompanyOldNameTabSkinFile.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/old_name/CompanyOldNameTabSkinFile.java deleted file mode 100644 index e8c5391..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/old_name/CompanyOldNameTabSkinFile.java +++ /dev/null @@ -1,363 +0,0 @@ -package com.ecep.contract.manager.ds.company.controller.old_name; - -import com.ecep.contract.manager.MyProperties; -import com.ecep.contract.manager.ds.company.CompanyFileType; -import com.ecep.contract.manager.ds.company.model.CompanyFile; -import com.ecep.contract.manager.ds.company.model.CompanyOldName; -import com.ecep.contract.manager.ds.company.service.CompanyFileService; -import com.ecep.contract.manager.ds.company.service.CompanyOldNameService; -import com.ecep.contract.manager.ds.company.vo.CompanyFileViewModel; -import com.ecep.contract.manager.ds.company.vo.CompanyOldNameViewModel; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.DesktopUtils; -import com.ecep.contract.manager.util.SpecificationUtils; -import com.ecep.contract.manager.util.UITools; -import javafx.application.Platform; -import javafx.event.ActionEvent; -import javafx.event.Event; -import javafx.scene.control.Tab; -import javafx.scene.control.TableCell; -import javafx.scene.control.TableView; -import lombok.Setter; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.util.StringUtils; - -import java.io.File; -import java.util.List; -import java.util.function.Consumer; - -/** - * - */ -public class CompanyOldNameTabSkinFile - extends AbstEntityTableTabSkin - implements TabSkin { - @Setter - private CompanyOldNameService companyOldNameService; - @Setter - private CompanyFileService companyFileService; - @Setter - private MyProperties myProperties; - - public CompanyOldNameTabSkinFile(CompanyOldNameWindowController controller) { - super(controller); - setDragAndDrop(true); - setDragAndDropFileHandler(this::moveFileToCompany); - } - - @Override - public Tab getTab() { - return controller.fileTab; - } - - @Override - public TableView getTableView() { - return controller.fileTable; - } - - @Override - protected CompanyFileService getViewModelService() { - return companyFileService; - } - - @Override - public Specification getSpecification(CompanyOldName parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.equal(root.get("company").get("id"), parent.getCompanyId()); - }); - } - - @Override - public void initializeTab() { -// controller.fileTable_file_move_btn.setOnAction(this::onTableMoveFileAction); -// controller.fileTable_file_retrieve_from_download_dir_btn.setOnAction(this::onTableRetrieveFromDownloadDirAction); -// controller.fileTable_file_reset_btn.setOnAction(this::onTableResetAction); -// -// -// controller.fileTable_idColumn.setCellValueFactory(param -> param.getValue().getId()); -// ObservableMap observableMapByLocal = getBean(CompanyFileTypeLocalRepository.class).getObservableMapByLocal(); -// controller.fileTable_typeColumn.setCellValueFactory(param -> Bindings.valueAt(observableMapByLocal, -// param.getValue().getType()).map(CompanyFileTypeLocal::getValue)); -// controller.fileTable_filePathColumn.setCellValueFactory(param -> param.getValue().getFilePath()); -// controller.fileTable_filePathColumn.setCellFactory(param -> new FileTableFilePathTableCell()); -// controller.fileTable_applyDateColumn.setCellValueFactory(param -> param.getValue().getApplyDate()); -// controller.fileTable_expiringDateColumn.setCellValueFactory(param -> param.getValue().getExpiringDate()); -// -// -// controller.fileTable_menu_refresh.setOnAction(this::onTableRefreshAction); -// controller.fileTable_menu_del.setOnAction(this::onTableDeleteAction); -// controller.fileTable_menu_copy_as_matched_by_contract.setOnAction(this::onTableCopyAsMatchedByContractAction); -// controller.fileTable_menu_copy_as_matched_by_contract.setOnMenuValidation(this::onTableCopyAsMatchedMenuValidation); - - - super.initializeTab(); - } - - private void onTableResetAction(ActionEvent event) { - CompanyOldName oldName = getParent(); -// CompletableFuture.runAsync(() -> { -// if (getCompanyFileService().reBuildingFiles(oldName, this::setStatus)) { -// loadTableDataSet(); -// } -// }); - } - - /** - * 从 下载目录 中查找相关的资质文件 - */ - private void onTableRetrieveFromDownloadDirAction(ActionEvent event) { -// CompanyOldName oldName = getParent(); -// MyProperties myProperties = getMyProperties(); -// File dir = myProperties.getDownloadDirectory(); -// if (!dir.exists()) { -// setStatus("下载目录 " + dir.getAbsolutePath() + " 不存在,请检查"); -// return; -// } -// -// setStatus("开始检索 下载 文件夹:" + dir.getAbsolutePath() + "..."); -// File[] files = dir.listFiles(File::isFile); -// if (files == null) { -// setStatus("检索 下载 文件夹失败"); -// return; -// } -// if (files.length == 0) { -// setStatus("下载 文件夹没有文件"); -// return; -// } -// setStatus("下载 文件夹中共有文件 " + files.length + " 个文件"); -// -// if (getCompanyOldNameService().retrieveFromDownloadFiles(oldName, files, this::setStatus)) { -// // fixed if update -// viewModel.update(oldName); -// loadTableDataSet(); -// } - } - - /** - * 把文件从 老系统中移到 \\10.84.209.8\项目信息\相关方信息 目录中 - */ - private void onTableMoveFileAction(ActionEvent event) { -// CompanyFileService companyFileService = getCompanyFileService(); -// CompanyOldName oldName = getParent(); -// List list = companyFileService.findByCompany(oldName); -// if (list.isEmpty()) { -// return; -// } -// if (getCompanyService().makePathAbsent(oldName)) { -// save(oldName); -// } -// -// String path = oldName.getPath(); -// if (!StringUtils.hasText(path)) { -// setStatus("异常, 企业目录未设置"); -// return; -// } -// File companyPath = new File(path); -// for (CompanyFile companyFile : list) { -// String filePath = companyFile.getFilePath(); -// if (StringUtils.hasText(filePath)) { -// File file = new File(filePath); -// if (file.exists()) { -// if (file.getParentFile().equals(companyPath)) { -// continue; -// } -// File dest = new File(companyPath, file.getName()); -// if (file.renameTo(dest)) { -// companyFile.setFilePath(dest.getAbsolutePath()); -// companyFileService.save(companyFile); -// setStatus(file.getName() + " 移动到 " + companyPath.getName()); -// } -// } -// } -// } - } - - /** - * - */ - private void onTableCopyAsMatchedByContractAction(ActionEvent event) { - UITools.showDialogAndWait("复制资信评估报告", "按当前评估报告复制一个合同中最匹配的", list -> { - onTableCopyAsMatchedAction_(msg -> { - Platform.runLater(() -> { - list.add(msg); - }); - }); - }); - } - - private void onTableCopyAsMatchedAction_(Consumer state) { -// CompanyOldName oldName = getParent(); -// -// CompanyFileViewModel selectedItem = table.getSelectionModel().getSelectedItem(); -// if (selectedItem == null) { -// state.accept("未选择行"); -// return; -// } -// if (selectedItem.getApplyDate().get() == null) { -// state.accept("有效日期不能未空"); -// return; -// } -// -// LocalDate nextCreditReportDate = null; -// try { -// nextCreditReportDate = companyFileService.getNextCreditReportDate(oldName, state); -// if (nextCreditReportDate == null) { -// state.accept("没有找到下一个咨询评估日期"); -// return; -// } -// } catch (Exception e) { -// state.accept("获取下一个咨询评估日期失败:" + e.getMessage()); -// return; -// } -// -// state.accept("下一个咨询评估日期:" + nextCreditReportDate); -// -// if (!nextCreditReportDate.isBefore(selectedItem.getApplyDate().get())) { -// state.accept("咨询评估日期晚于下一个咨询评估日期"); -// return; -// } -// -// -// File src = new File(selectedItem.getFilePath().get()); -// if (!src.exists()) { -// state.accept("当前选择行的文件不存在"); -// return; -// } -// -// String srcDate = MyDateTimeUtils.format(selectedItem.getApplyDate().get()); -// String destDate = MyDateTimeUtils.format(nextCreditReportDate); -// String srcFileName = src.getName(); -// String destFileName; -// -// // 天眼查的报告 -// if (CloudTycService.isTycReport(srcFileName)) { -// state.accept("天眼查的报告按标准格式命名"); -// String name = oldName.getName() + "_" + CloudTycService.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)) { -// name = name + "_" + CloudTycService.TYC_ENTERPRISE_MAJOR_REPORT; -// } else if (srcFileName.contains(CloudTycService.TYC_ENTERPRISE_ANALYSIS_REPORT)) { -// name = name + "_" + CloudTycService.TYC_ENTERPRISE_ANALYSIS_REPORT; -// } -// destFileName = name + "_" + destDate + "_cp." + StringUtils.getFilenameExtension(srcFileName); -// } else { -// if (srcFileName.contains(srcDate)) { -// // 如果文件名中包含日期,则替换为新日期 -// destFileName = srcFileName.replace(srcDate, destDate + "_cp"); -// } else { -// // 如果文件名中不包含日期,则添加日期 -// destFileName = oldName.getName() + "_" + destDate + "_cp." + StringUtils.getFilenameExtension(srcFileName); -// } -// } -// -// state.accept("新文件名:" + destFileName); -// -// File dest = new File(src.getParent(), destFileName); -// try { -// FileSystemUtils.copyRecursively(src, dest); -// state.accept("新文件复制成功"); -// } catch (IOException e) { -// state.accept("新文件复制失败:" + e.getMessage()); -// } -// -// CompanyFile companyFile = new CompanyFile(); -// companyFile.setFilePath(dest.getAbsolutePath()); -// companyFile.setApplyDate(nextCreditReportDate); -// companyFile.setExpiringDate(nextCreditReportDate.plusYears(1)); -// companyFile.setType(CompanyFileType.CreditReport); -// companyFile.setCompany(oldName); -// companyFileService.save(companyFile); -// -// state.accept("新文件已记录"); -// -// loadTableDataSet(); -// state.accept("文件表已刷新"); - } - - /** - * 当fileTable选中的行是咨询评估时,可用 - * - * @param event event - */ - public void onTableCopyAsMatchedMenuValidation(Event event) { - //当fileTable选中的行是咨询评估时,可用 - CompanyFileViewModel selectedItem = getSelectedItem(); - if (selectedItem == null) { - event.consume(); - return; - } - CompanyFileType type = selectedItem.getType().get(); - if (type != CompanyFileType.CreditReport) { - event.consume(); - return; - } - } - - - private void moveFileToCompany(List files) { - String path = viewModel.getPath().get(); - if (!StringUtils.hasText(path)) { - setStatus("未设置目录"); - return; - } - File dir = new File(path); - if (!dir.exists()) { - setStatus("目录错误,不存在"); - return; - } - } - - @Override - protected void onTableRowDoubleClickedAction(CompanyFileViewModel item) { - String path = item.getFilePath().get(); - if (StringUtils.hasText(path)) { - File file = new File(path); - if (!file.exists()) { - setStatus("文件不存在 " + file.getName()); - return; - } - DesktopUtils.showInExplorer(file); - } - } - - class FileTableFilePathTableCell extends TableCell { - @Override - protected void updateItem(String item, boolean empty) { - super.updateItem(item, empty); - if (empty || item == null) { - setText(""); - return; - } - String path = viewModel.getPath().get(); - if (StringUtils.hasText(path)) { - if (item.startsWith(path)) { - item = "~" + item.substring(path.length()); - } - } - setText(item); - } - } - - public MyProperties getMyProperties() { - if (myProperties == null) { - myProperties = getBean(MyProperties.class); - } - return myProperties; - } - - private CompanyFileService getCompanyFileService() { - if (companyFileService == null) { - companyFileService = getBean(CompanyFileService.class); - } - return companyFileService; - } - - public CompanyOldNameService getCompanyOldNameService() { - if (companyOldNameService == null) { - companyOldNameService = getBean(CompanyOldNameService.class); - } - return companyOldNameService; - } -} diff --git a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyFileTypeLocal.java b/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyFileTypeLocal.java deleted file mode 100644 index 80436b2..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/company/model/CompanyFileTypeLocal.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.ecep.contract.manager.ds.company.model; - -import com.ecep.contract.manager.ds.company.CompanyFileType; -import com.ecep.contract.manager.ds.other.model.BaseEnumEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; - -@Getter -@Setter -@Entity -@Table(name = "COMPANY_FILE_TYPE_LOCAL") -@ToString -public class CompanyFileTypeLocal extends BaseEnumEntity { - -} diff --git a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyBankAccountRepository.java b/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyBankAccountRepository.java deleted file mode 100644 index ad4099f..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyBankAccountRepository.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.ecep.contract.manager.ds.company.repository; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyBankAccount; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; - -import java.util.Optional; - -public interface CompanyBankAccountRepository - extends JpaRepository, JpaSpecificationExecutor { - - Optional findByCompanyAndAccount(Company company, String account); -} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyBlackReasonRepository.java b/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyBlackReasonRepository.java deleted file mode 100644 index 51cc5c0..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyBlackReasonRepository.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.ecep.contract.manager.ds.company.repository; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyBlackReason; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.List; - -@Repository -public interface CompanyBlackReasonRepository - // curd - extends CrudRepository, PagingAndSortingRepository, JpaSpecificationExecutor { - - List findAllByCompany(Company company); - -} diff --git a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyContactRepository.java b/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyContactRepository.java deleted file mode 100644 index 94443d7..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyContactRepository.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.ecep.contract.manager.ds.company.repository; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.List; -import java.util.Optional; - -@Repository -public interface CompanyContactRepository extends - CrudRepository, - PagingAndSortingRepository, - JpaRepository, - JpaSpecificationExecutor { - - Optional findFirstByCompany(Company company); - - List findAllByCompany(Company company); - - List findAllByCompanyAndName(Company company, String name); - - int deleteAllByCompany(Company company); -} diff --git a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyExtendInfoRepository.java b/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyExtendInfoRepository.java deleted file mode 100644 index 531b348..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyExtendInfoRepository.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.ecep.contract.manager.ds.company.repository; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyExtendInfo; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; - -import java.util.List; - -public interface CompanyExtendInfoRepository extends - // JDBC interfaces - CrudRepository, PagingAndSortingRepository, - // JPA - JpaRepository, JpaSpecificationExecutor { - - List findByCompany(Company company); -} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyFileRepository.java b/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyFileRepository.java deleted file mode 100644 index 7488ab3..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/company/repository/CompanyFileRepository.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.ecep.contract.manager.ds.company.repository; - -import com.ecep.contract.manager.ds.MyRepository; -import com.ecep.contract.manager.ds.company.CompanyFileType; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyFile; - -import java.util.List; - -public interface CompanyFileRepository extends - // JDBC interfaces - MyRepository { - - List findByCompany(Company company); - - List findByCompanyAndType(Company company, CompanyFileType type); -} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/company/repository/InvoiceRepository.java b/src/main/java/com/ecep/contract/manager/ds/company/repository/InvoiceRepository.java deleted file mode 100644 index 39c20a7..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/company/repository/InvoiceRepository.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.ecep.contract.manager.ds.company.repository; - -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.Invoice; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; - -import java.util.List; - -public interface InvoiceRepository extends - // JDBC interfaces - CrudRepository, PagingAndSortingRepository, - // JPA - JpaRepository, JpaSpecificationExecutor { - - List findByCompany(Company company); - - Invoice findByCode(String invoiceNumber); -} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractCatalogRepository.java b/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractCatalogRepository.java deleted file mode 100644 index d953ae6..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractCatalogRepository.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.ecep.contract.manager.ds.contract.repository; - -import com.ecep.contract.manager.ds.contract.model.ContractCatalog; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.ListCrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -@Repository -public interface ContractCatalogRepository extends - // JDBC interfaces - ListCrudRepository, PagingAndSortingRepository, - // JPA interfaces - JpaRepository, JpaSpecificationExecutor { - - Optional findByCode(String code); - - Optional findByName(String name); - -} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractGroupRepository.java b/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractGroupRepository.java deleted file mode 100644 index e80ecc5..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractGroupRepository.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.ecep.contract.manager.ds.contract.repository; - -import com.ecep.contract.manager.ds.contract.model.ContractGroup; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.ListCrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -@Repository -public interface ContractGroupRepository extends - // JDBC interfaces - ListCrudRepository, PagingAndSortingRepository, - // JPA interfaces - JpaRepository, JpaSpecificationExecutor { - - Optional findByCode(String code); - - Optional findFirstByNameContains(String name); - - Optional findByName(String name); -} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractKindRepository.java b/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractKindRepository.java deleted file mode 100644 index 8faf911..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractKindRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.ecep.contract.manager.ds.contract.repository; - -import com.ecep.contract.manager.ds.contract.model.ContractKind; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.ListCrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -@Repository -public interface ContractKindRepository extends - // JDBC interfaces - ListCrudRepository, PagingAndSortingRepository, - // JPA interfaces - JpaRepository, JpaSpecificationExecutor { - - Optional findByCode(String code); - - Optional findByName(String name); -} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractTypeRepository.java b/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractTypeRepository.java deleted file mode 100644 index 197720d..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/ContractTypeRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.ecep.contract.manager.ds.contract.repository; - -import com.ecep.contract.manager.ds.contract.model.ContractType; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.ListCrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -@Repository -public interface ContractTypeRepository extends - // JDBC interfaces - ListCrudRepository, PagingAndSortingRepository, - // JPA interfaces - JpaRepository, JpaSpecificationExecutor { - - Optional findByCode(String code); - - Optional findByName(String name); -} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/PurchaseBillVoucherItemRepository.java b/src/main/java/com/ecep/contract/manager/ds/contract/repository/PurchaseBillVoucherItemRepository.java deleted file mode 100644 index d0e8f78..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/PurchaseBillVoucherItemRepository.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.ecep.contract.manager.ds.contract.repository; - -import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucherItem; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -@Repository -public interface PurchaseBillVoucherItemRepository extends - // JDBC interfaces - CrudRepository, PagingAndSortingRepository, - // JPA interfaces - JpaRepository, JpaSpecificationExecutor { - -} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/PurchaseOrderItemRepository.java b/src/main/java/com/ecep/contract/manager/ds/contract/repository/PurchaseOrderItemRepository.java deleted file mode 100644 index e02603d..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/PurchaseOrderItemRepository.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.ecep.contract.manager.ds.contract.repository; - -import com.ecep.contract.manager.ds.contract.model.PurchaseOrder; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrderItem; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.List; -import java.util.Optional; - -@Repository -public interface PurchaseOrderItemRepository extends - // JDBC interfaces - CrudRepository, PagingAndSortingRepository, - // JPA interfaces - JpaRepository, JpaSpecificationExecutor { - - List findAllByRefId(int refId); - - List findAllByOrder(PurchaseOrder order); - -} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/repository/SalesBillVoucherItemRepository.java b/src/main/java/com/ecep/contract/manager/ds/contract/repository/SalesBillVoucherItemRepository.java deleted file mode 100644 index 4d44b8a..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/contract/repository/SalesBillVoucherItemRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.ecep.contract.manager.ds.contract.repository; - -import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucherItem; -import com.ecep.contract.manager.ds.contract.model.SalesBillVoucherItem; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -@Repository -public interface SalesBillVoucherItemRepository extends - // JDBC interfaces - CrudRepository, PagingAndSortingRepository, - // JPA interfaces - JpaRepository, JpaSpecificationExecutor { - -} diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/controller/AbstCompanyCustomerTableTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/customer/controller/AbstCompanyCustomerTableTabSkin.java deleted file mode 100644 index 02b5012..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/customer/controller/AbstCompanyCustomerTableTabSkin.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.ecep.contract.manager.ds.customer.controller; - -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; -import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; - -public abstract class AbstCompanyCustomerTableTabSkin> - extends AbstEntityTableTabSkin - implements TabSkin { - - public AbstCompanyCustomerTableTabSkin(CompanyCustomerWindowController controller) { - super(controller); - } - - public CompanyService getCompanyService() { - return controller.companyService; - } - - protected CompanyCustomerService getCompanyCustomerService() { - return controller.companyCustomerService; - } - -} diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/repository/CompanyCustomerEntityRepository.java b/src/main/java/com/ecep/contract/manager/ds/customer/repository/CompanyCustomerEntityRepository.java deleted file mode 100644 index 7aa141d..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/customer/repository/CompanyCustomerEntityRepository.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.ecep.contract.manager.ds.customer.repository; - -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEntity; -import com.ecep.contract.manager.ds.project.model.Project; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.ListCrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.List; -import java.util.Optional; - -@Repository -public interface CompanyCustomerEntityRepository extends - // JDBC interfaces - ListCrudRepository, - PagingAndSortingRepository , - JpaRepository, - JpaSpecificationExecutor - -{ - Optional findByCode(String code); - - List findByCustomer(CompanyCustomer customer); -} diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/repository/CompanyCustomerFileRepository.java b/src/main/java/com/ecep/contract/manager/ds/customer/repository/CompanyCustomerFileRepository.java deleted file mode 100644 index f8ca14f..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/customer/repository/CompanyCustomerFileRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.ecep.contract.manager.ds.customer.repository; - -import com.ecep.contract.manager.ds.customer.CompanyCustomerFileType; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFile; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.stereotype.Repository; - -import java.util.List; - -@Repository -public interface CompanyCustomerFileRepository extends JpaRepository , JpaSpecificationExecutor { - - List findAllByCustomer(CompanyCustomer companyCustomer); - - List findAllByCustomerAndType(CompanyCustomer customer, CompanyCustomerFileType type); -} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/repository/CompanyCustomerRepository.java b/src/main/java/com/ecep/contract/manager/ds/customer/repository/CompanyCustomerRepository.java deleted file mode 100644 index 54670c5..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/customer/repository/CompanyCustomerRepository.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.ecep.contract.manager.ds.customer.repository; - -import com.ecep.contract.manager.ds.customer.model.CustomerCatalog; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -@Repository -public interface CompanyCustomerRepository extends - // JDBC interfaces - CrudRepository, PagingAndSortingRepository, - // JPA interfaces - JpaRepository, JpaSpecificationExecutor { - - Optional findByCompany(Company company); - - @Modifying - @Transactional - int deleteAllByCompany(Company company); -} diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/Bank.java b/src/main/java/com/ecep/contract/manager/ds/other/model/Bank.java deleted file mode 100644 index f0d1469..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/Bank.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.ecep.contract.manager.ds.other.model; - -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; - -@Getter -@Setter -@jakarta.persistence.Entity -@Table(name = "BANK", schema = "supplier_ms") -public class Bank implements Entity, IdentityEntity { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "ID", nullable = false) - private Integer id; - - @Column(name = "CODE") - private String code; - - - @Column(name = "NAME") - private String name; - - @Override - public String toPrettyString() { - return code + " " + name; - } - - @Override - public final boolean equals(Object object) { - if (this == object) return true; - if (object == null) return false; - Class oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass(); - Class thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass(); - if (thisEffectiveClass != oEffectiveClass) return false; - Bank bank = (Bank) object; - return getId() != null && Objects.equals(getId(), bank.getId()); - } - - @Override - public final int hashCode() { - return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode(); - } -} diff --git a/src/main/java/com/ecep/contract/manager/ds/other/model/Entity.java b/src/main/java/com/ecep/contract/manager/ds/other/model/Entity.java deleted file mode 100644 index e367458..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/other/model/Entity.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.ecep.contract.manager.ds.other.model; - -public interface Entity { - - String toPrettyString(); -} diff --git a/src/main/java/com/ecep/contract/manager/ds/other/repository/BankRepository.java b/src/main/java/com/ecep/contract/manager/ds/other/repository/BankRepository.java deleted file mode 100644 index bc9d4ac..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/other/repository/BankRepository.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.ecep.contract.manager.ds.other.repository; - -import com.ecep.contract.manager.ds.other.model.Bank; -import org.springframework.context.annotation.Lazy; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -@Lazy -@Repository -public interface BankRepository extends - // JDBC interfaces - CrudRepository, PagingAndSortingRepository, - // JPA interfaces - JpaRepository, JpaSpecificationExecutor { - Optional findFirstByName(String name); -} diff --git a/src/main/java/com/ecep/contract/manager/ds/other/repository/DepartmentRepository.java b/src/main/java/com/ecep/contract/manager/ds/other/repository/DepartmentRepository.java deleted file mode 100644 index 76a08a8..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/other/repository/DepartmentRepository.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.ecep.contract.manager.ds.other.repository; - -import com.ecep.contract.manager.ds.MyRepository; -import com.ecep.contract.manager.ds.other.model.Department; -import org.springframework.context.annotation.Lazy; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -@Lazy -@Repository -public interface DepartmentRepository - extends MyRepository { - Optional findByName(String name); - - Optional findByCode(String code); -} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/other/repository/EmployeeRepository.java b/src/main/java/com/ecep/contract/manager/ds/other/repository/EmployeeRepository.java deleted file mode 100644 index 8c7811b..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/other/repository/EmployeeRepository.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.ecep.contract.manager.ds.other.repository; - -import com.ecep.contract.manager.ds.other.model.Employee; -import org.springframework.context.annotation.Lazy; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -@Lazy -@Repository -public interface EmployeeRepository extends - // JDBC interfaces - CrudRepository, PagingAndSortingRepository, - // JPA interfaces - JpaRepository, JpaSpecificationExecutor { - - Optional findByName(String name); - - Optional findByAlias(String alias); - - Optional findByCode(String personCode); - - @Modifying - @Query(value = "update EMPLOYEE_LOGIN_HISTORY e set e.LATEST_ACTIVE = now() where e.id = ?1", nativeQuery = true) - void updateActive(int sessionId); -} diff --git a/src/main/java/com/ecep/contract/manager/ds/other/repository/EmployeeRoleRepository.java b/src/main/java/com/ecep/contract/manager/ds/other/repository/EmployeeRoleRepository.java deleted file mode 100644 index eb377c6..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/other/repository/EmployeeRoleRepository.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.ecep.contract.manager.ds.other.repository; - -import com.ecep.contract.manager.ds.other.model.EmployeeRole; -import org.springframework.context.annotation.Lazy; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -@Lazy -@Repository -public interface EmployeeRoleRepository extends - // JDBC interfaces - CrudRepository, PagingAndSortingRepository, - // JPA interfaces - JpaRepository, JpaSpecificationExecutor { - - Optional findByName(String name); - - Optional findByCode(String personCode); -} diff --git a/src/main/java/com/ecep/contract/manager/ds/other/repository/SysConfRepository.java b/src/main/java/com/ecep/contract/manager/ds/other/repository/SysConfRepository.java deleted file mode 100644 index 857aa55..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/other/repository/SysConfRepository.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.ecep.contract.manager.ds.other.repository; - -import org.springframework.stereotype.Repository; - -import com.ecep.contract.manager.ds.MyRepository; -import com.ecep.contract.manager.ds.other.model.SysConf; - -@Repository -public interface SysConfRepository extends MyRepository { - -} diff --git a/src/main/java/com/ecep/contract/manager/ds/project/model/ProductType.java b/src/main/java/com/ecep/contract/manager/ds/project/model/ProductType.java deleted file mode 100644 index f83d6fa..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/project/model/ProductType.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.ecep.contract.manager.ds.project.model; - -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; - -/** - * 产品类型 - */ -@Getter -@Setter -@Entity -@Table(name = "PRODUCT_TYPE") -public class ProductType implements com.ecep.contract.manager.ds.other.model.Entity, IdentityEntity { - @Id - @Column(name = "ID", nullable = false) - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Integer id; - - @Column(name = "NAME") - private String name; - - @Column(name = "CODE") - private String code; - - @Column(name = "DESCRIPTION", columnDefinition = "TEXT") - private String description; - - @Override - public String toPrettyString() { - return code + " " + name; - } - - @Override - public final boolean equals(Object object) { - if (this == object) return true; - if (object == null) return false; - Class oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass(); - Class thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass(); - if (thisEffectiveClass != oEffectiveClass) return false; - ProductType that = (ProductType) object; - return getId() != null && Objects.equals(getId(), that.getId()); - } - - @Override - public final int hashCode() { - return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode(); - } -} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectFile.java b/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectFile.java deleted file mode 100644 index 61f0ccd..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/project/model/ProjectFile.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.ecep.contract.manager.ds.project.model; - -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.project.ProjectFileType; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import org.hibernate.proxy.HibernateProxy; - -import java.util.Objects; - -/** - * 项目文件 - */ -@Getter -@Setter -@Entity -@Table(name = "PROJECT_FILE") -@ToString -public class ProjectFile implements IdentityEntity, ProjectBasedEntity { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "ID", nullable = false) - private Integer id; - - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "PROJECT_ID") - @ToString.Exclude - private Project project; - - @Column(name = "TYPE") - @Enumerated(EnumType.STRING) - private ProjectFileType type; - - /** - * 资质文件路径,全路径,网盘地址 - */ - @Column(name = "FILE_PATH") - private String filePath; - - @Override - public final boolean equals(Object object) { - if (this == object) return true; - if (object == null) return false; - Class oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass(); - Class thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass(); - if (thisEffectiveClass != oEffectiveClass) return false; - ProjectFile that = (ProjectFile) object; - return getId() != null && Objects.equals(getId(), that.getId()); - } - - @Override - public final int hashCode() { - return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode(); - } -} diff --git a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProductDeliverySignMethodRepository.java b/src/main/java/com/ecep/contract/manager/ds/project/repository/ProductDeliverySignMethodRepository.java deleted file mode 100644 index 1cf9069..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProductDeliverySignMethodRepository.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.ecep.contract.manager.ds.project.repository; - -import com.ecep.contract.manager.ds.project.model.DeliverySignMethod; -import com.ecep.contract.manager.ds.project.model.ProjectSaleType; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.List; -import java.util.Optional; - -@Repository -public interface ProductDeliverySignMethodRepository extends - // JDBC interfaces - CrudRepository, PagingAndSortingRepository, - // JPA interfaces - JpaRepository, JpaSpecificationExecutor { - - Optional findBySaleTypeAndName(ProjectSaleType saleType, String name); - - Optional findBySaleTypeAndCode(ProjectSaleType saleType, String code); - - Optional findBySaleTypeAndId(ProjectSaleType saleType, Integer id); - - List findAllBySaleTypeId(Integer saleTypeId); -} diff --git a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProductTypeRepository.java b/src/main/java/com/ecep/contract/manager/ds/project/repository/ProductTypeRepository.java deleted file mode 100644 index c434ccf..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProductTypeRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.ecep.contract.manager.ds.project.repository; - -import com.ecep.contract.manager.ds.project.model.ProductType; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -@Repository -public interface ProductTypeRepository extends - CrudRepository, - PagingAndSortingRepository, - JpaRepository, - JpaSpecificationExecutor { - - Optional findByName(String name); - - Optional findByCode(String code); -} diff --git a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProductUsageRepository.java b/src/main/java/com/ecep/contract/manager/ds/project/repository/ProductUsageRepository.java deleted file mode 100644 index ceb01e6..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProductUsageRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.ecep.contract.manager.ds.project.repository; - -import com.ecep.contract.manager.ds.project.model.ProductUsage; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -@Repository -public interface ProductUsageRepository extends - CrudRepository, - PagingAndSortingRepository, - JpaRepository, - JpaSpecificationExecutor { - - Optional findByName(String name); - - Optional findByCode(String code); -} diff --git a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectFileRepository.java b/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectFileRepository.java deleted file mode 100644 index 094c23c..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectFileRepository.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.ecep.contract.manager.ds.project.repository; - -import com.ecep.contract.manager.ds.company.CompanyFileType; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyFile; -import com.ecep.contract.manager.ds.project.ProjectFileType; -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.model.ProjectFile; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; - -import java.util.List; - -public interface ProjectFileRepository extends - // JDBC interfaces - CrudRepository, PagingAndSortingRepository, - // JPA - JpaRepository, JpaSpecificationExecutor { - - List findByProject(Project project); - - List findByProjectAndType(Project project, ProjectFileType type); -} \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectIndustryRepository.java b/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectIndustryRepository.java deleted file mode 100644 index ca0dcd4..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectIndustryRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.ecep.contract.manager.ds.project.repository; - -import com.ecep.contract.manager.ds.project.model.ProjectIndustry; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -@Repository -public interface ProjectIndustryRepository extends - CrudRepository, - PagingAndSortingRepository, - JpaRepository, - JpaSpecificationExecutor { - - Optional findByName(String name); - - Optional findByCode(String code); -} diff --git a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectSaleTypeRepository.java b/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectSaleTypeRepository.java deleted file mode 100644 index 0604d7e..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectSaleTypeRepository.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.ecep.contract.manager.ds.project.repository; - -import com.ecep.contract.manager.ds.project.model.ProjectSaleType; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -@Repository -public interface ProjectSaleTypeRepository extends - CrudRepository, - PagingAndSortingRepository, - JpaRepository, - JpaSpecificationExecutor { - - - Optional findByName(String name); - - Optional findByCode(String code); -} diff --git a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectTypeRepository.java b/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectTypeRepository.java deleted file mode 100644 index 924ca0b..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/project/repository/ProjectTypeRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.ecep.contract.manager.ds.project.repository; - -import com.ecep.contract.manager.ds.project.model.ProjectType; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -@Repository -public interface ProjectTypeRepository extends - CrudRepository, - PagingAndSortingRepository, - JpaRepository, - JpaSpecificationExecutor { - - Optional findByName(String name); - - Optional findByCode(String code); -} diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/AbstCompanyVendorTableTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/AbstCompanyVendorTableTabSkin.java deleted file mode 100644 index d7669be..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/AbstCompanyVendorTableTabSkin.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.ecep.contract.manager.ds.vendor.controller; - -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorViewModel; -import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.tab.TabSkin; -import com.ecep.contract.manager.util.SpecificationUtils; -import org.springframework.data.jpa.domain.Specification; - -public abstract class AbstCompanyVendorTableTabSkin> - extends AbstEntityTableTabSkin - implements TabSkin { - public AbstCompanyVendorTableTabSkin(CompanyVendorWindowController controller) { - super(controller); - } - - public CompanyService getCompanyService() { - return controller.companyService; - } - - public CompanyVendorService getCompanyVendorService() { - return controller.companyVendorService; - } - - @Override - public Specification getSpecification(CompanyVendor parent) { - return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { - return builder.equal(root.get("vendor"), parent); - }); - } -} diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorEvaluationFormUpdateTask.java b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorEvaluationFormUpdateTask.java deleted file mode 100644 index 5905e21..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorEvaluationFormUpdateTask.java +++ /dev/null @@ -1,230 +0,0 @@ -package com.ecep.contract.manager.ds.vendor.controller; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.model.CompanyContact; -import com.ecep.contract.manager.ds.company.service.CompanyContactService; -import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.vendor.CompanyVendorFileType; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorFile; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorFileService; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.Tasker; -import com.ecep.contract.manager.util.ExcelUtils; -import lombok.Setter; -import org.apache.poi.ss.usermodel.*; -import org.hibernate.Hibernate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.util.StringUtils; - -import java.io.*; -import java.time.LocalDate; - -import static com.ecep.contract.manager.util.ExcelUtils.getCellValue; -import static com.ecep.contract.manager.util.ExcelUtils.setCellValue; - -/** - * 更新供应商评价表 - */ -public class CompanyVendorEvaluationFormUpdateTask extends Tasker { - private static final Logger logger = LoggerFactory.getLogger(CompanyVendorEvaluationFormUpdateTask.class); - - @Setter - private CompanyVendor companyVendor; - @Setter - private CompanyContactService companyContactService; - @Setter - private CompanyVendorService companyVendorService; - @Setter - private CompanyVendorFileService companyVendorFileService; - - private CompanyVendorService getCompanyVendorService() { - if (companyVendorService == null) { - companyVendorService = SpringApp.getBean(CompanyVendorService.class); - } - return companyVendorService; - } - - private CompanyContactService getCompanyContactService() { - if (companyContactService == null) { - companyContactService = SpringApp.getBean(CompanyContactService.class); - } - return companyContactService; - } - - private CompanyVendorFileService getCompanyVendorFileService() { - if (companyVendorFileService == null) { - companyVendorFileService = SpringApp.getBean(CompanyVendorFileService.class); - } - return companyVendorFileService; - } - - @Override - protected Object execute(MessageHolder holder) throws Exception { - updateEvaluationForm(holder); - return null; - } - - /** - * 供应商类型为合格供应商,且年度评价通过 - */ - public void updateEvaluationForm(MessageHolder holder) { - if (!StringUtils.hasText(companyVendor.getPath())) { - holder.error("供应商目录未设置,请先设置供应商目录"); - return; - } - File template = getEvaluationFormTemplate(); - if (template == null) { - holder.error("评价表模板文件未设置,请先设置评价表模板文件"); - return; - } - if (!template.exists()) { - holder.error("评价表模板文件 " + template.getAbsolutePath() + " 不存在,请检查"); - return; - } - - File dir = new File(companyVendor.getPath()); - String template_file_name = template.getName(); - File destFile = new File(dir, template_file_name); - - if (destFile.exists()) { - holder.debug("表单文件已经存在," + destFile.getName()); - try ( - InputStream inp = new FileInputStream(destFile); - Workbook wb = WorkbookFactory.create(inp) - ) { - updateEvaluationForm(wb, destFile, holder); - holder.info("评估表已更新"); - } catch (Exception e) { - holder.error(e.getMessage()); - logger.error(e.getMessage(), e); - } - } else { - holder.debug("根据模板 " + template_file_name + " 创建表单 " + destFile.getName()); - try ( - InputStream inp = new FileInputStream(template); - Workbook wb = WorkbookFactory.create(inp) - ) { - updateEvaluationForm(wb, destFile, holder); - holder.info("评估表已创建"); - CompanyVendorFile vendorFile = new CompanyVendorFile(); - vendorFile.setVendor(companyVendor); - vendorFile.setFilePath(destFile.getAbsolutePath()); - vendorFile.setType(CompanyVendorFileType.General); - save(vendorFile); - } catch (Exception e) { - holder.error(e.getMessage()); - logger.error(e.getMessage(), e); - } - } - updateProgress(1, 1); - } - - private File getEvaluationFormTemplate() { - return getCompanyVendorService().getEvaluationFormTemplate(); - } - - /** - * 更新供应商评价表,依据模板创建,如果已经存在生成的文件,则更新评价表 - * - * @param wb work book - * @param destFile 目标文件 - */ - public void updateEvaluationForm(Workbook wb, File destFile, MessageHolder holder) throws IOException { - Company company = companyVendor.getCompany(); - if (!Hibernate.isInitialized(company)) { - company = getCompanyService().findById(company.getId()); - companyVendor.setCompany(company); - } - - Sheet sheet = wb.getSheetAt(0); - updateSheet(company, sheet, holder); - // 输出到文件 - try (OutputStream fileOut = new FileOutputStream(destFile)) { - wb.write(fileOut); - - } catch (FileNotFoundException e) { - holder.error("写评估表时发生文件错误,请检查评估表是否被打开中, " + e.getMessage()); - logger.error(e.getMessage(), e); - } - } - - private void save(CompanyVendorFile vendorFile) { - getCompanyVendorFileService().save(vendorFile); - } - - private void updateSheet(Company company, Sheet sheet, MessageHolder holder) { - getCellValue(sheet, "G1"); - setCellValue(sheet, "G1", "" + companyVendor.getId()); - setCellValue(sheet, "B2", company.getName()); - String address = null; - // 联系人 - CompanyContact contact = companyVendor.getContact(); - if (contact == null) { - contact = getCompanyContactService().findFirstByCompany(company); - } else { - if (!Hibernate.isInitialized(contact)) { - contact = getCompanyContactService().findById(contact.getId()); - } - } - if (contact != null) { - setCellValue(sheet, "F2", contact.getName()); - setCellValue(sheet, "F3", contact.getPhone()); - if (StringUtils.hasText(contact.getAddress())) { - address = contact.getAddress(); - } - } - - if (!StringUtils.hasText(address)) { - address = company.getAddress(); - } - if (!StringUtils.hasText(address)) { - address = company.getRegAddr(); - } - if (StringUtils.hasText(address)) { - setCellValue(sheet, "B3", address); - } - - setCellValue(sheet, "B8", company.getUniscid()); - setCellValue(sheet, "E8", company.getRegisteredCapital() + " " + company.getRegisteredCapitalCurrency()); - - setCellValue(sheet, "H8", company.getOperationPeriodBegin()); - if (company.getOperationPeriodEnd() == null) { - if (company.getOperationPeriodBegin() != null) { - setCellValue(sheet, "H9", "无固定期限"); - } - } else { - setCellValue(sheet, "H9", company.getOperationPeriodEnd()); - } - - setCellValue(sheet, "C4", companyVendor.getPurchase()); - Cell a6 = ExcelUtils.getCell(sheet, "A6"); - if (a6 != null) { - a6.setCellValue(companyVendor.getDescription()); - a6.getCellStyle().setAlignment(HorizontalAlignment.LEFT); - } - - // 第一个评价日期 - Cell g16 = ExcelUtils.getCell(sheet, "G16"); - if (g16 != null) { - CellType cellType = g16.getCellType(); - if (cellType == CellType.BLANK || cellType == CellType.NUMERIC) { - holder.debug("推算下一个评价日期..."); - LocalDate nextSignDate = getCompanyVendorFileService().getNextSignDate(companyVendor, holder.sub(" -| ")::info); - // 当没有推荐日期时,说明不需要评价,更新为空 - if (nextSignDate == null) { - g16.setBlank(); - holder.info(" - 未推荐出下一个评价日期,单元格设空"); - } else { - g16.setCellValue(nextSignDate); - holder.info(" - 更新为:" + nextSignDate); - } - } else { - holder.warn("第一个评价日期所在单元格 " + g16.getAddress().formatAsR1C1String() + " 的单元格类型未知:" + cellType); - } - } - } -} diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorEntityRepository.java b/src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorEntityRepository.java deleted file mode 100644 index 210f276..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorEntityRepository.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.ecep.contract.manager.ds.vendor.repository; - -import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEntity; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendorEntity; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.ListCrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.List; -import java.util.Optional; - -@Repository -public interface CompanyVendorEntityRepository extends - // JDBC interfaces - ListCrudRepository, - PagingAndSortingRepository , - JpaRepository, - JpaSpecificationExecutor - -{ - Optional findByCode(String code); - - List findByVendor(CompanyVendor vendor); - -} diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorRepository.java b/src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorRepository.java deleted file mode 100644 index 3b72f46..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/CompanyVendorRepository.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.ecep.contract.manager.ds.vendor.repository; - -import com.ecep.contract.manager.ds.vendor.model.VendorCatalog; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * 供应商 Repository - */ -@Repository -public interface CompanyVendorRepository extends - // JDBC interfaces - CrudRepository, PagingAndSortingRepository, - // JPA interfaces - JpaRepository, JpaSpecificationExecutor { - - List findAllByCatalog(VendorCatalog catalog); - - List findAllByCatalogId(Integer catalogId); - - Optional findByCompany(Company company); - - @Modifying - @Transactional - int deleteAllByCompany(Company company); -} diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/VendorClassRepository.java b/src/main/java/com/ecep/contract/manager/ds/vendor/repository/VendorClassRepository.java deleted file mode 100644 index 598fefa..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/repository/VendorClassRepository.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.ecep.contract.manager.ds.vendor.repository; - -import com.ecep.contract.manager.ds.vendor.model.VendorCatalog; -import org.springframework.data.repository.ListCrudRepository; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -@Repository -public interface VendorClassRepository extends - // JDBC interfaces - ListCrudRepository, PagingAndSortingRepository { - Optional findByCode(String code); -} diff --git a/src/main/java/com/ecep/contract/manager/ui/table/TableOfTabSkin.java b/src/main/java/com/ecep/contract/manager/ui/table/TableOfTabSkin.java deleted file mode 100644 index 107b7a7..0000000 --- a/src/main/java/com/ecep/contract/manager/ui/table/TableOfTabSkin.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.ecep.contract.manager.ui.table; - -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import org.springframework.data.jpa.domain.Specification; - -import java.util.List; - -public interface TableOfTabSkin> extends TableTabSkin { - void loadTableDataSet(K parent); - - List loadTableData(K parent); - - Specification getSpecification(K parent); -} diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/DepartmentTableCell.java b/src/main/java/com/ecep/contract/manager/ui/table/cell/DepartmentTableCell.java deleted file mode 100644 index 939c88e..0000000 --- a/src/main/java/com/ecep/contract/manager/ui/table/cell/DepartmentTableCell.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.ecep.contract.manager.ui.table.cell; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.other.model.Bank; -import com.ecep.contract.manager.ds.other.model.Department; -import com.ecep.contract.manager.ds.other.service.BankService; -import com.ecep.contract.manager.ds.other.service.DepartmentService; -import com.ecep.contract.manager.ds.other.service.IEntityService; -import lombok.NoArgsConstructor; - -@NoArgsConstructor -public class DepartmentTableCell extends AsyncUpdateTableCell { - public DepartmentTableCell(DepartmentService service) { - setService(service); - } - - @Override - protected IEntityService getServiceBean() { - return SpringApp.getBean(DepartmentService.class); - } - - -} diff --git a/src/main/java/com/ecep/contract/manager/util/HibernateUtils.java b/src/main/java/com/ecep/contract/manager/util/HibernateUtils.java deleted file mode 100644 index 77c50c5..0000000 --- a/src/main/java/com/ecep/contract/manager/util/HibernateUtils.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.ecep.contract.manager.util; - -import com.ecep.contract.manager.SpringApp; -import javafx.beans.property.Property; -import org.hibernate.Hibernate; -import org.springframework.beans.BeanUtils; -import org.springframework.data.repository.CrudRepository; - -import java.beans.PropertyDescriptor; -import java.lang.reflect.InvocationTargetException; -import java.util.Optional; - -public class HibernateUtils { - /** - * - * @param bean - * @param repositoryClass - * @return - * @param - * @param - */ - public static T initialize( - T bean, - Class> repositoryClass - ) { - if (Hibernate.isInitialized(bean)) { - return bean; - } - PropertyDescriptor idDescriptor = BeanUtils.getPropertyDescriptor(bean.getClass(), "id"); - if (idDescriptor != null) { - try { - ID id = (ID) idDescriptor.getReadMethod().invoke(bean); - return SpringApp.getBean(repositoryClass).findById(id).orElse(bean); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new RuntimeException(e); - } - } - return bean; - } - - public static Property initialize( - Property property, - Class> repositoryClass - ) { - T value = property.getValue(); - if (value == null) { - return property; - } - if (Hibernate.isInitialized(value)) { - return property; - } - try { - PropertyDescriptor idDescriptor = BeanUtils.getPropertyDescriptor(value.getClass(), "id"); - ID id = (ID) idDescriptor.getReadMethod().invoke(value); - Optional optional = SpringApp.getBean(repositoryClass).findById(id); - T t = optional.get(); - property.setValue(t); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new RuntimeException(e); - } - return property; - } - - - public static T initializePropertyValue( - Property property, - CrudRepository repository - ) { - Property prop = initializeProxyBean(property, repository); - return prop.getValue(); - } - - public static Property initializeProxyBean( - Property property, - CrudRepository repository - ) { - T value = property.getValue(); - if (value == null) { - return property; - } - if (Hibernate.isInitialized(value)) { - return property; - } - try { - PropertyDescriptor idDescriptor = BeanUtils.getPropertyDescriptor(value.getClass(), "id"); - ID id = (ID) idDescriptor.getReadMethod().invoke(value); - Optional optional = repository.findById(id); - T t = optional.get(); - property.setValue(t); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new RuntimeException(e); - } - return property; - } -}