refactor(model): 重构模型类包结构并优化序列化处理
重构模型类包结构,将模型类按功能模块划分到不同的子包中。优化序列化处理,为VO类添加serialVersionUID并实现Serializable接口。移除部分冗余的serialVersionUID字段,简化模型类代码。同时修复UITools中空值处理的问题,并更新pom版本至0.0.100-SNAPSHOT。 - 将模型类按功能模块划分到ds子包中 - 为VO类添加序列化支持 - 移除冗余的serialVersionUID字段 - 修复UITools空值处理问题 - 更新项目版本号
This commit is contained in:
@@ -19,7 +19,6 @@ import org.springframework.boot.autoconfigure.data.redis.RedisReactiveAutoConfig
|
||||
import org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration;
|
||||
import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
|
||||
import org.springframework.boot.context.metrics.buffering.StartupTimeline;
|
||||
import org.springframework.cache.annotation.EnableCaching;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
||||
@@ -6,7 +6,7 @@ import java.util.Objects;
|
||||
import org.hibernate.annotations.ColumnDefault;
|
||||
import org.hibernate.proxy.HibernateProxy;
|
||||
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.model.IdentityEntity;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.ecep.contract.cloud;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -8,7 +7,7 @@ import org.hibernate.annotations.ColumnDefault;
|
||||
import org.hibernate.proxy.HibernateProxy;
|
||||
|
||||
import com.ecep.contract.CloudType;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
|
||||
@@ -3,8 +3,8 @@ package com.ecep.contract.cloud.old;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.CompanyContact;
|
||||
import com.ecep.contract.model.CompanyContract;
|
||||
import com.ecep.contract.ds.company.model.CompanyContact;
|
||||
import com.ecep.contract.ds.contract.model.CompanyContract;
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -4,7 +4,7 @@ import java.time.LocalDate;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.CompanyCustomerFile;
|
||||
import com.ecep.contract.ds.customer.model.CompanyCustomerFile;
|
||||
|
||||
public class CompanyCustomerFileUtils {
|
||||
public static boolean applyCustomerFileByMap(CompanyCustomerFile customerFile, Map<String, Object> m) {
|
||||
|
||||
@@ -4,7 +4,7 @@ import java.time.LocalDate;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.VendorFile;
|
||||
import com.ecep.contract.ds.vendor.model.VendorFile;
|
||||
|
||||
public class CompanyVendorFileUtils {
|
||||
public static boolean applyVendorFileByMap(VendorFile vendorFile, Map<String, Object> m) {
|
||||
|
||||
@@ -41,19 +41,19 @@ import com.ecep.contract.ds.customer.repository.CompanyCustomerFileRepository;
|
||||
import com.ecep.contract.ds.customer.repository.CompanyCustomerRepository;
|
||||
import com.ecep.contract.ds.other.service.SysConfService;
|
||||
import com.ecep.contract.ds.vendor.service.VendorFileService;
|
||||
import com.ecep.contract.model.CloudRk;
|
||||
import com.ecep.contract.model.CloudTyc;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyContact;
|
||||
import com.ecep.contract.model.CompanyContract;
|
||||
import com.ecep.contract.model.CompanyCustomer;
|
||||
import com.ecep.contract.model.CompanyCustomerFile;
|
||||
import com.ecep.contract.model.CompanyFile;
|
||||
import com.ecep.contract.model.CompanyOldName;
|
||||
import com.ecep.contract.model.Vendor;
|
||||
import com.ecep.contract.model.VendorFile;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.model.ContractFile;
|
||||
import com.ecep.contract.ds.other.model.CloudRk;
|
||||
import com.ecep.contract.ds.other.model.CloudTyc;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyContact;
|
||||
import com.ecep.contract.ds.contract.model.CompanyContract;
|
||||
import com.ecep.contract.ds.customer.model.CompanyCustomer;
|
||||
import com.ecep.contract.ds.customer.model.CompanyCustomerFile;
|
||||
import com.ecep.contract.ds.company.model.CompanyFile;
|
||||
import com.ecep.contract.ds.company.model.CompanyOldName;
|
||||
import com.ecep.contract.ds.vendor.model.Vendor;
|
||||
import com.ecep.contract.ds.vendor.model.VendorFile;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.ds.contract.model.ContractFile;
|
||||
|
||||
import jakarta.transaction.Transactional;
|
||||
|
||||
|
||||
@@ -2,10 +2,9 @@ package com.ecep.contract.cloud.old;
|
||||
|
||||
import com.ecep.contract.MessageHolder;
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.ds.company.service.CompanyService;
|
||||
import com.ecep.contract.ds.customer.service.CompanyCustomerService;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.ui.Tasker;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -15,8 +15,8 @@ import org.slf4j.LoggerFactory;
|
||||
import com.ecep.contract.MessageHolder;
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.ds.company.service.CompanyService;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.ui.Tasker;
|
||||
|
||||
public class OldVersionSyncVendorTask extends Tasker<Object> {
|
||||
|
||||
@@ -10,8 +10,8 @@ import org.springframework.stereotype.Repository;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import com.ecep.contract.model.CloudRk;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.ds.other.model.CloudRk;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
|
||||
@Repository
|
||||
public interface CloudRkRepository extends MyRepository<CloudRk, Integer> {
|
||||
|
||||
@@ -1,17 +1,32 @@
|
||||
package com.ecep.contract.cloud.rk;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.ecep.contract.BlackReasonType;
|
||||
import com.ecep.contract.IEntityService;
|
||||
import com.ecep.contract.QueryService;
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.cloud.CloudInfo;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyBlackReason;
|
||||
import com.ecep.contract.ds.company.repository.CompanyBlackReasonRepository;
|
||||
import com.ecep.contract.ds.company.repository.CompanyOldNameRepository;
|
||||
import com.ecep.contract.ds.company.service.CompanyService;
|
||||
import com.ecep.contract.ds.other.model.CloudRk;
|
||||
import com.ecep.contract.ds.other.service.SysConfService;
|
||||
import com.ecep.contract.model.Bank;
|
||||
import com.ecep.contract.service.VoableService;
|
||||
import com.ecep.contract.util.FileUtils;
|
||||
import com.ecep.contract.util.HttpJsonUtils;
|
||||
import com.ecep.contract.util.MyStringUtils;
|
||||
import com.ecep.contract.util.SpecificationUtils;
|
||||
import com.ecep.contract.vo.CloudRkVo;
|
||||
import com.fasterxml.jackson.annotation.JsonAlias;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.databind.JsonMappingException;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import jakarta.persistence.criteria.Path;
|
||||
import lombok.Data;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -26,36 +41,22 @@ import org.springframework.data.jpa.domain.Specification;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import com.ecep.contract.BlackReasonType;
|
||||
import com.ecep.contract.IEntityService;
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.cloud.CloudInfo;
|
||||
import com.ecep.contract.ds.company.repository.CompanyBlackReasonRepository;
|
||||
import com.ecep.contract.ds.company.repository.CompanyOldNameRepository;
|
||||
import com.ecep.contract.ds.company.service.CompanyService;
|
||||
import com.ecep.contract.ds.other.service.SysConfService;
|
||||
import com.ecep.contract.model.CloudRk;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyBlackReason;
|
||||
import com.ecep.contract.service.VoableService;
|
||||
import com.ecep.contract.util.FileUtils;
|
||||
import com.ecep.contract.util.HttpJsonUtils;
|
||||
import com.ecep.contract.util.MyStringUtils;
|
||||
import com.ecep.contract.vo.CloudRkVo;
|
||||
import com.fasterxml.jackson.annotation.JsonAlias;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.databind.JsonMappingException;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
|
||||
import jakarta.persistence.criteria.Path;
|
||||
import lombok.Data;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Lazy
|
||||
@Service
|
||||
@CacheConfig(cacheNames = "cloud-rk")
|
||||
public class CloudRkService implements IEntityService<CloudRk>, VoableService<CloudRk, CloudRkVo> {
|
||||
public class CloudRkService implements IEntityService<CloudRk>, QueryService<CloudRkVo>, VoableService<CloudRk, CloudRkVo> {
|
||||
private static final Logger logger = LoggerFactory.getLogger(CloudRkService.class);
|
||||
|
||||
public static final String KEY_PROXY = "cloud.rk.proxy";
|
||||
@@ -99,9 +100,6 @@ public class CloudRkService implements IEntityService<CloudRk>, VoableService<Cl
|
||||
private SysConfService confService;
|
||||
@Autowired
|
||||
private CloudRkRepository cloudRKRepository;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private CompanyService companyService;
|
||||
@Autowired
|
||||
private CompanyOldNameRepository companyOldNameRepository;
|
||||
@Autowired
|
||||
@@ -113,8 +111,20 @@ public class CloudRkService implements IEntityService<CloudRk>, VoableService<Cl
|
||||
}
|
||||
|
||||
@Cacheable(key = "#p0")
|
||||
public CloudRk findById(Integer id) {
|
||||
return cloudRKRepository.findById(id).orElse(null);
|
||||
public CloudRkVo findById(Integer id) {
|
||||
return cloudRKRepository.findById(id).map(CloudRk::toVo).orElse(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<CloudRkVo> findAll(JsonNode paramsNode, Pageable pageable) {
|
||||
Specification<CloudRk> spec = null;
|
||||
if (paramsNode.has("searchText")) {
|
||||
spec = getSpecification(paramsNode.get("searchText").asText());
|
||||
}
|
||||
spec = SpecificationUtils.andParam(spec, paramsNode, "company");
|
||||
spec = SpecificationUtils.andFieldEqualParam(spec, paramsNode, "cloudId", "customerGrade", "customerScore", "vendorGrade", "vendorScore", "active", "version", "rank", "description");
|
||||
// 可以根据需要添加更多参数处理
|
||||
return findAll(spec, pageable).map(CloudRk::toVo);
|
||||
}
|
||||
|
||||
public Page<CloudRk> findAll(Specification<CloudRk> spec, Pageable pageable) {
|
||||
@@ -446,5 +456,7 @@ public class CloudRkService implements IEntityService<CloudRk>, VoableService<Cl
|
||||
cloudRk.setCompany(company);
|
||||
}
|
||||
}
|
||||
|
||||
cloudRk.setVersion(vo.getVersion());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,12 +18,13 @@ import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.cloud.rk.ctx.CloudRkCtx;
|
||||
import com.ecep.contract.constant.CloudServiceConstant;
|
||||
import com.ecep.contract.ds.contract.service.ContractService;
|
||||
import com.ecep.contract.model.CloudRk;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.ds.other.model.CloudRk;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ui.Tasker;
|
||||
|
||||
/**
|
||||
* 集团相关方平台同步任务
|
||||
*
|
||||
*/
|
||||
public class CloudRkSyncTask extends Tasker<Object> {
|
||||
private static final Logger logger = LoggerFactory.getLogger(CloudRkSyncTask.class);
|
||||
@@ -33,11 +34,8 @@ public class CloudRkSyncTask extends Tasker<Object> {
|
||||
@Override
|
||||
protected Object execute(MessageHolder holder) throws Exception {
|
||||
updateTitle("集团相关方平台");
|
||||
|
||||
CloudRkCtx cloudRkCtx = null;
|
||||
CloudRkService service = null;
|
||||
try {
|
||||
cloudRkCtx = new CloudRkCtx();
|
||||
service = SpringApp.getBean(CloudRkService.class);
|
||||
} catch (BeansException e) {
|
||||
holder.error(CloudServiceConstant.RK_NAME + " 服务未启用");
|
||||
@@ -49,7 +47,7 @@ public class CloudRkSyncTask extends Tasker<Object> {
|
||||
holder.info("没有需要更新");
|
||||
return null;
|
||||
}
|
||||
|
||||
CloudRkCtx cloudRkCtx = new CloudRkCtx();
|
||||
AtomicInteger counter = new AtomicInteger(0);
|
||||
holder.info("统计需要更新的 " + total + " 条");
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@ import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneOffset;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
@@ -20,10 +19,10 @@ import org.springframework.util.StringUtils;
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.ds.company.repository.CompanyContactRepository;
|
||||
import com.ecep.contract.ds.company.service.CompanyOldNameService;
|
||||
import com.ecep.contract.model.CloudRk;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyContact;
|
||||
import com.ecep.contract.model.CompanyOldName;
|
||||
import com.ecep.contract.ds.other.model.CloudRk;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyContact;
|
||||
import com.ecep.contract.ds.company.model.CompanyOldName;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@ import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneOffset;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.DateTimeParseException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -34,11 +36,11 @@ import com.ecep.contract.cloud.rk.CloudRkService;
|
||||
import com.ecep.contract.ds.company.service.CompanyBlackReasonService;
|
||||
import com.ecep.contract.ds.company.service.CompanyContactService;
|
||||
import com.ecep.contract.ds.company.service.CompanyOldNameService;
|
||||
import com.ecep.contract.model.CloudRk;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyBlackReason;
|
||||
import com.ecep.contract.model.CompanyContact;
|
||||
import com.ecep.contract.model.CompanyOldName;
|
||||
import com.ecep.contract.ds.other.model.CloudRk;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyBlackReason;
|
||||
import com.ecep.contract.ds.company.model.CompanyContact;
|
||||
import com.ecep.contract.ds.company.model.CompanyOldName;
|
||||
import com.ecep.contract.util.FileUtils;
|
||||
import com.ecep.contract.util.HttpJsonUtils;
|
||||
import com.fasterxml.jackson.databind.JsonMappingException;
|
||||
@@ -74,6 +76,14 @@ public class CloudRkCtx extends AbstractCtx implements CloudRkContext {
|
||||
HttpJsonUtils.post(url, data, consumer, getObjectMapper(), getSocksProxy());
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步企业相关信息
|
||||
*
|
||||
* @param company
|
||||
* @param cloudRk
|
||||
* @param holder
|
||||
* @return
|
||||
*/
|
||||
public boolean syncCompany(Company company, CloudRk cloudRk, MessageHolder holder) {
|
||||
if (!StringUtils.hasText(cloudRk.getCloudId())) {
|
||||
holder.warn("未定义平台编号, 尝试从平台上自动获取");
|
||||
@@ -121,6 +131,7 @@ public class CloudRkCtx extends AbstractCtx implements CloudRkContext {
|
||||
message = message.substring(0, 50);
|
||||
}
|
||||
cloudRk.setDescription(message);
|
||||
holder.error("更新发生错误:" + e.getMessage());
|
||||
}
|
||||
return updated;
|
||||
}
|
||||
@@ -471,7 +482,7 @@ public class CloudRkCtx extends AbstractCtx implements CloudRkContext {
|
||||
}
|
||||
|
||||
private boolean applyEnterpriseQuery(JsonNode json, Company company, CloudRk cloudRk,
|
||||
List<CloudRkService.EntInfo> results, MessageHolder holder) {
|
||||
List<CloudRkService.EntInfo> results, MessageHolder holder) {
|
||||
if (!json.has("data")) {
|
||||
// 没有数据
|
||||
holder.error("数据异常,返回的json中没有 data 字段");
|
||||
@@ -508,9 +519,13 @@ public class CloudRkCtx extends AbstractCtx implements CloudRkContext {
|
||||
Company company, CloudRk cloudRk, MessageHolder holder) throws IOException {
|
||||
String api = getConfService().getString(CloudRkService.KEY_ENT_REPORT_URL);
|
||||
Proxy socksProxy = getSocksProxy();
|
||||
holder.debug("更新企业工商注册信息: " + company.getName() + " @ " + api + ", proxy=" + socksProxy);
|
||||
holder.debug("更新企业工商注册信息: " + company.getName());
|
||||
if (socksProxy.type() != Proxy.Type.DIRECT) {
|
||||
holder.debug("Use Proxy: " + socksProxy);
|
||||
}
|
||||
AtomicBoolean modified = new AtomicBoolean(false);
|
||||
try {
|
||||
holder.debug("POST " + api);
|
||||
post(api, data -> {
|
||||
data.put("entName", company.getName());
|
||||
data.put("entid", cloudRk.getCloudId());
|
||||
@@ -518,7 +533,13 @@ public class CloudRkCtx extends AbstractCtx implements CloudRkContext {
|
||||
data.put("method", "data");
|
||||
data.put("nodetype", "B1001");
|
||||
}, jsonNode -> {
|
||||
modified.set(applyEnterpriseInfo(jsonNode, company, cloudRk, holder));
|
||||
try {
|
||||
if (applyEnterpriseInfo(jsonNode, company, cloudRk, holder)) {
|
||||
modified.set(true);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
holder.error("更新企业信息失败:" + e.getMessage() + ", json=" + jsonNode.toString());
|
||||
}
|
||||
saveJsonToFile(company, jsonNode, FileUtils.FILE_B1001_JSON, holder);
|
||||
});
|
||||
} catch (IOException e) {
|
||||
@@ -601,19 +622,32 @@ public class CloudRkCtx extends AbstractCtx implements CloudRkContext {
|
||||
updateCompanyNameHistory(company, data, holder.sub("曾用名"));
|
||||
updateLegalRepresentativeContact(company, data, holder.sub("法人联系方式"));
|
||||
|
||||
updateLocalDateTime(cloudRk::getCloudEntUpdate, cloudRk::setCloudEntUpdate, data, "updated", holder, "更新时间");
|
||||
if (updateLocalDateTime(cloudRk::getCloudEntUpdate, cloudRk::setCloudEntUpdate, data, "updated", holder, "更新时间")) {
|
||||
modified = true;
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
public boolean updateLocalDateTime(Supplier<LocalDateTime> getter, Consumer<LocalDateTime> setter, JsonNode data,
|
||||
String field,
|
||||
MessageHolder holder, String topic) {
|
||||
String field,
|
||||
MessageHolder holder, String topic) {
|
||||
JsonNode node = data.get(field);
|
||||
if (node == null || node.isNull()) {
|
||||
return false;
|
||||
}
|
||||
LocalDateTime updated = getObjectMapper().convertValue(node, LocalDateTime.class);
|
||||
updateLocalDateTime(getter, setter, updated, holder, topic);
|
||||
try {
|
||||
LocalDateTime updated = null;
|
||||
try {
|
||||
updated = LocalDateTime.parse(node.asText(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
} catch (DateTimeParseException e) {
|
||||
updated = getObjectMapper().convertValue(node, LocalDateTime.class);
|
||||
}
|
||||
|
||||
updateLocalDateTime(getter, setter, updated, holder, topic);
|
||||
return true;
|
||||
} catch (IllegalArgumentException e) {
|
||||
holder.error("更新 " + topic + " 失败:" + e.getMessage());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -732,7 +766,7 @@ public class CloudRkCtx extends AbstractCtx implements CloudRkContext {
|
||||
}
|
||||
|
||||
private boolean updateLocalDate(Supplier<LocalDate> getter, Consumer<LocalDate> setter, JsonNode data, String field,
|
||||
MessageHolder holder, String topic, boolean allowNull) {
|
||||
MessageHolder holder, String topic, boolean allowNull) {
|
||||
JsonNode node = data.get(field);
|
||||
if (node == null || node.isNull()) {
|
||||
return false;
|
||||
@@ -745,12 +779,12 @@ public class CloudRkCtx extends AbstractCtx implements CloudRkContext {
|
||||
}
|
||||
|
||||
private boolean updateLocalDate(Supplier<LocalDate> getter, Consumer<LocalDate> setter, JsonNode data, String field,
|
||||
MessageHolder holder, String topic) {
|
||||
MessageHolder holder, String topic) {
|
||||
return updateLocalDate(getter, setter, data, field, holder, topic, false);
|
||||
}
|
||||
|
||||
private void updateInstant(Supplier<Instant> getter, Consumer<Instant> setter, JsonNode data, String field,
|
||||
MessageHolder holder, String topic, boolean allowNull) {
|
||||
MessageHolder holder, String topic, boolean allowNull) {
|
||||
JsonNode node = data.get("updated");
|
||||
if (node == null) {
|
||||
return;
|
||||
@@ -768,13 +802,15 @@ public class CloudRkCtx extends AbstractCtx implements CloudRkContext {
|
||||
}
|
||||
|
||||
private boolean updateText(Supplier<String> getter, Consumer<String> setter, JsonNode data, String field,
|
||||
MessageHolder holder, String topic) {
|
||||
MessageHolder holder, String topic) {
|
||||
JsonNode node = data.get(field);
|
||||
if (node == null || node.isNull()) {
|
||||
holder.warn(topic + "为空");
|
||||
return false;
|
||||
}
|
||||
String text = node.asText();
|
||||
if (!StringUtils.hasText(text)) {
|
||||
holder.warn(topic + "为空");
|
||||
return false;
|
||||
}
|
||||
return updateText(getter, setter, text, holder, topic);
|
||||
@@ -783,11 +819,13 @@ public class CloudRkCtx extends AbstractCtx implements CloudRkContext {
|
||||
private void saveJsonToFile(Company company, JsonNode json, String fileName, MessageHolder holder) {
|
||||
String companyPath = company.getPath();
|
||||
if (!StringUtils.hasText(companyPath)) {
|
||||
holder.warn("公司路径为空");
|
||||
return;
|
||||
}
|
||||
|
||||
File dir = new File(companyPath);
|
||||
if (!dir.exists()) {
|
||||
holder.warn("公司路径不存在");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@ import org.springframework.stereotype.Repository;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import com.ecep.contract.model.CloudTyc;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.ds.other.model.CloudTyc;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
|
||||
@Repository
|
||||
public interface CloudTycRepository extends MyRepository<CloudTyc, Integer> {
|
||||
|
||||
@@ -4,9 +4,15 @@ import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.ecep.contract.QueryService;
|
||||
import com.ecep.contract.ds.other.model.CloudRk;
|
||||
import com.ecep.contract.util.SpecificationUtils;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cache.annotation.CacheConfig;
|
||||
import org.springframework.cache.annotation.Cacheable;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
@@ -21,15 +27,16 @@ import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.cloud.CloudInfo;
|
||||
import com.ecep.contract.constant.CloudServiceConstant;
|
||||
import com.ecep.contract.ds.company.service.CompanyService;
|
||||
import com.ecep.contract.model.CloudTyc;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.ds.other.model.CloudTyc;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.service.VoableService;
|
||||
import com.ecep.contract.util.MyStringUtils;
|
||||
import com.ecep.contract.vo.CloudTycVo;
|
||||
|
||||
@Lazy
|
||||
@Service
|
||||
public class CloudTycService implements IEntityService<CloudTyc>, VoableService<CloudTyc, CloudTycVo> {
|
||||
@CacheConfig(cacheNames = "cloud-tyc")
|
||||
public class CloudTycService implements IEntityService<CloudTyc>, QueryService<CloudTycVo>, VoableService<CloudTyc, CloudTycVo> {
|
||||
private static final Logger logger = LoggerFactory.getLogger(CloudTycService.class);
|
||||
|
||||
/**
|
||||
@@ -147,8 +154,9 @@ public class CloudTycService implements IEntityService<CloudTyc>, VoableService<
|
||||
cloudTycRepository.saveAll(list);
|
||||
}
|
||||
|
||||
public CloudTyc findById(Integer id) {
|
||||
return cloudTycRepository.findById(id).orElse(null);
|
||||
@Cacheable(key = "#p0")
|
||||
public CloudTycVo findById(Integer id) {
|
||||
return cloudTycRepository.findById(id).map(CloudTyc::toVo).orElse(null);
|
||||
}
|
||||
|
||||
public Page<CloudTyc> findAll(Specification<CloudTyc> spec, PageRequest pageable) {
|
||||
@@ -159,6 +167,17 @@ public class CloudTycService implements IEntityService<CloudTyc>, VoableService<
|
||||
return cloudTycRepository.findAll(spec, pageable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<CloudTycVo> findAll(JsonNode paramsNode, Pageable pageable) {
|
||||
Specification<CloudTyc> spec = null;
|
||||
if (paramsNode.has("searchText")) {
|
||||
spec = getSpecification(paramsNode.get("searchText").asText());
|
||||
}
|
||||
spec = SpecificationUtils.andParam(spec, paramsNode, "company");
|
||||
// 可以根据需要添加更多参数处理
|
||||
return findAll(spec, pageable).map(CloudTyc::toVo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Specification<CloudTyc> getSpecification(String searchText) {
|
||||
if (!StringUtils.hasText(searchText)) {
|
||||
@@ -202,5 +221,6 @@ public class CloudTycService implements IEntityService<CloudTyc>, VoableService<
|
||||
cloudTyc.setCompany(company);
|
||||
}
|
||||
}
|
||||
cloudTyc.setVersion(vo.getVersion());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,8 +8,8 @@ import org.springframework.stereotype.Repository;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import com.ecep.contract.model.CloudYu;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.ds.other.model.CloudYu;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
|
||||
@Repository
|
||||
public interface CloudYuRepository extends MyRepository<CloudYu, Integer> {
|
||||
|
||||
@@ -5,6 +5,7 @@ import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import com.ecep.contract.vo.ContractGroupVo;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.BeansException;
|
||||
@@ -75,11 +76,15 @@ public class ContractGroupSyncTask extends Tasker<Object> {
|
||||
String groupTitle = (String) map.get("cRemark");
|
||||
|
||||
ContractGroupService service = getContractGroupService();
|
||||
ContractGroup contractGroup = service.findByCode(groupCode);
|
||||
var contractGroup = service.findByCode(groupCode);
|
||||
if (contractGroup == null) {
|
||||
contractGroup = service.newContractGroup();
|
||||
var newGroup = service.newContractGroup();
|
||||
newGroup.setCode(groupCode);
|
||||
newGroup.setName(groupName);
|
||||
newGroup.setTitle(groupTitle);
|
||||
newGroup = service.save(newGroup);
|
||||
holder.info("新建合同分组:" + groupCode);
|
||||
modified = true;
|
||||
contractGroup = newGroup.toVo();
|
||||
}
|
||||
|
||||
if (!Objects.equals(contractGroup.getCode(), groupCode)) {
|
||||
@@ -99,7 +104,9 @@ public class ContractGroupSyncTask extends Tasker<Object> {
|
||||
}
|
||||
|
||||
if (modified) {
|
||||
service.save(contractGroup);
|
||||
var group = service.getById(contractGroup.getId());
|
||||
service.updateByVo(group, contractGroup);
|
||||
service.save(group);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,20 +62,6 @@ public class ContractSyncContext {
|
||||
return employeeService;
|
||||
}
|
||||
|
||||
public ContractType getTypeByCode(String typeCode) {
|
||||
return getContractTypeService().findByCode(typeCode);
|
||||
}
|
||||
|
||||
public ContractGroup getGroupByCode(String groupCode) {
|
||||
return getContractGroupService().findByCode(groupCode);
|
||||
}
|
||||
|
||||
public ContractKind getKindByName(String kindName) {
|
||||
return getContractKindService().findByName(kindName);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void updateMessage(String message) {
|
||||
Consumer<String> consumer = getConsumer();
|
||||
if (consumer != null) {
|
||||
|
||||
@@ -77,11 +77,17 @@ public class ContractTypeSyncTask extends Tasker<Object> {
|
||||
String typeDirection = (String) map.get("cDirection");
|
||||
|
||||
ContractTypeService typeService = getContractTypeService();
|
||||
ContractType contractType = typeService.findByCode(typeCode);
|
||||
var contractType = typeService.findByCode(typeCode);
|
||||
if (contractType == null) {
|
||||
contractType = new ContractType();
|
||||
var newGroup = new ContractType();
|
||||
newGroup.setCode(typeCode);
|
||||
newGroup.setName(typeName);
|
||||
newGroup.setTitle(typeTitle);
|
||||
newGroup.setCatalog(typeCatalog);
|
||||
newGroup.setDirection(typeDirection);
|
||||
newGroup = typeService.save(newGroup);
|
||||
holder.info("新建合同类型:" + typeCode);
|
||||
modified = true;
|
||||
contractType = newGroup.toVo();
|
||||
}
|
||||
|
||||
if (!Objects.equals(contractType.getCode(), typeCode)) {
|
||||
@@ -111,7 +117,9 @@ public class ContractTypeSyncTask extends Tasker<Object> {
|
||||
}
|
||||
|
||||
if (modified) {
|
||||
typeService.save(contractType);
|
||||
var type = typeService.getById(contractType.getId());
|
||||
typeService.updateByVo(type, contractType);
|
||||
typeService.save(type);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.ds.customer.service.CompanyCustomerService;
|
||||
import com.ecep.contract.model.CustomerCatalog;
|
||||
import com.ecep.contract.ui.Tasker;
|
||||
import com.ecep.contract.vo.CustomerCatalogVo;
|
||||
|
||||
import lombok.Setter;
|
||||
|
||||
@@ -73,12 +74,16 @@ public class CustomerClassSyncTask extends Tasker<Object> {
|
||||
|
||||
String code = (String) map.get("cCCCode");
|
||||
String name = (String) map.get("cCCName");
|
||||
var catalogService = getCachedBean(CustomerCatalogService.class);
|
||||
|
||||
CustomerCatalog customerCatalog = getCachedBean(CustomerCatalogService.class).findByCode(code);
|
||||
CustomerCatalogVo customerCatalog = catalogService.findByCode(code);
|
||||
if (customerCatalog == null) {
|
||||
customerCatalog = new CustomerCatalog();
|
||||
CustomerCatalog v1 = new CustomerCatalog();
|
||||
v1.setCode(code);
|
||||
v1.setName(name);
|
||||
v1 = catalogService.save(v1);
|
||||
holder.info("新建客户分类:" + code);
|
||||
modified = true;
|
||||
customerCatalog = v1.toVo();
|
||||
}
|
||||
|
||||
if (!Objects.equals(customerCatalog.getCode(), code)) {
|
||||
@@ -93,7 +98,9 @@ public class CustomerClassSyncTask extends Tasker<Object> {
|
||||
}
|
||||
|
||||
if (modified) {
|
||||
getCachedBean(CustomerCatalogService.class).save(customerCatalog);
|
||||
var v1 = catalogService.getById(customerCatalog.getId());
|
||||
catalogService.updateByVo(v1, customerCatalog);
|
||||
catalogService.save(v1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@ import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import com.ecep.contract.ds.customer.service.CompanyCustomerEntityService;
|
||||
import com.ecep.contract.vo.CompanyCustomerEntityVo;
|
||||
import org.hibernate.Hibernate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -19,10 +21,10 @@ import com.ecep.contract.constant.CloudServiceConstant;
|
||||
import com.ecep.contract.ds.company.service.CompanyService;
|
||||
import com.ecep.contract.ds.contract.tasker.AbstContractRepairTasker;
|
||||
import com.ecep.contract.ds.customer.service.CompanyCustomerService;
|
||||
import com.ecep.contract.model.CloudYu;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyCustomer;
|
||||
import com.ecep.contract.model.CompanyCustomerEntity;
|
||||
import com.ecep.contract.ds.other.model.CloudYu;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.customer.model.CompanyCustomer;
|
||||
import com.ecep.contract.ds.customer.model.CompanyCustomerEntity;
|
||||
|
||||
import lombok.Setter;
|
||||
|
||||
@@ -59,6 +61,9 @@ public class CustomerSyncTask extends AbstContractRepairTasker {
|
||||
Long total = repository.countAllCustomers();
|
||||
updateTitle("用友U8系统-同步客户,合计 " + total + " 条");
|
||||
try (Stream<Map<String, Object>> stream = repository.queryAllCustomerForStream()) {
|
||||
|
||||
CompanyCustomerEntityService entityService = customerCtx.getCompanyCustomerEntityService();
|
||||
|
||||
stream.forEach(rs -> {
|
||||
if (isCancelled()) {
|
||||
updateMessage("Cancelled");
|
||||
@@ -68,20 +73,22 @@ public class CustomerSyncTask extends AbstContractRepairTasker {
|
||||
String cusCode = (String) rs.get("cCusCode");
|
||||
MessageHolder subHolder = holder.sub(counter.get() + " / " + total + "> " + cusCode + " ");
|
||||
boolean modified = false;
|
||||
CompanyCustomerEntity entity = customerCtx.findOrCreateByCode(rs, cusCode, subHolder);
|
||||
CompanyCustomerEntityVo entity = customerCtx.findOrCreateByCode(rs, cusCode, subHolder);
|
||||
Map<String, Object> map = repository.findCustomerByCusCode(entity.getCode());
|
||||
if (map == null) {
|
||||
subHolder.error("客户项不存在:" + cusCode);
|
||||
return;
|
||||
}
|
||||
if (customerCtx.applyEntityDetail(entity, map, subHolder)) {
|
||||
CompanyCustomerEntity v0 = entityService.getById(entity.getId());
|
||||
if (customerCtx.applyEntityDetail(v0, map, subHolder)) {
|
||||
modified = true;
|
||||
}
|
||||
if (modified) {
|
||||
entity = customerCtx.getCompanyCustomerEntityService().save(entity);
|
||||
entity = entityService.save(v0).toVo();
|
||||
modified = false;
|
||||
}
|
||||
updateCompanyNameAndAbbName(entity, subHolder);
|
||||
updateCloudYu(entity);
|
||||
updateCompanyNameAndAbbName(v0, subHolder);
|
||||
updateCloudYu(v0);
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("Customer sync failure {}, data = {}", e.getMessage(), rs, e);
|
||||
|
||||
@@ -10,7 +10,7 @@ import org.springframework.beans.BeansException;
|
||||
import com.ecep.contract.MessageHolder;
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.cloud.CloudInfo;
|
||||
import com.ecep.contract.model.CloudYu;
|
||||
import com.ecep.contract.ds.other.model.CloudYu;
|
||||
import com.ecep.contract.ui.Tasker;
|
||||
|
||||
import lombok.Setter;
|
||||
|
||||
@@ -6,6 +6,7 @@ import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import com.ecep.contract.vo.VendorEntityVo;
|
||||
import org.hibernate.Hibernate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -20,10 +21,10 @@ import com.ecep.contract.ds.company.service.CompanyService;
|
||||
import com.ecep.contract.ds.contract.tasker.AbstContractRepairTasker;
|
||||
import com.ecep.contract.ds.vendor.service.VendorEntityService;
|
||||
import com.ecep.contract.ds.vendor.service.VendorService;
|
||||
import com.ecep.contract.model.CloudYu;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.Vendor;
|
||||
import com.ecep.contract.model.VendorEntity;
|
||||
import com.ecep.contract.ds.other.model.CloudYu;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.vendor.model.Vendor;
|
||||
import com.ecep.contract.ds.vendor.model.VendorEntity;
|
||||
|
||||
import lombok.Setter;
|
||||
|
||||
@@ -82,20 +83,22 @@ public class VendorSyncTask extends AbstContractRepairTasker {
|
||||
String venCode = (String) rs.get("cVenCode");
|
||||
MessageHolder subHolder = holder.sub(counter.get() + " / " + total + "> " + venCode + " ");
|
||||
boolean modified = false;
|
||||
VendorEntity entity = vendorCtx.findOrCreateByCode(venCode, subHolder);
|
||||
VendorEntityVo entity = vendorCtx.findOrCreateByCode(venCode, subHolder);
|
||||
Map<String, Object> map = repository.findVendorByVendCode(entity.getCode());
|
||||
if (map == null) {
|
||||
subHolder.error("供应商项不存在:" + venCode);
|
||||
return;
|
||||
}
|
||||
if (vendorCtx.applyEntityDetail(entity, map, subHolder)) {
|
||||
|
||||
VendorEntity v1 = getVendorEntityService().getById(entity.getId());
|
||||
if (vendorCtx.applyEntityDetail(v1, map, subHolder)) {
|
||||
modified = true;
|
||||
}
|
||||
if (modified) {
|
||||
entity = getVendorEntityService().save(entity);
|
||||
v1 = getVendorEntityService().save(v1);
|
||||
}
|
||||
updateCompanyNameAndAbbName(entity, subHolder);
|
||||
updateCloudYu(entity);
|
||||
updateCompanyNameAndAbbName(v1, subHolder);
|
||||
updateCloudYu(v1);
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("Vendor sync failure {}, data = {}", e.getMessage(), rs, e);
|
||||
@@ -113,7 +116,7 @@ public class VendorSyncTask extends AbstContractRepairTasker {
|
||||
return;
|
||||
}
|
||||
if (!Hibernate.isInitialized(vendor)) {
|
||||
vendor = getVendorService().findById(vendor.getId());
|
||||
vendor = getVendorService().getById(vendor.getId());
|
||||
}
|
||||
Company company = vendor.getCompany();
|
||||
if (company == null) {
|
||||
@@ -136,7 +139,7 @@ public class VendorSyncTask extends AbstContractRepairTasker {
|
||||
return;
|
||||
}
|
||||
if (!Hibernate.isInitialized(vendor)) {
|
||||
vendor = getVendorService().findById(vendor.getId());
|
||||
vendor = getVendorService().getById(vendor.getId());
|
||||
}
|
||||
Company company = vendor.getCompany();
|
||||
if (company == null) {
|
||||
|
||||
@@ -5,6 +5,7 @@ import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import com.ecep.contract.util.SpecificationUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -27,8 +28,8 @@ import com.ecep.contract.cloud.CloudInfoRepository;
|
||||
import com.ecep.contract.cloud.u8.ctx.AbstractYongYouU8Ctx;
|
||||
import com.ecep.contract.constant.ServiceConstant;
|
||||
import com.ecep.contract.ds.company.service.CompanyService;
|
||||
import com.ecep.contract.model.CloudYu;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.ds.other.model.CloudYu;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.service.VoableService;
|
||||
import com.ecep.contract.vo.CloudYuVo;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
@@ -161,6 +162,7 @@ public class YongYouU8Service
|
||||
String searchText = paramsNode.get(ServiceConstant.KEY_SEARCH_TEXT).asText();
|
||||
spec = getSpecification(searchText);
|
||||
}
|
||||
spec = SpecificationUtils.andParam(spec, paramsNode, "company");
|
||||
return findAll(spec, pageable).map(CloudYu::toVo);
|
||||
}
|
||||
|
||||
@@ -255,5 +257,7 @@ public class YongYouU8Service
|
||||
} else {
|
||||
cloudYu.setCompany(null);
|
||||
}
|
||||
cloudYu.setVersion(vo.getVersion());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import java.util.Objects;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.ecep.contract.vo.*;
|
||||
import org.hibernate.Hibernate;
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.util.StringUtils;
|
||||
@@ -14,16 +15,12 @@ import com.ecep.contract.cloud.u8.YongYouU8Repository;
|
||||
import com.ecep.contract.constant.CloudServiceConstant;
|
||||
import com.ecep.contract.ds.customer.service.CompanyCustomerEntityService;
|
||||
import com.ecep.contract.ds.customer.service.CompanyCustomerService;
|
||||
import com.ecep.contract.ds.other.service.EmployeeService;
|
||||
import com.ecep.contract.ds.vendor.service.VendorEntityService;
|
||||
import com.ecep.contract.ds.vendor.service.VendorService;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyCustomer;
|
||||
import com.ecep.contract.model.CompanyCustomerEntity;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.model.Vendor;
|
||||
import com.ecep.contract.model.VendorEntity;
|
||||
import com.ecep.contract.vo.EmployeeVo;
|
||||
import com.ecep.contract.ds.vendor.model.Vendor;
|
||||
import com.ecep.contract.ds.vendor.model.VendorEntity;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
@@ -65,7 +62,7 @@ public class AbstractYongYouU8Ctx extends AbstractCtx {
|
||||
}
|
||||
|
||||
boolean updateEmployeeByCode(Supplier<Employee> getter, Consumer<Employee> setter, String code,
|
||||
MessageHolder holder, String topic) {
|
||||
MessageHolder holder, String topic) {
|
||||
if (StringUtils.hasText(code)) {
|
||||
var employee = getEmployeeService().findByCode(code);
|
||||
if (employee != null) {
|
||||
@@ -76,21 +73,30 @@ public class AbstractYongYouU8Ctx extends AbstractCtx {
|
||||
}
|
||||
|
||||
boolean updateEmployee(Supplier<Employee> getter, Consumer<Employee> setter, EmployeeVo employee,
|
||||
MessageHolder holder, String topic) {
|
||||
MessageHolder holder, String topic) {
|
||||
if (employee == null) {
|
||||
return false;
|
||||
}
|
||||
var service = getEmployeeService();
|
||||
if (employee != null) {
|
||||
var v1 = getter.get();
|
||||
if (v1 == null || !Objects.equals(v1.getId(), employee.getId())) {
|
||||
setter.accept(service.getById(employee.getId()));
|
||||
holder.info(topic + "更新为 " + employee.getName());
|
||||
return true;
|
||||
}
|
||||
var v1 = getter.get();
|
||||
if (v1 == null) {
|
||||
setter.accept(service.getById(employee.getId()));
|
||||
holder.info(topic + "更新为 " + employee.getName());
|
||||
return true;
|
||||
}
|
||||
if (!Hibernate.isInitialized(v1)) {
|
||||
v1 = service.getById(v1.getId());
|
||||
}
|
||||
if (!Objects.equals(v1.getId(), employee.getId())) {
|
||||
setter.accept(service.getById(employee.getId()));
|
||||
holder.info(topic + "更新为 " + employee.getName());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean updateEmployeeByName(Supplier<Employee> getter, Consumer<Employee> setter, String name,
|
||||
MessageHolder holder, String topic) {
|
||||
MessageHolder holder, String topic) {
|
||||
if (StringUtils.hasText(name)) {
|
||||
EmployeeVo employee = getEmployeeService().findByName(name);
|
||||
if (employee != null) {
|
||||
@@ -101,23 +107,20 @@ public class AbstractYongYouU8Ctx extends AbstractCtx {
|
||||
}
|
||||
|
||||
boolean updateCompanyByCustomerCode(Supplier<Company> getter, Consumer<Company> setter, String customerCode,
|
||||
MessageHolder holder, String topic) {
|
||||
MessageHolder holder, String topic) {
|
||||
Company company = null;
|
||||
if (StringUtils.hasText(customerCode)) {
|
||||
CompanyCustomerEntityService customerEntityService = getCompanyCustomerEntityService();
|
||||
CompanyCustomerService customerService = getCompanyCustomerService();
|
||||
CompanyCustomerEntity entity = customerEntityService.findByCustomerCode(customerCode);
|
||||
CompanyCustomerEntityVo entity = customerEntityService.findByCustomerCode(customerCode);
|
||||
if (entity == null) {
|
||||
holder.warn("无效" + topic + ":" + customerCode);
|
||||
} else {
|
||||
CompanyCustomer customer = entity.getCustomer();
|
||||
CompanyCustomerVo customer = customerService.findById(entity.getCustomerId());
|
||||
if (customer == null) {
|
||||
holder.warn("无效" + topic + ":" + customerCode);
|
||||
} else {
|
||||
if (!Hibernate.isInitialized(customer)) {
|
||||
customer = customerService.getById(customer.getId());
|
||||
}
|
||||
company = customer.getCompany();
|
||||
company = getCompanyService().getById(customer.getCompanyId());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -139,23 +142,20 @@ public class AbstractYongYouU8Ctx extends AbstractCtx {
|
||||
}
|
||||
|
||||
boolean updateCompanyByVendorCode(Supplier<Company> getter, Consumer<Company> setter, String vendorCode,
|
||||
MessageHolder holder, String topic) {
|
||||
MessageHolder holder, String topic) {
|
||||
Company company = null;
|
||||
if (StringUtils.hasText(vendorCode)) {
|
||||
VendorEntityService vendorEntityService = getCompanyVendorEntityService();
|
||||
VendorService customerService = getCompanyVendorService();
|
||||
VendorEntity entity = vendorEntityService.findByCode(vendorCode);
|
||||
VendorEntityVo entity = vendorEntityService.findByCode(vendorCode);
|
||||
if (entity == null) {
|
||||
holder.warn("无效" + topic + ":" + vendorCode);
|
||||
} else {
|
||||
Vendor customer = entity.getVendor();
|
||||
if (customer == null) {
|
||||
if (entity.getVendorId() == null) {
|
||||
holder.warn("无效" + topic + ":" + vendorCode);
|
||||
} else {
|
||||
if (!Hibernate.isInitialized(customer)) {
|
||||
customer = customerService.findById(customer.getId());
|
||||
}
|
||||
company = customer.getCompany();
|
||||
VendorVo v1 = customerService.findById(entity.getVendorId());
|
||||
company = getCompanyService().getById(v1.getCompanyId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import static com.ecep.contract.SpringApp.getBean;
|
||||
|
||||
import com.ecep.contract.MessageHolder;
|
||||
import com.ecep.contract.ds.company.service.CompanyBankAccountService;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
|
||||
import lombok.Setter;
|
||||
|
||||
|
||||
@@ -12,12 +12,9 @@ import org.springframework.util.StringUtils;
|
||||
import com.ecep.contract.MessageHolder;
|
||||
import com.ecep.contract.constant.CloudServiceConstant;
|
||||
import com.ecep.contract.constant.CloudYuConstant;
|
||||
import com.ecep.contract.ds.company.service.CompanyOldNameService;
|
||||
import com.ecep.contract.ds.company.service.CompanyService;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyOldName;
|
||||
|
||||
import lombok.Setter;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyOldName;
|
||||
|
||||
public class CompanyCtx extends AbstractYongYouU8Ctx implements CompanyContext {
|
||||
public boolean updateCompanyNameIfAbsent(Company company, String name, MessageHolder holder) {
|
||||
|
||||
@@ -1,38 +1,68 @@
|
||||
package com.ecep.contract.cloud.u8.ctx;
|
||||
|
||||
import java.io.File;
|
||||
import java.text.NumberFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeParseException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import com.ecep.contract.cloud.old.OldVersionService;
|
||||
import com.ecep.contract.vo.*;
|
||||
import org.hibernate.Hibernate;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import com.ecep.contract.ContractFileType;
|
||||
import com.ecep.contract.ContractPayWay;
|
||||
import com.ecep.contract.MessageHolder;
|
||||
import com.ecep.contract.MyDateTimeUtils;
|
||||
import com.ecep.contract.constant.CloudServiceConstant;
|
||||
import com.ecep.contract.ds.company.CompanyFileUtils;
|
||||
import com.ecep.contract.ds.contract.service.*;
|
||||
import com.ecep.contract.ds.contract.service.ContractFileService;
|
||||
import com.ecep.contract.ds.contract.service.ContractFileTypeService;
|
||||
import com.ecep.contract.ds.contract.service.ContractGroupService;
|
||||
import com.ecep.contract.ds.contract.service.ContractItemService;
|
||||
import com.ecep.contract.ds.contract.service.ContractKindService;
|
||||
import com.ecep.contract.ds.contract.service.ContractPayPlanService;
|
||||
import com.ecep.contract.ds.contract.service.ContractService;
|
||||
import com.ecep.contract.ds.contract.service.ContractTypeService;
|
||||
import com.ecep.contract.ds.customer.service.CompanyCustomerEntityService;
|
||||
import com.ecep.contract.ds.customer.service.CompanyCustomerService;
|
||||
import com.ecep.contract.ds.project.ProjectCtx;
|
||||
import com.ecep.contract.ds.project.service.ProjectSaleTypeService;
|
||||
import com.ecep.contract.ds.vendor.service.VendorEntityService;
|
||||
import com.ecep.contract.ds.vendor.service.VendorService;
|
||||
import com.ecep.contract.model.*;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.customer.model.CompanyCustomer;
|
||||
import com.ecep.contract.ds.customer.model.CompanyCustomerEntity;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.model.ContractCatalog;
|
||||
import com.ecep.contract.ds.contract.model.ContractFile;
|
||||
import com.ecep.contract.ds.contract.model.ContractItem;
|
||||
import com.ecep.contract.model.ContractKind;
|
||||
import com.ecep.contract.ds.contract.model.ContractPayPlan;
|
||||
import com.ecep.contract.model.ContractType;
|
||||
import com.ecep.contract.model.Employee;
|
||||
import com.ecep.contract.ds.project.model.Project;
|
||||
import com.ecep.contract.model.ProjectSaleType;
|
||||
import com.ecep.contract.ds.vendor.model.Vendor;
|
||||
import com.ecep.contract.ds.vendor.model.VendorEntity;
|
||||
import com.ecep.contract.util.FileUtils;
|
||||
import com.ecep.contract.util.NumberUtils;
|
||||
import com.ecep.contract.util.TaxRateUtils;
|
||||
import com.ecep.contract.vo.ContractFileTypeLocalVo;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.hibernate.Hibernate;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.text.NumberFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeParseException;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* 合同上下文
|
||||
@@ -313,21 +343,24 @@ public class ContractCtx extends AbstractYongYouU8Ctx {
|
||||
boolean vendorModified = false;
|
||||
VendorService vendorService = getCompanyVendorService();
|
||||
VendorEntityService vendorEntityService = getCompanyVendorEntityService();
|
||||
VendorEntity entity = vendorEntityService.findByCode(unit);
|
||||
VendorEntityVo entity = vendorEntityService.findByCode(unit);
|
||||
if (entity == null) {
|
||||
entity = new VendorEntity();
|
||||
entity.setCode(unit);
|
||||
VendorEntity v1 = new VendorEntity();
|
||||
v1.setCode(unit);
|
||||
entity = vendorEntityService.save(v1).toVo();
|
||||
}
|
||||
entity = updateVendorEntityDetailByCode(entity, unit, holder);
|
||||
|
||||
Vendor vendor = entity.getVendor();
|
||||
entity = save(entity);
|
||||
|
||||
Vendor vendor = getCompanyVendorService().getById(entity.getVendorId());
|
||||
if (vendor == null) {
|
||||
if (company != null) {
|
||||
vendor = vendorService.findByCompany(company);
|
||||
}
|
||||
} else {
|
||||
if (!Hibernate.isInitialized(vendor)) {
|
||||
vendor = vendorService.findById(vendor.getId());
|
||||
vendor = vendorService.getById(vendor.getId());
|
||||
}
|
||||
if (vendor.getCompany() == null) {
|
||||
vendor.setCompany(company);
|
||||
@@ -369,6 +402,13 @@ public class ContractCtx extends AbstractYongYouU8Ctx {
|
||||
return modified;
|
||||
}
|
||||
|
||||
private VendorEntityVo save(VendorEntityVo entity) {
|
||||
VendorEntityService service = getCompanyVendorEntityService();
|
||||
VendorEntity v1 = service.getById(entity.getId());
|
||||
service.updateByVo(v1, entity);
|
||||
return service.save(v1).toVo();
|
||||
}
|
||||
|
||||
private boolean updateCompany(Contract contract, Company company, MessageHolder holder) {
|
||||
if (company == null) {
|
||||
return false;
|
||||
@@ -384,8 +424,8 @@ public class ContractCtx extends AbstractYongYouU8Ctx {
|
||||
return true;
|
||||
}
|
||||
|
||||
private VendorEntity updateVendorEntityDetailByCode(VendorEntity entity, String unitCode,
|
||||
MessageHolder holder) {
|
||||
private VendorEntityVo updateVendorEntityDetailByCode(VendorEntityVo entity, String unitCode,
|
||||
MessageHolder holder) {
|
||||
if (vendorEntityUpdateDelayDays > 0) {
|
||||
LocalDateTime today = LocalDateTime.now();
|
||||
if (entity.getFetchedTime() != null) {
|
||||
@@ -396,15 +436,13 @@ public class ContractCtx extends AbstractYongYouU8Ctx {
|
||||
return entity;
|
||||
}
|
||||
}
|
||||
entity = getVendorCtx().updateVendorEntityDetailByCode(entity, unitCode, holder);
|
||||
entity.setFetchedTime(today);
|
||||
return getVendorCtx().save(entity);
|
||||
}
|
||||
return getVendorCtx().updateVendorEntityDetailByCode(entity, unitCode, holder);
|
||||
}
|
||||
|
||||
private CompanyCustomerEntity updateCustomerEntityDetailByCode(CompanyCustomerEntity entity, String unitCode,
|
||||
MessageHolder holder) {
|
||||
private CompanyCustomerEntityVo updateCustomerEntityDetailByCode(
|
||||
CompanyCustomerEntityVo entity, String unitCode, MessageHolder holder) {
|
||||
if (customerEntityUpdateDelayDays > 0) {
|
||||
LocalDateTime today = LocalDateTime.now();
|
||||
if (entity.getFetchedTime() != null) {
|
||||
@@ -415,9 +453,7 @@ public class ContractCtx extends AbstractYongYouU8Ctx {
|
||||
return entity;
|
||||
}
|
||||
}
|
||||
entity = getCustomerCtx().updateCustomerEntityDetailByCode(entity, unitCode, holder);
|
||||
entity.setFetchedTime(today);
|
||||
return getCustomerCtx().save(entity);
|
||||
}
|
||||
return getCustomerCtx().updateCustomerEntityDetailByCode(entity, unitCode, holder);
|
||||
}
|
||||
@@ -428,38 +464,41 @@ public class ContractCtx extends AbstractYongYouU8Ctx {
|
||||
boolean customerModified = false;
|
||||
CompanyCustomerEntityService customerEntityService = getCompanyCustomerEntityService();
|
||||
CompanyCustomerService customerService = getCompanyCustomerService();
|
||||
CompanyCustomerEntity entity = customerEntityService.findByCustomerCode(unit);
|
||||
CompanyCustomerEntityVo entity = customerEntityService.findByCustomerCode(unit);
|
||||
if (entity == null) {
|
||||
entity = new CompanyCustomerEntity();
|
||||
entity.setCode(unit);
|
||||
CompanyCustomerEntity v1 = new CompanyCustomerEntity();
|
||||
v1.setCode(unit);
|
||||
entity = customerEntityService.save(v1).toVo();
|
||||
}
|
||||
entity = updateCustomerEntityDetailByCode(entity, unit, holder);
|
||||
|
||||
CompanyCustomer customer = entity.getCustomer();
|
||||
CompanyCustomerVo customer = customerService.findById(entity.getCustomerId());
|
||||
if (customer == null) {
|
||||
if (company != null) {
|
||||
customer = customerService.findByCompany(company);
|
||||
customer = customerService.findByCompany(company).toVo();
|
||||
}
|
||||
} else {
|
||||
if (!Hibernate.isInitialized(customer)) {
|
||||
customer = customerService.getById(customer.getId());
|
||||
}
|
||||
if (customer.getCompany() == null) {
|
||||
customer.setCompany(company);
|
||||
if (customer.getCompanyId() == null) {
|
||||
customer.setCompanyId(company.getId());
|
||||
customerModified = true;
|
||||
} else {
|
||||
if (company == null) {
|
||||
company = customer.getCompany();
|
||||
} else if (!Objects.equals(company, customer.getCompany())) {
|
||||
customer.setCompanyId(company.getId());
|
||||
} else if (!Objects.equals(company.getId(), customer.getCompanyId())) {
|
||||
holder.error(
|
||||
"客户的企业和合同的企业不一致, 客户的企业:" + customer.getCompany().getId() + ",合同的企业:" + company.getId());
|
||||
"客户的企业和合同的企业不一致, 客户的企业:" + customer.getCompanyId() + ",合同的企业:" + company.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (customer == null) {
|
||||
customer = new CompanyCustomer();
|
||||
customer.setCompany(company);
|
||||
customerModified = true;
|
||||
CompanyCustomer v1 = new CompanyCustomer();
|
||||
if (company != null && !Hibernate.isInitialized(company)) {
|
||||
company = getCompanyService().getById(company.getId());
|
||||
}
|
||||
v1.setId(getCachedBean(OldVersionService.class).newCompanyCustomer(company == null ? unit : company.getName()));
|
||||
v1.setCompany(company);
|
||||
|
||||
customer = customerService.save(v1).toVo();
|
||||
}
|
||||
if (customer.getDevelopDate() == null
|
||||
|| (entity.getDevelopDate() != null && customer.getDevelopDate().isAfter(entity.getDevelopDate()))) {
|
||||
@@ -468,7 +507,9 @@ public class ContractCtx extends AbstractYongYouU8Ctx {
|
||||
holder.info("客户的开发日期修改为:" + entity.getDevelopDate());
|
||||
}
|
||||
if (customerModified) {
|
||||
customer = customerService.save(customer);
|
||||
CompanyCustomer v0 = customerService.getById(customer.getId());
|
||||
customerService.updateByVo(v0, customer);
|
||||
customer = customerService.save(v0).toVo();
|
||||
}
|
||||
// 确定 company
|
||||
if (company == null) {
|
||||
@@ -502,27 +543,36 @@ public class ContractCtx extends AbstractYongYouU8Ctx {
|
||||
}
|
||||
|
||||
private boolean updateTypeByCode(Contract contract, String typeCode, MessageHolder holder) {
|
||||
ContractType type = getCachedBean(ContractTypeService.class).findByCode(typeCode);
|
||||
if (!Objects.equals(contract.getType(), type)) {
|
||||
contract.setType(type);
|
||||
holder.info("合同类型修改为: " + type.getName());
|
||||
return true;
|
||||
var service = getCachedBean(ContractTypeService.class);
|
||||
var type = service.findByCode(typeCode);
|
||||
if (type == null) {
|
||||
contract.setType(null);
|
||||
} else {
|
||||
if (contract.getType() == null || !Objects.equals(contract.getType().getId(), type.getId())) {
|
||||
contract.setType(service.getById(type.getId()));
|
||||
holder.info("合同类型修改为: " + type.getName());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean updateGroupByCode(Contract contract, String groupCode, MessageHolder holder) {
|
||||
ContractGroup group = getCachedBean(ContractGroupService.class).findByCode(groupCode);
|
||||
if (!Objects.equals(contract.getGroup(), group)) {
|
||||
contract.setGroup(group);
|
||||
holder.info("合同分组修改为: " + group.getName());
|
||||
return true;
|
||||
var service = getCachedBean(ContractGroupService.class);
|
||||
var group = service.findByCode(groupCode);
|
||||
if (group == null) {
|
||||
contract.setGroup(null);
|
||||
} else {
|
||||
if (contract.getGroup() == null || !Objects.equals(contract.getGroup().getId(), group.getId())) {
|
||||
contract.setGroup(service.getById(group.getId()));
|
||||
holder.info("合同分组修改为: " + group.getName());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean updateKindByCode(Contract contract, String kindName, MessageHolder holder) {
|
||||
ContractKind kind = getCachedBean(ContractKindService.class).findByName(kindName);
|
||||
var service = getCachedBean(ContractKindService.class);
|
||||
var kind = service.findByName(kindName);
|
||||
if (!Objects.equals(contract.getKind(), kind)) {
|
||||
contract.setKind(kind);
|
||||
holder.info("合同分类修改为: " + kind.getName());
|
||||
@@ -548,7 +598,13 @@ public class ContractCtx extends AbstractYongYouU8Ctx {
|
||||
}
|
||||
|
||||
public Contract findContractByCode(String contractCode) {
|
||||
return getContractService().findByCode(contractCode);
|
||||
var service = getContractService();
|
||||
var vo = service.findByCode(contractCode);
|
||||
if (vo == null) {
|
||||
// holder.warn("合同 " + contractCode + " 未导入");
|
||||
return null;
|
||||
}
|
||||
return service.getById(vo.getId());
|
||||
}
|
||||
|
||||
public boolean syncByVendorEntity(Vendor vendor, VendorEntity entity, MessageHolder holder) {
|
||||
@@ -611,21 +667,24 @@ public class ContractCtx extends AbstractYongYouU8Ctx {
|
||||
public Contract findOrCreatByGuidOrContractId(String guid, String contractId, MessageHolder holder) {
|
||||
ContractService service = getContractService();
|
||||
UUID.fromString(guid);
|
||||
Contract contract = service.findByGuid(guid);
|
||||
ContractVo contract = service.findByGuid(guid);
|
||||
if (contract == null) {
|
||||
holder.debug("根据GUID未查找到合同, GUID: " + guid);
|
||||
contract = service.findByCode(contractId);
|
||||
if (contract == null) {
|
||||
holder.debug("根据合同号未查找到合同, 合同号: " + contractId);
|
||||
|
||||
contract = service.createNewEntity();
|
||||
contract.setGuid(guid);
|
||||
contract.setCode(contractId);
|
||||
contract = service.save(contract);
|
||||
var v0 = service.createNewEntity();
|
||||
v0.setGuid(guid);
|
||||
v0.setCode(contractId);
|
||||
v0 = service.save(v0);
|
||||
holder.info("新建合同:" + contractId + ", GUID: " + guid);
|
||||
return v0;
|
||||
} else {
|
||||
return service.getById(contract.getId());
|
||||
}
|
||||
} else {
|
||||
return service.getById(contract.getId());
|
||||
}
|
||||
return contract;
|
||||
}
|
||||
|
||||
private boolean updateContract(Map<String, Object> rs, MessageHolder holder) {
|
||||
@@ -911,7 +970,7 @@ public class ContractCtx extends AbstractYongYouU8Ctx {
|
||||
holder.warn("未关联主合同编号,采购合同目录创建在销售合同目录中,需先关联销售合同!");
|
||||
return false;
|
||||
}
|
||||
Contract parent = getContractService().findByCode(parentCode);
|
||||
var parent = getContractService().findByCode(parentCode);
|
||||
if (parent == null) {
|
||||
holder.warn("关联主合同编号 " + parentCode + " 异常无法找到对应的合同,请检查主合同编号是否正确,或稍后再试!");
|
||||
return false;
|
||||
@@ -1089,17 +1148,17 @@ public class ContractCtx extends AbstractYongYouU8Ctx {
|
||||
return false;
|
||||
}
|
||||
ContractFileService fileService = getContractFileService();
|
||||
List<ContractFile> dbFiles = fileService.findAllByContract(contract);
|
||||
List<ContractFileVo> dbFiles = fileService.findAllByContract(contract);
|
||||
List<ContractFile> retrieveFiles = new ArrayList<>();
|
||||
boolean modfied = false;
|
||||
|
||||
Map<String, ContractFile> map = new HashMap<>();
|
||||
Map<String, ContractFileVo> map = new HashMap<>();
|
||||
// 排除掉数据库中重复的
|
||||
for (ContractFile dbFile : dbFiles) {
|
||||
for (ContractFileVo dbFile : dbFiles) {
|
||||
String fileName = dbFile.getFileName();
|
||||
// 没有文件信息,无效记录,删除
|
||||
if (!StringUtils.hasText(fileName)) {
|
||||
fileService.delete(dbFile);
|
||||
fileService.delete(fileService.getById(dbFile.getId()));
|
||||
modfied = true;
|
||||
continue;
|
||||
}
|
||||
@@ -1107,15 +1166,15 @@ public class ContractCtx extends AbstractYongYouU8Ctx {
|
||||
// 目录不存在,删除
|
||||
File file = new File(dir, fileName);
|
||||
if (!file.exists()) {
|
||||
fileService.delete(dbFile);
|
||||
fileService.delete(fileService.getById(dbFile.getId()));
|
||||
modfied = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
// 删除文件名重复的
|
||||
ContractFile old = map.put(fileName, dbFile);
|
||||
ContractFileVo old = map.put(fileName, dbFile);
|
||||
if (old != null) {
|
||||
fileService.delete(old);
|
||||
fileService.delete(fileService.getById(old.getId()));
|
||||
modfied = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,20 @@
|
||||
package com.ecep.contract.cloud.u8.ctx;
|
||||
|
||||
import java.time.Instant;
|
||||
import com.ecep.contract.MessageHolder;
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.cloud.old.OldVersionService;
|
||||
import com.ecep.contract.ds.customer.service.CompanyCustomerEntityService;
|
||||
import com.ecep.contract.ds.customer.service.CustomerCatalogService;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.customer.model.CompanyCustomer;
|
||||
import com.ecep.contract.ds.customer.model.CompanyCustomerEntity;
|
||||
import com.ecep.contract.model.CustomerCatalog;
|
||||
import com.ecep.contract.vo.CompanyCustomerEntityVo;
|
||||
import com.ecep.contract.vo.CustomerCatalogVo;
|
||||
import lombok.Setter;
|
||||
import org.hibernate.Hibernate;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
@@ -9,21 +23,6 @@ import java.util.Objects;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.ecep.contract.ds.customer.service.CustomerCatalogService;
|
||||
import org.hibernate.Hibernate;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import com.ecep.contract.MessageHolder;
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.cloud.old.OldVersionService;
|
||||
import com.ecep.contract.ds.customer.service.CompanyCustomerEntityService;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyCustomer;
|
||||
import com.ecep.contract.model.CompanyCustomerEntity;
|
||||
import com.ecep.contract.model.CustomerCatalog;
|
||||
|
||||
import lombok.Setter;
|
||||
|
||||
public class CustomerCtx extends AbstractYongYouU8Ctx {
|
||||
private static final String AUTO_CREATE_CUSTOMER_AFTER = "cloud.u8.auto-create-customer-after";
|
||||
@Setter
|
||||
@@ -73,9 +72,11 @@ public class CustomerCtx extends AbstractYongYouU8Ctx {
|
||||
* @param unitCode
|
||||
* @param holder
|
||||
*/
|
||||
public CompanyCustomerEntity updateCustomerEntityDetailByCode(CompanyCustomerEntity item, String unitCode, MessageHolder holder) {
|
||||
if (applyEntityDetail(item, repository.findCustomerByCusCode(unitCode), holder)) {
|
||||
item = save(item);
|
||||
public CompanyCustomerEntityVo updateCustomerEntityDetailByCode(CompanyCustomerEntityVo item, String unitCode,
|
||||
MessageHolder holder) {
|
||||
CompanyCustomerEntity v0 = getCustomerEntityService().getById(item.getId());
|
||||
if (applyEntityDetail(v0, repository.findCustomerByCusCode(unitCode), holder)) {
|
||||
item = save(v0).toVo();
|
||||
}
|
||||
return item;
|
||||
}
|
||||
@@ -95,7 +96,6 @@ public class CustomerCtx extends AbstractYongYouU8Ctx {
|
||||
String bank = (String) map.get("cCusBank");
|
||||
String bankAccount = (String) map.get("cCusAccount");
|
||||
|
||||
|
||||
boolean modified = false;
|
||||
if (updateText(item::getName, item::setName, name, holder, "名称")) {
|
||||
modified = true;
|
||||
@@ -166,24 +166,36 @@ public class CustomerCtx extends AbstractYongYouU8Ctx {
|
||||
return modified;
|
||||
}
|
||||
|
||||
private boolean updateCustomerCatalog(Supplier<CustomerCatalog> getter, Consumer<CustomerCatalog> setter, String catalogCode, MessageHolder holder, String topic) {
|
||||
CustomerCatalog catalog = null;
|
||||
private boolean updateCustomerCatalog(Supplier<CustomerCatalog> getter, Consumer<CustomerCatalog> setter,
|
||||
String catalogCode, MessageHolder holder, String topic) {
|
||||
CustomerCatalogVo catalog = null;
|
||||
var service = getCachedBean(CustomerCatalogService.class);
|
||||
if (StringUtils.hasText(catalogCode)) {
|
||||
catalog = getCachedBean(CustomerCatalogService.class).findByCode(catalogCode);
|
||||
catalog = service.findByCode(catalogCode);
|
||||
}
|
||||
if (catalog == null) {
|
||||
setter.accept(null);
|
||||
holder.warn("无效" + topic + ":" + catalogCode);
|
||||
return true;
|
||||
} else {
|
||||
if (!Objects.equals(getter.get(), catalog)) {
|
||||
if (!Hibernate.isInitialized(catalog)) {
|
||||
catalog = getCachedBean(CustomerCatalogService.class).findByCode(catalogCode);
|
||||
}
|
||||
setter.accept(catalog);
|
||||
holder.info(topic + "修改为: " + catalog.getName());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
var v1 = getter.get();
|
||||
if (v1 == null) {
|
||||
var v0 = service.getById(catalog.getId());
|
||||
setter.accept(v0);
|
||||
holder.info(topic + "修改为: " + catalog.getName());
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!Hibernate.isInitialized(v1)) {
|
||||
v1 = service.getById(v1.getId());
|
||||
}
|
||||
if (!Objects.equals(v1.getCode(), catalog.getCode())) {
|
||||
var v0 = service.getById(catalog.getId());
|
||||
setter.accept(v0);
|
||||
holder.info(topic + "修改为: " + catalog.getName());
|
||||
return true;
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -241,7 +253,8 @@ public class CustomerCtx extends AbstractYongYouU8Ctx {
|
||||
return updated;
|
||||
}
|
||||
|
||||
private boolean updateCustomerDevelopDate(CompanyCustomer companyCustomer, List<CompanyCustomerEntity> entities, MessageHolder holder) {
|
||||
private boolean updateCustomerDevelopDate(CompanyCustomer companyCustomer, List<CompanyCustomerEntity> entities,
|
||||
MessageHolder holder) {
|
||||
LocalDate developDate = null;
|
||||
for (CompanyCustomerEntity entity : entities) {
|
||||
// 取最早的开发日期
|
||||
@@ -249,16 +262,17 @@ public class CustomerCtx extends AbstractYongYouU8Ctx {
|
||||
developDate = entity.getDevelopDate();
|
||||
}
|
||||
}
|
||||
return updateLocalDate(companyCustomer::getDevelopDate, companyCustomer::setDevelopDate, developDate, holder, "开发日期");
|
||||
return updateLocalDate(companyCustomer::getDevelopDate, companyCustomer::setDevelopDate, developDate, holder,
|
||||
"开发日期");
|
||||
}
|
||||
|
||||
public CompanyCustomerEntity findOrCreateByCode(Map<String, Object> rs, String cusCode, MessageHolder subHolder) {
|
||||
public CompanyCustomerEntityVo findOrCreateByCode(Map<String, Object> rs, String cusCode, MessageHolder subHolder) {
|
||||
CompanyCustomerEntityService customerEntityService = getCompanyCustomerEntityService();
|
||||
CompanyCustomerEntity entity = customerEntityService.findByCustomerCode(cusCode);
|
||||
CompanyCustomerEntityVo entity = customerEntityService.findByCustomerCode(cusCode);
|
||||
if (entity == null) {
|
||||
entity = new CompanyCustomerEntity();
|
||||
entity.setCode(cusCode);
|
||||
entity = customerEntityService.save(entity);
|
||||
CompanyCustomerEntity v1 = new CompanyCustomerEntity();
|
||||
v1.setCode(cusCode);
|
||||
entity = customerEntityService.save(v1).toVo();
|
||||
subHolder.info("创建客户相关项:" + cusCode);
|
||||
}
|
||||
return entity;
|
||||
@@ -301,5 +315,4 @@ public class CustomerCtx extends AbstractYongYouU8Ctx {
|
||||
return getCustomerEntityService().save(entity);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package com.ecep.contract.cloud.u8.ctx;
|
||||
|
||||
import static com.ecep.contract.SpringApp.getBean;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Map;
|
||||
@@ -21,6 +19,7 @@ import com.ecep.contract.ds.other.service.InventoryService;
|
||||
import com.ecep.contract.model.Inventory;
|
||||
import com.ecep.contract.model.InventoryCatalog;
|
||||
import com.ecep.contract.model.Price;
|
||||
import com.ecep.contract.vo.InventoryVo;
|
||||
|
||||
import lombok.Setter;
|
||||
|
||||
@@ -70,7 +69,6 @@ public class InventoryCtx extends AbstractYongYouU8Ctx {
|
||||
// 参考售价
|
||||
Double suggestedSalePrice = (Double) map.get("iInvSCost");
|
||||
|
||||
|
||||
if (!item.isNameLock()) {
|
||||
if (updateText(item::getName, item::setName, name, holder, "名称")) {
|
||||
modified = true;
|
||||
@@ -128,7 +126,6 @@ public class InventoryCtx extends AbstractYongYouU8Ctx {
|
||||
return modified;
|
||||
}
|
||||
|
||||
|
||||
public boolean syncInventoryDetailByCode(Inventory inventory, String inventoryCode, MessageHolder holder) {
|
||||
if (repository == null) {
|
||||
return false;
|
||||
@@ -160,7 +157,8 @@ public class InventoryCtx extends AbstractYongYouU8Ctx {
|
||||
* @param topic 主题
|
||||
* @return 是否更新
|
||||
*/
|
||||
private boolean updateInventoryCatalog(Supplier<InventoryCatalog> getter, Consumer<InventoryCatalog> setter, String catalogCode, MessageHolder holder, String topic) {
|
||||
private boolean updateInventoryCatalog(Supplier<InventoryCatalog> getter, Consumer<InventoryCatalog> setter,
|
||||
String catalogCode, MessageHolder holder, String topic) {
|
||||
InventoryCatalog catalog = null;
|
||||
if (StringUtils.hasText(catalogCode)) {
|
||||
catalog = getInventoryCatalogService().findByCode(catalogCode);
|
||||
@@ -192,35 +190,37 @@ public class InventoryCtx extends AbstractYongYouU8Ctx {
|
||||
* @param topic 主题
|
||||
* @return 是否更新
|
||||
*/
|
||||
public boolean syncInventoryDetailByCode(Supplier<Inventory> getter, Consumer<Inventory> setter, String inventoryCode, MessageHolder holder, String topic) {
|
||||
public boolean syncInventoryDetailByCode(Supplier<Inventory> getter, Consumer<Inventory> setter,
|
||||
String inventoryCode, MessageHolder holder, String topic) {
|
||||
if (!StringUtils.hasText(inventoryCode)) {
|
||||
return false;
|
||||
}
|
||||
Inventory inventory = null;
|
||||
InventoryVo inventory = null;
|
||||
InventoryService service = getInventoryService();
|
||||
if (StringUtils.hasText(inventoryCode)) {
|
||||
inventory = service.findByCode(inventoryCode);
|
||||
if (inventory == null) {
|
||||
inventory = service.createNewInstance();
|
||||
inventory.setCode(inventoryCode);
|
||||
if (syncInventoryDetailByCode(inventory, inventoryCode, holder)) {
|
||||
inventory = getInventoryService().save(inventory);
|
||||
var vo = service.findByCode(inventoryCode);
|
||||
if (vo == null) {
|
||||
var v1 = service.createNewInstance();
|
||||
v1.setCode(inventoryCode);
|
||||
if (syncInventoryDetailByCode(v1, inventoryCode, holder)) {
|
||||
v1 = getInventoryService().save(v1);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
vo = v1.toVo();
|
||||
}
|
||||
inventory = vo;
|
||||
}
|
||||
if (inventory == null) {
|
||||
setter.accept(null);
|
||||
holder.warn("无效" + topic + ":" + inventoryCode);
|
||||
return true;
|
||||
} else {
|
||||
if (!Objects.equals(getter.get(), inventory)) {
|
||||
if (!Hibernate.isInitialized(inventory)) {
|
||||
inventory = service.findByCode(inventoryCode);
|
||||
}
|
||||
setter.accept(inventory);
|
||||
holder.info(topic + "修改为: " + inventory.getName());
|
||||
var v0 = getter.get();
|
||||
if (v0 == null || !Objects.equals(v0.getId(), inventory.getId())) {
|
||||
var v1 = service.getById(inventory.getId());
|
||||
setter.accept(v1);
|
||||
holder.info(topic + "修改为: " + v1.getName());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import org.springframework.util.StringUtils;
|
||||
|
||||
import com.ecep.contract.MessageHolder;
|
||||
import com.ecep.contract.ds.company.service.InvoiceService;
|
||||
import com.ecep.contract.model.Invoice;
|
||||
import com.ecep.contract.ds.other.model.Invoice;
|
||||
|
||||
import lombok.Setter;
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.ecep.contract.vo.PurchaseOrderItemVo;
|
||||
import org.springframework.data.domain.Sort;
|
||||
|
||||
import com.ecep.contract.MessageHolder;
|
||||
@@ -20,16 +21,16 @@ import com.ecep.contract.ds.contract.service.PurchaseBillVoucherItemService;
|
||||
import com.ecep.contract.ds.contract.service.PurchaseBillVoucherService;
|
||||
import com.ecep.contract.ds.contract.service.PurchaseOrderItemService;
|
||||
import com.ecep.contract.ds.contract.service.PurchaseOrdersService;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.Vendor;
|
||||
import com.ecep.contract.model.VendorEntity;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.vendor.model.Vendor;
|
||||
import com.ecep.contract.ds.vendor.model.VendorEntity;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.model.Inventory;
|
||||
import com.ecep.contract.model.Invoice;
|
||||
import com.ecep.contract.model.PurchaseBillVoucher;
|
||||
import com.ecep.contract.model.PurchaseBillVoucherItem;
|
||||
import com.ecep.contract.model.PurchaseOrder;
|
||||
import com.ecep.contract.model.PurchaseOrderItem;
|
||||
import com.ecep.contract.ds.other.model.Invoice;
|
||||
import com.ecep.contract.ds.vendor.model.PurchaseBillVoucher;
|
||||
import com.ecep.contract.ds.vendor.model.PurchaseBillVoucherItem;
|
||||
import com.ecep.contract.ds.vendor.model.PurchaseOrder;
|
||||
import com.ecep.contract.ds.vendor.model.PurchaseOrderItem;
|
||||
|
||||
import lombok.Setter;
|
||||
|
||||
@@ -238,7 +239,7 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
|
||||
private PurchaseBillVoucher updateVoucherByPBVID(Integer pbvId, MessageHolder holder) {
|
||||
PurchaseBillVoucherService voucherService = getPurchaseBillVoucherService();
|
||||
PurchaseBillVoucher voucher = voucherService.findByRefId(pbvId);
|
||||
PurchaseBillVoucher voucher = voucherService.getByRefId(pbvId);
|
||||
if (voucher != null) {
|
||||
return voucher;
|
||||
}
|
||||
@@ -251,7 +252,7 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
}
|
||||
|
||||
private boolean applyPurchaseBillVoucherDetail(PurchaseBillVoucher voucher, Map<String, Object> map,
|
||||
MessageHolder holder) {
|
||||
MessageHolder holder) {
|
||||
String code = String.valueOf(map.get("PBVID"));
|
||||
String vendorCode = (String) map.get("cVenCode");
|
||||
String invoiceNumber = (String) map.get("cPBVCode");
|
||||
@@ -313,7 +314,7 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
}
|
||||
|
||||
private boolean applyPurchaseBillVoucherItemDetail(PurchaseBillVoucherItem item, Map<String, Object> map,
|
||||
MessageHolder holder) {
|
||||
MessageHolder holder) {
|
||||
String code = String.valueOf(map.get("ID"));
|
||||
String inventoryCode = (String) map.get("cInvCode");
|
||||
String contractCode = (String) map.get("ContractCode");
|
||||
@@ -358,8 +359,8 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
}
|
||||
|
||||
boolean updatePurchaseOrderItem(Supplier<PurchaseOrderItem> getter, Consumer<PurchaseOrderItem> setter,
|
||||
Integer orderItemRefId, MessageHolder holder, String topic) {
|
||||
PurchaseOrderItem item = null;
|
||||
Integer orderItemRefId, MessageHolder holder, String topic) {
|
||||
PurchaseOrderItemVo item = null;
|
||||
if (orderItemRefId != null) {
|
||||
item = getPurchaseOrderItemService().findByRefId(orderItemRefId);
|
||||
}
|
||||
@@ -367,21 +368,29 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
setter.accept(null);
|
||||
holder.warn("无效" + topic + ":" + orderItemRefId);
|
||||
return true;
|
||||
} else {
|
||||
if (!Objects.equals(getter.get(), item)) {
|
||||
setter.accept(item);
|
||||
holder.info(topic + "修改为: " + item.getRefId());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
PurchaseOrderItem v1 = getter.get();
|
||||
if (v1 == null) {
|
||||
setter.accept(getPurchaseOrderItemService().getById(item.getId()));
|
||||
holder.info(topic + "修改为: " + item.getRefId());
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!Objects.equals(v1.getId(), item.getId())) {
|
||||
setter.accept(getPurchaseOrderItemService().getById(item.getId()));
|
||||
holder.info(topic + "修改为: " + item.getRefId());
|
||||
return true;
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean updatePurchaseOrder(Supplier<PurchaseOrder> getter, Consumer<PurchaseOrder> setter, Integer orderRefId,
|
||||
MessageHolder holder, String topic) {
|
||||
MessageHolder holder, String topic) {
|
||||
PurchaseOrder order = null;
|
||||
if (orderRefId != null) {
|
||||
order = getPurchaseOrdersService().findByRefId(orderRefId);
|
||||
order = getPurchaseOrdersService().getByRefId(orderRefId);
|
||||
}
|
||||
if (order == null) {
|
||||
setter.accept(null);
|
||||
@@ -398,7 +407,7 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
}
|
||||
|
||||
boolean updateContractByContractCode(Supplier<Contract> getter, Consumer<Contract> setter, String contractCode,
|
||||
MessageHolder holder, String topic) {
|
||||
MessageHolder holder, String topic) {
|
||||
Contract contract = null;
|
||||
if (contractCode != null) {
|
||||
contract = getContractCtx().findContractByCode(contractCode);
|
||||
@@ -418,12 +427,12 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
}
|
||||
|
||||
boolean updateInventory(Supplier<Inventory> getter, Consumer<Inventory> setter, String inventoryCode,
|
||||
MessageHolder holder, String topic) {
|
||||
MessageHolder holder, String topic) {
|
||||
return getInventoryCtx().syncInventoryDetailByCode(getter, setter, inventoryCode, holder, topic);
|
||||
}
|
||||
|
||||
private boolean updateInvoice(Supplier<Invoice> getter, Consumer<Invoice> setter, String invoiceNumber,
|
||||
MessageHolder holder, String topic) {
|
||||
MessageHolder holder, String topic) {
|
||||
return getInvoiceCtx().updateInvoiceByNumber(getter, setter, invoiceNumber, holder, topic);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,10 +21,10 @@ import com.ecep.contract.constant.CloudServiceConstant;
|
||||
import com.ecep.contract.ds.contract.service.ContractService;
|
||||
import com.ecep.contract.ds.contract.service.PurchaseOrderItemService;
|
||||
import com.ecep.contract.ds.contract.service.PurchaseOrdersService;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.model.Inventory;
|
||||
import com.ecep.contract.model.PurchaseOrder;
|
||||
import com.ecep.contract.model.PurchaseOrderItem;
|
||||
import com.ecep.contract.ds.vendor.model.PurchaseOrder;
|
||||
import com.ecep.contract.ds.vendor.model.PurchaseOrderItem;
|
||||
import com.ecep.contract.util.NumberUtils;
|
||||
|
||||
import lombok.Setter;
|
||||
|
||||
@@ -7,8 +7,8 @@ import java.util.function.Supplier;
|
||||
|
||||
import com.ecep.contract.MessageHolder;
|
||||
import com.ecep.contract.model.Inventory;
|
||||
import com.ecep.contract.model.PurchaseSettlementVoucher;
|
||||
import com.ecep.contract.model.PurchaseSettlementVoucherItem;
|
||||
import com.ecep.contract.ds.vendor.model.PurchaseSettlementVoucher;
|
||||
import com.ecep.contract.ds.vendor.model.PurchaseSettlementVoucherItem;
|
||||
|
||||
public class PurchaseSettlementVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
InventoryCtx inventoryCtx;
|
||||
|
||||
@@ -17,52 +17,39 @@ import org.springframework.data.domain.Sort;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import com.ecep.contract.MessageHolder;
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.constant.CloudServiceConstant;
|
||||
import com.ecep.contract.ds.contract.service.ContractService;
|
||||
import com.ecep.contract.ds.contract.service.SaleOrdersService;
|
||||
import com.ecep.contract.ds.contract.service.SalesBillVoucherItemService;
|
||||
import com.ecep.contract.ds.contract.service.SalesBillVoucherService;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyCustomer;
|
||||
import com.ecep.contract.model.CompanyCustomerEntity;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.customer.model.CompanyCustomer;
|
||||
import com.ecep.contract.ds.customer.model.CompanyCustomerEntity;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.model.Inventory;
|
||||
import com.ecep.contract.model.SalesBillVoucher;
|
||||
import com.ecep.contract.model.SalesBillVoucherItem;
|
||||
import com.ecep.contract.model.SalesOrder;
|
||||
import com.ecep.contract.ds.customer.model.SalesBillVoucher;
|
||||
import com.ecep.contract.ds.customer.model.SalesBillVoucherItem;
|
||||
import com.ecep.contract.ds.customer.model.SalesOrder;
|
||||
import com.ecep.contract.util.NumberUtils;
|
||||
|
||||
import lombok.Setter;
|
||||
import com.ecep.contract.vo.SalesOrderVo;
|
||||
|
||||
public class SalesBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
@Setter
|
||||
private ContractService contractService;
|
||||
@Setter
|
||||
private SaleOrdersService saleOrdersService;
|
||||
@Setter
|
||||
private SalesBillVoucherService salesBillVoucherService;
|
||||
|
||||
InventoryCtx inventoryCtx;
|
||||
|
||||
ContractService getContractService() {
|
||||
if (contractService == null) {
|
||||
contractService = getBean(ContractService.class);
|
||||
}
|
||||
return contractService;
|
||||
return getCachedBean(ContractService.class);
|
||||
}
|
||||
|
||||
SaleOrdersService getSaleOrdersService() {
|
||||
if (saleOrdersService == null) {
|
||||
saleOrdersService = getBean(SaleOrdersService.class);
|
||||
}
|
||||
return saleOrdersService;
|
||||
return getCachedBean(SaleOrdersService.class);
|
||||
}
|
||||
|
||||
SalesBillVoucherService getSalesBillVoucherService() {
|
||||
if (salesBillVoucherService == null) {
|
||||
salesBillVoucherService = SpringApp.getBean(SalesBillVoucherService.class);
|
||||
}
|
||||
return salesBillVoucherService;
|
||||
return getCachedBean(SalesBillVoucherService.class);
|
||||
}
|
||||
|
||||
SalesBillVoucherItemService getSalesBillVoucherItemService() {
|
||||
return getCachedBean(SalesBillVoucherItemService.class);
|
||||
}
|
||||
|
||||
InventoryCtx getInventoryCtx() {
|
||||
@@ -74,16 +61,22 @@ public class SalesBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
}
|
||||
|
||||
public void syncByCompany(Company company, MessageHolder holder) {
|
||||
var voucherService = getSalesBillVoucherService();
|
||||
var vucherItemService = getSalesBillVoucherItemService();
|
||||
var contractService = getContractService();
|
||||
var customerService = getCompanyCustomerService();
|
||||
var customerEntityService = getCompanyCustomerEntityService();
|
||||
|
||||
List<SalesBillVoucher> vouchers = salesBillVoucherService.findAll((root, q, cb) -> {
|
||||
List<SalesBillVoucher> vouchers = voucherService.findAll((root, q, cb) -> {
|
||||
return cb.equal(root.get("company"), company);
|
||||
}, Sort.unsorted());
|
||||
holder.debug("查找到 " + vouchers.size() + " 条专用发票记录在数据库中");
|
||||
Map<Integer, SalesBillVoucher> voucherMap = vouchers.stream().collect(Collectors.toMap(SalesBillVoucher::getRefId, item -> item));
|
||||
Map<Integer, SalesBillVoucher> voucherMap = vouchers.stream()
|
||||
.collect(Collectors.toMap(SalesBillVoucher::getRefId, item -> item));
|
||||
|
||||
CompanyCustomer customer = getCompanyCustomerService().findByCompany(company);
|
||||
CompanyCustomer customer = customerService.findByCompany(company);
|
||||
if (customer != null) {
|
||||
List<CompanyCustomerEntity> entities = getCompanyCustomerEntityService().findAllByCustomer(customer);
|
||||
List<CompanyCustomerEntity> entities = customerEntityService.findAllByCustomer(customer);
|
||||
for (CompanyCustomerEntity entity : entities) {
|
||||
// 查询 U8 数据库
|
||||
List<Map<String, Object>> ds = repository.findAllSalesBillVoucherByCustomerCode(entity.getCode());
|
||||
@@ -111,20 +104,22 @@ public class SalesBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
}
|
||||
|
||||
if (voucherModified) {
|
||||
voucher = salesBillVoucherService.save(voucher);
|
||||
voucher = voucherService.save(voucher);
|
||||
voucherMap.put(sbvid, voucher);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<SalesBillVoucherItem> items = salesBillVoucherService.findAllItems((root, q, cb) -> {
|
||||
List<SalesBillVoucherItem> items = vucherItemService.findAll((root, q, cb) -> {
|
||||
return cb.equal(root.get("voucher").get("company"), company);
|
||||
}, Sort.unsorted());
|
||||
holder.debug("查找到 " + items.size() + " 条专用发票条目记录在数据库中");
|
||||
|
||||
// 按 order 分组
|
||||
Map<SalesBillVoucher, Map<Integer, SalesBillVoucherItem>> itemMap = items.stream().collect(Collectors.groupingBy(SalesBillVoucherItem::getVoucher,
|
||||
Collectors.toMap(SalesBillVoucherItem::getRefId, item -> item)));
|
||||
Map<SalesBillVoucher, Map<Integer, SalesBillVoucherItem>> itemMap = items.stream()
|
||||
.collect(Collectors.groupingBy(SalesBillVoucherItem::getVoucher,
|
||||
Collectors.toMap(SalesBillVoucherItem::getRefId, item -> item)));
|
||||
for (SalesBillVoucher voucher : voucherMap.values()) {
|
||||
|
||||
// 查询 U8 数据库
|
||||
@@ -152,23 +147,25 @@ public class SalesBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
itemModified = true;
|
||||
}
|
||||
if (itemModified) {
|
||||
item = salesBillVoucherService.save(item);
|
||||
item = vucherItemService.save(item);
|
||||
}
|
||||
}
|
||||
for (SalesBillVoucherItem item : subItemMap.values()) {
|
||||
holder.info("删除无效专用发票条目");
|
||||
salesBillVoucherService.delete(item);
|
||||
vucherItemService.delete(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void syncBySalesOrder(SalesOrder order, MessageHolder holder) {
|
||||
SalesBillVoucherService voucherService = getSalesBillVoucherService();
|
||||
var voucherService = getSalesBillVoucherService();
|
||||
var voucherItemService = getSalesBillVoucherItemService();
|
||||
List<SalesBillVoucher> vouchers = voucherService.findAll((root, q, cb) -> {
|
||||
return cb.equal(root.get("order"), order);
|
||||
}, Sort.unsorted());
|
||||
holder.debug("查找到 " + vouchers.size() + " 条专用发票记录在数据库中");
|
||||
Map<Integer, SalesBillVoucher> voucherMap = vouchers.stream().collect(Collectors.toMap(SalesBillVoucher::getRefId, item -> item));
|
||||
Map<Integer, SalesBillVoucher> voucherMap = vouchers.stream()
|
||||
.collect(Collectors.toMap(SalesBillVoucher::getRefId, item -> item));
|
||||
{
|
||||
// 查询 U8 数据库
|
||||
List<Map<String, Object>> ds = repository.findAllSalesBillVoucherBySalesOrderCode(order.getCode());
|
||||
@@ -207,13 +204,14 @@ public class SalesBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
}
|
||||
}
|
||||
|
||||
List<SalesBillVoucherItem> items = voucherService.findAllItems((root, q, cb) -> {
|
||||
List<SalesBillVoucherItem> items = voucherItemService.findAll((root, q, cb) -> {
|
||||
return cb.equal(root.get("voucher").get("order"), order);
|
||||
}, Sort.unsorted());
|
||||
|
||||
// 按 order 分组
|
||||
Map<SalesBillVoucher, Map<Integer, SalesBillVoucherItem>> itemMap = items.stream().collect(Collectors.groupingBy(SalesBillVoucherItem::getVoucher,
|
||||
Collectors.toMap(SalesBillVoucherItem::getRefId, item -> item)));
|
||||
Map<SalesBillVoucher, Map<Integer, SalesBillVoucherItem>> itemMap = items.stream()
|
||||
.collect(Collectors.groupingBy(SalesBillVoucherItem::getVoucher,
|
||||
Collectors.toMap(SalesBillVoucherItem::getRefId, item -> item)));
|
||||
for (SalesBillVoucher voucher : voucherMap.values()) {
|
||||
|
||||
// 查询 U8 数据库
|
||||
@@ -241,18 +239,18 @@ public class SalesBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
itemModified = true;
|
||||
}
|
||||
if (itemModified) {
|
||||
item = voucherService.save(item);
|
||||
item = voucherItemService.save(item);
|
||||
}
|
||||
}
|
||||
for (SalesBillVoucherItem item : subItemMap.values()) {
|
||||
holder.info("删除无效专用发票条目");
|
||||
voucherService.delete(item);
|
||||
voucherItemService.delete(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private boolean applySalesBillVoucherDetail(SalesBillVoucher voucher, Map<String, Object> map, MessageHolder holder) {
|
||||
private boolean applySalesBillVoucherDetail(SalesBillVoucher voucher, Map<String, Object> map,
|
||||
MessageHolder holder) {
|
||||
String code = String.valueOf(map.get("SBVID"));
|
||||
String customerCode = (String) map.get("cCusCode");
|
||||
String salesOrderCode = (String) map.get("cSOCode");
|
||||
@@ -270,7 +268,6 @@ public class SalesBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
|
||||
String description = (String) map.get("cMemo");
|
||||
|
||||
|
||||
boolean modified = false;
|
||||
|
||||
holder.debug("条目:" + code + " x " + salesOrderCode);
|
||||
@@ -278,7 +275,7 @@ public class SalesBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
modified = true;
|
||||
}
|
||||
|
||||
SalesOrder salesOrder = null;
|
||||
SalesOrderVo salesOrder = null;
|
||||
if (StringUtils.hasText(salesOrderCode)) {
|
||||
salesOrder = getSaleOrdersService().findByCode(salesOrderCode);
|
||||
}
|
||||
@@ -287,9 +284,10 @@ public class SalesBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
holder.warn("无效销售订单:" + salesOrderCode);
|
||||
modified = true;
|
||||
} else {
|
||||
if (!Objects.equals(voucher.getOrder(), salesOrder)) {
|
||||
voucher.setOrder(salesOrder);
|
||||
holder.info("销售订单修改为: " + salesOrder.getCode());
|
||||
if (voucher.getOrder() == null || !Objects.equals(voucher.getOrder().getId(), salesOrder.getId())) {
|
||||
var v1 = getSaleOrdersService().getById(salesOrder.getId());
|
||||
voucher.setOrder(v1);
|
||||
holder.info("销售订单修改为: " + v1.getCode());
|
||||
modified = true;
|
||||
}
|
||||
}
|
||||
@@ -318,8 +316,8 @@ public class SalesBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
return modified;
|
||||
}
|
||||
|
||||
|
||||
private boolean applySalesBillVoucherItemDetail(SalesBillVoucherItem item, Map<String, Object> map, MessageHolder holder) {
|
||||
private boolean applySalesBillVoucherItemDetail(SalesBillVoucherItem item, Map<String, Object> map,
|
||||
MessageHolder holder) {
|
||||
String code = String.valueOf(map.get("ID"));
|
||||
String inventoryCode = (String) map.get("cInvCode");
|
||||
String contractCode = (String) map.get("ContractCode");
|
||||
@@ -330,7 +328,6 @@ public class SalesBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
double taxPrice = (double) map.get("iTaxUnitPrice");
|
||||
BigDecimal amount = (BigDecimal) map.get("iSum");
|
||||
|
||||
|
||||
Timestamp signDate = (Timestamp) map.get("dSignDate");
|
||||
|
||||
boolean modified = false;
|
||||
@@ -359,7 +356,8 @@ public class SalesBillVoucherCtx extends AbstractYongYouU8Ctx {
|
||||
return modified;
|
||||
}
|
||||
|
||||
boolean updateInventory(Supplier<Inventory> getter, Consumer<Inventory> setter, String inventoryCode, MessageHolder holder, String topic) {
|
||||
boolean updateInventory(Supplier<Inventory> getter, Consumer<Inventory> setter, String inventoryCode,
|
||||
MessageHolder holder, String topic) {
|
||||
return getInventoryCtx().syncInventoryDetailByCode(getter, setter, inventoryCode, holder, topic);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,9 +18,9 @@ import com.ecep.contract.MessageHolder;
|
||||
import com.ecep.contract.constant.CloudServiceConstant;
|
||||
import com.ecep.contract.ds.contract.service.SaleOrdersService;
|
||||
import com.ecep.contract.ds.contract.service.SalesOrderItemService;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.model.SalesOrder;
|
||||
import com.ecep.contract.model.SalesOrderItem;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.ds.customer.model.SalesOrder;
|
||||
import com.ecep.contract.ds.customer.model.SalesOrderItem;
|
||||
import com.ecep.contract.util.NumberUtils;
|
||||
|
||||
import lombok.Setter;
|
||||
|
||||
@@ -8,6 +8,9 @@ import java.util.Objects;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.ecep.contract.ds.vendor.service.VendorCatalogService;
|
||||
import com.ecep.contract.vo.VendorCatalogVo;
|
||||
import com.ecep.contract.vo.VendorEntityVo;
|
||||
import org.hibernate.Hibernate;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
@@ -17,9 +20,9 @@ import com.ecep.contract.cloud.old.OldVersionService;
|
||||
import com.ecep.contract.ds.company.service.CompanyService;
|
||||
import com.ecep.contract.ds.vendor.service.VendorEntityService;
|
||||
import com.ecep.contract.ds.vendor.service.VendorService;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.Vendor;
|
||||
import com.ecep.contract.model.VendorEntity;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.vendor.model.Vendor;
|
||||
import com.ecep.contract.ds.vendor.model.VendorEntity;
|
||||
import com.ecep.contract.model.VendorCatalog;
|
||||
|
||||
import lombok.Setter;
|
||||
@@ -66,9 +69,10 @@ public class VendorCtx extends AbstractYongYouU8Ctx {
|
||||
* @param unitCode 供应商相关项编码
|
||||
* @param holder 消息
|
||||
*/
|
||||
public VendorEntity updateVendorEntityDetailByCode(VendorEntity item, String unitCode, MessageHolder holder) {
|
||||
if (applyEntityDetail(item, repository.findVendorByVendCode(unitCode), holder)) {
|
||||
item = save(item);
|
||||
public VendorEntityVo updateVendorEntityDetailByCode(VendorEntityVo item, String unitCode, MessageHolder holder) {
|
||||
VendorEntity v1 = getCompanyVendorEntityService().getById(item.getId());
|
||||
if (applyEntityDetail(v1, repository.findVendorByVendCode(unitCode), holder)) {
|
||||
item = save(v1).toVo();
|
||||
}
|
||||
return item;
|
||||
}
|
||||
@@ -152,7 +156,7 @@ public class VendorCtx extends AbstractYongYouU8Ctx {
|
||||
}
|
||||
if (vendor != null) {
|
||||
if (!Hibernate.isInitialized(vendor)) {
|
||||
vendor = getCompanyVendorService().findById(vendor.getId());
|
||||
vendor = getCompanyVendorService().getById(vendor.getId());
|
||||
}
|
||||
Company company = vendor.getCompany();
|
||||
if (company != null) {
|
||||
@@ -163,7 +167,7 @@ public class VendorCtx extends AbstractYongYouU8Ctx {
|
||||
}
|
||||
|
||||
private boolean updateVendorCatalog(Supplier<VendorCatalog> getter, Consumer<VendorCatalog> setter, String catalogCode, MessageHolder holder, String topic) {
|
||||
VendorCatalog catalog = null;
|
||||
VendorCatalogVo catalog = null;
|
||||
if (StringUtils.hasText(catalogCode)) {
|
||||
catalog = getCompanyVendorService().findCatalogByCode(catalogCode);
|
||||
}
|
||||
@@ -171,16 +175,20 @@ public class VendorCtx extends AbstractYongYouU8Ctx {
|
||||
setter.accept(null);
|
||||
holder.warn("无效" + topic + ":" + catalogCode);
|
||||
return true;
|
||||
} else {
|
||||
if (!Objects.equals(getter.get(), catalog)) {
|
||||
if (!Hibernate.isInitialized(catalog)) {
|
||||
catalog = getCompanyVendorService().findCatalogByCode(catalogCode);
|
||||
}
|
||||
setter.accept(catalog);
|
||||
holder.info(topic + "修改为: " + catalog.getName());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
VendorCatalog v0 = getCachedBean(VendorCatalogService.class).getById(catalog.getId());
|
||||
VendorCatalog v1 = getter.get();
|
||||
if (v1 == null) {
|
||||
setter.accept(v0);
|
||||
holder.info(topic + "修改为: " + v0.getName());
|
||||
return true;
|
||||
}
|
||||
if (!Objects.equals(v1, v0)) {
|
||||
setter.accept(v0);
|
||||
holder.info(topic + "修改为: " + v0.getName());
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -272,13 +280,13 @@ public class VendorCtx extends AbstractYongYouU8Ctx {
|
||||
return updateLocalDate(vendor::getDevelopDate, vendor::setDevelopDate, developDate, holder, "开发日期");
|
||||
}
|
||||
|
||||
public VendorEntity findOrCreateByCode(String venCode, MessageHolder subHolder) {
|
||||
public VendorEntityVo findOrCreateByCode(String venCode, MessageHolder subHolder) {
|
||||
VendorEntityService service = getCompanyVendorEntityService();
|
||||
VendorEntity entity = service.findByCode(venCode);
|
||||
VendorEntityVo entity = service.findByCode(venCode);
|
||||
if (entity == null) {
|
||||
entity = new VendorEntity();
|
||||
entity.setCode(venCode);
|
||||
entity = service.save(entity);
|
||||
VendorEntity v1 = new VendorEntity();
|
||||
v1.setCode(venCode);
|
||||
entity = service.save(v1).toVo();
|
||||
subHolder.info("创建供应商相关项: " + venCode);
|
||||
}
|
||||
return entity;
|
||||
|
||||
@@ -24,7 +24,7 @@ class CustomLocalDateTimeDeserializer extends StdDeserializer<LocalDateTime> {
|
||||
super(LocalDateTime.class);
|
||||
// 支持多种日期时间格式
|
||||
this.formatters = new ArrayList<>();
|
||||
// ISO标准格式
|
||||
// ISO标准格式,2011-12-03T10:15:30
|
||||
this.formatters.add(DateTimeFormatter.ISO_LOCAL_DATE_TIME);
|
||||
// 项目默认格式 yyyy-MM-dd HH:mm:ss
|
||||
this.formatters.add(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.ecep.contract.ds.company;
|
||||
|
||||
import com.ecep.contract.ds.company.service.CompanyContactService;
|
||||
import com.ecep.contract.ds.converter.EntityStringConverter;
|
||||
import com.ecep.contract.model.CompanyContact;
|
||||
import com.ecep.contract.ds.company.model.CompanyContact;
|
||||
|
||||
public class CompanyContactStringConverter extends EntityStringConverter<CompanyContact> {
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ import org.springframework.util.StringUtils;
|
||||
import com.ecep.contract.CompanyFileType;
|
||||
import com.ecep.contract.MyDateTimeUtils;
|
||||
import com.ecep.contract.constant.CloudServiceConstant;
|
||||
import com.ecep.contract.model.CompanyFile;
|
||||
import com.ecep.contract.ds.company.model.CompanyFile;
|
||||
|
||||
public class CompanyFileUtils {
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import com.ecep.contract.ds.company.service.CompanyService;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.vo.CompanyVo;
|
||||
|
||||
@RestController
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
package com.ecep.contract.model;
|
||||
package com.ecep.contract.ds.company.model;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.BasedEntity;
|
||||
import com.ecep.contract.model.IdentityEntity;
|
||||
import com.ecep.contract.model.NamedEntity;
|
||||
import com.ecep.contract.model.Voable;
|
||||
import org.hibernate.annotations.ColumnDefault;
|
||||
|
||||
import com.ecep.contract.util.HibernateProxyUtils;
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
package com.ecep.contract.model;
|
||||
package com.ecep.contract.ds.company.model;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.Bank;
|
||||
import com.ecep.contract.model.BasedEntity;
|
||||
import com.ecep.contract.model.IdentityEntity;
|
||||
import com.ecep.contract.model.Voable;
|
||||
import com.ecep.contract.util.HibernateProxyUtils;
|
||||
import com.ecep.contract.vo.CompanyBankAccountVo;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.ecep.contract.model;
|
||||
package com.ecep.contract.ds.company.model;
|
||||
|
||||
public interface CompanyBasedEntity {
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package com.ecep.contract.model;
|
||||
package com.ecep.contract.ds.company.model;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.IdentityEntity;
|
||||
import com.ecep.contract.model.Voable;
|
||||
import org.hibernate.annotations.OnDelete;
|
||||
import org.hibernate.annotations.OnDeleteAction;
|
||||
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
package com.ecep.contract.model;
|
||||
package com.ecep.contract.ds.company.model;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.BasedEntity;
|
||||
import com.ecep.contract.model.IdentityEntity;
|
||||
import com.ecep.contract.model.NamedEntity;
|
||||
import com.ecep.contract.model.Voable;
|
||||
import org.hibernate.annotations.ColumnDefault;
|
||||
|
||||
import com.ecep.contract.util.HibernateProxyUtils;
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.ecep.contract.model;
|
||||
package com.ecep.contract.ds.company.model;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.IdentityEntity;
|
||||
import com.ecep.contract.model.Voable;
|
||||
import org.hibernate.annotations.ColumnDefault;
|
||||
|
||||
import com.ecep.contract.util.HibernateProxyUtils;
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package com.ecep.contract.model;
|
||||
package com.ecep.contract.ds.company.model;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.CompanyFileType;
|
||||
import com.ecep.contract.model.IdentityEntity;
|
||||
import com.ecep.contract.model.Voable;
|
||||
import com.ecep.contract.util.HibernateProxyUtils;
|
||||
import com.ecep.contract.vo.CompanyFileVo;
|
||||
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
package com.ecep.contract.model;
|
||||
package com.ecep.contract.ds.company.model;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.BasedEntity;
|
||||
import com.ecep.contract.model.IdentityEntity;
|
||||
import com.ecep.contract.model.NamedEntity;
|
||||
import com.ecep.contract.model.Voable;
|
||||
import com.ecep.contract.util.HibernateProxyUtils;
|
||||
import com.ecep.contract.vo.CompanyInvoiceInfoVo;
|
||||
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
package com.ecep.contract.model;
|
||||
package com.ecep.contract.ds.company.model;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.IdentityEntity;
|
||||
import com.ecep.contract.model.NamedEntity;
|
||||
import com.ecep.contract.model.Voable;
|
||||
import org.hibernate.annotations.ColumnDefault;
|
||||
|
||||
import com.ecep.contract.util.HibernateProxyUtils;
|
||||
|
||||
@@ -3,8 +3,8 @@ package com.ecep.contract.ds.company.repository;
|
||||
import java.util.Optional;
|
||||
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyBankAccount;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyBankAccount;
|
||||
|
||||
public interface CompanyBankAccountRepository extends MyRepository<CompanyBankAccount, Integer> {
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ import java.util.List;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyBlackReason;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyBlackReason;
|
||||
|
||||
@Repository
|
||||
public interface CompanyBlackReasonRepository extends MyRepository<CompanyBlackReason, Integer> {
|
||||
|
||||
@@ -6,8 +6,8 @@ import java.util.Optional;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyContact;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyContact;
|
||||
|
||||
@Repository
|
||||
public interface CompanyContactRepository extends MyRepository<CompanyContact, Integer> {
|
||||
|
||||
@@ -10,9 +10,9 @@ import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyContract;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.contract.model.CompanyContract;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
|
||||
@Repository
|
||||
public interface CompanyContractRepository extends
|
||||
|
||||
@@ -3,10 +3,11 @@ package com.ecep.contract.ds.company.repository;
|
||||
import java.util.List;
|
||||
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyExtendInfo;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyExtendInfo;
|
||||
|
||||
public interface CompanyExtendInfoRepository extends MyRepository<CompanyExtendInfo, Integer> {
|
||||
|
||||
List<CompanyExtendInfo> findByCompany(Company company);
|
||||
List<CompanyExtendInfo> findByCompanyId(Integer companyId);
|
||||
}
|
||||
@@ -4,8 +4,8 @@ import java.util.List;
|
||||
|
||||
import com.ecep.contract.CompanyFileType;
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyFile;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyFile;
|
||||
|
||||
public interface CompanyFileRepository extends MyRepository<CompanyFile, Integer> {
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.model.CompanyInvoiceInfo;
|
||||
import com.ecep.contract.ds.company.model.CompanyInvoiceInfo;
|
||||
|
||||
/**
|
||||
* 公司发票信息 Repository
|
||||
|
||||
@@ -10,7 +10,7 @@ import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.ecep.contract.model.CompanyOldName;
|
||||
import com.ecep.contract.ds.company.model.CompanyOldName;
|
||||
|
||||
@Repository
|
||||
public interface CompanyOldNameRepository extends
|
||||
|
||||
@@ -5,14 +5,10 @@ import java.util.Optional;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
|
||||
@Repository
|
||||
public interface CompanyRepository extends MyRepository<Company, Integer> {
|
||||
|
||||
@@ -3,8 +3,8 @@ package com.ecep.contract.ds.company.repository;
|
||||
import java.util.List;
|
||||
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.Invoice;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.other.model.Invoice;
|
||||
|
||||
public interface InvoiceRepository extends MyRepository<Invoice, Integer> {
|
||||
|
||||
|
||||
@@ -22,8 +22,8 @@ import com.ecep.contract.QueryService;
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.ds.company.repository.CompanyBankAccountRepository;
|
||||
import com.ecep.contract.ds.other.service.BankService;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyBankAccount;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyBankAccount;
|
||||
import com.ecep.contract.service.ServiceException;
|
||||
import com.ecep.contract.service.VoableService;
|
||||
import com.ecep.contract.util.SpecificationUtils;
|
||||
|
||||
@@ -22,10 +22,10 @@ import com.ecep.contract.VendorFileType;
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.ds.company.CompanyFileUtils;
|
||||
import com.ecep.contract.ds.other.repository.HolidayTableRepository;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.model.CompanyBasicFile;
|
||||
import com.ecep.contract.model.CompanyCustomerFile;
|
||||
import com.ecep.contract.model.VendorFile;
|
||||
import com.ecep.contract.ds.customer.model.CompanyCustomerFile;
|
||||
import com.ecep.contract.ds.vendor.model.VendorFile;
|
||||
import com.ecep.contract.model.HolidayTable;
|
||||
|
||||
public abstract class CompanyBasicService {
|
||||
|
||||
@@ -19,8 +19,8 @@ import com.ecep.contract.IEntityService;
|
||||
import com.ecep.contract.QueryService;
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.ds.company.repository.CompanyBlackReasonRepository;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyBlackReason;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyBlackReason;
|
||||
import com.ecep.contract.service.VoableService;
|
||||
import com.ecep.contract.util.SpecificationUtils;
|
||||
import com.ecep.contract.vo.CompanyBlackReasonVo;
|
||||
|
||||
@@ -18,8 +18,8 @@ import com.ecep.contract.IEntityService;
|
||||
import com.ecep.contract.QueryService;
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.ds.company.repository.CompanyContactRepository;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyContact;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyContact;
|
||||
import com.ecep.contract.service.ServiceException;
|
||||
import com.ecep.contract.service.VoableService;
|
||||
import com.ecep.contract.util.MyStringUtils;
|
||||
|
||||
@@ -2,6 +2,8 @@ package com.ecep.contract.ds.company.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.vo.CompanyVo;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -21,8 +23,8 @@ import com.ecep.contract.IEntityService;
|
||||
import com.ecep.contract.QueryService;
|
||||
import com.ecep.contract.constant.ServiceConstant;
|
||||
import com.ecep.contract.ds.company.repository.CompanyExtendInfoRepository;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyExtendInfo;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyExtendInfo;
|
||||
import com.ecep.contract.service.ServiceException;
|
||||
import com.ecep.contract.service.VoableService;
|
||||
import com.ecep.contract.util.SpecificationUtils;
|
||||
@@ -86,15 +88,27 @@ public class CompanyExtendInfoService implements IEntityService<CompanyExtendInf
|
||||
}
|
||||
|
||||
@Caching(evict = {
|
||||
@CacheEvict(key = "#p0.id"),
|
||||
@CacheEvict(key = "'byCompany-'+#p0.company.id")
|
||||
@CacheEvict(key = "#p0.id", condition = "#p0.id != null"),
|
||||
@CacheEvict(key = "'byCompany-'+#p0.company.id", condition = "#p0.company != null")
|
||||
})
|
||||
@Override
|
||||
public CompanyExtendInfo save(CompanyExtendInfo extendInfo) {
|
||||
return repository.save(extendInfo);
|
||||
}
|
||||
|
||||
@Cacheable(key = "'byCompany-'+#p0")
|
||||
@Cacheable(key = "'byCompany-'+#p0.id")
|
||||
public CompanyExtendInfoVo findByCompany(CompanyVo company) {
|
||||
List<CompanyExtendInfo> list = repository.findByCompanyId(company.getId());
|
||||
if (list.isEmpty()) {
|
||||
CompanyExtendInfo extendInfo = new CompanyExtendInfo();
|
||||
Company v1 = SpringApp.getBean(CompanyService.class).getById(company.getId());
|
||||
extendInfo.setCompany(v1);
|
||||
extendInfo.setDisableVerify(false);
|
||||
return repository.save(extendInfo).toVo();
|
||||
}
|
||||
return list.getFirst().toVo();
|
||||
}
|
||||
|
||||
public CompanyExtendInfo findByCompany(Company company) {
|
||||
List<CompanyExtendInfo> list = repository.findByCompany(company);
|
||||
if (list.isEmpty()) {
|
||||
@@ -111,7 +125,21 @@ public class CompanyExtendInfoService implements IEntityService<CompanyExtendInf
|
||||
if (model == null || vo == null) {
|
||||
throw new ServiceException("Model or VO cannot be null");
|
||||
}
|
||||
|
||||
if (vo.getCompanyId() == null) {
|
||||
model.setCompany(null);
|
||||
} else {
|
||||
Company v1 = model.getCompany();
|
||||
if (v1 == null) {
|
||||
Company company = SpringApp.getBean(CompanyService.class).getById(vo.getCompanyId());
|
||||
model.setCompany(company);
|
||||
} else {
|
||||
if (!v1.getId().equals(vo.getCompanyId())) {
|
||||
Company company = SpringApp.getBean(CompanyService.class).getById(vo.getCompanyId());
|
||||
model.setCompany(company);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 只更新VO中已有的字段
|
||||
model.setDisableVerify(vo.isDisableVerify());
|
||||
}
|
||||
|
||||
@@ -36,11 +36,10 @@ import com.ecep.contract.constant.CompanyConstant;
|
||||
import com.ecep.contract.constant.ServiceConstant;
|
||||
import com.ecep.contract.ds.company.repository.CompanyFileRepository;
|
||||
import com.ecep.contract.ds.contract.service.ContractService;
|
||||
import com.ecep.contract.ds.vendor.repository.VendorGroupRepository;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyFile;
|
||||
import com.ecep.contract.model.CompanyOldName;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyFile;
|
||||
import com.ecep.contract.ds.company.model.CompanyOldName;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.service.VoableService;
|
||||
import com.ecep.contract.util.FileUtils;
|
||||
import com.ecep.contract.util.SpecificationUtils;
|
||||
|
||||
@@ -19,8 +19,8 @@ import org.springframework.util.StringUtils;
|
||||
import com.ecep.contract.IEntityService;
|
||||
import com.ecep.contract.QueryService;
|
||||
import com.ecep.contract.ds.company.repository.CompanyInvoiceInfoRepository;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyInvoiceInfo;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyInvoiceInfo;
|
||||
import com.ecep.contract.service.ServiceException;
|
||||
import com.ecep.contract.service.VoableService;
|
||||
import com.ecep.contract.util.SpecificationUtils;
|
||||
|
||||
@@ -20,8 +20,8 @@ import org.springframework.util.StringUtils;
|
||||
import com.ecep.contract.IEntityService;
|
||||
import com.ecep.contract.QueryService;
|
||||
import com.ecep.contract.ds.company.repository.CompanyOldNameRepository;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyOldName;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyOldName;
|
||||
import com.ecep.contract.service.VoableService;
|
||||
import com.ecep.contract.util.FileUtils;
|
||||
import com.ecep.contract.util.MyStringUtils;
|
||||
|
||||
@@ -18,8 +18,6 @@ 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 org.springframework.util.StringUtils;
|
||||
@@ -38,10 +36,10 @@ import com.ecep.contract.ds.contract.service.ContractService;
|
||||
import com.ecep.contract.ds.customer.service.CompanyCustomerService;
|
||||
import com.ecep.contract.ds.other.service.SysConfService;
|
||||
import com.ecep.contract.ds.vendor.service.VendorService;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyCustomer;
|
||||
import com.ecep.contract.model.CompanyOldName;
|
||||
import com.ecep.contract.model.Vendor;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.customer.model.CompanyCustomer;
|
||||
import com.ecep.contract.ds.company.model.CompanyOldName;
|
||||
import com.ecep.contract.ds.vendor.model.Vendor;
|
||||
import com.ecep.contract.service.VoableService;
|
||||
import com.ecep.contract.util.FileUtils;
|
||||
import com.ecep.contract.util.MyStringUtils;
|
||||
|
||||
@@ -20,8 +20,8 @@ import com.ecep.contract.IEntityService;
|
||||
import com.ecep.contract.QueryService;
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.ds.company.repository.InvoiceRepository;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.Invoice;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.other.model.Invoice;
|
||||
import com.ecep.contract.service.VoableService;
|
||||
import com.ecep.contract.util.SpecificationUtils;
|
||||
import com.ecep.contract.vo.InvoiceVo;
|
||||
|
||||
@@ -9,7 +9,7 @@ import org.springframework.data.jpa.domain.Specification;
|
||||
|
||||
import com.ecep.contract.MessageHolder;
|
||||
import com.ecep.contract.ds.company.service.CompanyFileService;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ui.Tasker;
|
||||
|
||||
/**
|
||||
|
||||
@@ -6,7 +6,8 @@ import org.springframework.stereotype.Component;
|
||||
|
||||
import com.ecep.contract.ds.contract.service.ContractService;
|
||||
import com.ecep.contract.ds.converter.EntityStringConverter;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.vo.ContractVo;
|
||||
|
||||
import jakarta.annotation.PostConstruct;
|
||||
|
||||
@@ -25,6 +26,12 @@ public class ContractStringConverter extends EntityStringConverter<Contract> {
|
||||
setInitialized(project -> service.getById(project.getId()));
|
||||
setSuggestion(service::search);
|
||||
// TODO 按名称找出,容易出问题
|
||||
setFromString(service::findByName);
|
||||
setFromString(string -> {
|
||||
ContractVo vo = service.findByName(string);
|
||||
if (vo == null) {
|
||||
return null;
|
||||
}
|
||||
return service.getById(vo.getId());
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,26 +1,21 @@
|
||||
package com.ecep.contract.model;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
package com.ecep.contract.ds.contract.model;
|
||||
|
||||
import com.ecep.contract.cloud.old.CompanyContactUtils;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyBasedEntity;
|
||||
import com.ecep.contract.ds.company.model.CompanyContact;
|
||||
import com.ecep.contract.model.IdentityEntity;
|
||||
import com.ecep.contract.model.Voable;
|
||||
import com.ecep.contract.util.HibernateProxyUtils;
|
||||
import com.ecep.contract.vo.CompanyContractVo;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.GeneratedValue;
|
||||
import jakarta.persistence.GenerationType;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.persistence.Index;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.OneToOne;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Entity
|
||||
|
||||
@@ -1,32 +1,22 @@
|
||||
package com.ecep.contract.model;
|
||||
package com.ecep.contract.ds.contract.model;
|
||||
|
||||
import com.ecep.contract.ContractPayWay;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.company.model.CompanyBasedEntity;
|
||||
import com.ecep.contract.ds.project.model.Project;
|
||||
import com.ecep.contract.model.*;
|
||||
import com.ecep.contract.util.HibernateProxyUtils;
|
||||
import com.ecep.contract.vo.ContractVo;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import org.hibernate.annotations.ColumnDefault;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import org.hibernate.annotations.ColumnDefault;
|
||||
|
||||
import com.ecep.contract.ContractPayWay;
|
||||
import com.ecep.contract.util.HibernateProxyUtils;
|
||||
import com.ecep.contract.vo.ContractVo;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.EnumType;
|
||||
import jakarta.persistence.Enumerated;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.GeneratedValue;
|
||||
import jakarta.persistence.GenerationType;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.Lob;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.persistence.Version;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
/**
|
||||
* 合同类
|
||||
*/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.ecep.contract.model;
|
||||
package com.ecep.contract.ds.contract.model;
|
||||
|
||||
public interface ContractBasedEntity {
|
||||
Contract getContract();
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.ecep.contract.model;
|
||||
package com.ecep.contract.ds.contract.model;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.model.IdentityEntity;
|
||||
import com.ecep.contract.model.Voable;
|
||||
import com.ecep.contract.util.HibernateProxyUtils;
|
||||
import com.ecep.contract.vo.ContractBidVendorVo;
|
||||
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
package com.ecep.contract.model;
|
||||
package com.ecep.contract.ds.contract.model;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.ContractFileType;
|
||||
import com.ecep.contract.model.IdentityEntity;
|
||||
import com.ecep.contract.model.Voable;
|
||||
import com.ecep.contract.vo.ContractFileVo;
|
||||
import com.ecep.contract.util.HibernateProxyUtils;
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
package com.ecep.contract.model;
|
||||
package com.ecep.contract.ds.contract.model;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.*;
|
||||
import com.ecep.contract.util.HibernateProxyUtils;
|
||||
import com.ecep.contract.vo.ContractItemVo;
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package com.ecep.contract.model;
|
||||
package com.ecep.contract.ds.contract.model;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ecep.contract.model.IdentityEntity;
|
||||
import com.ecep.contract.model.Voable;
|
||||
import com.ecep.contract.util.HibernateProxyUtils;
|
||||
import com.ecep.contract.vo.ContractPayPlanVo;
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.model.ContractBidVendor;
|
||||
import com.ecep.contract.ds.contract.model.ContractBidVendor;
|
||||
|
||||
@Repository
|
||||
public interface ContractBidVendorRepository extends
|
||||
|
||||
@@ -7,8 +7,8 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.ContractFileType;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.model.ContractFile;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.ds.contract.model.ContractFile;
|
||||
|
||||
@Repository
|
||||
public interface ContractFileRepository extends JpaRepository<ContractFile, Integer>, JpaSpecificationExecutor<ContractFile> {
|
||||
|
||||
@@ -6,7 +6,7 @@ import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.model.ContractItem;
|
||||
import com.ecep.contract.ds.contract.model.ContractItem;
|
||||
|
||||
@Repository
|
||||
public interface ContractItemRepository extends JpaRepository<ContractItem, Integer>, JpaSpecificationExecutor<ContractItem> {
|
||||
|
||||
@@ -5,8 +5,8 @@ import java.util.List;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.model.ContractPayPlan;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.ds.contract.model.ContractPayPlan;
|
||||
|
||||
@Repository
|
||||
public interface ContractPayPlanRepository extends MyRepository<ContractPayPlan, Integer> {
|
||||
|
||||
@@ -7,7 +7,7 @@ import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.ContractPayWay;
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
|
||||
@Repository
|
||||
public interface ContractRepository extends MyRepository<Contract, Integer> {
|
||||
|
||||
@@ -6,7 +6,7 @@ import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.model.ExtendVendorInfo;
|
||||
import com.ecep.contract.ds.vendor.model.ExtendVendorInfo;
|
||||
|
||||
@Repository
|
||||
public interface ExtendVendorInfoRepository extends
|
||||
|
||||
@@ -6,7 +6,7 @@ import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.model.PurchaseBillVoucherItem;
|
||||
import com.ecep.contract.ds.vendor.model.PurchaseBillVoucherItem;
|
||||
|
||||
@Repository
|
||||
public interface PurchaseBillVoucherItemRepository extends
|
||||
|
||||
@@ -2,20 +2,13 @@ package com.ecep.contract.ds.contract.repository;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.model.PurchaseBillVoucher;
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import com.ecep.contract.ds.vendor.model.PurchaseBillVoucher;
|
||||
|
||||
@Repository
|
||||
public interface PurchaseBillVoucherRepository extends
|
||||
// JDBC interfaces
|
||||
CrudRepository<PurchaseBillVoucher, Integer>, PagingAndSortingRepository<PurchaseBillVoucher, Integer>,
|
||||
// JPA interfaces
|
||||
JpaRepository<PurchaseBillVoucher, Integer>, JpaSpecificationExecutor<PurchaseBillVoucher> {
|
||||
public interface PurchaseBillVoucherRepository extends MyRepository<PurchaseBillVoucher, Integer> {
|
||||
|
||||
Optional<PurchaseBillVoucher> findByCode(String code);
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ import java.util.List;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import com.ecep.contract.model.PurchaseOrder;
|
||||
import com.ecep.contract.model.PurchaseOrderItem;
|
||||
import com.ecep.contract.ds.vendor.model.PurchaseOrder;
|
||||
import com.ecep.contract.ds.vendor.model.PurchaseOrderItem;
|
||||
|
||||
@Repository
|
||||
public interface PurchaseOrderItemRepository extends MyRepository<PurchaseOrderItem, Integer>{
|
||||
|
||||
@@ -9,8 +9,8 @@ import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.model.PurchaseOrder;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.ds.vendor.model.PurchaseOrder;
|
||||
|
||||
@Repository
|
||||
public interface PurchaseOrderRepository extends
|
||||
|
||||
@@ -1,19 +1,11 @@
|
||||
package com.ecep.contract.ds.contract.repository;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.model.SalesBillVoucherItem;
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import com.ecep.contract.ds.customer.model.SalesBillVoucherItem;
|
||||
|
||||
@Repository
|
||||
public interface SalesBillVoucherItemRepository extends
|
||||
// JDBC interfaces
|
||||
CrudRepository<SalesBillVoucherItem, Integer>,
|
||||
PagingAndSortingRepository<SalesBillVoucherItem, Integer>,
|
||||
// JPA interfaces
|
||||
JpaRepository<SalesBillVoucherItem, Integer>, JpaSpecificationExecutor<SalesBillVoucherItem> {
|
||||
public interface SalesBillVoucherItemRepository extends MyRepository<SalesBillVoucherItem, Integer> {
|
||||
|
||||
}
|
||||
|
||||
@@ -2,14 +2,10 @@ package com.ecep.contract.ds.contract.repository;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.model.SalesBillVoucher;
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import com.ecep.contract.ds.customer.model.SalesBillVoucher;
|
||||
|
||||
@Repository
|
||||
public interface SalesBillVoucherRepository extends MyRepository<SalesBillVoucher, Integer> {
|
||||
|
||||
@@ -4,14 +4,10 @@ import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.model.SalesOrder;
|
||||
import com.ecep.contract.model.SalesOrderItem;
|
||||
import com.ecep.contract.ds.customer.model.SalesOrder;
|
||||
import com.ecep.contract.ds.customer.model.SalesOrderItem;
|
||||
|
||||
@Repository
|
||||
public interface SalesOrderItemRepository extends MyRepository<SalesOrderItem, Integer> {
|
||||
|
||||
@@ -4,14 +4,10 @@ import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import com.ecep.contract.ds.MyRepository;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.model.SalesOrder;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.ds.customer.model.SalesOrder;
|
||||
|
||||
@Repository
|
||||
public interface SalesOrderRepository extends MyRepository<SalesOrder, Integer> {
|
||||
|
||||
@@ -21,9 +21,9 @@ import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.ds.company.service.CompanyService;
|
||||
import com.ecep.contract.ds.contract.repository.ContractBidVendorRepository;
|
||||
import com.ecep.contract.ds.contract.repository.ContractFileRepository;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.model.ContractBidVendor;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.ds.contract.model.ContractBidVendor;
|
||||
import com.ecep.contract.service.VoableService;
|
||||
import com.ecep.contract.util.SpecificationUtils;
|
||||
import com.ecep.contract.vo.ContractBidVendorVo;
|
||||
@@ -71,8 +71,8 @@ public class ContractBidVendorService implements IEntityService<ContractBidVendo
|
||||
}
|
||||
|
||||
@Cacheable(key = "'allbycontract-'+#p0.id")
|
||||
public List<ContractBidVendor> findByContract(Contract contract) {
|
||||
return repository.findByContractId(contract.getId());
|
||||
public List<ContractBidVendorVo> findByContract(Contract contract) {
|
||||
return repository.findByContractId(contract.getId()).stream().map(ContractBidVendor::toVo).toList();
|
||||
}
|
||||
|
||||
@Caching(evict = {
|
||||
@@ -129,7 +129,7 @@ public class ContractBidVendorService implements IEntityService<ContractBidVendo
|
||||
model.setContract(contractService.getById(vo.getContractId()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (vo.getCompanyId() == null) {
|
||||
model.setCompany(null);
|
||||
} else {
|
||||
@@ -138,7 +138,7 @@ public class ContractBidVendorService implements IEntityService<ContractBidVendo
|
||||
model.setCompany(companyService.getById(vo.getCompanyId()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (vo.getQuotationSheetFileId() == null) {
|
||||
model.setQuotationSheet(null);
|
||||
} else {
|
||||
|
||||
@@ -23,8 +23,8 @@ import com.ecep.contract.IEntityService;
|
||||
import com.ecep.contract.QueryService;
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.ds.contract.repository.ContractFileRepository;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.model.ContractFile;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.ds.contract.model.ContractFile;
|
||||
import com.ecep.contract.service.VoableService;
|
||||
import com.ecep.contract.util.SpecificationUtils;
|
||||
import com.ecep.contract.vo.ContractFileVo;
|
||||
@@ -162,8 +162,8 @@ public class ContractFileService implements IEntityService<ContractFile>, QueryS
|
||||
}
|
||||
|
||||
@Cacheable(key = "'allbycontract-'+#p0.id")
|
||||
public List<ContractFile> findAllByContract(Contract contract) {
|
||||
return contractFileRepository.findAllByContract(contract);
|
||||
public List<ContractFileVo> findAllByContract(Contract contract) {
|
||||
return contractFileRepository.findAllByContract(contract).stream().map(ContractFile::toVo).toList();
|
||||
}
|
||||
|
||||
public List<ContractFile> searchByContract(Contract contract, String userText) {
|
||||
|
||||
@@ -78,13 +78,13 @@ public class ContractGroupService implements IEntityService<ContractGroup>, Quer
|
||||
}
|
||||
|
||||
@Cacheable(key = "'code-'+#p0")
|
||||
public ContractGroup findByCode(String code) {
|
||||
return repository.findByCode(code).orElse(null);
|
||||
public ContractGroupVo findByCode(String code) {
|
||||
return repository.findByCode(code).map(ContractGroup::toVo).orElse(null);
|
||||
}
|
||||
|
||||
@Cacheable(key = "'groups'")
|
||||
public List<ContractGroup> findAll() {
|
||||
return repository.findAll();
|
||||
public List<ContractGroupVo> findAll() {
|
||||
return repository.findAll().stream().map(ContractGroup::toVo).toList();
|
||||
}
|
||||
|
||||
@Caching(evict = {
|
||||
|
||||
@@ -24,8 +24,8 @@ import com.ecep.contract.constant.ServiceConstant;
|
||||
import com.ecep.contract.ds.contract.repository.ContractItemRepository;
|
||||
import com.ecep.contract.ds.other.service.EmployeeService;
|
||||
import com.ecep.contract.ds.other.service.InventoryService;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.model.ContractItem;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.ds.contract.model.ContractItem;
|
||||
import com.ecep.contract.model.Inventory;
|
||||
import com.ecep.contract.service.VoableService;
|
||||
import com.ecep.contract.util.SpecificationUtils;
|
||||
|
||||
@@ -18,8 +18,8 @@ import com.ecep.contract.IEntityService;
|
||||
import com.ecep.contract.QueryService;
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.ds.contract.repository.ContractPayPlanRepository;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.model.ContractPayPlan;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.ds.contract.model.ContractPayPlan;
|
||||
import com.ecep.contract.service.VoableService;
|
||||
import com.ecep.contract.util.SpecificationUtils;
|
||||
import com.ecep.contract.vo.ContractPayPlanVo;
|
||||
|
||||
@@ -33,12 +33,12 @@ import com.ecep.contract.ds.contract.repository.ContractRepository;
|
||||
import com.ecep.contract.ds.other.service.EmployeeService;
|
||||
import com.ecep.contract.ds.other.service.SysConfService;
|
||||
import com.ecep.contract.ds.project.service.ProjectService;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyCustomer;
|
||||
import com.ecep.contract.model.Contract;
|
||||
import com.ecep.contract.ds.company.model.Company;
|
||||
import com.ecep.contract.ds.customer.model.CompanyCustomer;
|
||||
import com.ecep.contract.ds.contract.model.Contract;
|
||||
import com.ecep.contract.model.ContractCatalog;
|
||||
import com.ecep.contract.model.Project;
|
||||
import com.ecep.contract.model.Vendor;
|
||||
import com.ecep.contract.ds.project.model.Project;
|
||||
import com.ecep.contract.ds.vendor.model.Vendor;
|
||||
import com.ecep.contract.service.VoableService;
|
||||
import com.ecep.contract.util.MyStringUtils;
|
||||
import com.ecep.contract.util.SpecificationUtils;
|
||||
@@ -77,17 +77,19 @@ public class ContractService extends EntityService<Contract, ContractVo, Integer
|
||||
return getRepository().findById(id).map(Contract::toVo).orElse(null);
|
||||
}
|
||||
|
||||
public Contract findByName(String name) {
|
||||
return contractRepository.findFirstByName(name).orElse(null);
|
||||
@Cacheable(key = "'name-'+#p0")
|
||||
public ContractVo findByName(String name) {
|
||||
return contractRepository.findFirstByName(name).map(Contract::toVo).orElse(null);
|
||||
}
|
||||
|
||||
@Cacheable(key = "'code-'+#p0")
|
||||
public Contract findByCode(String code) {
|
||||
return contractRepository.findByCode(code).orElse(null);
|
||||
public ContractVo findByCode(String code) {
|
||||
return contractRepository.findByCode(code).map(Contract::toVo).orElse(null);
|
||||
}
|
||||
|
||||
public Contract findByGuid(String guid) {
|
||||
return contractRepository.findByGuid(guid).orElse(null);
|
||||
@Cacheable(key = "'guid-'+#p0")
|
||||
public ContractVo findByGuid(String guid) {
|
||||
return contractRepository.findByGuid(guid).map(Contract::toVo).orElse(null);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -95,6 +97,8 @@ public class ContractService extends EntityService<Contract, ContractVo, Integer
|
||||
*/
|
||||
@Caching(evict = {
|
||||
@CacheEvict(key = "#p0.id"),
|
||||
@CacheEvict(key = "'name-'+#p0.name"),
|
||||
@CacheEvict(key = "'guid-'+#p0.guid"),
|
||||
@CacheEvict(key = "'code-'+#p0.code")
|
||||
})
|
||||
public Contract save(Contract contract) {
|
||||
@@ -103,6 +107,8 @@ public class ContractService extends EntityService<Contract, ContractVo, Integer
|
||||
|
||||
@Caching(evict = {
|
||||
@CacheEvict(key = "#p0.id"),
|
||||
@CacheEvict(key = "'name-'+#p0.name"),
|
||||
@CacheEvict(key = "'guid-'+#p0.guid"),
|
||||
@CacheEvict(key = "'code-'+#p0.code")
|
||||
})
|
||||
public void delete(Contract contract) {
|
||||
@@ -169,6 +175,43 @@ public class ContractService extends EntityService<Contract, ContractVo, Integer
|
||||
return dir;
|
||||
}
|
||||
|
||||
public File getContractCatalogPath(ContractCatalog catalog, ContractVo contract) {
|
||||
String parent = catalog.getParent();
|
||||
File dir = getBasePath();
|
||||
if (StringUtils.hasText(parent)) {
|
||||
dir = new File(dir, parent);
|
||||
if (!dir.exists()) {
|
||||
if (!dir.mkdir()) {
|
||||
System.out.println("unable make directory = " + dir.getAbsolutePath());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
dir = new File(dir, catalog.getPath());
|
||||
if (!dir.exists()) {
|
||||
if (!dir.mkdir()) {
|
||||
System.out.println("unable make directory = " + dir.getAbsolutePath());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
if (catalog.isUseYear()) {
|
||||
String code = contract.getCode();
|
||||
String catalogCode = catalog.getCode();
|
||||
int length = catalogCode.length();
|
||||
String yearCode = code.substring(length, length + 2);
|
||||
dir = new File(dir, "20" + yearCode);
|
||||
if (!dir.exists()) {
|
||||
if (!dir.mkdir()) {
|
||||
System.out.println("unable make directory = " + dir.getAbsolutePath());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return dir;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查找合同的分类
|
||||
*/
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user