refactor(model): 重构模型类包结构并优化序列化处理

重构模型类包结构,将模型类按功能模块划分到不同的子包中。优化序列化处理,为VO类添加serialVersionUID并实现Serializable接口。移除部分冗余的serialVersionUID字段,简化模型类代码。同时修复UITools中空值处理的问题,并更新pom版本至0.0.100-SNAPSHOT。

- 将模型类按功能模块划分到ds子包中
- 为VO类添加序列化支持
- 移除冗余的serialVersionUID字段
- 修复UITools空值处理问题
- 更新项目版本号
This commit is contained in:
2025-10-09 18:27:48 +08:00
parent 51b8c16798
commit c4eec0a9dd
457 changed files with 8426 additions and 3669 deletions

View File

@@ -1,38 +1,24 @@
package com.ecep.contract.task;
import com.ecep.contract.*;
import com.ecep.contract.controller.project.cost.ProjectCostImportItemsFromContractsTasker;
import com.ecep.contract.model.ContractFileTypeLocal;
import com.ecep.contract.service.*;
import com.ecep.contract.vo.*;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.collections.ObservableMap;
import javafx.util.converter.NumberStringConverter;
import lombok.Data;
import org.springframework.util.StringUtils;
import java.io.File;
import java.text.NumberFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.DoubleSummaryStatistics;
import java.util.List;
import java.util.Locale;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
import com.ecep.contract.service.*;
import com.ecep.contract.vo.*;
import org.springframework.util.StringUtils;
import com.ecep.contract.CustomerFileType;
import com.ecep.contract.ContractFileType;
import com.ecep.contract.ContractPayWay;
import com.ecep.contract.MessageHolder;
import com.ecep.contract.MyDateTimeUtils;
import com.ecep.contract.SpringApp;
import com.ecep.contract.controller.project.cost.ProjectCostImportItemsFromContractsTasker;
import com.ecep.contract.model.Contract;
import com.ecep.contract.model.ContractFileTypeLocal;
import com.ecep.contract.service.VendorService;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.collections.ObservableMap;
import javafx.util.converter.NumberStringConverter;
import lombok.Data;
@Data
public class ContractVerifyComm {
// Project
@@ -208,7 +194,6 @@ public class ContractVerifyComm {
*/
private ObservableMap<ContractFileType, ContractFileTypeLocal> fileTypeLocalMap = null;
private Locale locale = Locale.getDefault();
private Contract contract;
/**
* 是否验证企业存储目录
@@ -380,17 +365,15 @@ public class ContractVerifyComm {
vendorInfo = getExtendVendorInfoService().save(info);
holder.info("创建供应商信息 #" + vendorInfo.getId());
}
Integer groupId = vendorInfo.getGroupId();
VendorGroupVo group = vendorGroupService.findById(groupId);
VendorGroupVo group = null;
if (vendorInfo.getGroupId() != null) {
group = getVendorGroupService().findById(vendorInfo.getGroupId());
}
boolean assignedProvider = vendorInfo.isAssignedProvider();
if (assignedProvider) {
holder.debug("采购信息中设定为指定供应商");
}
if (group != null) {
group = getVendorGroupService().findById(groupId);
vendorInfo.setGroupId(group.getId());
}
if (verifyCustomerSubContractDate.get()) {
// 检查子合同日期是否在销售合同之后
if (!vendorInfo.isPrePurchase()) {
@@ -424,7 +407,7 @@ public class ContractVerifyComm {
ContractFileService fileService = getContractFileService();
List<ContractFileVo> files = fileService.findAllByContract(contract);
List<VendorGroupRequireFileTypeVo> list = getVendorGroupRequireFileTypeService().findByGroupId(group.getId());
if (list != null && !list.isEmpty()) {
if (list != null) {
for (VendorGroupRequireFileTypeVo item : list) {
ContractFileType fileType = item.getFileType();
if (fileType == null) {
@@ -453,26 +436,42 @@ public class ContractVerifyComm {
holder.error("未上报供应商比价");
} else {
for (ContractBidVendorVo bidVendor : bidVendors) {
if (bidVendor.getCompanyId() == null) {
holder.warn("供应商比价:#" + bidVendor.getId() + " 未关联供应商");
continue;
}
CompanyVo company = getCompanyService().findById(bidVendor.getCompanyId());
ContractFileVo contractFile = fileService.findById(bidVendor.getQuotationSheetFileId());
// 报价表文件不存在
if (contractFile == null) {
if (requireQuotation && bidVendor.getCompanyId().equals(contract.getCompanyId())) {
holder.debug("供应商类型启用了允许选中供应商不必须要有报价表");
} else {
CompanyVo company = getCompanyService().findById(bidVendor.getCompanyId());
holder.error("供应商比价:" + company.getName() + " 未上传/关联报价表");
loseFile = true;
}
} else {
contractFile = fileService.findById(contractFile.getId());
ContractFileType type = contractFile.getType();
if (type == null) {
continue;
}
if (type != ContractFileType.QuotationSheet) {
holder.error("供应商比价:" + contractFile.getFileName() + " 报价表记录异常,类型错误");
}
File file = new File(contract.getPath(), contractFile.getFileName());
if (!file.exists()) {
holder.error("供应商比价:" + file.getName() + " 报价表记录异常,文件不存在");
loseFile = true;
} else {
if (StringUtils.hasText(contractFile.getFileName())) {
File file = new File(contract.getPath(), contractFile.getFileName());
if (!file.exists()) {
holder.error("供应商比价:" + file.getName() + " 报价表记录异常,文件不存在");
loseFile = true;
}
} else {
holder.error("供应商比价:" + company.getName() + " 报价表记录异常");
loseFile = true;
}
}
}
}
}