refactor(ui): 重构用户界面组件和架构

- 将 AbstEntityBasedTabSkin 和 AbstEntityTableTabSkin 移到 ui.tab 包
- 创建新的 AsyncUpdateTableCell 类用于异步加载数据
- 重构 CompanyTableCell 以使用新的 AsyncUpdateTableCell
- 更新多个控制器以使用新的 tab 包和 cell 类
- 调整导入路径和包结构以适应重构
This commit is contained in:
2025-08-23 22:53:09 +08:00
parent 8135acf16a
commit 524fccc4ed
142 changed files with 938 additions and 967 deletions

View File

@@ -3,12 +3,12 @@ package com.ecep.contract.manager.cloud.rk;
import org.hibernate.Hibernate;
import com.ecep.contract.manager.SpringApp;
import com.ecep.contract.manager.ds.company.controller.CompanyTableCell;
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.util.LocalDateTimeTableCell;
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;

View File

@@ -8,12 +8,12 @@ import org.springframework.data.jpa.domain.Specification;
import org.springframework.util.StringUtils;
import com.ecep.contract.manager.SpringApp;
import com.ecep.contract.manager.ds.company.controller.CompanyTableCell;
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.util.LocalDateTimeTableCell;
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
import jakarta.persistence.criteria.Path;
import javafx.collections.ObservableList;

View File

@@ -1,13 +1,13 @@
package com.ecep.contract.manager.cloud.u8;
import com.ecep.contract.manager.SpringApp;
import com.ecep.contract.manager.ds.company.controller.CompanyTableCell;
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.util.LocalDateTimeTableCell;
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
import jakarta.persistence.criteria.Path;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;

View File

@@ -3,9 +3,8 @@ 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.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
import lombok.Setter;
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
public abstract class AbstCompanyBasedTabSkin
extends AbstEntityBasedTabSkin<CompanyWindowController, Company, CompanyViewModel>

View File

@@ -6,9 +6,9 @@ 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.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.TableOfTabSkin;
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;

View File

