Files
contract-manager/docs/task/voable_service_implementation_analysis.md
songqq 42a8f9ab30 refactor(service): 实现VoableService接口以统一VO与实体映射逻辑
refactor(model): 重构实体类与VO类的字段映射关系
style: 调整代码格式与注释
fix: 修复部分字段映射错误
2025-09-26 12:31:08 +08:00

44 KiB
Raw Blame History

VoableService接口实现情况分析报告

概述

本报告分析了Server模块下,所有实现了IEntityService接口的Service是否都继承实现了com.ecep.contract.service.VoableService<M, Vo>,包括接口的继承和接口方法的实现,并确认其是否符合create_vo.md的要求。

范围

  • Server 模块中实现了IEntityService接口的Service类
  • 实体类和Vo类定义在 Common 模块
  • 参考 create_vo.md 文档规范

需要实现VoableService接口的Service列表

通过分析server模块下共有73个实现了IEntityService接口的Service类按模块分类如下

contract模块Service18个

  1. ContractService - 合同服务
  2. ContractGroupService - 合同组服务
  3. ContractFileService - 合同文件服务
  4. SalesBillVoucherService - 销售票据凭证服务
  5. ContractCatalogService - 合同目录服务
  6. PurchaseOrderItemService - 采购订单项服务
  7. PurchaseBillVoucherService - 采购票据凭证服务
  8. ExtendVendorInfoService - 扩展供应商信息服务
  9. SalesOrderItemService - 销售订单项服务
  10. ContractKindService - 合同种类服务
  11. ContractBidVendorService - 合同投标供应商服务
  12. ContractPayPlanService - 合同付款计划服务
  13. SaleOrdersService - 销售订单服务
  14. ContractItemService - 合同项目服务
  15. ContractTypeService - 合同类型服务
  16. PurchaseOrdersService - 采购订单服务
  17. ContractFileTypeService - 合同文件类型服务
  18. PurchaseBillVoucherItemService - 采购发票凭证项服务

company模块Service8个

  1. InvoiceService - 发票服务
  2. CompanyFileTypeService - 公司文件类型服务
  3. CompanyBlackReasonService - 公司黑名单原因服务
  4. CompanyContactService - 公司联系人服务
  5. CompanyBankAccountService - 公司银行账户服务
  6. CompanyOldNameService - 公司旧名称服务
  7. CompanyFileService - 公司文件服务
  8. CompanyService - 公司服务

customer模块Service7个

  1. CompanyCustomerFileTypeService - 公司客户文件类型服务
  2. CustomerFileTypeService - 客户文件类型服务
  3. CustomerCatalogService - 客户目录服务
  4. CompanyCustomerEntityService - 公司客户实体服务
  5. CompanyCustomerEvaluationFormFileService - 公司客户评估表单文件服务
  6. CompanyCustomerService - 公司客户服务
  7. CompanyCustomerFileService - 公司客户文件服务

project模块Service16个

  1. ProjectCostService - 项目成本服务
  2. ProjectService - 项目服务
  3. ProjectSaleTypeService - 项目销售类型服务
  4. ProjectCostItemService - 项目成本项服务
  5. CustomerSatisfactionSurveyService - 客户满意度调查服务
  6. ProductTypeService - 产品类型服务
  7. DeliverySignMethodService - 交付签收方法服务
  8. ProjectTypeService - 项目类型服务
  9. ProjectFileTypeService - 项目文件类型服务
  10. ProjectIndustryService - 项目行业服务
  11. ProjectFundPlanService - 项目资金计划服务
  12. ProjectQuotationService - 项目报价服务
  13. ProductUsageService - 产品使用服务
  14. ProjectBidService - 项目投标服务
  15. ProjectSaleTypeRequireFileTypeService - 项目销售类型要求文件类型服务
  16. ProjectFileService - 项目文件服务

