refactor(model): 重构模型类包结构并优化序列化处理
重构模型类包结构,将模型类按功能模块划分到不同的子包中。优化序列化处理,为VO类添加serialVersionUID并实现Serializable接口。移除部分冗余的serialVersionUID字段,简化模型类代码。同时修复UITools中空值处理的问题,并更新pom版本至0.0.100-SNAPSHOT。 - 将模型类按功能模块划分到ds子包中 - 为VO类添加序列化支持 - 移除冗余的serialVersionUID字段 - 修复UITools空值处理问题 - 更新项目版本号
This commit is contained in:
@@ -4,18 +4,38 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.ecep.contract.MessageHolder;
|
||||
import com.ecep.contract.WebSocketClientTasker;
|
||||
import com.ecep.contract.vo.CompanyVo;
|
||||
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* 集团相关方平台同步任务
|
||||
* <p>
|
||||
* 定时任务,每30分钟同步一次集团相关方平台的相关方信息
|
||||
* <p>
|
||||
* 任务执行时,会调用集团相关方平台的API,获取相关方信息,并更新到数据库中。
|
||||
*/
|
||||
public class CloudRkSyncTask extends Tasker<Object> {
|
||||
public class CloudRkSyncTask extends Tasker<Object> implements WebSocketClientTasker {
|
||||
private static final Logger logger = LoggerFactory.getLogger(CloudRkSyncTask.class);
|
||||
|
||||
@Setter
|
||||
private CompanyVo company;
|
||||
|
||||
@Override
|
||||
protected Object execute(MessageHolder holder) throws Exception {
|
||||
updateTitle("集团相关方平台");
|
||||
updateProgress(1, 1);
|
||||
return null;
|
||||
updateTitle(String.format("集团相关方平台同步任务[%s]", company.getName()));
|
||||
return callRemoteTask(holder, getLocale(), company.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateProgress(long workDone, long max) {
|
||||
super.updateProgress(workDone, max);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTaskName() {
|
||||
return "CloudRkSyncTask";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.ecep.contract.task;
|
||||
|
||||
import com.ecep.contract.MessageHolder;
|
||||
import com.ecep.contract.WebSocketClientTasker;
|
||||
import com.ecep.contract.vo.CompanyVo;
|
||||
|
||||
import lombok.Setter;
|
||||
|
||||
public class CompanyRkUpdateTasker extends Tasker<Object> implements WebSocketClientTasker {
|
||||
|
||||
@Setter
|
||||
CompanyVo company;
|
||||
|
||||
@Override
|
||||
public String getTaskName() {
|
||||
return "CompanyRkUpdateTasker";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateProgress(long workDone, long max) {
|
||||
super.updateProgress(workDone, max);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Object execute(MessageHolder holder) throws Exception {
|
||||
updateTitle("合并更新 " + company.getName());
|
||||
return callRemoteTask(holder, getLocale(), company.getId());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user