@@ -1,23 +1,18 @@
package com.ecep.contract.manager.ds.company.controller;
import com.ecep.contract.manager.ds.company.controller.bank_account.BankAccountWindowController;
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.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.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
import javafx.scene.control.*;
import javafx.scene.input.KeyCode;
import lombok.Setter;
import org.hibernate.Hibernate;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.util.StringUtils;
import java.util.List;
/**
* 子合同

View File

@@ -3,7 +3,7 @@ package com.ecep.contract.manager.ds.company.controller;
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.TabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
import javafx.event.ActionEvent;
import javafx.geometry.Insets;
import javafx.scene.control.*;

View File

@@ -8,19 +8,16 @@ 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.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
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;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.util.StringUtils;
import java.time.LocalDate;
import java.util.List;
/**
* 子合同

View File

@@ -1,23 +1,18 @@
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.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.CompanyContactViewModel;
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.ViewModelService;
import com.ecep.contract.manager.ui.tab.TabSkin;
import javafx.event.ActionEvent;
import javafx.scene.control.*;
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.List;
/**
* 子合同

View File

@@ -2,9 +2,12 @@ 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.ContractGroupTableCell;
import com.ecep.contract.manager.ds.contract.controller.ContractKindTableCell;
import com.ecep.contract.manager.ds.contract.controller.ContractTypeTableCell;
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.ContractGroupTableCell;
import com.ecep.contract.manager.ui.table.cell.ContractKindTableCell;
import com.ecep.contract.manager.ui.table.cell.ContractTypeTableCell;
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;
@@ -15,11 +18,11 @@ 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.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
import com.ecep.contract.manager.ui.util.ContractGroupStringConverter;
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
import com.ecep.contract.manager.util.DesktopUtils;
import com.ecep.contract.manager.util.SpecificationUtils;
import com.ecep.contract.manager.util.UITools;
@@ -80,6 +83,12 @@ public class CompanyTabSkinContract
@Setter
private ContractService contractService;
@Setter
private ContractGroupService contractGroupService;
@Setter
private ContractKindService contractKindService;
@Setter
private ContractTypeService contractTypeService;
@Setter
private YongYouU8Service u8Service;
@Setter
private EmployeeStringConverter employeeStringConverter;
@@ -126,7 +135,7 @@ public class CompanyTabSkinContract
ObservableList<ContractGroup> contractGroups = FXCollections.observableArrayList();
contractGroups.add(null);
contractGroups.addAll(contractService.findAllGroups());
contractGroups.addAll(getViewModelService().findAllGroups());
contractGroupSelector.setItems(contractGroups);
contractGroupSelector.setConverter(new ContractGroupStringConverter(contractGroups));
contractSearchKeyField.setOnKeyReleased(event -> {
@@ -139,13 +148,13 @@ public class CompanyTabSkinContract
CompletableFuture.runAsync(() -> {
// 计算主合同编号
for (ContractViewModel model : dataSet) {
Contract contract = contractService.findById(model.getId().get());
Contract contract = getViewModelService().findById(model.getId().get());
if (contract == null) {
continue;
}
try {
if (contractService.updateParentCode(contract)) {
Contract updated = contractService.save(contract);
if (getViewModelService().updateParentCode(contract)) {
Contract updated = getViewModelService().save(contract);
model.update(updated);
}
} catch (NoSuchElementException e) {
@@ -160,13 +169,13 @@ public class CompanyTabSkinContract
contractTable_nameColumn.setCellValueFactory(param -> param.getValue().getName());
contractTable_stateColumn.setCellValueFactory(param -> param.getValue().getState());
contractTable_groupColumn.setCellValueFactory(param -> param.getValue().getGroup());
contractTable_groupColumn.setCellFactory(param -> new ContractGroupTableCell(getViewModelService()));
contractTable_groupColumn.setCellFactory(param -> new ContractGroupTableCell<>(getContractGroupService()));
contractTable_typeColumn.setCellValueFactory(param -> param.getValue().getType());
contractTable_typeColumn.setCellFactory(param -> new ContractTypeTableCell(getViewModelService()));
contractTable_typeColumn.setCellFactory(param -> new ContractTypeTableCell<>(getContractTypeService()));
contractTable_kindColumn.setCellValueFactory(param -> param.getValue().getKind());
contractTable_kindColumn.setCellFactory(param -> new ContractKindTableCell(getViewModelService()));
contractTable_kindColumn.setCellFactory(param -> new ContractKindTableCell<>(getContractKindService()));
contractTable_parentCodeColumn.setCellValueFactory(param -> param.getValue().getParentCode());
@@ -205,7 +214,7 @@ public class CompanyTabSkinContract
private void onTableUpdateAction(ActionEvent event) {
ContractRepairByCompanyTask task = new ContractRepairByCompanyTask();
task.setContractService(contractService);
task.setContractService(getViewModelService());
task.setCompany(getParent());
UITools.showTaskDialogAndWait("同步合同", task, null);
if (task.isRepaired()) {
@@ -255,6 +264,25 @@ public class CompanyTabSkinContract
return contractService;
}
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);
}
return contractGroupService;
}
private EmployeeStringConverter getEmployeeStringConverter() {
if (employeeStringConverter == null) {
employeeStringConverter = getBean(EmployeeStringConverter.class);

View File

@@ -8,9 +8,9 @@ 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.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
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;

View File

@@ -6,9 +6,9 @@ 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.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
import javafx.scene.control.Button;
import javafx.scene.control.Tab;
import javafx.scene.control.TableColumn;

View File

@@ -6,7 +6,7 @@ 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.TabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
import com.ecep.contract.manager.util.SpecificationUtils;
import javafx.application.Platform;
import javafx.event.ActionEvent;

View File

@@ -16,7 +16,7 @@ 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.TabSkin;
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;

View File

@@ -1,7 +1,6 @@
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.company.model.Invoice;
import com.ecep.contract.manager.ds.company.service.InvoiceService;
import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucher;
@@ -10,19 +9,16 @@ 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.TabSkin;
import com.ecep.contract.manager.ui.ViewModelService;
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
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 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;
import java.time.LocalDateTime;
import java.util.List;
/**
* 子合同

View File

@@ -1,64 +0,0 @@
package com.ecep.contract.manager.ds.company.controller;
import static com.ecep.contract.manager.SpringApp.getBean;
import java.util.concurrent.Future;
import org.hibernate.Hibernate;
import com.ecep.contract.manager.Desktop;
import com.ecep.contract.manager.ds.company.model.Company;
import com.ecep.contract.manager.ds.company.service.CompanyService;
import javafx.application.Platform;
public class CompanyTableCell<V>
extends javafx.scene.control.TableCell<V, com.ecep.contract.manager.ds.company.model.Company> {
private CompanyService companyService;
public CompanyTableCell() {
}
public CompanyTableCell(CompanyService companyService) {
this.companyService = companyService;
}
private CompanyService getCompanyService() {
if (companyService == null) {
companyService = getBean(CompanyService.class);
}
return companyService;
}
@Override
protected void updateItem(Company item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText(null);
return;
}
if (Hibernate.isInitialized(item)) {
setText(formart(item));
return;
}
setText("# " + item.getId());
submit(this::asyncLoadAndUpdate);
}
Future<?> submit(Runnable var1){
return Desktop.instance.getExecutorService().submit(var1);
}
private String formart(Company company) {
return company.getName();
}
private void asyncLoadAndUpdate() {
Company company = getCompanyService().findById(getItem().getId());
Platform.runLater(() -> {
setText(formart(company));
setItem(company);
});
}
}

View File

@@ -14,7 +14,7 @@ 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.AbstEntityBasedTabSkin;
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;

View File

@@ -1,40 +0,0 @@
package com.ecep.contract.manager.ds.company.controller;
import com.ecep.contract.manager.ds.company.model.Invoice;
import com.ecep.contract.manager.ds.company.service.InvoiceService;
import javafx.scene.control.TableCell;
import org.hibernate.Hibernate;
import static com.ecep.contract.manager.SpringApp.getBean;
class InvoiceTableCell<V> extends TableCell<V, Invoice> {
private InvoiceService invoiceService;
public InvoiceTableCell() {
}
public InvoiceTableCell(InvoiceService invoiceService) {
this.invoiceService = invoiceService;
}
private InvoiceService getInvoiceService() {
if (invoiceService == null) {
invoiceService = getBean(InvoiceService.class);
}
return invoiceService;
}
@Override
protected void updateItem(Invoice item, boolean empty) {
super.updateItem(item, empty);
if (item == null || empty) {
setText(null);
setGraphic(null);
} else {
if (!Hibernate.isInitialized(item)) {
item = getInvoiceService().findById(item.getId());
}
setText(item.getCode());
}
}
}

View File

@@ -5,13 +5,12 @@ 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.CompanyBankAccountService;
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.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
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;

View File

@@ -4,8 +4,8 @@ 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.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
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;

View File

@@ -8,8 +8,8 @@ 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.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
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;

View File

@@ -3,9 +3,8 @@ package com.ecep.contract.manager.ds.contract.controller;
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.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
import lombok.Setter;
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
public abstract class AbstContractBasedTabSkin
extends AbstEntityBasedTabSkin<ContractWindowController, Contract, ContractViewModel>

View File

@@ -5,9 +5,9 @@ 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.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.TableOfTabSkin;
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.springframework.data.jpa.domain.Specification;

View File

@@ -1,40 +0,0 @@
package com.ecep.contract.manager.ds.contract.controller;
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 javafx.scene.control.TableCell;
import org.hibernate.Hibernate;
import static com.ecep.contract.manager.SpringApp.getBean;
public class ContractGroupTableCell extends TableCell<ContractViewModel, ContractGroup> {
private ContractService contractService;
public ContractGroupTableCell() {
}
public ContractGroupTableCell(ContractService contractService) {
this.contractService = contractService;
}
ContractService getContractService() {
if (contractService == null) {
contractService = getBean(ContractService.class);
}
return contractService;
}
@Override
protected void updateItem(ContractGroup item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText("");
return;
}
if (!Hibernate.isInitialized(item)) {
item = getContractService().findGroupById(item.getId());
}
setText(item.getName());
}
}

View File

@@ -1,41 +0,0 @@
package com.ecep.contract.manager.ds.contract.controller;
import com.ecep.contract.manager.ds.contract.model.ContractKind;
import com.ecep.contract.manager.ds.contract.service.ContractService;
import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
import javafx.scene.control.TableCell;
import org.hibernate.Hibernate;
import static com.ecep.contract.manager.SpringApp.getBean;
public class ContractKindTableCell extends TableCell<ContractViewModel, ContractKind> {
private ContractService contractService;
public ContractKindTableCell() {
}
public ContractKindTableCell(ContractService contractService) {
this.contractService = contractService;
}
ContractService getContractService() {
if (contractService == null) {
contractService = getBean(ContractService.class);
}
return contractService;
}
@Override
protected void updateItem(ContractKind item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText("");
return;
}
if (!Hibernate.isInitialized(item)) {
item = getContractService().findKindById(item.getId());
}
setText(item.getName());
}
}

View File

@@ -2,16 +2,18 @@ package com.ecep.contract.manager.ds.contract.controller;
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.controller.CompanyTableCell;
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.ds.other.EmployeeStringConverter;
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
import com.ecep.contract.manager.ui.ComboBoxUtils;
import com.ecep.contract.manager.ui.ManagerSkin;
@@ -30,6 +32,13 @@ public class ContractManagerSkin
implements ManagerSkin {
@Setter
private CompanyService companyService;
@Setter
private ContractGroupService contractGroupService;
@Setter
private ContractKindService contractKindService;
@Setter
private ContractTypeService contractTypeService;
public ContractManagerSkin(ContractManagerWindowController controller) {
super(controller);
@@ -44,6 +53,23 @@ public class ContractManagerSkin
companyService = getBean(CompanyService.class);
}
return companyService;
}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);
}
return contractGroupService;
}
@Override
@@ -84,11 +110,11 @@ public class ContractManagerSkin
controller.nameColumn.setCellValueFactory(param -> param.getValue().getName());
controller.codeColumn.setCellValueFactory(param -> param.getValue().getCode());
controller.groupColumn.setCellValueFactory(param -> param.getValue().getGroup());
controller.groupColumn.setCellFactory(param -> new ContractGroupTableCell(getContractService()));
controller.groupColumn.setCellFactory(param -> new ContractGroupTableCell<>(getContractGroupService()));
controller.typeColumn.setCellValueFactory(param -> param.getValue().getType());
controller.typeColumn.setCellFactory(param -> new ContractTypeTableCell(getContractService()));
controller.typeColumn.setCellFactory(param -> new ContractTypeTableCell<>(getContractTypeService()));
controller.kindColumn.setCellValueFactory(param -> param.getValue().getKind());
controller.kindColumn.setCellFactory(param -> new ContractKindTableCell(getContractService()));
controller.kindColumn.setCellFactory(param -> new ContractKindTableCell<>(getContractKindService()));
controller.parentCodeColumn.setCellValueFactory(param -> param.getValue().getParentCode());
@@ -98,7 +124,7 @@ public class ContractManagerSkin
controller.employeeColumn.setCellValueFactory(param -> param.getValue().getEmployee());
controller.employeeColumn
.setCellFactory(TextFieldTableCell.forTableColumn(getBean(EmployeeStringConverter.class)));
.setCellFactory(param -> new EmployeeTableCell<>(controller.getEmployeeService()));
controller.createdColumn.setCellValueFactory(param -> param.getValue().getCreated());
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(MyDateTimeUtils.DEFAULT_DATETIME_FORMAT_PATTERN);

View File

@@ -25,7 +25,7 @@ import com.ecep.contract.manager.ds.vendor.controller.CompanyVendorWindowControl
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.TabSkin;
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;

View File

@@ -13,9 +13,9 @@ 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.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
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;

View File

@@ -9,8 +9,7 @@ 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.TabSkin;
import com.ecep.contract.manager.ui.ViewModelService;
import com.ecep.contract.manager.ui.tab.TabSkin;
import javafx.application.Platform;
import javafx.beans.property.SimpleListProperty;
import javafx.collections.ObservableList;
@@ -22,7 +21,6 @@ import lombok.Setter;
import org.hibernate.Hibernate;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.function.Function;

View File

@@ -1,23 +1,21 @@
package com.ecep.contract.manager.ds.contract.controller;
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.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.contract.vo.ProjectCostItemViewModel;
import com.ecep.contract.manager.ds.other.EntityStringConverter;
import com.ecep.contract.manager.ds.other.controller.employee.EmployeeTableCell;
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.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
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;

View File

@@ -5,7 +5,7 @@ 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.util.LocalDateTimeTableCell;
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.Tab;
import javafx.scene.control.TableColumn;

View File

@@ -7,10 +7,9 @@ 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.TabSkin;
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
import com.ecep.contract.manager.ui.tab.TabSkin;
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
import javafx.scene.control.*;
import javafx.scene.input.KeyCode;
import java.time.LocalDateTime;

View File

@@ -8,7 +8,7 @@ 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.TabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
import com.ecep.contract.manager.ui.util.LocalDateFieldTableCell;
import javafx.scene.control.*;
import javafx.scene.control.cell.TextFieldTableCell;

View File

@@ -5,17 +5,14 @@ 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.TabSkin;
import com.ecep.contract.manager.ui.ViewModelService;
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;
import org.springframework.util.StringUtils;
import java.time.LocalDate;
import java.util.List;
/**
* 子合同

View File

@@ -11,17 +11,15 @@ 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.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.ViewModelService;
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 org.springframework.data.jpa.domain.Specification;
import java.util.List;

View File

@@ -1,40 +0,0 @@
package com.ecep.contract.manager.ds.contract.controller;
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.vo.ContractViewModel;
import javafx.scene.control.TableCell;
import org.hibernate.Hibernate;
import static com.ecep.contract.manager.SpringApp.getBean;
public class ContractTypeTableCell extends TableCell<ContractViewModel, ContractType> {
private ContractService contractService;
public ContractTypeTableCell() {
}
public ContractTypeTableCell(ContractService contractService) {
this.contractService = contractService;
}
ContractService getContractService() {
if (contractService == null) {
contractService = getBean(ContractService.class);
}
return contractService;
}
@Override
protected void updateItem(ContractType item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText("");
return;
}
if (!Hibernate.isInitialized(item)) {
item = getContractService().findTypeById(item.getId());
}
setText(item.getName());
}
}

View File

@@ -13,6 +13,7 @@ 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;
@@ -104,24 +105,7 @@ public class ContractVerifyWindowController extends BaseController {
}
class EmployeeTableCell extends TableCell<Model, Employee> {
@Override
protected void updateItem(Employee item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText(null);
return;
}
if (!Hibernate.isInitialized(item)) {
item = employeeService.findById(item.getId());
Model model = getTableRow().getItem();
if (model != null) {
model.getEmployee().set(item);
}
}
setText(item.toPrettyString());
}
}
static class StateTableCell extends TableCell<Model, ObservableList<MessageExt>> {
Label message2Label(MessageExt message) {
@@ -238,7 +222,7 @@ public class ContractVerifyWindowController extends BaseController {
viewTable_codeColumn.setCellValueFactory(param -> param.getValue().getCode());
viewTable_nameColumn.setCellValueFactory(param -> param.getValue().getName());
viewTable_employeeColumn.setCellValueFactory(param -> param.getValue().getEmployee());
viewTable_employeeColumn.setCellFactory(param -> new EmployeeTableCell());
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(", "));

View File

@@ -14,8 +14,8 @@ 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.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
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;

View File

@@ -1,38 +0,0 @@
package com.ecep.contract.manager.ds.contract.controller.purchase_bill;
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.PurchaseBillVoucherItemViewModel;
import javafx.scene.control.TableCell;
import org.hibernate.Hibernate;
class ContractTableCell extends TableCell<PurchaseBillVoucherItemViewModel, Contract> {
private final PurchaseBillVoucherTabSkinItems purchaseBillVoucherTabSkinItems;
ContractService contractService;
public ContractTableCell(PurchaseBillVoucherTabSkinItems purchaseBillVoucherTabSkinItems) {
this.purchaseBillVoucherTabSkinItems = purchaseBillVoucherTabSkinItems;
}
ContractService getContractService() {
if (contractService == null) {
contractService = purchaseBillVoucherTabSkinItems.getBean(ContractService.class);
}
return contractService;
}
@Override
protected void updateItem(Contract item, boolean empty) {
super.updateItem(item, empty);
if (item == null || empty) {
setText(null);
setGraphic(null);
} else {
if (!Hibernate.isInitialized(item)) {
item = getContractService().findById(item.getId());
getTableRow().getItem().getContract().set(item);
}
setText(item.getCode());
}
}
}

View File

@@ -7,14 +7,20 @@ 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.controller.InventoryTableCell;
import com.ecep.contract.manager.ds.other.model.Inventory;
import com.ecep.contract.manager.ui.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ds.other.service.InventoryService;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
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;
@@ -22,7 +28,6 @@ import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.util.Callback;
import lombok.Setter;
import org.hibernate.Hibernate;
import org.springframework.data.jpa.domain.Specification;
@FxmlPath("/ui/contract/purchase-bill-voucher-tab-item.fxml")
@@ -44,6 +49,14 @@ public class PurchaseBillVoucherTabSkinItems
@Setter
private PurchaseBillVoucherItemService service;
@Setter
private ContractService contractService;
@Setter
private InventoryService inventoryService;
@Setter
private InvoiceService invoiceService;
@Setter
private PurchaseOrderItemService purchaseOrderItemService;
public PurchaseBillVoucherTabSkinItems(PurchaseBillVoucherWindowController controller) {
super(controller);
@@ -57,6 +70,34 @@ public class PurchaseBillVoucherTabSkinItems
return service;
}
ContractService getContractService() {
if (contractService == null) {
contractService = SpringApp.getBean(ContractService.class);
}
return contractService;
}
InventoryService getInventoryService() {
if (inventoryService == null) {
inventoryService = SpringApp.getBean(InventoryService.class);
}
return inventoryService;
}
InvoiceService getInvoiceService() {
if (invoiceService == null) {
invoiceService = SpringApp.getBean(InvoiceService.class);
}
return invoiceService;
}
PurchaseOrderItemService getPurchaseOrderItemService() {
if (purchaseOrderItemService == null) {
purchaseOrderItemService = SpringApp.getBean(PurchaseOrderItemService.class);
}
return purchaseOrderItemService;
}
@Override
public Specification<PurchaseBillVoucherItem> getSpecification(PurchaseBillVoucher parent) {
return SpecificationUtils.and(getSpecification(), (root, query, builder) -> {
@@ -74,13 +115,13 @@ public class PurchaseBillVoucherTabSkinItems
idColumn.setCellValueFactory(param -> param.getValue().getId());
refIdColumn.setCellValueFactory(param -> param.getValue().getRefId());
inventoryColumn.setCellValueFactory(param -> param.getValue().getInventory());
inventoryColumn.setCellFactory(col -> new InventoryTableCell<>());
inventoryColumn.setCellFactory(col -> new InventoryTableCell<>(getInventoryService()));
invoiceColumn.setCellValueFactory(param -> param.getValue().getInvoice());
invoiceColumn.setCellFactory(col -> new InvoiceTableCell());
invoiceColumn.setCellFactory(col -> new InvoiceTableCell<>(getInvoiceService()));
contractColumn.setCellValueFactory(param -> param.getValue().getContract());
contractColumn.setCellFactory(col -> new ContractTableCell(this));
contractColumn.setCellFactory(col -> new ContractTableCell<>(getContractService()));
orderItemColumn.setCellValueFactory(param -> param.getValue().getOrderItem());
orderItemColumn.setCellFactory(col -> new PurchaseOrderItemTableCell(this));
orderItemColumn.setCellFactory(col -> new PurchaseOrderItemTableCell<>(getPurchaseOrderItemService()));
NumberCellFactory v1 = new NumberCellFactory("%,.1f", null);
NumberCellFactory v2 = new NumberCellFactory("%,.2f", null);
@@ -96,32 +137,6 @@ public class PurchaseBillVoucherTabSkinItems
super.initializeTab();
}
private static class InvoiceTableCell extends TableCell<PurchaseBillVoucherItemViewModel, Invoice> {
private InvoiceService invoiceService;
InvoiceService getInvoiceService() {
if (invoiceService == null) {
invoiceService = SpringApp.getBean(InvoiceService.class);
}
return invoiceService;
}
@Override
protected void updateItem(Invoice item, boolean empty) {
super.updateItem(item, empty);
if (item == null || empty) {
setText(null);
setGraphic(null);
} else {
if (!Hibernate.isInitialized(item)) {
item = getInvoiceService().findById(item.getId());
getTableRow().getItem().getInvoice().set(item);
}
setText(item.getCode());
}
}
}
static class NumberCellFactory implements Callback<TableColumn<PurchaseBillVoucherItemViewModel, Double>, TableCell<PurchaseBillVoucherItemViewModel, Double>> {
private final String format;

View File

@@ -1,71 +0,0 @@
package com.ecep.contract.manager.ds.contract.controller.purchase_bill;
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.contract.vo.PurchaseBillVoucherItemViewModel;
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 javafx.scene.control.TableCell;
import org.hibernate.Hibernate;
class PurchaseOrderItemTableCell extends TableCell<PurchaseBillVoucherItemViewModel, PurchaseOrderItem> {
private final PurchaseBillVoucherTabSkinItems purchaseBillVoucherTabSkinItems;
PurchaseOrdersService service;
PurchaseOrderItemService itemService;
private InventoryService inventoryService;
private InventoryCatalogService inventoryCatalogService;
public PurchaseOrderItemTableCell(PurchaseBillVoucherTabSkinItems purchaseBillVoucherTabSkinItems) {
this.purchaseBillVoucherTabSkinItems = purchaseBillVoucherTabSkinItems;
}
InventoryService getInventoryService() {
if (inventoryService == null) {
inventoryService = SpringApp.getBean(InventoryService.class);
}
return inventoryService;
}
InventoryCatalogService getInventoryCatalogService() {
if (inventoryCatalogService == null) {
inventoryCatalogService = SpringApp.getBean(InventoryCatalogService.class);
}
return inventoryCatalogService;
}
PurchaseOrdersService getPurchaseOrdersService() {
if (service == null)
service = purchaseBillVoucherTabSkinItems.getBean(PurchaseOrdersService.class);
return service;
}
PurchaseOrderItemService getPurchaseOrderItemService() {
if (itemService == null)
itemService = purchaseBillVoucherTabSkinItems.getBean(PurchaseOrderItemService.class);
return itemService;
}
@Override
protected void updateItem(PurchaseOrderItem item, boolean empty) {
super.updateItem(item, empty);
if (item == null || empty) {
setText(null);
setGraphic(null);
} else {
if (!Hibernate.isInitialized(item)) {
item = getPurchaseOrderItemService().findById(item.getId());
getTableRow().getItem().getOrderItem().set(item);
}
Inventory inventory = item.getInventory();
if (!Hibernate.isInitialized(inventory)) {
inventory = getInventoryService().findById(inventory.getId());
item.setInventory(inventory);
}
setText(inventory.toPrettyString() + " x " + item.getQuantity());
}
}
}

View File

@@ -7,8 +7,8 @@ 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.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
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;

View File

@@ -14,10 +14,10 @@ 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.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
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;

View File

@@ -11,12 +11,12 @@ 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.ds.other.controller.InventoryTableCell;
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.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
import com.ecep.contract.manager.util.SpecificationUtils;
import javafx.application.Platform;
import javafx.collections.ObservableList;

View File

@@ -7,8 +7,8 @@ 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.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
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;

View File

@@ -13,9 +13,9 @@ 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.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
import com.ecep.contract.manager.util.SpecificationUtils;
import javafx.application.Platform;
import javafx.collections.ObservableList;

View File

@@ -11,9 +11,9 @@ 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.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
import com.ecep.contract.manager.util.SpecificationUtils;
import javafx.application.Platform;
import javafx.collections.ObservableList;

View File

@@ -2,6 +2,7 @@ package com.ecep.contract.manager.ds.contract.service;
import com.ecep.contract.manager.ds.contract.model.ContractGroup;
import com.ecep.contract.manager.ds.contract.repository.ContractGroupRepository;
import com.ecep.contract.manager.ds.other.service.IEntityService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -10,6 +11,9 @@ import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
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.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -20,30 +24,46 @@ import java.util.List;
@Lazy
@Service
@CacheConfig(cacheNames = "contract-group")
public class ContractGroupService {
public class ContractGroupService implements IEntityService<ContractGroup> {
private static final Logger logger = LoggerFactory.getLogger(ContractGroupService.class);
@Lazy
@Autowired
private ContractGroupRepository contractGroupRepository;
private ContractGroupRepository repository;
@Cacheable(key = "#p0")
public ContractGroup findById(Integer id) {
return contractGroupRepository.findById(id).orElse(null);
return repository.findById(id).orElse(null);
}
@Override
public Page<ContractGroup> findAll(Specification<ContractGroup> spec, Pageable pageable) {
return repository.findAll(spec, pageable);
}
@Override
public Specification<ContractGroup> 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("title"), "%" + searchText + "%")
);
};
}
public ContractGroup findByName(String name) {
return contractGroupRepository.findByName(name).orElse(null);
return repository.findByName(name).orElse(null);
}
@Cacheable(key = "'code-'+#p0")
public ContractGroup findByCode(String code) {
return contractGroupRepository.findByCode(code).orElse(null);
return repository.findByCode(code).orElse(null);
}
@Cacheable(key = "'groups'")
public List<ContractGroup> findAll() {
return contractGroupRepository.findAll();
return repository.findAll();
}
@Caching(evict = {
@@ -52,7 +72,7 @@ public class ContractGroupService {
@CacheEvict(key = "'code-'+#p0.code"),
})
public ContractGroup save(ContractGroup group) {
return contractGroupRepository.save(group);
return repository.save(group);
}
@Caching(evict = {
@@ -60,7 +80,7 @@ public class ContractGroupService {
@CacheEvict(key = "'groups'"),
})
public void delete(Integer id) {
contractGroupRepository.deleteById(id);
repository.deleteById(id);
}
@Caching(evict = {
@@ -69,7 +89,7 @@ public class ContractGroupService {
@CacheEvict(key = "'code-'+#p0.code"),
})
public void delete(ContractGroup group) {
contractGroupRepository.delete(group);
repository.delete(group);
}
public ContractGroup newContractGroup() {

View File

@@ -2,6 +2,7 @@ package com.ecep.contract.manager.ds.contract.service;
import com.ecep.contract.manager.ds.contract.model.ContractKind;
import com.ecep.contract.manager.ds.contract.repository.ContractKindRepository;
import com.ecep.contract.manager.ds.other.service.IEntityService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -10,6 +11,9 @@ import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
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.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -20,41 +24,62 @@ import java.util.List;
@Lazy
@Service
@CacheConfig(cacheNames = "contract-kind")
public class ContractKindService {
public class ContractKindService implements IEntityService<ContractKind> {
private static final Logger logger = LoggerFactory.getLogger(ContractKindService.class);
@Lazy
@Autowired
private ContractKindRepository contractKindRepository;
private ContractKindRepository repository;
@Cacheable(key = "'kind-'+#p0")
public ContractKind findById(Integer id) {
return contractKindRepository.findById(id).orElse(null);
return repository.findById(id).orElse(null);
}
@Override
public Page<ContractKind> findAll(Specification<ContractKind> spec, Pageable pageable) {
return repository.findAll(spec, pageable);
}
@Override
public Specification<ContractKind> 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("title"), "%" + searchText + "%")
);
};
}
@Override
public void delete(ContractKind entity) {
repository.delete(entity);
}
public ContractKind findByName(String name) {
return contractKindRepository.findByName(name).orElse(null);
return repository.findByName(name).orElse(null);
}
@Cacheable(key = "'kind-code-'+#p0")
@Cacheable(key = "'code-'+#p0")
public ContractKind findByCode(String code) {
return contractKindRepository.findByCode(code).orElse(null);
return repository.findByCode(code).orElse(null);
}
@Cacheable(key = "'kinds'")
public List<ContractKind> findAll() {
return contractKindRepository.findAll();
return repository.findAll();
}
@Caching(
evict = {
@CacheEvict(key = "'kinds'"),
@CacheEvict(key = "'kind-'+#p0.id"),
@CacheEvict(key = "'kind-code-'+#p0.name"),
@CacheEvict(key = "'code-'+#p0.name"),
}
)
public ContractKind save(ContractKind kind) {
return contractKindRepository.save(kind);
return repository.save(kind);
}
@Caching(
@@ -64,6 +89,6 @@ public class ContractKindService {
}
)
public void delete(Integer id) {
contractKindRepository.deleteById(id);
repository.deleteById(id);
}
}

View File

@@ -2,6 +2,7 @@ package com.ecep.contract.manager.ds.contract.service;
import com.ecep.contract.manager.ds.contract.model.ContractType;
import com.ecep.contract.manager.ds.contract.repository.ContractTypeRepository;
import com.ecep.contract.manager.ds.other.service.IEntityService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -10,6 +11,9 @@ import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
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.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -20,55 +24,71 @@ import java.util.List;
@Lazy
@Service
@CacheConfig(cacheNames = "contract-type")
public class ContractTypeService {
public class ContractTypeService implements IEntityService<ContractType> {
private static final Logger logger = LoggerFactory.getLogger(ContractTypeService.class);
@Lazy
@Autowired
private ContractTypeRepository contractTypeRepository;
private ContractTypeRepository repository;
@Cacheable(key = "#p0")
public ContractType findById(Integer id) {
return contractTypeRepository.findById(id).orElse(null);
return repository.findById(id).orElse(null);
}
@Override
public Page<ContractType> findAll(Specification<ContractType> spec, Pageable pageable) {
return repository.findAll(spec, pageable);
}
public ContractType findByName(String name) {
return contractTypeRepository.findByName(name).orElse(null);
return repository.findByName(name).orElse(null);
}
@Cacheable(key = "'code-'+#p0")
public ContractType findByCode(String code) {
return contractTypeRepository.findByCode(code).orElse(null);
return repository.findByCode(code).orElse(null);
}
@Cacheable(key = "'types'")
public List<ContractType> findAll() {
return contractTypeRepository.findAll();
return repository.findAll();
}
@Caching(evict = {
@CacheEvict(key = "#p0.id"),
@CacheEvict(key = "'code-'+#p0.code"),
@CacheEvict(key = "'types'"),
@CacheEvict(key = "#p0.id"),
@CacheEvict(key = "'code-'+#p0.code"),
@CacheEvict(key = "'types'"),
})
public ContractType save(ContractType type) {
return contractTypeRepository.save(type);
return repository.save(type);
}
@Caching(evict = {
@CacheEvict(key = "#p0"),
@CacheEvict(key = "'types'"),
@CacheEvict(key = "#p0"),
@CacheEvict(key = "'types'"),
})
public void delete(Integer id) {
contractTypeRepository.deleteById(id);
repository.deleteById(id);
}
@Caching(evict = {
@CacheEvict(key = "#p0.id"),
@CacheEvict(key = "'code-'+#p0.code"),
@CacheEvict(key = "'types'"),
@CacheEvict(key = "#p0.id"),
@CacheEvict(key = "'code-'+#p0.code"),
@CacheEvict(key = "'types'"),
})
public void delete(ContractType type) {
contractTypeRepository.delete(type);
repository.delete(type);
}
@Override
public Specification<ContractType> getSpecification(String searchText) {
return (root, query, builder) -> {
return builder.or(
builder.like(root.get("code"), "%" + searchText + "%"),
builder.like(root.get("name"), "%" + searchText + "%")
);
};
}
}

View File

@@ -5,10 +5,9 @@ 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.BaseViewModel;
import com.ecep.contract.manager.ds.other.vo.IdentityViewModel;
import com.ecep.contract.manager.ui.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
public abstract class AbstCompanyCustomerTableTabSkin<T extends IdentityEntity, TV extends IdentityViewModel<T>>
extends AbstEntityTableTabSkin<CompanyCustomerWindowController, CompanyCustomer, CompanyCustomerViewModel, T, TV>

View File

@@ -1,19 +1,14 @@
package com.ecep.contract.manager.ds.customer.controller;
import org.hibernate.Hibernate;
import com.ecep.contract.manager.ds.company.controller.CompanyTableCell;
import com.ecep.contract.manager.ds.company.model.Company;
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.ui.ManagerSkin;
import com.ecep.contract.manager.util.MyDateTimeUtils;
import javafx.application.Platform;
import javafx.beans.binding.Bindings;
import lombok.Setter;
public class CompanyCustomerManagerSkin

View File

@@ -11,8 +11,8 @@ 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.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
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;

View File

@@ -9,7 +9,7 @@ import com.ecep.contract.manager.ds.customer.vo.CustomerEntityViewModel;
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
import com.ecep.contract.manager.ds.other.EntityStringConverter;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
import com.ecep.contract.manager.util.SpecificationUtils;
import javafx.scene.control.MenuItem;
import javafx.scene.control.Tab;

View File

@@ -12,7 +12,7 @@ import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService;
import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService;
import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerFileViewModel;
import com.ecep.contract.manager.ds.other.model.BaseEnumEntity;
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.Message;
import com.ecep.contract.manager.util.DesktopUtils;

View File

@@ -5,7 +5,8 @@ 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.other.controller.employee.EmployeeTableCell;
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;
@@ -13,6 +14,7 @@ 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;
@@ -39,7 +41,8 @@ public class CustomerTabSkinSatisfactionSurvey
public MenuItem entityTable_menu_refresh;
public MenuItem entityTable_menu_del;
@Setter
private ProjectService projectService;
@Setter
private CustomerSatisfactionSurveyService satisfactionSurveyService;
@@ -60,7 +63,7 @@ public class CustomerTabSkinSatisfactionSurvey
bindNumberColumn(idColumn, CustomerSatisfactionSurveyViewModel::getId);
bindColumn(codeColumn, CustomerSatisfactionSurveyViewModel::getCode);
projectColumn.setCellValueFactory(param -> param.getValue().getProject());
projectColumn.setCellFactory(cell -> new ProjectTableCell<>());
projectColumn.setCellFactory(cell -> new ProjectTableCell<>(getProjectService()));
bindLocalDateColumn(dateColumn, CustomerSatisfactionSurveyViewModel::getDate);
bindNumberColumn(totalScoreColumn, CustomerSatisfactionSurveyViewModel::getTotalScore);
applicantColumn.setCellValueFactory(param -> param.getValue().getApplicant());
@@ -86,6 +89,12 @@ public class CustomerTabSkinSatisfactionSurvey
return satisfactionSurveyService;
}
ProjectService getProjectService() {
if (projectService == null) {
projectService = getBean(ProjectService.class);
}
return projectService;
}
@Override
protected CustomerSatisfactionSurveyService getViewModelService() {

View File

@@ -1,39 +0,0 @@
package com.ecep.contract.manager.ds.customer.controller;
import com.ecep.contract.manager.ds.project.model.Project;
import com.ecep.contract.manager.ds.project.service.ProjectService;
import org.hibernate.Hibernate;
import static com.ecep.contract.manager.SpringApp.getBean;
public class ProjectTableCell<V> extends javafx.scene.control.TableCell<V, com.ecep.contract.manager.ds.project.model.Project> {
private ProjectService projectService;
public ProjectTableCell() {
}
public ProjectTableCell(ProjectService projectService) {
this.projectService = projectService;
}
ProjectService getProjectService() {
if (projectService == null) {
projectService = getBean(ProjectService.class);
}
return projectService;
}
@Override
protected void updateItem(Project item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText(null);
return;
}
if (!Hibernate.isInitialized(item)) {
item = getProjectService().findById(item.getId());
}
setText(item.toPrettyString());
}
}

View File

@@ -1,5 +1,6 @@
package com.ecep.contract.manager.ds.customer.model;
import com.ecep.contract.manager.ds.other.model.IdentityEntity;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
@@ -17,7 +18,7 @@ import lombok.ToString;
@Setter
@ToString
@Table(name = "COMPANY_CUSTOMER_EVALUATION_FORM_FILE")
public class CompanyCustomerEvaluationFormFile implements com.ecep.contract.manager.ds.other.model.Entity {
public class CompanyCustomerEvaluationFormFile implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity {
@Id
@Column(name = "ID", nullable = false)
private Integer id;

View File

@@ -1,47 +0,0 @@
package com.ecep.contract.manager.ds.other.controller;
import com.ecep.contract.manager.SpringApp;
import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderItemViewModel;
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 javafx.scene.control.TableCell;
import org.hibernate.Hibernate;
public class InventoryTableCell<V> extends TableCell<V, Inventory> {
private InventoryService inventoryService;
private InventoryCatalogService inventoryCatalogService;
InventoryService getInventoryService() {
if (inventoryService == null) {
inventoryService = SpringApp.getBean(InventoryService.class);
}
return inventoryService;
}
InventoryCatalogService getInventoryCatalogService() {
if (inventoryCatalogService == null) {
inventoryCatalogService = SpringApp.getBean(InventoryCatalogService.class);
}
return inventoryCatalogService;
}
@Override
protected void updateItem(Inventory item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText("");
return;
}
if (!Hibernate.isInitialized(item)) {
item = getInventoryService().findById(item.getId());
}
InventoryCatalog catalog = item.getCatalog();
if (catalog != null && !Hibernate.isInitialized(catalog)) {
catalog = getInventoryCatalogService().findById(catalog.getId());
item.setCatalog(catalog);
}
setText((catalog != null ? (catalog.getName() + " ") : "") + item.toPrettyString());
}
}

View File

@@ -3,7 +3,7 @@ package com.ecep.contract.manager.ds.other.controller.bank;
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.EditableEntityTableTabSkin;
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;

View File

@@ -5,7 +5,7 @@ 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.vo.DepartmentViewModel;
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.ManagerSkin;
import javafx.collections.FXCollections;
import javafx.event.ActionEvent;

View File

@@ -5,8 +5,8 @@ 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.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
import lombok.Setter;
public abstract class AbstEmployeeBasedTabSkin

View File

@@ -6,8 +6,8 @@ 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.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
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;

View File

@@ -4,8 +4,8 @@ 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.EditableEntityTableTabSkin;
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;

View File

@@ -3,7 +3,7 @@ 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.TabSkin;
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;

View File

@@ -4,8 +4,8 @@ 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.TabSkin;
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
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;

View File

@@ -3,7 +3,7 @@ package com.ecep.contract.manager.ds.other.controller.employee;
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.TabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.collections.ListChangeListener;

View File

@@ -1,41 +0,0 @@
package com.ecep.contract.manager.ds.other.controller.employee;
import com.ecep.contract.manager.ds.other.model.Employee;
import com.ecep.contract.manager.ds.other.service.EmployeeService;
import javafx.scene.control.TableCell;
import lombok.Setter;
import org.hibernate.Hibernate;
import static com.ecep.contract.manager.SpringApp.getBean;
@Setter
public class EmployeeTableCell<V> extends TableCell<V, Employee> {
private EmployeeService employeeService;
public EmployeeTableCell() {
}
public EmployeeTableCell(EmployeeService employeeService) {
this.employeeService = employeeService;
}
EmployeeService getEmployeeService() {
if (employeeService == null) {
employeeService = getBean(EmployeeService.class);
}
return employeeService;
}
@Override
protected void updateItem(Employee item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText(null);
return;
}
if (!Hibernate.isInitialized(item)) {
item = getEmployeeService().findById(item.getId());
}
setText(item.toPrettyString());
}
}

View File

@@ -7,10 +7,10 @@ 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.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.ManagerSkin;
import com.ecep.contract.manager.ui.util.LocalDateFieldTableCell;
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
import javafx.beans.property.Property;
import javafx.event.ActionEvent;
import javafx.scene.control.TableColumn;
@@ -18,11 +18,7 @@ import javafx.scene.control.cell.TextFieldTableCell;
import javafx.util.converter.CurrencyStringConverter;
import javafx.util.converter.NumberStringConverter;
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 java.util.function.Function;
public class InventoryManagerSkin

View File

@@ -8,10 +8,10 @@ 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.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
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.TabSkin;
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;

View File

@@ -9,9 +9,9 @@ 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.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
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;

View File

@@ -11,9 +11,9 @@ 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.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
import com.ecep.contract.manager.util.SpecificationUtils;
import javafx.event.ActionEvent;
import javafx.scene.control.*;

View File

@@ -5,7 +5,7 @@ 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.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
public abstract class AbstEmployeeRoleBasedTabSkin
extends AbstEntityBasedTabSkin<EmployeeRoleWindowController, EmployeeRole, EmployeeRoleViewModel> {

View File

@@ -4,11 +4,10 @@ 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.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.ManagerSkin;
import javafx.scene.control.cell.CheckBoxTableCell;
import lombok.Setter;
import org.springframework.data.jpa.domain.Specification;
public class EmployeeRoleManagerSkin
extends AbstEntityManagerSkin<EmployeeRole, EmployeeRoleViewModel, EmployeeRoleManagerSkin, EmployeeRoleManagerWindowController>

View File

@@ -1,7 +1,7 @@
package com.ecep.contract.manager.ds.other.controller.permission;
import com.ecep.contract.manager.Desktop;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
import javafx.scene.control.Tab;
public class EmployeeRoleTabSkinBase extends AbstEmployeeRoleBasedTabSkin implements TabSkin {

View File

@@ -2,7 +2,7 @@ package com.ecep.contract.manager.ds.other.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.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
import javafx.scene.control.Tab;

View File

@@ -8,7 +8,7 @@ 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.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.util.SpecificationUtils;

View File

@@ -4,7 +4,7 @@ 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.TableTabSkin;
import com.ecep.contract.manager.ui.table.TableTabSkin;
import com.ecep.contract.manager.util.UITools;
import javafx.application.Platform;
import javafx.beans.property.Property;
@@ -15,7 +15,6 @@ import javafx.scene.control.ContextMenu;
import javafx.scene.control.MenuItem;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.TextFieldTableCell;
import lombok.Setter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@@ -1,4 +1,32 @@
package com.ecep.contract.manager.ds.other.service;
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> {
T findById(Integer id);
Page<T> findAll(Specification<T> spec, Pageable pageable);
/**
* 根据搜索文本构建了一个特定的规格化查询,以实现对实体模糊搜索
*
* @param searchText 要搜索的文本
* @return 规格化查询
*/
Specification<T> getSpecification(String searchText);
/**
* 根据搜索文本查询列表
*/
default List<T> search(String searchText) {
throw new UnsupportedOperationException();
}
void delete(T entity);
T save(T entity);
}