vendor模块Service11个

  1. VendorTypeService - 供应商类型服务
  2. VendorService - 供应商服务
  3. VendorApprovedFileService - 供应商批准文件服务
  4. VendorEntityService - 供应商实体服务
  5. VendorApprovedItemService - 供应商批准项服务
  6. VendorGroupRequireFileTypeService - 供应商组要求文件类型服务
  7. VendorFileTypeService - 供应商文件类型服务
  8. VendorGroupService - 供应商组服务
  9. VendorApprovedService - 供应商批准服务
  10. VendorCatalogService - 供应商目录服务
  11. VendorFileService - 供应商文件服务

other模块Service10个

  1. EmployeeLoginHistoryService - 员工登录历史服务
  2. EmployeeService - 员工服务
  3. InventoryHistoryPriceService - 库存历史价格服务
  4. DepartmentService - 部门服务
  5. EmployeeRoleService - 员工角色服务
  6. BankService - 银行服务
  7. EmployeeAuthBindService - 员工授权绑定服务
  8. FunctionService - 功能服务
  9. InventoryService - 库存服务
  10. PermissionService - 权限服务

cloud模块Service3个

  1. YongYouU8Service - 用友U8服务
  2. CloudTycService - 云天眼查服务
  3. CloudRkService - 云瑞科服务

VoableService接口实现情况分析

已实现VoableService接口的Service列表

经过检查以下Service已经实现了VoableService<M, Vo>接口:

ContractService

  • 已实现VoableService<Contract, ContractVo>接口
  • 已实现updateByVo(Contract contract, ContractVo vo)方法
  • 该方法负责将ContractVo对象的属性映射到Contract实体对象中
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.ContractVo

CompanyService

  • 已实现VoableService<Company, CompanyVo>接口
  • 已实现updateByVo(Company company, CompanyVo vo)方法
  • 方法实现了将CompanyVo的15个属性name、shortName、uniscid、legalRepresentative等映射到Company实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.CompanyVo

CompanyCustomerService

  • 已实现VoableService<CompanyCustomer, CompanyCustomerVo>接口
  • 已实现updateByVo(CompanyCustomer customer, CompanyCustomerVo vo)方法
  • 方法实现了将CompanyCustomerVo的属性映射到CompanyCustomer实体并处理了customerCatalogId的关联查询
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.CompanyCustomerVo

ProjectService

  • 已实现VoableService<Project, ProjectVo>接口
  • 已实现updateByVo(Project project, ProjectVo vo)方法
  • 方法实现了将ProjectVo的12个属性映射到Project实体并处理了多个关联对象项目类型、销售类型等的查询逻辑
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.ProjectVo

VendorService

  • 已实现VoableService<Vendor, VendorVo>接口
  • 已实现updateByVo(Vendor vendor, VendorVo vo)方法
  • 方法实现了将VendorVo的属性type、protocolProvider、developDate等映射到Vendor实体并处理了catalog和contact的关联查询
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.VendorVo

BankService

  • 已实现VoableService<Bank, BankVo>接口
  • 已实现updateByVo(Bank bank, BankVo vo)方法
  • 方法实现了将BankVo的code和name属性映射到Bank实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.BankVo

DepartmentService

  • 已实现VoableService<Department, DepartmentVo>接口
  • 已实现updateByVo(Department department, DepartmentVo vo)方法
  • 方法实现了将DepartmentVo的code、name、active属性映射到Department实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.DepartmentVo

EmployeeService

  • 已实现VoableService<Employee, EmployeeVo>接口
  • 已实现updateByVo(Employee employee, EmployeeVo vo)方法
  • 方法实现了将EmployeeVo的10个属性映射到Employee实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.EmployeeVo

FunctionService

  • 已实现VoableService<Function, FunctionVo>接口
  • 已实现updateByVo(Function function, FunctionVo vo)方法
  • 方法实现了将FunctionVo的code、name、icon等属性映射到Function实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.FunctionVo

ProjectCostItemService

  • 已实现VoableService<ProjectCostItem, ProjectCostItemVo>接口
  • 已实现updateByVo(ProjectCostItem costItem, ProjectCostItemVo vo)方法
  • 方法实现了将ProjectCostItemVo的属性映射到ProjectCostItem实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.ProjectCostItemVo

