refactor(service): 实现VoableService接口以统一VO与实体映射逻辑
refactor(model): 重构实体类与VO类的字段映射关系 style: 调整代码格式与注释 fix: 修复部分字段映射错误
This commit is contained in:
@@ -2,13 +2,18 @@
|
||||
|
||||
## 概述
|
||||
|
||||
本报告分析了`d:\idea-workspace\Contract-Manager\server\src\main\java\com\ecep\contract\ds`目录下,所有实现了[`IEntityService`](/server/src/main/java/com/ecep/contract/IEntityService.java)接口的Service实现,检查它们是否符合[`create_vo.md`](/docs/task/create_vo.md)文档中关于Server模块Service需要继承[`VoableService<M, Vo>`](/server/src/main/java/com/ecep/contract/service/VoableService.java)接口的要求。
|
||||
本报告分析了[Server](/server/src/main/java/com/ecep/contract/)模块下,所有实现了[`IEntityService`](/server/src/main/java/com/ecep/contract/IEntityService.java)接口的Service是否都继承实现了[`com.ecep.contract.service.VoableService<M, Vo>`](/server/src/main/java/com/ecep/contract/service/VoableService.java),包括接口的继承和接口方法的实现,并确认其是否符合[`create_vo.md`](/docs/task/create_vo.md)的要求。
|
||||
|
||||
## 范围
|
||||
- Server 模块中实现了`IEntityService`接口的Service类
|
||||
- 实体类和Vo类定义在 Common 模块
|
||||
- 参考 [`create_vo.md`](/docs/task/create_vo.md) 文档规范
|
||||
|
||||
## 需要实现VoableService接口的Service列表
|
||||
|
||||
通过分析,以下是server模块下所有实现了[`IEntityService`](/server/src/main/java/com/ecep/contract/IEntityService.java)接口的73个Service类:
|
||||
通过分析,server模块下共有73个实现了[`IEntityService`](/server/src/main/java/com/ecep/contract/IEntityService.java)接口的Service类,按模块分类如下:
|
||||
|
||||
### contract模块Service
|
||||
### contract模块Service(18个)
|
||||
|
||||
1. [`ContractService`](/server/src/main/java/com/ecep/contract/ds/contract/service/ContractService.java) - 合同服务
|
||||
2. [`ContractGroupService`](/server/src/main/java/com/ecep/contract/ds/contract/service/ContractGroupService.java) - 合同组服务
|
||||
@@ -29,7 +34,7 @@
|
||||
17. [`ContractFileTypeService`](/server/src/main/java/com/ecep/contract/ds/contract/service/ContractFileTypeService.java) - 合同文件类型服务
|
||||
18. [`PurchaseBillVoucherItemService`](/server/src/main/java/com/ecep/contract/ds/contract/service/PurchaseBillVoucherItemService.java) - 采购发票凭证项服务
|
||||
|
||||
### company模块Service
|
||||
### company模块Service(8个)
|
||||
|
||||
19. [`InvoiceService`](/server/src/main/java/com/ecep/contract/ds/company/service/InvoiceService.java) - 发票服务
|
||||
20. [`CompanyFileTypeService`](/server/src/main/java/com/ecep/contract/ds/company/service/CompanyFileTypeService.java) - 公司文件类型服务
|
||||
@@ -40,7 +45,7 @@
|
||||
25. [`CompanyFileService`](/server/src/main/java/com/ecep/contract/ds/company/service/CompanyFileService.java) - 公司文件服务
|
||||
26. [`CompanyService`](/server/src/main/java/com/ecep/contract/ds/company/service/CompanyService.java) - 公司服务
|
||||
|
||||
### customer模块Service
|
||||
### customer模块Service(7个)
|
||||
|
||||
27. [`CompanyCustomerFileTypeService`](/server/src/main/java/com/ecep/contract/ds/customer/service/CompanyCustomerFileTypeService.java) - 公司客户文件类型服务
|
||||
28. [`CustomerFileTypeService`](/server/src/main/java/com/ecep/contract/ds/customer/service/CustomerFileTypeService.java) - 客户文件类型服务
|
||||
@@ -50,7 +55,7 @@
|
||||
32. [`CompanyCustomerService`](/server/src/main/java/com/ecep/contract/ds/customer/service/CompanyCustomerService.java) - 公司客户服务
|
||||
33. [`CompanyCustomerFileService`](/server/src/main/java/com/ecep/contract/ds/customer/service/CompanyCustomerFileService.java) - 公司客户文件服务
|
||||
|
||||
### project模块Service
|
||||
### project模块Service(16个)
|
||||
|
||||
34. [`ProjectCostService`](/server/src/main/java/com/ecep/contract/ds/project/service/ProjectCostService.java) - 项目成本服务
|
||||
35. [`ProjectService`](/server/src/main/java/com/ecep/contract/ds/project/service/ProjectService.java) - 项目服务
|
||||
@@ -69,7 +74,7 @@
|
||||
48. [`ProjectSaleTypeRequireFileTypeService`](/server/src/main/java/com/ecep/contract/ds/project/service/ProjectSaleTypeRequireFileTypeService.java) - 项目销售类型要求文件类型服务
|
||||
49. [`ProjectFileService`](/server/src/main/java/com/ecep/contract/ds/project/service/ProjectFileService.java) - 项目文件服务
|
||||
|
||||
### vendor模块Service
|
||||
### vendor模块Service(11个)
|
||||
|
||||
50. [`VendorTypeService`](/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorTypeService.java) - 供应商类型服务
|
||||
51. [`VendorService`](/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorService.java) - 供应商服务
|
||||
@@ -83,7 +88,7 @@
|
||||
59. [`VendorCatalogService`](/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorCatalogService.java) - 供应商目录服务
|
||||
60. [`VendorFileService`](/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorFileService.java) - 供应商文件服务
|
||||
|
||||
### other模块Service
|
||||
### other模块Service(10个)
|
||||
|
||||
61. [`EmployeeLoginHistoryService`](/server/src/main/java/com/ecep/contract/ds/other/service/EmployeeLoginHistoryService.java) - 员工登录历史服务
|
||||
62. [`EmployeeService`](/server/src/main/java/com/ecep/contract/ds/other/service/EmployeeService.java) - 员工服务
|
||||
@@ -96,7 +101,7 @@
|
||||
69. [`InventoryService`](/server/src/main/java/com/ecep/contract/ds/other/service/InventoryService.java) - 库存服务
|
||||
70. [`PermissionService`](/server/src/main/java/com/ecep/contract/ds/other/service/PermissionService.java) - 权限服务
|
||||
|
||||
### cloud模块Service
|
||||
### cloud模块Service(3个)
|
||||
|
||||
71. [`YongYouU8Service`](/server/src/main/java/com/ecep/contract/cloud/u8/YongYouU8Service.java) - 用友U8服务
|
||||
72. [`CloudTycService`](/server/src/main/java/com/ecep/contract/cloud/tyc/CloudTycService.java) - 云天眼查服务
|
||||
@@ -234,6 +239,84 @@
|
||||
- ✅ 方法实现了将InventoryHistoryPriceVo的inventoryId、price、changeDate等属性映射到InventoryHistoryPrice实体
|
||||
- ✅ 已正确导入`com.ecep.contract.service.VoableService`和`com.ecep.contract.vo.InventoryHistoryPriceVo`包
|
||||
|
||||
#### SalesBillVoucherService
|
||||
- ✅ 已实现`VoableService<SalesBillVoucher, SalesBillVoucherVo>`接口
|
||||
- ✅ 已实现`updateByVo(SalesBillVoucher model, SalesBillVoucherVo vo)`方法
|
||||
- ✅ 方法实现了将SalesBillVoucherVo的refId、code、makerDate、modifyDate、verifierDate、description等属性映射到SalesBillVoucher实体
|
||||
- ✅ 已正确处理company、order、employee、maker、verifier等关联实体
|
||||
- ✅ 已正确导入`com.ecep.contract.service.VoableService`和`com.ecep.contract.vo.SalesBillVoucherVo`包
|
||||
|
||||
#### ExtendVendorInfoService
|
||||
- ✅ 已实现`VoableService<ExtendVendorInfo, ExtendVendorInfoVo>`接口
|
||||
- ✅ 已实现`updateByVo(ExtendVendorInfo info, ExtendVendorInfoVo vo)`方法
|
||||
- ✅ 方法实现了将ExtendVendorInfoVo的codeSequenceNumber、assignedProvider、prePurchase等属性映射到ExtendVendorInfo实体
|
||||
- ✅ 已正确处理contract、group等关联实体
|
||||
- ✅ 已正确导入`com.ecep.contract.service.VoableService`和`com.ecep.contract.vo.ExtendVendorInfoVo`包
|
||||
|
||||
#### ContractItemService
|
||||
- ✅ 已实现`VoableService<ContractItem, ContractItemVo>`接口
|
||||
- ✅ 已实现`updateByVo(ContractItem item, ContractItemVo vo)`方法
|
||||
- ✅ 方法实现了将ContractItemVo的基本属性映射到ContractItem实体
|
||||
- ✅ 已正确处理contract、inventory、creator、updater等关联实体
|
||||
- ✅ 已正确导入`com.ecep.contract.service.VoableService`和`com.ecep.contract.vo.ContractItemVo`包
|
||||
|
||||
#### ContractTypeService
|
||||
- ✅ 已实现`VoableService<ContractType, ContractTypeVo>`接口
|
||||
- ✅ 已实现`updateByVo(ContractType type, ContractTypeVo vo)`方法
|
||||
- ✅ 方法实现了将ContractTypeVo的name、code、catalog、title、direction等属性映射到ContractType实体
|
||||
- ✅ 已正确导入`com.ecep.contract.service.VoableService`和`com.ecep.contract.vo.ContractTypeVo`包
|
||||
|
||||
#### ContractFileTypeService
|
||||
- ✅ 已实现`VoableService<ContractFileTypeLocal, ContractFileTypeLocalVo>`接口
|
||||
- ✅ 已实现`updateByVo(ContractFileTypeLocal model, ContractFileTypeLocalVo vo)`方法
|
||||
- ✅ 方法实现了将ContractFileTypeLocalVo的id、lang、type、value、description、suggestFileName等属性映射到ContractFileTypeLocal实体
|
||||
- ✅ 已正确导入`com.ecep.contract.service.VoableService`和`com.ecep.contract.vo.ContractFileTypeLocalVo`包
|
||||
|
||||
#### SaleOrdersService
|
||||
- ✅ 已实现`VoableService<SalesOrder, SalesOrderVo>`接口
|
||||
- ✅ 已实现`updateByVo(SalesOrder model, SalesOrderVo vo)`方法
|
||||
- ✅ 方法实现了将SalesOrderVo的code、makerDate、verifierDate、description等属性映射到SalesOrder实体
|
||||
- ✅ 已正确处理contract、employee、maker、verifier等关联实体
|
||||
- ✅ 已正确导入`com.ecep.contract.service.VoableService`和`com.ecep.contract.vo.SalesOrderVo`包
|
||||
|
||||
#### ContractKindService
|
||||
- ✅ 已实现`VoableService<ContractKind, ContractKindVo>`接口
|
||||
- ✅ 已实现`updateByVo(ContractKind model, ContractKindVo vo)`方法
|
||||
- ✅ 方法实现了将ContractKindVo的name、code、title等属性映射到ContractKind实体
|
||||
- ✅ 已正确导入`com.ecep.contract.service.VoableService`和`com.ecep.contract.vo.ContractKindVo`包
|
||||
|
||||
#### ContractBidVendorService
|
||||
- ✅ 已实现`VoableService<ContractBidVendor, ContractBidVendorVo>`接口
|
||||
- ✅ 已实现`updateByVo(ContractBidVendor model, ContractBidVendorVo vo)`方法
|
||||
- ✅ 已正确处理contract、company、quotationSheet等关联实体
|
||||
- ✅ 已正确导入`com.ecep.contract.service.VoableService`和`com.ecep.contract.vo.ContractBidVendorVo`包
|
||||
|
||||
#### ContractPayPlanService
|
||||
- ✅ 已实现`VoableService<ContractPayPlan, ContractPayPlanVo>`接口
|
||||
- ✅ 已实现`updateByVo(ContractPayPlan model, ContractPayPlanVo vo)`方法
|
||||
- ✅ 方法实现了将ContractPayPlanVo的refId、payRatio、payCurrency、payDate、payTerm等属性映射到ContractPayPlan实体
|
||||
- ✅ 已正确处理contract关联实体
|
||||
- ✅ 已正确导入`com.ecep.contract.service.VoableService`和`com.ecep.contract.vo.ContractPayPlanVo`包
|
||||
|
||||
#### PurchaseBillVoucherService
|
||||
- ✅ 已实现`VoableService<PurchaseBillVoucher, PurchaseBillVoucherVo>`接口
|
||||
- ✅ 已实现`updateByVo(PurchaseBillVoucher voucher, PurchaseBillVoucherVo vo)`方法
|
||||
- ✅ 方法实现了将PurchaseBillVoucherVo的id、refId、code、companyId、invoiceId、employeeId、makerId、makerDate、modifyDate、verifierId、verifierDate、description等属性映射到PurchaseBillVoucher实体
|
||||
- ✅ 已正确处理company、invoice、employee、maker、verifier等关联实体
|
||||
- ✅ 已正确导入`com.ecep.contract.service.VoableService`和`com.ecep.contract.vo.PurchaseBillVoucherVo`包
|
||||
|
||||
#### PurchaseOrderItemService
|
||||
- ✅ 已实现`VoableService<PurchaseOrderItem, PurchaseOrderItemVo>`接口
|
||||
- ✅ 已实现`updateByVo(PurchaseOrderItem item, PurchaseOrderItemVo vo)`方法
|
||||
- ✅ 方法实现了将PurchaseOrderItemVo的id、code、name、quantity、price等属性映射到PurchaseOrderItem实体
|
||||
- ✅ 已正确导入`com.ecep.contract.service.VoableService`和`com.ecep.contract.vo.PurchaseOrderItemVo`包
|
||||
|
||||
#### SalesOrderItemService
|
||||
- ✅ 已实现`VoableService<SalesOrderItem, SalesOrderItemVo>`接口
|
||||
- ✅ 已实现`updateByVo(SalesOrderItem item, SalesOrderItemVo vo)`方法
|
||||
- ✅ 方法实现了将SalesOrderItemVo的id、code、name、quantity、price等属性映射到SalesOrderItem实体
|
||||
- ✅ 已正确导入`com.ecep.contract.service.VoableService`和`com.ecep.contract.vo.SalesOrderItemVo`包
|
||||
|
||||
#### CompanyBlackReasonService
|
||||
- ✅ 已实现`VoableService<CompanyBlackReason, CompanyBlackReasonVo>`接口
|
||||
- ✅ 已实现`updateByVo(CompanyBlackReason reason, CompanyBlackReasonVo vo)`方法
|
||||
@@ -243,7 +326,8 @@
|
||||
#### CompanyCustomerEntityService
|
||||
- ✅ 已实现`VoableService<CompanyCustomerEntity, CompanyCustomerEntityVo>`接口
|
||||
- ✅ 已实现`updateByVo(CompanyCustomerEntity entity, CompanyCustomerEntityVo vo)`方法
|
||||
- ✅ 方法实现了将CompanyCustomerEntityVo的companyCustomerId、entityType、entityId等属性映射到CompanyCustomerEntity实体
|
||||
- ✅ 方法实现了将CompanyCustomerEntityVo的name、abbName、code等基本属性映射到CompanyCustomerEntity实体
|
||||
- ✅ 已正确处理customer、catalog、creator、modifier等关联实体
|
||||
- ✅ 已正确导入`com.ecep.contract.service.VoableService`和`com.ecep.contract.vo.CompanyCustomerEntityVo`包
|
||||
|
||||
#### CompanyFileTypeService
|
||||
@@ -264,225 +348,260 @@
|
||||
- ✅ 方法实现了将PurchaseBillVoucherItemVo的id、refId、quantity、price等属性映射到PurchaseBillVoucherItem实体
|
||||
- ✅ 已正确导入`com.ecep.contract.service.VoableService`和`com.ecep.contract.vo.PurchaseBillVoucherItemVo`包
|
||||
|
||||
### 尚未实现VoableService接口的Service列表
|
||||
#### ContractFileService
|
||||
- ✅ 已实现`VoableService<ContractFile, ContractFileVo>`接口
|
||||
- ✅ 已实现`updateByVo(ContractFile file, ContractFileVo vo)`方法
|
||||
- ✅ 方法实现了将ContractFileVo的id、contractId、type、fileName、applyDate、description等属性映射到ContractFile实体
|
||||
- ✅ 已正确处理contract关联实体
|
||||
- ✅ 已正确导入`com.ecep.contract.service.VoableService`和`com.ecep.contract.vo.ContractFileVo`包
|
||||
|
||||
经过重新检查,以下48个Service尚未实现`VoableService<M, Vo>`接口:
|
||||
#### ContractCatalogService
|
||||
- ✅ 已实现`VoableService<ContractCatalog, ContractCatalogVo>`接口
|
||||
- ✅ 已实现`updateByVo(ContractCatalog catalog, ContractCatalogVo vo)`方法
|
||||
- ✅ 方法实现了将ContractCatalogVo的id、code、name、path、parent、useYear等属性映射到ContractCatalog实体
|
||||
- ✅ 已正确导入`com.ecep.contract.service.VoableService`和`com.ecep.contract.vo.ContractCatalogVo`包
|
||||
|
||||
### contract模块(11个)
|
||||
1. **ContractGroupService** - 合同组服务
|
||||
- ❌ 未实现`VoableService<ContractGroup, ContractGroupVo>`接口
|
||||
- ❌ 未实现`updateByVo(ContractGroup group, ContractGroupVo vo)`方法
|
||||
#### ContractGroupService
|
||||
- ✅ 已实现`VoableService<ContractGroup, ContractGroupVo>`接口
|
||||
- ✅ 已实现`updateByVo(ContractGroup group, ContractGroupVo vo)`方法
|
||||
- ✅ 方法实现了将ContractGroupVo的id、name、code、title等属性映射到ContractGroup实体
|
||||
- ✅ 已正确导入`com.ecep.contract.service.VoableService`和`com.ecep.contract.vo.ContractGroupVo`包
|
||||
|
||||
2. **ContractFileService** - 合同文件服务
|
||||
- ❌ 未实现`VoableService<ContractFile, ContractFileVo>`接口
|
||||
- ❌ 未实现`updateByVo(ContractFile file, ContractFileVo vo)`方法
|
||||
### VoableService接口实现状态分析
|
||||
|
||||
3. **SalesBillVoucherService** - 销售票据凭证服务
|
||||
- ❌ 未实现`VoableService<SalesBillVoucher, SalesBillVoucherVo>`接口
|
||||
- ❌ 未实现`updateByVo(SalesBillVoucher voucher, SalesBillVoucherVo vo)`方法
|
||||
经过重新检查,contract、company、customer、project、vendor和other模块的所有Service已实现`VoableService<M, Vo>`接口,仅cloud模块的3个Service尚未实现,具体参考后续各模块的实现状态分析
|
||||
|
||||
4. **ContractCatalogService** - 合同目录服务
|
||||
- ❌ 未实现`VoableService<ContractCatalog, ContractCatalogVo>`接口
|
||||
- ❌ 未实现`updateByVo(ContractCatalog catalog, ContractCatalogVo vo)`方法
|
||||
### contract模块(0个未实现)
|
||||
> 所有contract模块Service已实现VoableService接口
|
||||
|
||||
5. **PurchaseOrderItemService** - 采购订单项服务
|
||||
- ❌ 未实现`VoableService<PurchaseOrderItem, PurchaseOrderItemVo>`接口
|
||||
- ❌ 未实现`updateByVo(PurchaseOrderItem item, PurchaseOrderItemVo vo)`方法
|
||||
### contract模块已实现的Service
|
||||
1. **PurchaseOrdersService** - 采购订单服务
|
||||
- ✅ 已实现`VoableService<PurchaseOrder, PurchaseOrderVo>`接口
|
||||
- ✅ 已实现`updateByVo(PurchaseOrder order, PurchaseOrderVo vo)`方法
|
||||
|
||||
6. **PurchaseBillVoucherService** - 采购票据凭证服务
|
||||
- ❌ 未实现`VoableService<PurchaseBillVoucher, PurchaseBillVoucherVo>`接口
|
||||
- ❌ 未实现`updateByVo(PurchaseBillVoucher voucher, PurchaseBillVoucherVo vo)`方法
|
||||
|
||||
7. **ExtendVendorInfoService** - 扩展供应商信息服务
|
||||
- ❌ 未实现`VoableService<ExtendVendorInfo, ExtendVendorInfoVo>`接口
|
||||
- ❌ 未实现`updateByVo(ExtendVendorInfo info, ExtendVendorInfoVo vo)`方法
|
||||
|
||||
8. **SalesOrderItemService** - 销售订单项服务
|
||||
- ❌ 未实现`VoableService<SalesOrderItem, SalesOrderItemVo>`接口
|
||||
- ❌ 未实现`updateByVo(SalesOrderItem item, SalesOrderItemVo vo)`方法
|
||||
|
||||
9. **ContractItemService** - 合同项目服务
|
||||
- ❌ 未实现`VoableService<ContractItem, ContractItemVo>`接口
|
||||
- ❌ 未实现`updateByVo(ContractItem item, ContractItemVo vo)`方法
|
||||
|
||||
10. **ContractTypeService** - 合同类型服务
|
||||
- ❌ 未实现`VoableService<ContractType, ContractTypeVo>`接口
|
||||
- ❌ 未实现`updateByVo(ContractType type, ContractTypeVo vo)`方法
|
||||
|
||||
11. **PurchaseOrdersService** - 采购订单服务
|
||||
- ❌ 未实现`VoableService<PurchaseOrders, PurchaseOrdersVo>`接口
|
||||
- ❌ 未实现`updateByVo(PurchaseOrders orders, PurchaseOrdersVo vo)`方法
|
||||
|
||||
12. **ContractFileTypeService** - 合同文件类型服务
|
||||
- ❌ 未实现`VoableService<ContractFileType, ContractFileTypeVo>`接口
|
||||
- ❌ 未实现`updateByVo(ContractFileType fileType, ContractFileTypeVo vo)`方法
|
||||
|
||||
13. **SaleOrdersService** - 销售订单服务
|
||||
- ❌ 未实现`VoableService<SaleOrders, SaleOrdersVo>`接口
|
||||
- ❌ 未实现`updateByVo(SaleOrders orders, SaleOrdersVo vo)`方法
|
||||
|
||||
14. **ContractKindService** - 合同种类服务
|
||||
- ❌ 未实现`VoableService<ContractKind, ContractKindVo>`接口
|
||||
- ❌ 未实现`updateByVo(ContractKind kind, ContractKindVo vo)`方法
|
||||
|
||||
15. **ContractBidVendorService** - 合同投标供应商服务
|
||||
- ❌ 未实现`VoableService<ContractBidVendor, ContractBidVendorVo>`接口
|
||||
- ❌ 未实现`updateByVo(ContractBidVendor vendor, ContractBidVendorVo vo)`方法
|
||||
|
||||
16. **ContractPayPlanService** - 合同付款计划服务
|
||||
- ❌ 未实现`VoableService<ContractPayPlan, ContractPayPlanVo>`接口
|
||||
- ❌ 未实现`updateByVo(ContractPayPlan plan, ContractPayPlanVo vo)`方法
|
||||
|
||||
### company模块(8个)
|
||||
### company模块 (0个未实现)
|
||||
1. **InvoiceService** - 发票服务
|
||||
- ❌ 未实现`VoableService<Invoice, InvoiceVo>`接口
|
||||
- ❌ 未实现`updateByVo(Invoice invoice, InvoiceVo vo)`方法
|
||||
- ✅ 已实现`VoableService<Invoice, InvoiceVo>`接口
|
||||
- ✅ 已实现`updateByVo(Invoice invoice, InvoiceVo vo)`方法
|
||||
- 实体类`Invoice`已实现`Voable<InvoiceVo>`接口
|
||||
- VO类`InvoiceVo`已创建
|
||||
|
||||
2. **CompanyContactService** - 公司联系人服务
|
||||
- ❌ 未实现`VoableService<CompanyContact, CompanyContactVo>`接口
|
||||
- ❌ 未实现`updateByVo(CompanyContact contact, CompanyContactVo vo)`方法
|
||||
- ✅ 已实现`VoableService<CompanyContact, CompanyContactVo>`接口
|
||||
- ✅ 已实现`updateByVo(CompanyContact contact, CompanyContactVo vo)`方法
|
||||
- 实体类`CompanyContact`已实现`Voable<CompanyContactVo>`接口
|
||||
- VO类`CompanyContactVo`已创建
|
||||
|
||||
3. **CompanyBankAccountService** - 公司银行账户服务
|
||||
- ❌ 未实现`VoableService<CompanyBankAccount, CompanyBankAccountVo>`接口
|
||||
- ❌ 未实现`updateByVo(CompanyBankAccount account, CompanyBankAccountVo vo)`方法
|
||||
- ✅ 已实现`VoableService<CompanyBankAccount, CompanyBankAccountVo>`接口
|
||||
- ✅ 已实现`updateByVo(CompanyBankAccount account, CompanyBankAccountVo vo)`方法
|
||||
- 实体类`CompanyBankAccount`已实现`Voable<CompanyBankAccountVo>`接口
|
||||
- VO类`CompanyBankAccountVo`已创建
|
||||
|
||||
4. **CompanyFileService** - 公司文件服务
|
||||
- ❌ 未实现`VoableService<CompanyFile, CompanyFileVo>`接口
|
||||
- ❌ 未实现`updateByVo(CompanyFile file, CompanyFileVo vo)`方法
|
||||
- ✅ 已实现`VoableService<CompanyFile, CompanyFileVo>`接口
|
||||
- ✅ 已实现`updateByVo(CompanyFile file, CompanyFileVo vo)`方法
|
||||
- 实体类`CompanyFile`已实现`Voable<CompanyFileVo>`接口
|
||||
- VO类`CompanyFileVo`已创建
|
||||
|
||||
### customer模块(5个)
|
||||
### customer模块(0个未实现)
|
||||
1. **CompanyCustomerFileTypeService** - 公司客户文件类型服务
|
||||
- ❌ 未实现`VoableService<CompanyCustomerFileType, CompanyCustomerFileTypeVo>`接口
|
||||
- ❌ 未实现`updateByVo(CompanyCustomerFileType fileType, CompanyCustomerFileTypeVo vo)`方法
|
||||
- ✅ 已实现`VoableService<CompanyCustomerFileTypeLocal, CompanyCustomerFileTypeLocalVo>`接口
|
||||
- ✅ 已实现`updateByVo(CompanyCustomerFileTypeLocal fileType, CompanyCustomerFileTypeLocalVo vo)`方法
|
||||
- 客户端已实现`QueryService<CustomerFileTypeLocalVo, CompanyCustomerFileTypeLocalViewModel>`
|
||||
- 实现细节:映射了type、lang、value等基本属性
|
||||
|
||||
2. **CustomerFileTypeService** - 客户文件类型服务
|
||||
- ❌ 未实现`VoableService<CustomerFileType, CustomerFileTypeVo>`接口
|
||||
- ❌ 未实现`updateByVo(CustomerFileType fileType, CustomerFileTypeVo vo)`方法
|
||||
- ✅ 已实现`VoableService<CustomerFileTypeLocal, CustomerFileTypeLocalVo>`接口
|
||||
- ✅ 已实现`updateByVo(CustomerFileTypeLocal fileType, CustomerFileTypeLocalVo vo)`方法
|
||||
- 实现细节:映射了type、lang、value等基本属性
|
||||
|
||||
3. **CustomerCatalogService** - 客户目录服务
|
||||
- ❌ 未实现`VoableService<CustomerCatalog, CustomerCatalogVo>`接口
|
||||
- ❌ 未实现`updateByVo(CustomerCatalog catalog, CustomerCatalogVo vo)`方法
|
||||
- ✅ 已实现`VoableService<CustomerCatalog, CustomerCatalogVo>`接口
|
||||
- ✅ 已实现`updateByVo(CustomerCatalog catalog, CustomerCatalogVo vo)`方法
|
||||
- VO类`CustomerCatalogVo`已创建(标记为已更新)
|
||||
- 实现细节:映射了code、name、description等基本属性
|
||||
|
||||
4. **CompanyCustomerEvaluationFormFileService** - 公司客户评估表单文件服务
|
||||
- ❌ 未实现`VoableService<CompanyCustomerEvaluationFormFile, CompanyCustomerEvaluationFormFileVo>`接口
|
||||
- ❌ 未实现`updateByVo(CompanyCustomerEvaluationFormFile file, CompanyCustomerEvaluationFormFileVo vo)`方法
|
||||
- ✅ 已实现`VoableService<CompanyCustomerEvaluationFormFile, CompanyCustomerEvaluationFormFileVo>`接口
|
||||
- ✅ 已实现`updateByVo(CompanyCustomerEvaluationFormFile file, CompanyCustomerEvaluationFormFileVo vo)`方法
|
||||
- 实现细节:映射了catalog、level、creditLevel、score1-5、scoreTemplateVersion等基本属性,以及通过SpringApp.getBean获取CompanyCustomerFileService处理customerFile关联实体
|
||||
- 实体类`CompanyCustomerEvaluationFormFile`已实现`Voable<CompanyCustomerEvaluationFormFileVo>`接口
|
||||
- 客户端已实现`QueryService<CompanyCustomerEvaluationFormFileVo, CompanyCustomerEvaluationFormFileViewModel>`
|
||||
|
||||
5. **CompanyCustomerFileService** - 公司客户文件服务
|
||||
- ❌ 未实现`VoableService<CompanyCustomerFile, CompanyCustomerFileVo>`接口
|
||||
- ❌ 未实现`updateByVo(CompanyCustomerFile file, CompanyCustomerFileVo vo)`方法
|
||||
- ✅ 已实现`VoableService<CompanyCustomerFile, CompanyCustomerFileVo>`接口
|
||||
- ✅ 已实现`updateByVo(CompanyCustomerFile file, CompanyCustomerFileVo vo)`方法
|
||||
- 方法实现了将CompanyCustomerFileVo的filePath、type、signDate、valid等属性映射到CompanyCustomerFile实体
|
||||
- 已正确处理customer关联实体
|
||||
- 实体类`CompanyCustomerFile`已实现`Voable<CompanyCustomerFileVo>`接口
|
||||
- 客户端已实现`QueryService<CompanyCustomerFileVo, CompanyCustomerFileViewModel>`
|
||||
|
||||
### project模块(12个)
|
||||
### project模块(0个未实现)
|
||||
1. **ProjectCostService** - 项目成本服务
|
||||
- ❌ 未实现`VoableService<ProjectCost, ProjectCostVo>`接口
|
||||
- ❌ 未实现`updateByVo(ProjectCost cost, ProjectCostVo vo)`方法
|
||||
- ✅ 已实现`VoableService<ProjectCost, ProjectCostVo>`接口
|
||||
- ✅ 已实现`updateByVo(ProjectCost cost, ProjectCostVo vo)`方法
|
||||
- 方法实现了将ProjectCostVo的description、version等属性映射到ProjectCost实体
|
||||
- 已正确处理project、contract、applicant、authorizer等关联实体
|
||||
- 实体类`ProjectCost`已实现`Voable<ProjectCostVo>`接口
|
||||
- VO类`ProjectCostVo`已创建
|
||||
|
||||
2. **DeliverySignMethodService** - 交付签收方法服务
|
||||
- ❌ 未实现`VoableService<DeliverySignMethod, DeliverySignMethodVo>`接口
|
||||
- ❌ 未实现`updateByVo(DeliverySignMethod method, DeliverySignMethodVo vo)`方法
|
||||
- ✅ 已实现`VoableService<DeliverySignMethod, DeliverySignMethodVo>`接口
|
||||
- ✅ 已实现`updateByVo(DeliverySignMethod method, DeliverySignMethodVo vo)`方法,映射name、code、description基本属性,处理saleType关联实体转换
|
||||
- 实体类`DeliverySignMethod`已实现`Voable<DeliverySignMethodVo>`接口
|
||||
- VO类`DeliverySignMethodVo`已创建
|
||||
|
||||
3. **ProjectFileTypeService** - 项目文件类型服务
|
||||
- ❌ 未实现`VoableService<ProjectFileType, ProjectFileTypeVo>`接口
|
||||
- ❌ 未实现`updateByVo(ProjectFileType fileType, ProjectFileTypeVo vo)`方法
|
||||
- ✅ 已实现`VoableService<ProjectFileTypeLocal, ProjectFileTypeLocalVo>`接口
|
||||
- ✅ 已实现`updateByVo(ProjectFileTypeLocal fileType, ProjectFileTypeLocalVo vo)`方法,映射type、lang、value基本属性
|
||||
- VO类`ProjectFileTypeLocalVo`已创建
|
||||
|
||||
4. **ProjectQuotationService** - 项目报价服务
|
||||
- ❌ 未实现`VoableService<ProjectQuotation, ProjectQuotationVo>`接口
|
||||
- ❌ 未实现`updateByVo(ProjectQuotation quotation, ProjectQuotationVo vo)`方法
|
||||
- ✅ 已实现`VoableService<ProjectQuotation, ProjectQuotationVo>`接口
|
||||
- ✅ 已实现`updateByVo(ProjectQuotation quotation, ProjectQuotationVo vo)`方法,映射level、standardPayWay等基本属性,处理project、applicant、authorizer关联实体转换
|
||||
- 实体类`ProjectQuotation`已实现`Voable<ProjectQuotationVo>`接口
|
||||
- VO类`ProjectQuotationVo`已创建
|
||||
|
||||
5. **ProjectBidService** - 项目投标服务
|
||||
- ❌ 未实现`VoableService<ProjectBid, ProjectBidVo>`接口
|
||||
- ❌ 未实现`updateByVo(ProjectBid bid, ProjectBidVo vo)`方法
|
||||
- ✅ 已实现`VoableService<ProjectBid, ProjectBidVo>`接口
|
||||
- ✅ 已实现`updateByVo(ProjectBid bid, ProjectBidVo vo)`方法
|
||||
- 实体类`ProjectBid`已实现`Voable<ProjectBidVo>`接口
|
||||
- VO类`ProjectBidVo`已创建
|
||||
|
||||
6. **ProjectSaleTypeRequireFileTypeService** - 项目销售类型要求文件类型服务
|
||||
- ❌ 未实现`VoableService<ProjectSaleTypeRequireFileType, ProjectSaleTypeRequireFileTypeVo>`接口
|
||||
- ❌ 未实现`updateByVo(ProjectSaleTypeRequireFileType fileType, ProjectSaleTypeRequireFileTypeVo vo)`方法
|
||||
- ✅ 已实现`VoableService<ProjectSaleTypeRequireFileType, ProjectSaleTypeRequireFileTypeVo>`接口
|
||||
- ✅ 已实现`updateByVo(ProjectSaleTypeRequireFileType fileType, ProjectSaleTypeRequireFileTypeVo vo)`方法
|
||||
|
||||
7. **ProjectFileService** - 项目文件服务
|
||||
- ❌ 未实现`VoableService<ProjectFile, ProjectFileVo>`接口
|
||||
- ❌ 未实现`updateByVo(ProjectFile file, ProjectFileVo vo)`方法
|
||||
- ✅ 已实现`VoableService<ProjectFile, ProjectFileVo>`接口
|
||||
- ✅ 已实现`updateByVo(ProjectFile file, ProjectFileVo vo)`方法
|
||||
|
||||
### vendor模块(10个)
|
||||
### vendor模块(0个未实现)
|
||||
1. **VendorTypeService** - 供应商类型服务
|
||||
- ❌ 未实现`VoableService<VendorType, VendorTypeVo>`接口
|
||||
- ❌ 未实现`updateByVo(VendorType type, VendorTypeVo vo)`方法
|
||||
- ✅ 已实现`VoableService<VendorTypeLocal, VendorTypeLocalVo>`接口
|
||||
- ✅ 已实现`updateByVo(VendorTypeLocal entity, VendorTypeLocalVo vo)`方法
|
||||
- ✅ 方法实现了将VendorTypeLocalVo的id、lang、type、value属性映射到VendorTypeLocal实体
|
||||
|
||||
2. **VendorApprovedFileService** - 供应商批准文件服务
|
||||
- ❌ 未实现`VoableService<VendorApprovedFile, VendorApprovedFileVo>`接口
|
||||
- ❌ 未实现`updateByVo(VendorApprovedFile file, VendorApprovedFileVo vo)`方法
|
||||
- ✅ 已实现`VoableService<VendorApprovedFile, VendorApprovedFileVo>`接口
|
||||
- ✅ 已实现`updateByVo(VendorApprovedFile entity, VendorApprovedFileVo vo)`方法
|
||||
- ✅ 方法实现了将VendorApprovedFileVo的id、fileName、signDate、description属性映射到VendorApprovedFile实体
|
||||
- ✅ 方法处理了listId到VendorApproved关联实体的转换
|
||||
- 实体类`VendorApprovedFile`已实现`Voable<VendorApprovedFileVo>`接口
|
||||
|
||||
3. **VendorEntityService** - 供应商实体服务
|
||||
- ❌ 未实现`VoableService<VendorEntity, VendorEntityVo>`接口
|
||||
- ❌ 未实现`updateByVo(VendorEntity entity, VendorEntityVo vo)`方法
|
||||
- ✅ 已实现`VoableService<VendorEntity, VendorEntityVo>`接口
|
||||
- ✅ 已实现`updateByVo(VendorEntity entity, VendorEntityVo vo)`方法
|
||||
- VO类`CompanyVendorEntityVo`已创建
|
||||
|
||||
4. **VendorApprovedItemService** - 供应商批准项服务
|
||||
- ❌ 未实现`VoableService<VendorApprovedItem, VendorApprovedItemVo>`接口
|
||||
- ❌ 未实现`updateByVo(VendorApprovedItem item, VendorApprovedItemVo vo)`方法
|
||||
- ✅ 已实现`VoableService<VendorApprovedItem, VendorApprovedItemVo>`接口
|
||||
- ✅ 已实现`updateByVo(VendorApprovedItem entity, VendorApprovedItemVo vo)`方法
|
||||
- ✅ 方法实现了将VendorApprovedItemVo的id、vendorName、type、description属性映射到VendorApprovedItem实体
|
||||
- ✅ 方法处理了listId到VendorApproved、vendorId到Vendor的关联实体转换
|
||||
- 实体类`VendorApprovedItem`已实现`Voable<VendorApprovedItemVo>`接口
|
||||
- VO类`VendorApprovedItemVo`已创建
|
||||
|
||||
5. **VendorGroupRequireFileTypeService** - 供应商组要求文件类型服务
|
||||
- ❌ 未实现`VoableService<VendorGroupRequireFileType, VendorGroupRequireFileTypeVo>`接口
|
||||
- ❌ 未实现`updateByVo(VendorGroupRequireFileType fileType, VendorGroupRequireFileTypeVo vo)`方法
|
||||
- ✅ 已实现`VoableService<VendorGroupRequireFileType, VendorGroupRequireFileTypeVo>`接口
|
||||
- ✅ 已实现`updateByVo(VendorGroupRequireFileType entity, VendorGroupRequireFileTypeVo vo)`方法
|
||||
- ✅ 方法实现了将VendorGroupRequireFileTypeVo的id、fileType、frequency属性映射到VendorGroupRequireFileType实体
|
||||
- ✅ 方法处理了groupId到VendorGroup的关联实体转换
|
||||
- 实体类`VendorGroupRequireFileType`已实现`Voable<VendorGroupRequireFileTypeVo>`接口
|
||||
- VO类`VendorGroupRequireFileTypeVo`已创建
|
||||
|
||||
6. **VendorFileTypeService** - 供应商文件类型服务
|
||||
- ❌ 未实现`VoableService<VendorFileType, VendorFileTypeVo>`接口
|
||||
- ❌ 未实现`updateByVo(VendorFileType fileType, VendorFileTypeVo vo)`方法
|
||||
- ✅ 已实现`VoableService<VendorFileTypeLocal, VendorFileTypeLocalVo>`接口
|
||||
- ✅ 已实现`updateByVo(VendorFileTypeLocal entity, VendorFileTypeLocalVo vo)`方法
|
||||
- ✅ 方法实现了将VendorFileTypeLocalVo的id、lang、value、type属性映射到VendorFileTypeLocal实体
|
||||
- 实体类`VendorFileTypeLocal`已实现`Voable<VendorFileTypeLocalVo>`接口
|
||||
- VO类`VendorFileTypeLocalVo`已创建
|
||||
|
||||
7. **VendorGroupService** - 供应商组服务
|
||||
- ❌ 未实现`VoableService<VendorGroup, VendorGroupVo>`接口
|
||||
- ❌ 未实现`updateByVo(VendorGroup group, VendorGroupVo vo)`方法
|
||||
- ✅ 已实现`VoableService<VendorGroup, VendorGroupVo>`接口
|
||||
- ✅ 已实现`updateByVo(VendorGroupVo vo)`方法
|
||||
- 方法实现了实体和VO的空值检查,以及id、name、code、description、active、priceComparison、requireQuotationSheetForBid属性的映射
|
||||
- 实体类`VendorGroup`已实现`Voable<VendorGroupVo>`接口
|
||||
- VO类`VendorGroupVo`已创建
|
||||
|
||||
8. **VendorApprovedService** - 供应商批准服务
|
||||
- ❌ 未实现`VoableService<VendorApproved, VendorApprovedVo>`接口
|
||||
- ❌ 未实现`updateByVo(VendorApproved approved, VendorApprovedVo vo)`方法
|
||||
- ✅ 已实现`VoableService<VendorApproved, VendorApprovedVo>`接口
|
||||
- ✅ 已实现`updateByVo(VendorApprovedVo vo)`方法
|
||||
- 方法实现了实体和VO的空值检查,以及title、publishDate、path、description属性的映射(id属性不更新)
|
||||
- 实体类`VendorApproved`已实现`Voable<VendorApprovedVo>`接口
|
||||
- VO类`VendorApprovedVo`已创建
|
||||
|
||||
9. **VendorCatalogService** - 供应商目录服务
|
||||
- ❌ 未实现`VoableService<VendorCatalog, VendorCatalogVo>`接口
|
||||
- ❌ 未实现`updateByVo(VendorCatalog catalog, VendorCatalogVo vo)`方法
|
||||
- ✅ 已实现`VoableService<VendorCatalog, VendorCatalogVo>`接口
|
||||
- ✅ 已实现`updateByVo(VendorCatalogVo vo)`方法
|
||||
- 方法实现了实体和VO的空值检查,以及name、code、type属性的映射(id属性不更新)
|
||||
- 实体类`VendorCatalog`已实现`Voable<VendorCatalogVo>`接口
|
||||
- VO类`VendorCatalogVo`已创建
|
||||
|
||||
10. **VendorFileService** - 供应商文件服务
|
||||
- ❌ 未实现`VoableService<VendorFile, VendorFileVo>`接口
|
||||
- ❌ 未实现`updateByVo(VendorFile file, VendorFileVo vo)`方法
|
||||
- ✅ 已实现`VoableService<VendorFile, VendorFileVo>`接口
|
||||
- ✅ 已实现`updateByVo(VendorFileVo vo)`方法
|
||||
- 方法实现了实体和VO的空值检查,以及type、filePath、editFilePath、signDate、valid属性的映射(id属性不更新)
|
||||
- 实体类`VendorFile`已实现`Voable<VendorFileVo>`接口
|
||||
- VO类`VendorFileVo`已创建
|
||||
|
||||
### other模块(2个)
|
||||
### other模块(0个未实现)
|
||||
1. **EmployeeLoginHistoryService** - 员工登录历史服务
|
||||
- ❌ 未实现`VoableService<EmployeeLoginHistory, EmployeeLoginHistoryVo>`接口
|
||||
- ❌ 未实现`updateByVo(EmployeeLoginHistory history, EmployeeLoginHistoryVo vo)`方法
|
||||
- ✅ 已实现`VoableService<EmployeeLoginHistory, EmployeeLoginHistoryVo>`接口
|
||||
- ✅ 已实现`updateByVo(EmployeeLoginHistoryVo vo)`方法
|
||||
- 方法实现了实体和VO的空值检查,以及employee、ip、mac、loginTime、activeTime属性的映射(id属性不更新)
|
||||
- 实体类`EmployeeLoginHistory`已实现`Voable<EmployeeLoginHistoryVo>`接口
|
||||
- VO类`EmployeeLoginHistoryVo`已创建
|
||||
|
||||
2. **EmployeeAuthBindService** - 员工授权绑定服务
|
||||
- ❌ 未实现`VoableService<EmployeeAuthBind, EmployeeAuthBindVo>`接口
|
||||
- ❌ 未实现`updateByVo(EmployeeAuthBind bind, EmployeeAuthBindVo vo)`方法
|
||||
- ✅ 已实现`VoableService<EmployeeAuthBind, EmployeeAuthBindVo>`接口
|
||||
- ✅ 已实现`updateByVo(EmployeeAuthBind model, EmployeeAuthBindVo vo)`方法
|
||||
- 方法实现了将EmployeeAuthBindVo的ip、mac、createTime、updateTime、description属性映射到EmployeeAuthBind实体
|
||||
- employee和updater属性通过ID查找对应的实体
|
||||
- 实体类`EmployeeAuthBind`已实现`Voable<EmployeeAuthBindVo>`接口
|
||||
- VO类`EmployeeAuthBindVo`已创建
|
||||
|
||||
### cloud模块(3个)
|
||||
1. **YongYouU8Service** - 用友U8服务
|
||||
- ❌ 未实现`VoableService<YongYouU8, YongYouU8Vo>`接口
|
||||
- ❌ 未实现`updateByVo(YongYouU8 u8, YongYouU8Vo vo)`方法
|
||||
- ❌ 未实现`VoableService<CloudYu, CloudYuVo>`接口(实际实体类为CloudYu)
|
||||
- ❌ 未实现`updateByVo(CloudYu cloudYu, CloudYuVo vo)`方法
|
||||
- ✅ 实体类`CloudYu`已实现`Voable<CloudYuVo>`接口
|
||||
- ✅ `CloudYuVo`类已创建
|
||||
|
||||
2. **CloudTycService** - 云天眼查服务
|
||||
- ❌ 未实现`VoableService<CloudTyc, CloudTycVo>`接口
|
||||
- ❌ 未实现`updateByVo(CloudTyc tyc, CloudTycVo vo)`方法
|
||||
- ✅ 实体类`CloudTyc`已实现`Voable<CloudTycVo>`接口
|
||||
- ✅ `CloudTycVo`类已创建
|
||||
|
||||
3. **CloudRkService** - 云瑞科服务
|
||||
- ❌ 未实现`VoableService<CloudRk, CloudRkVo>`接口
|
||||
- ❌ 未实现`updateByVo(CloudRk rk, CloudRkVo vo)`方法
|
||||
- ✅ 实体类`CloudRk`已实现`Voable<CloudRkVo>`接口
|
||||
- ✅ `CloudRkVo`类已创建
|
||||
|
||||
## 已完成的实现修改
|
||||
|
||||
通过对server模块下所有实现了[`IEntityService`](/server/src/main/java/com/ecep/contract/IEntityService.java)接口的73个Service的分析,我们发现:
|
||||
|
||||
1. **已实现VoableService接口的Service**:
|
||||
- 25个Service已成功实现`VoableService<M, Vo>`接口
|
||||
- 这些Service包括:ContractService、CompanyService、CompanyCustomerService、ProjectService、VendorService、BankService、DepartmentService、EmployeeService、FunctionService、ProjectCostItemService、EmployeeRoleService、PermissionService、ProductTypeService、ProjectFundPlanService、ProjectIndustryService、ProjectSaleTypeService、ProjectTypeService、ProductUsageService、CustomerSatisfactionSurveyService、InventoryService、InventoryHistoryPriceService、CompanyBlackReasonService、CompanyCustomerEntityService、CompanyFileTypeService、CompanyOldNameService和PurchaseBillVoucherItemService
|
||||
- 所有Service已经正确实现了`updateByVo`方法,能够将VO对象的数据映射到实体对象中
|
||||
- 已完成的实现修改已经通过Maven编译验证,确保了代码的正确性和稳定性
|
||||
- 70个Service已成功实现`VoableService<M, Vo>`接口(contract、company、customer、project、vendor和other模块的所有Service)
|
||||
- 所有Service已经正确实现了`updateByVo`方法,能够将Vo对象的数据映射到实体对象中
|
||||
- 仅有cloud模块的3个Service尚未实现
|
||||
|
||||
2. **在实现过程中修复的问题**:
|
||||
- 移除不存在的ServiceException导入
|
||||
- 调整SpringApp导入路径
|
||||
- 修复ProjectFundPlan.java中调用不存在的setProjectName方法的问题
|
||||
- 为PurchaseBillVoucherService添加VoableService接口实现和updateByVo方法
|
||||
- 为ContractFileService添加VoableService接口实现和updateByVo方法,并完善空值检查
|
||||
- 为ContractCatalogService添加VoableService接口实现和updateByVo方法
|
||||
- 为ContractGroupService添加VoableService接口实现和updateByVo方法
|
||||
|
||||
## 需要进行的实现修改
|
||||
|
||||
以下48个Service需要实现`VoableService<M, Vo>`接口:
|
||||
|
||||
所有未实现的Service需要按照以下规范进行实现:
|
||||
所有未实现的Service需要实现`com.ecep.contract.service.VoableService<M, Vo>`接口,按照以下规范进行实现:
|
||||
|
||||
1. 添加`implements VoableService<M, Vo>`接口声明
|
||||
2. 实现`updateByVo(M model, Vo vo)`方法,将VO对象的属性映射到实体对象中
|
||||
@@ -490,21 +609,22 @@
|
||||
4. 确保正确导入`com.ecep.contract.service.VoableService`和对应的VO类包
|
||||
5. 如果实体类有@Version注解的字段,在updateByVo方法中检查版本号一致性
|
||||
|
||||
> 注:根据[`create_vo.md`](/docs/task/create_vo.md)文档中的要求,所有Server模块的Service都需要继承`VoableService<M, Vo>`接口。目前还有48个Service未实现该接口,需要尽快完成实现以满足系统架构要求。
|
||||
|
||||
## 关于 `updateByVo` 方法实现规范
|
||||
|
||||
在实现`updateByVo`方法时,请遵循以下规范:
|
||||
|
||||
- Service 如果缺少`updateByVo`方法,请添加该方法 `void updateByVo(M model, Vo vo)`,并确保该方法将VO对象中的数据映射到实体对象中
|
||||
- 如果实体类有 @Version 注解的字段,如 version 字段,在 updateByVo 方法中,判断版本号是否一致,不一致则打印警告日志
|
||||
- 如果Vo的属性转换时可以使用 `SpringApp.getBean( Service.class ).findById(id)` 方法来转换为对象
|
||||
- Vo的属性转换时可以使用 `SpringApp.getBean().findById(id)` 方法来转换为对象
|
||||
- id 属性不用更新
|
||||
- 方法的返回类型为 void
|
||||
- 确保正确处理关联实体的映射逻辑
|
||||
- 确保所有必要的包都已正确导入
|
||||
- 参考 [`ContractService`](/server/src/main/java/com/ecep/contract/ds/contract/service/ContractService.java) 的 updateByVo 方法实现
|
||||
|
||||
## 结论
|
||||
|
||||
通过本次分析,我们确认了Contract-Manager项目中Server模块Service对VoableService接口的实现状况。目前已有25个Service成功实现了该接口,并正确实现了updateByVo方法,还有48个Service尚未实现。
|
||||
通过本次分析,我们确认了Contract-Manager项目中Server模块Service对VoableService接口的实现状况。目前已有70个Service成功实现了该接口,并正确实现了updateByVo方法,还有3个Service尚未实现(均在cloud模块中)。
|
||||
|
||||
这些修改将确保:
|
||||
1. 所有Service都符合系统架构要求,支持Vo对象到实体对象的转换
|
||||
@@ -512,4 +632,4 @@
|
||||
3. 为前端UI提供更好的数据绑定和更新支持
|
||||
4. 使系统整体设计更加统一,便于后续扩展和维护
|
||||
|
||||
建议尽快完成剩余48个Service的实现,以确保系统架构的完整性和一致性。
|
||||
建议尽快完成剩余3个Service的实现(cloud模块中的YongYouU8Service、CloudTycService和CloudRkService),以确保系统架构的完整性和一致性。
|
||||
|
||||
Reference in New Issue
Block a user