View File

@@ -3,9 +3,8 @@ package com.ecep.contract.manager.ds.project.controller;
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.ProjectViewModel;
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
import lombok.Setter;
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
public abstract class AbstProjectBasedTabSkin
extends AbstEntityBasedTabSkin<ProjectWindowController, Project, ProjectViewModel>

View File

@@ -6,8 +6,8 @@ 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.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
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;

View File

@@ -1,19 +1,17 @@
package com.ecep.contract.manager.ds.customer.controller;
package com.ecep.contract.manager.ds.project.controller;
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 com.ecep.contract.manager.ds.project.vo.ProjectBidViewModel;
import javafx.scene.control.TableCell;
import org.hibernate.Hibernate;
import org.springframework.util.StringUtils;
import java.io.File;
/**
* 评估文件 TableCell
*/
public class EvaluationFileTableCell<V> extends TableCell<V, CompanyCustomerEvaluationFormFile> {
class EvaluationFileTableCell extends TableCell<ProjectBidViewModel, CompanyCustomerEvaluationFormFile> {
private CompanyCustomerFileService fileService;
public CompanyCustomerFileService getFileService() {

View File

@@ -2,7 +2,7 @@ package com.ecep.contract.manager.ds.project.controller;
import org.springframework.data.jpa.domain.Specification;
import com.ecep.contract.manager.ds.company.controller.CompanyTableCell;
import com.ecep.contract.manager.ui.table.cell.CompanyTableCell;
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;

View File

@@ -7,7 +7,7 @@ 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.ComboBoxUtils;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
import com.ecep.contract.manager.util.UITools;
import javafx.beans.binding.Bindings;
import javafx.beans.property.SimpleObjectProperty;

View File

@@ -8,7 +8,7 @@ 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.controller.employee.EmployeeTableCell;
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.bid.ProjectBidWindowController;
import com.ecep.contract.manager.ds.project.model.Project;
@@ -16,8 +16,9 @@ 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.vo.ProjectBidViewModel;
import com.ecep.contract.manager.ui.*;
import com.ecep.contract.manager.ui.tab.TabSkin;
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
import javafx.scene.control.*;
import javafx.scene.input.KeyCode;
import javafx.util.converter.LocalDateStringConverter;
import lombok.Setter;
import org.hibernate.Hibernate;
@@ -78,19 +79,6 @@ public class ProjectTabSkinBid
return controller.bidTab;
}
public CompletableFuture<?> refresh() {
CompletableFuture<?> future = new CompletableFuture<>();
CompletableFuture.runAsync(() -> {
try {
loadTableDataSet();
future.complete(null);
} catch (Exception e) {
future.completeExceptionally(e);
}
});
return future;
}
@Override
public void initializeTable() {
super.initializeTable();
@@ -107,10 +95,10 @@ public class ProjectTabSkinBid
// amountColumn.setCellFactory(TextFieldTableCell.forTableColumn(new CurrencyStringConverter(getLocale())));
applicantColumn.setCellValueFactory(param -> param.getValue().getApplicant());
applicantColumn.setCellFactory(cell -> new EmployeeTableCell<>());
applicantColumn.setCellFactory(cell -> new EmployeeTableCell<>(getEmployeeService()));
bindLocalDateTimeColumn(applyTimeColumn, ProjectBidViewModel::getApplyTime);
authorizerColumn.setCellValueFactory(param -> param.getValue().getAuthorizer());
authorizerColumn.setCellFactory(cell -> new EmployeeTableCell<>());
authorizerColumn.setCellFactory(cell -> new EmployeeTableCell<>(getEmployeeService()));
bindLocalDateTimeColumn(authorizationTimeColumn, ProjectBidViewModel::getAuthorizationTime);
bindColumn(descriptionColumn, ProjectBidViewModel::getDescription);
@@ -205,35 +193,6 @@ public class ProjectTabSkinBid
}
private static class EvaluationFileTableCell extends TableCell<ProjectBidViewModel, CompanyCustomerEvaluationFormFile> {
private CompanyCustomerFileService fileService;
public CompanyCustomerFileService getFileService() {
if (fileService == null) {
fileService = SpringApp.getBean(CompanyCustomerFileService.class);
}
return fileService;
}
@Override
protected void updateItem(CompanyCustomerEvaluationFormFile item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText("");
return;
}
if (!Hibernate.isInitialized(item)) {
item = getFileService().findCustomerEvaluationFormFileById(item.getId());
}
CompanyCustomerFile customerFile = item.getCustomerFile();
String path = customerFile.getFilePath();
if (StringUtils.hasText(path)) {
File file = new File(path);
setText(file.getName());
}
}
}
private static class LevelTableCell extends TableCell<ProjectBidViewModel, Number> {
@Override
protected void updateItem(Number item, boolean empty) {

View File

@@ -5,7 +5,7 @@ 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.TabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
import javafx.application.Platform;
import javafx.scene.control.MenuItem;
import javafx.scene.control.Tab;

View File

@@ -2,7 +2,7 @@ package com.ecep.contract.manager.ds.project.controller;
import com.ecep.contract.manager.ds.contract.service.ContractItemService;
import com.ecep.contract.manager.ds.contract.vo.ProjectCostItemViewModel;
import com.ecep.contract.manager.ds.other.controller.employee.EmployeeTableCell;
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;
@@ -11,15 +11,13 @@ 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.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
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.cell.TextFieldTableCell;
import javafx.scene.input.KeyCode;
import javafx.util.converter.CurrencyStringConverter;
import javafx.util.converter.NumberStringConverter;
import lombok.Setter;

View File

@@ -15,7 +15,7 @@ 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.TabSkin;
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;

View File

@@ -1,32 +1,24 @@
package com.ecep.contract.manager.ds.project.controller;
import com.ecep.contract.manager.SpringApp;
import com.ecep.contract.manager.ds.company.CompanyStringConverter;
import com.ecep.contract.manager.ds.company.service.CompanyService;
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.controller.employee.EmployeeTableCell;
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.ds.project.vo.ProjectBidViewModel;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.RefreshableSkin;
import javafx.scene.control.Tab;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.util.converter.LocalDateStringConverter;
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.LocalTime;
@@ -75,18 +67,6 @@ public class ProjectTabSkinCustomerSatisfactionSurvey
return controller.satisfactionTab;
}
public CompletableFuture<?> refresh() {
CompletableFuture<?> future = new CompletableFuture<>();
runAsync(() -> {
loadTableDataSet();
future.complete(null);
}).exceptionally(ex -> {
future.completeExceptionally(ex);
return null;
});
return future;
}
@Override
public void initializeTable() {
super.initializeTable();
@@ -172,33 +152,4 @@ public class ProjectTabSkinCustomerSatisfactionSurvey
return customerFileService;
}
private static class EvaluationFileTableCell
extends TableCell<ProjectBidViewModel, CompanyCustomerEvaluationFormFile> {
private CompanyCustomerFileService fileService;
public CompanyCustomerFileService getFileService() {
if (fileService == null) {
fileService = SpringApp.getBean(CompanyCustomerFileService.class);
}
return fileService;
}
@Override
protected void updateItem(CompanyCustomerEvaluationFormFile item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText("");
return;
}
if (!Hibernate.isInitialized(item)) {
item = getFileService().findCustomerEvaluationFormFileById(item.getId());
}
CompanyCustomerFile customerFile = item.getCustomerFile();
String path = customerFile.getFilePath();
if (StringUtils.hasText(path)) {
File file = new File(path);
setText(file.getName());
}
}
}
}