EmployeeRoleService

  • 已实现VoableService<EmployeeRole, EmployeeRoleVo>接口
  • 已实现updateByVo(EmployeeRole role, EmployeeRoleVo vo)方法
  • 方法实现了将EmployeeRoleVo的name、code、description等属性映射到EmployeeRole实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.EmployeeRoleVo

PermissionService

  • 已实现VoableService<Permission, PermissionVo>接口
  • 已实现updateByVo(Permission permission, PermissionVo vo)方法
  • 方法实现了将PermissionVo的name、code、description等属性映射到Permission实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.PermissionVo

ProductTypeService

  • 已实现VoableService<ProductType, ProductTypeVo>接口
  • 已实现updateByVo(ProductType type, ProductTypeVo vo)方法
  • 方法实现了将ProductTypeVo的name、code、description等属性映射到ProductType实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.ProductTypeVo

ProjectFundPlanService

  • 已实现VoableService<ProjectFundPlan, ProjectFundPlanVo>接口
  • 已实现updateByVo(ProjectFundPlan fundPlan, ProjectFundPlanVo vo)方法
  • 方法实现了将ProjectFundPlanVo的projectId、planDate、amount等属性映射到ProjectFundPlan实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.ProjectFundPlanVo

ProjectIndustryService

  • 已实现VoableService<ProjectIndustry, ProjectIndustryVo>接口
  • 已实现updateByVo(ProjectIndustry industry, ProjectIndustryVo vo)方法
  • 方法实现了将ProjectIndustryVo的name、code等属性映射到ProjectIndustry实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.ProjectIndustryVo

ProjectSaleTypeService

  • 已实现VoableService<ProjectSaleType, ProjectSaleTypeVo>接口
  • 已实现updateByVo(ProjectSaleType saleType, ProjectSaleTypeVo vo)方法
  • 方法实现了将ProjectSaleTypeVo的name、code等属性映射到ProjectSaleType实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.ProjectSaleTypeVo

ProjectTypeService

  • 已实现VoableService<ProjectType, ProjectTypeVo>接口
  • 已实现updateByVo(ProjectType type, ProjectTypeVo vo)方法
  • 方法实现了将ProjectTypeVo的name、code等属性映射到ProjectType实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.ProjectTypeVo

ProductUsageService

  • 已实现VoableService<ProductUsage, ProductUsageVo>接口
  • 已实现updateByVo(ProductUsage usage, ProductUsageVo vo)方法
  • 方法实现了将ProductUsageVo的name、code等属性映射到ProductUsage实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.ProductUsageVo

CustomerSatisfactionSurveyService

  • 已实现VoableService<CustomerSatisfactionSurvey, CustomerSatisfactionSurveyVo>接口
  • 已实现updateByVo(CustomerSatisfactionSurvey survey, CustomerSatisfactionSurveyVo vo)方法
  • 方法实现了将CustomerSatisfactionSurveyVo的customerId、projectId、score等属性映射到CustomerSatisfactionSurvey实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.CustomerSatisfactionSurveyVo

InventoryService

  • 已实现VoableService<Inventory, InventoryVo>接口
  • 已实现updateByVo(Inventory inventory, InventoryVo vo)方法
  • 方法实现了将InventoryVo的productName、productType、quantity等属性映射到Inventory实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.InventoryVo

InventoryHistoryPriceService

  • 已实现VoableService<InventoryHistoryPrice, InventoryHistoryPriceVo>接口
  • 已实现updateByVo(InventoryHistoryPrice history, InventoryHistoryPriceVo vo)方法
  • 方法实现了将InventoryHistoryPriceVo的inventoryId、price、changeDate等属性映射到InventoryHistoryPrice实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.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.VoableServicecom.ecep.contract.vo.SalesBillVoucherVo

ExtendVendorInfoService

  • 已实现VoableService<ExtendVendorInfo, ExtendVendorInfoVo>接口
  • 已实现updateByVo(ExtendVendorInfo info, ExtendVendorInfoVo vo)方法
  • 方法实现了将ExtendVendorInfoVo的codeSequenceNumber、assignedProvider、prePurchase等属性映射到ExtendVendorInfo实体
  • 已正确处理contract、group等关联实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.ExtendVendorInfoVo

ContractItemService

  • 已实现VoableService<ContractItem, ContractItemVo>接口
  • 已实现updateByVo(ContractItem item, ContractItemVo vo)方法
  • 方法实现了将ContractItemVo的基本属性映射到ContractItem实体
  • 已正确处理contract、inventory、creator、updater等关联实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.ContractItemVo

ContractTypeService

  • 已实现VoableService<ContractType, ContractTypeVo>接口
  • 已实现updateByVo(ContractType type, ContractTypeVo vo)方法
  • 方法实现了将ContractTypeVo的name、code、catalog、title、direction等属性映射到ContractType实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.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.VoableServicecom.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.VoableServicecom.ecep.contract.vo.SalesOrderVo

ContractKindService

  • 已实现VoableService<ContractKind, ContractKindVo>接口
  • 已实现updateByVo(ContractKind model, ContractKindVo vo)方法
  • 方法实现了将ContractKindVo的name、code、title等属性映射到ContractKind实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.ContractKindVo

ContractBidVendorService

  • 已实现VoableService<ContractBidVendor, ContractBidVendorVo>接口
  • 已实现updateByVo(ContractBidVendor model, ContractBidVendorVo vo)方法
  • 已正确处理contract、company、quotationSheet等关联实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.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.VoableServicecom.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.VoableServicecom.ecep.contract.vo.PurchaseBillVoucherVo

PurchaseOrderItemService

  • 已实现VoableService<PurchaseOrderItem, PurchaseOrderItemVo>接口
  • 已实现updateByVo(PurchaseOrderItem item, PurchaseOrderItemVo vo)方法
  • 方法实现了将PurchaseOrderItemVo的id、code、name、quantity、price等属性映射到PurchaseOrderItem实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.PurchaseOrderItemVo

SalesOrderItemService

  • 已实现VoableService<SalesOrderItem, SalesOrderItemVo>接口
  • 已实现updateByVo(SalesOrderItem item, SalesOrderItemVo vo)方法
  • 方法实现了将SalesOrderItemVo的id、code、name、quantity、price等属性映射到SalesOrderItem实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.SalesOrderItemVo

CompanyBlackReasonService

  • 已实现VoableService<CompanyBlackReason, CompanyBlackReasonVo>接口
  • 已实现updateByVo(CompanyBlackReason reason, CompanyBlackReasonVo vo)方法
  • 方法实现了将CompanyBlackReasonVo的companyId、reason、startDate等属性映射到CompanyBlackReason实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.CompanyBlackReasonVo

CompanyCustomerEntityService

  • 已实现VoableService<CompanyCustomerEntity, CompanyCustomerEntityVo>接口
  • 已实现updateByVo(CompanyCustomerEntity entity, CompanyCustomerEntityVo vo)方法
  • 方法实现了将CompanyCustomerEntityVo的name、abbName、code等基本属性映射到CompanyCustomerEntity实体
  • 已正确处理customer、catalog、creator、modifier等关联实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.CompanyCustomerEntityVo

CompanyFileTypeService

  • 已实现VoableService<CompanyFileType, CompanyFileTypeVo>接口
  • 已实现updateByVo(CompanyFileType fileType, CompanyFileTypeVo vo)方法
  • 方法实现了将CompanyFileTypeVo的name、code、description等属性映射到CompanyFileType实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.CompanyFileTypeVo

CompanyOldNameService

  • 已实现VoableService<CompanyOldName, CompanyOldNameVo>接口
  • 已实现updateByVo(CompanyOldName oldName, CompanyOldNameVo vo)方法
  • 方法实现了将CompanyOldNameVo的companyId、name、beginDate、endDate等属性映射到CompanyOldName实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.CompanyOldNameVo