View File

@@ -2,26 +2,25 @@ 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.controller.EvaluationFileTableCell;
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.ds.other.controller.employee.EmployeeTableCell;
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.EditableEntityTableTabSkin;
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.TabSkin;
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
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.scene.input.KeyCode;
import javafx.util.converter.CurrencyStringConverter;
import javafx.util.converter.LocalDateStringConverter;
import lombok.Setter;
@@ -80,19 +79,6 @@ public class ProjectTabSkinQuotation
return controller.quotationApprovalTab;
}
public CompletableFuture<?> refresh() {
CompletableFuture<?> future = new CompletableFuture<>();
CompletableFuture.runAsync(() -> {
try {
loadTableDataSet();
future.complete(null);
} catch (Exception e) {
future.completeExceptionally(e);
}
});
return future;
}
@Override
public void initializeTable() {
super.initializeTable();
@@ -100,18 +86,18 @@ public class ProjectTabSkinQuotation
levelColumn.setCellFactory(param -> new LevelTableCell());
standardPayWayColumn.setCellValueFactory(param -> param.getValue().getStandardPayWay().map(value -> value == null ? "" : (value ? "标准" : "非标准")));
evaluationFileColumn.setCellValueFactory(param -> param.getValue().getEvaluationFile());
evaluationFileColumn.setCellFactory(param -> new EvaluationFileTableCell<>());
evaluationFileColumn.setCellFactory(param -> new EvaluationFileTableCell<>(getCompanyCustomerFileService()));
amountColumn.setCellValueFactory(param -> param.getValue().getAmount());
amountColumn.setCellFactory(TextFieldTableCell.forTableColumn(new CurrencyStringConverter(getLocale())));
applicantColumn.setCellValueFactory(param -> param.getValue().getApplicant());
applicantColumn.setCellFactory(this::createEmployeeTableCell);
applicantColumn.setCellFactory(column1 -> new EmployeeTableCell<>());
applyTimeColumn.setCellValueFactory(param -> param.getValue().getApplyTime());
applyTimeColumn.setCellFactory(param -> new LocalDateTimeTableCell<>());
authorizerColumn.setCellValueFactory(param -> param.getValue().getAuthorizer());
authorizerColumn.setCellFactory(this::createEmployeeTableCell);
authorizerColumn.setCellFactory(column -> new EmployeeTableCell<>());
authorizationTimeColumn.setCellValueFactory(param -> param.getValue().getAuthorizationTime());
authorizationTimeColumn.setCellFactory(param -> new LocalDateTimeTableCell<>());
@@ -120,12 +106,6 @@ public class ProjectTabSkinQuotation
}
private TableCell<ProjectQuotationViewModel, Employee> createEmployeeTableCell(TableColumn<ProjectQuotationViewModel, Employee> column) {
EmployeeTableCell<ProjectQuotationViewModel> cell = new EmployeeTableCell<>();
cell.setEmployeeService(getEmployeeService());
return cell;
}
@Override
protected ProjectQuotationViewModel createNewViewModel() {
ProjectQuotationViewModel model = new ProjectQuotationViewModel();

View File

@@ -26,8 +26,8 @@ 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.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
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;

View File

@@ -10,8 +10,8 @@ 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.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
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;

View File

@@ -5,7 +5,7 @@ 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.ds.other.controller.employee.EmployeeTableCell;
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;
@@ -17,10 +17,10 @@ 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.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.FxmlPath;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
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;

View File

@@ -1,22 +1,14 @@
package com.ecep.contract.manager.ds.project.controller.industry;
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.AbstEntityManagerSkin;
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.ManagerSkin;
import com.ecep.contract.manager.util.TableViewUtils;
import javafx.scene.control.TableColumn;
import javafx.scene.control.cell.TextFieldTableCell;
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 ProjectIndustryManagerSkin
extends AbstEntityManagerSkin<ProjectIndustry, ProjectIndustryViewModel, ProjectIndustryManagerSkin, ProjectIndustryManagerWindowController>

View File

@@ -3,7 +3,7 @@ package com.ecep.contract.manager.ds.project.controller.product_type;
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.EditableEntityTableTabSkin;
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;

View File

@@ -5,18 +5,11 @@ 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.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
import com.ecep.contract.manager.ui.ManagerSkin;
import com.ecep.contract.manager.util.TableViewUtils;
import javafx.scene.control.TableColumn;
import javafx.scene.control.cell.TextFieldTableCell;
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 ProjectTypeManagerSkin
extends AbstEntityManagerSkin<ProjectType, ProjectTypeViewModel, ProjectTypeManagerSkin, ProjectTypeManagerWindowController>

View File

@@ -23,8 +23,8 @@ 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.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
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;

View File

@@ -3,8 +3,8 @@ package com.ecep.contract.manager.ds.project.controller.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.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
public abstract class AbstProjectSaleTypeBasedTabSkin
extends AbstEntityBasedTabSkin<ProjectSaleTypeWindowController, ProjectSaleType, SaleTypeViewModel>

View File

@@ -5,8 +5,8 @@ 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.AbstEntityTableTabSkin;
import com.ecep.contract.manager.ui.TabSkin;
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;

View File

@@ -1,6 +1,6 @@
package com.ecep.contract.manager.ds.project.controller.sale_type;
import com.ecep.contract.manager.ui.TabSkin;
import com.ecep.contract.manager.ui.tab.TabSkin;
import javafx.scene.control.Tab;
import javafx.util.converter.DoubleStringConverter;

Some files were not shown because too many files have changed in this diff Show More