PurchaseBillVoucherItemService

  • 已实现VoableService<PurchaseBillVoucherItem, PurchaseBillVoucherItemVo>接口
  • 已实现updateByVo(PurchaseBillVoucherItem item, PurchaseBillVoucherItemVo vo)方法
  • 方法实现了将PurchaseBillVoucherItemVo的id、refId、quantity、price等属性映射到PurchaseBillVoucherItem实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.PurchaseBillVoucherItemVo

ContractFileService

  • 已实现VoableService<ContractFile, ContractFileVo>接口
  • 已实现updateByVo(ContractFile file, ContractFileVo vo)方法
  • 方法实现了将ContractFileVo的id、contractId、type、fileName、applyDate、description等属性映射到ContractFile实体
  • 已正确处理contract关联实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.ContractFileVo

ContractCatalogService

  • 已实现VoableService<ContractCatalog, ContractCatalogVo>接口
  • 已实现updateByVo(ContractCatalog catalog, ContractCatalogVo vo)方法
  • 方法实现了将ContractCatalogVo的id、code、name、path、parent、useYear等属性映射到ContractCatalog实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.ContractCatalogVo

ContractGroupService

  • 已实现VoableService<ContractGroup, ContractGroupVo>接口
  • 已实现updateByVo(ContractGroup group, ContractGroupVo vo)方法
  • 方法实现了将ContractGroupVo的id、name、code、title等属性映射到ContractGroup实体
  • 已正确导入com.ecep.contract.service.VoableServicecom.ecep.contract.vo.ContractGroupVo

VoableService接口实现状态分析

经过重新检查contract、company、customer、project、vendor和other模块的所有Service已实现VoableService<M, Vo>接口仅cloud模块的3个Service尚未实现具体参考后续各模块的实现状态分析

contract模块0个未实现

所有contract模块Service已实现VoableService接口

contract模块已实现的Service

  1. PurchaseOrdersService - 采购订单服务
    • 已实现VoableService<PurchaseOrder, PurchaseOrderVo>接口
    • 已实现updateByVo(PurchaseOrder order, PurchaseOrderVo vo)方法

company模块 (0个未实现)

  1. InvoiceService - 发票服务

    • 已实现VoableService<Invoice, InvoiceVo>接口
    • 已实现updateByVo(Invoice invoice, InvoiceVo vo)方法
    • 实体类Invoice已实现Voable<InvoiceVo>接口
    • VO类InvoiceVo已创建
  2. CompanyContactService - 公司联系人服务

    • 已实现VoableService<CompanyContact, CompanyContactVo>接口
    • 已实现updateByVo(CompanyContact contact, CompanyContactVo vo)方法
    • 实体类CompanyContact已实现Voable<CompanyContactVo>接口
    • VO类CompanyContactVo已创建
  3. CompanyBankAccountService - 公司银行账户服务

    • 已实现VoableService<CompanyBankAccount, CompanyBankAccountVo>接口
    • 已实现updateByVo(CompanyBankAccount account, CompanyBankAccountVo vo)方法
    • 实体类CompanyBankAccount已实现Voable<CompanyBankAccountVo>接口
    • VO类CompanyBankAccountVo已创建
  4. CompanyFileService - 公司文件服务

    • 已实现VoableService<CompanyFile, CompanyFileVo>接口
    • 已实现updateByVo(CompanyFile file, CompanyFileVo vo)方法
    • 实体类CompanyFile已实现Voable<CompanyFileVo>接口
    • VO类CompanyFileVo已创建

customer模块0个未实现

  1. CompanyCustomerFileTypeService - 公司客户文件类型服务

    • 已实现VoableService<CompanyCustomerFileTypeLocal, CompanyCustomerFileTypeLocalVo>接口
    • 已实现updateByVo(CompanyCustomerFileTypeLocal fileType, CompanyCustomerFileTypeLocalVo vo)方法
    • 客户端已实现QueryService<CustomerFileTypeLocalVo, CompanyCustomerFileTypeLocalViewModel>
    • 实现细节映射了type、lang、value等基本属性
  2. CustomerFileTypeService - 客户文件类型服务

    • 已实现VoableService<CustomerFileTypeLocal, CustomerFileTypeLocalVo>接口
    • 已实现updateByVo(CustomerFileTypeLocal fileType, CustomerFileTypeLocalVo vo)方法
    • 实现细节映射了type、lang、value等基本属性
  3. CustomerCatalogService - 客户目录服务

    • 已实现VoableService<CustomerCatalog, CustomerCatalogVo>接口
    • 已实现updateByVo(CustomerCatalog catalog, CustomerCatalogVo vo)方法
    • VO类CustomerCatalogVo已创建(标记为已更新)
    • 实现细节映射了code、name、description等基本属性
  4. CompanyCustomerEvaluationFormFileService - 公司客户评估表单文件服务

    • 已实现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)方法
    • 方法实现了将CompanyCustomerFileVo的filePath、type、signDate、valid等属性映射到CompanyCustomerFile实体
    • 已正确处理customer关联实体
    • 实体类CompanyCustomerFile已实现Voable<CompanyCustomerFileVo>接口
    • 客户端已实现QueryService<CompanyCustomerFileVo, CompanyCustomerFileViewModel>

project模块0个未实现

  1. ProjectCostService - 项目成本服务

    • 已实现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)方法映射name、code、description基本属性处理saleType关联实体转换
    • 实体类DeliverySignMethod已实现Voable<DeliverySignMethodVo>接口
    • VO类DeliverySignMethodVo已创建
  3. ProjectFileTypeService - 项目文件类型服务

    • 已实现VoableService<ProjectFileTypeLocal, ProjectFileTypeLocalVo>接口
    • 已实现updateByVo(ProjectFileTypeLocal fileType, ProjectFileTypeLocalVo vo)方法映射type、lang、value基本属性
    • VO类ProjectFileTypeLocalVo已创建
  4. ProjectQuotationService - 项目报价服务

    • 已实现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)方法
    • 实体类ProjectBid已实现Voable<ProjectBidVo>接口
    • VO类ProjectBidVo已创建
  6. ProjectSaleTypeRequireFileTypeService - 项目销售类型要求文件类型服务

    • 已实现VoableService<ProjectSaleTypeRequireFileType, ProjectSaleTypeRequireFileTypeVo>接口
    • 已实现updateByVo(ProjectSaleTypeRequireFileType fileType, ProjectSaleTypeRequireFileTypeVo vo)方法
  7. ProjectFileService - 项目文件服务

    • 已实现VoableService<ProjectFile, ProjectFileVo>接口
    • 已实现updateByVo(ProjectFile file, ProjectFileVo vo)方法

vendor模块0个未实现

  1. VendorTypeService - 供应商类型服务

    • 已实现VoableService<VendorTypeLocal, VendorTypeLocalVo>接口
    • 已实现updateByVo(VendorTypeLocal entity, VendorTypeLocalVo vo)方法
    • 方法实现了将VendorTypeLocalVo的id、lang、type、value属性映射到VendorTypeLocal实体
  2. VendorApprovedFileService - 供应商批准文件服务

    • 已实现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)方法
    • VO类CompanyVendorEntityVo已创建
  4. VendorApprovedItemService - 供应商批准项服务

    • 已实现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 entity, VendorGroupRequireFileTypeVo vo)方法
    • 方法实现了将VendorGroupRequireFileTypeVo的id、fileType、frequency属性映射到VendorGroupRequireFileType实体
    • 方法处理了groupId到VendorGroup的关联实体转换
    • 实体类VendorGroupRequireFileType已实现Voable<VendorGroupRequireFileTypeVo>接口
    • VO类VendorGroupRequireFileTypeVo已创建
  6. VendorFileTypeService - 供应商文件类型服务

    • 已实现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(VendorGroupVo vo)方法
    • 方法实现了实体和VO的空值检查以及id、name、code、description、active、priceComparison、requireQuotationSheetForBid属性的映射
    • 实体类VendorGroup已实现Voable<VendorGroupVo>接口
    • VO类VendorGroupVo已创建
  8. VendorApprovedService - 供应商批准服务

    • 已实现VoableService<VendorApproved, VendorApprovedVo>接口
    • 已实现updateByVo(VendorApprovedVo vo)方法
    • 方法实现了实体和VO的空值检查以及title、publishDate、path、description属性的映射id属性不更新
    • 实体类VendorApproved已实现Voable<VendorApprovedVo>接口
    • VO类VendorApprovedVo已创建
  9. VendorCatalogService - 供应商目录服务

    • 已实现VoableService<VendorCatalog, VendorCatalogVo>接口
    • 已实现updateByVo(VendorCatalogVo vo)方法
    • 方法实现了实体和VO的空值检查以及name、code、type属性的映射id属性不更新
    • 实体类VendorCatalog已实现Voable<VendorCatalogVo>接口
    • VO类VendorCatalogVo已创建
  10. VendorFileService - 供应商文件服务

  • 已实现VoableService<VendorFile, VendorFileVo>接口
  • 已实现updateByVo(VendorFileVo vo)方法
  • 方法实现了实体和VO的空值检查以及type、filePath、editFilePath、signDate、valid属性的映射id属性不更新
  • 实体类VendorFile已实现Voable<VendorFileVo>接口
  • VO类VendorFileVo已创建

other模块0个未实现

  1. EmployeeLoginHistoryService - 员工登录历史服务

    • 已实现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 model, EmployeeAuthBindVo vo)方法
    • 方法实现了将EmployeeAuthBindVo的ip、mac、createTime、updateTime、description属性映射到EmployeeAuthBind实体
    • employee和updater属性通过ID查找对应的实体
    • 实体类EmployeeAuthBind已实现Voable<EmployeeAuthBindVo>接口
    • VO类EmployeeAuthBindVo已创建

cloud模块3个

  1. YongYouU8Service - 用友U8服务

    • 未实现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接口的73个Service的分析我们发现

  1. 已实现VoableService接口的Service

    • 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方法

需要进行的实现修改

所有未实现的Service需要实现com.ecep.contract.service.VoableService<M, Vo>接口,按照以下规范进行实现:

  1. 添加implements VoableService<M, Vo>接口声明
  2. 实现updateByVo(M model, Vo vo)方法将VO对象的属性映射到实体对象中
  3. 对于关联实体属性使用SpringApp.getBean()方法获取相关Service并调用findById()方法进行转换
  4. 确保正确导入com.ecep.contract.service.VoableService和对应的VO类包
  5. 如果实体类有@Version注解的字段在updateByVo方法中检查版本号一致性

关于 updateByVo 方法实现规范

在实现updateByVo方法时,请遵循以下规范:

  • Service 如果缺少updateByVo方法,请添加该方法 void updateByVo(M model, Vo vo)并确保该方法将VO对象中的数据映射到实体对象中
  • 如果实体类有 @Version 注解的字段,如 version 字段,在 updateByVo 方法中,判断版本号是否一致,不一致则打印警告日志
  • Vo的属性转换时可以使用 SpringApp.getBean().findById(id) 方法来转换为对象
  • id 属性不用更新
  • 方法的返回类型为 void
  • 确保正确处理关联实体的映射逻辑
  • 确保所有必要的包都已正确导入
  • 参考 ContractService 的 updateByVo 方法实现

结论

通过本次分析我们确认了Contract-Manager项目中Server模块Service对VoableService接口的实现状况。目前已有70个Service成功实现了该接口并正确实现了updateByVo方法还有3个Service尚未实现均在cloud模块中

这些修改将确保:

  1. 所有Service都符合系统架构要求支持Vo对象到实体对象的转换
  2. 代码结构更加一致,提高了系统的可维护性
  3. 为前端UI提供更好的数据绑定和更新支持
  4. 使系统整体设计更加统一,便于后续扩展和维护

建议尽快完成剩余3个Service的实现cloud模块中的YongYouU8Service、CloudTycService和CloudRkService以确保系统架构的完整性和一致性。