refactor(vendor): 重构供应商相关类命名和包结构

将CompanyVendor前缀的类重命名为Vendor前缀,优化包结构
调整供应商相关控制器、服务、仓库类的命名和位置
修复TableViewUtils中的类型安全警告
更新FXML文件中的控制器引用路径
This commit is contained in:
2025-09-23 23:37:44 +08:00
parent 9c3306eea3
commit 9561ad99e6
124 changed files with 613 additions and 520 deletions

View File

@@ -4,10 +4,10 @@ import java.time.LocalDate;
import java.util.Map;
import java.util.Objects;
import com.ecep.contract.model.CompanyVendorFile;
import com.ecep.contract.model.VendorFile;
public class CompanyVendorFileUtils {
public static boolean applyVendorFileByMap(CompanyVendorFile vendorFile, Map<String, Object> m) {
public static boolean applyVendorFileByMap(VendorFile vendorFile, Map<String, Object> m) {
boolean modified = false;
String filePath = (String) m.get("FILE_PATH");

View File

@@ -14,6 +14,7 @@ import java.util.function.Consumer;
import java.util.function.Supplier;
import java.util.stream.Stream;
import com.ecep.contract.ds.vendor.service.VendorService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
@@ -39,8 +40,7 @@ import com.ecep.contract.ds.contract.repository.ContractRepository;
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.repository.CompanyVendorRepository;
import com.ecep.contract.ds.vendor.service.CompanyVendorFileService;
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;
@@ -51,7 +51,7 @@ 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.CompanyVendorFile;
import com.ecep.contract.model.VendorFile;
import com.ecep.contract.model.Contract;
import com.ecep.contract.model.ContractFile;
@@ -90,8 +90,6 @@ public class OldVersionService {
@Autowired
private CompanyCustomerRepository companyCustomerRepository;
@Autowired
private CompanyVendorRepository companyVendorRepository;
@Autowired
private CompanyOldNameRepository companyOldNameRepository;
@Autowired
private ContractRepository contractRepository;
@@ -510,7 +508,8 @@ public class OldVersionService {
if (type == Types.VENDOR) {
String vendorType = (String) map.get("TYPE");
boolean changed = false;
Vendor vendor = companyVendorRepository.findByCompany(updater).orElse(null);
Vendor vendor = SpringApp.getBean(VendorService.class).findByCompany(updater);
if (vendor == null) {
vendor = new Vendor();
vendor.setId(id);
@@ -538,15 +537,15 @@ public class OldVersionService {
}
if (changed) {
companyVendorRepository.save(vendor);
SpringApp.getBean(VendorService.class).save(vendor);
}
CompanyVendorFileService fileService = SpringApp.getBean(CompanyVendorFileService.class);
VendorFileService fileService = SpringApp.getBean(VendorFileService.class);
// 1. 先做数据库排重
List<CompanyVendorFile> files = fileService.findAllByVendor(vendor);
HashMap<String, CompanyVendorFile> fileMap = new HashMap<>();
for (CompanyVendorFile vendorFile : files) {
List<VendorFile> files = fileService.findAllByVendor(vendor);
HashMap<String, VendorFile> fileMap = new HashMap<>();
for (VendorFile vendorFile : files) {
String key = vendorFile.getFilePath();
if (fileMap.containsKey(key)) {
// 有重复删除按List顺序只保留第一个
@@ -564,13 +563,13 @@ public class OldVersionService {
List<Map<String, Object>> rs = queryVendorEvalFormByVendorId(id);
for (Map<String, Object> m : rs) {
String key = CompanyVendorFileUtils.getVendorFileKey(m);
CompanyVendorFile vendorFile = fileMap.get(key);
VendorFile vendorFile = fileMap.get(key);
if (vendorFile == null) {
continue;
}
if (CompanyVendorFileUtils.applyVendorFileByMap(vendorFile, m)) {
CompanyVendorFile saved = fileService.save(vendorFile);
VendorFile saved = fileService.save(vendorFile);
fileMap.put(key, saved);
}
}
@@ -585,7 +584,7 @@ public class OldVersionService {
continue;
}
try {
CompanyVendorFile vendorFile = new CompanyVendorFile();
VendorFile vendorFile = new VendorFile();
CompanyVendorFileUtils.applyVendorFileByMap(vendorFile, m);
vendorFile.setVendor(vendor);
fileService.save(vendorFile);

View File

@@ -8,7 +8,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import com.ecep.contract.ds.vendor.service.CompanyVendorService;
import com.ecep.contract.ds.vendor.service.VendorService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -35,7 +35,7 @@ public class OldVersionSyncVendorTask extends Tasker<Object> {
@Override
protected Object execute(MessageHolder holder) throws Exception {
basePath = getCachedBean(CompanyVendorService.class).getBasePath();
basePath = getCachedBean(VendorService.class).getBasePath();
List<Runnable> runnable = Arrays.asList(this::loadOldNames, this::loadContacts, this::syncVendors,
this::syncContracts);
for (int i = 0; i < runnable.size(); i++) {

View File

@@ -18,12 +18,12 @@ import com.ecep.contract.cloud.u8.ctx.VendorCtx;
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.vendor.service.CompanyVendorEntityService;
import com.ecep.contract.ds.vendor.service.CompanyVendorService;
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.CompanyVendorEntity;
import com.ecep.contract.model.VendorEntity;
import lombok.Setter;
@@ -33,8 +33,8 @@ import lombok.Setter;
public class VendorSyncTask extends AbstContractRepairTasker {
private static final Logger logger = LoggerFactory.getLogger(VendorSyncTask.class);
private final VendorCtx vendorCtx = new VendorCtx();
private CompanyVendorService companyVendorService;
private CompanyVendorEntityService vendorEntityService;
private VendorService vendorService;
private VendorEntityService vendorEntityService;
private YongYouU8Repository repository;
@Setter
private YongYouU8Service yongYouU8Service;
@@ -43,16 +43,16 @@ public class VendorSyncTask extends AbstContractRepairTasker {
updateTitle("用友U8系统-同步供应商");
}
private CompanyVendorService getCompanyVendorService() {
if (companyVendorService == null) {
companyVendorService = SpringApp.getBean(CompanyVendorService.class);
private VendorService getVendorService() {
if (vendorService == null) {
vendorService = SpringApp.getBean(VendorService.class);
}
return companyVendorService;
return vendorService;
}
private CompanyVendorEntityService getVendorEntityService() {
private VendorEntityService getVendorEntityService() {
if (vendorEntityService == null) {
vendorEntityService = SpringApp.getBean(CompanyVendorEntityService.class);
vendorEntityService = SpringApp.getBean(VendorEntityService.class);
}
return vendorEntityService;
}
@@ -82,7 +82,7 @@ public class VendorSyncTask extends AbstContractRepairTasker {
String venCode = (String) rs.get("cVenCode");
MessageHolder subHolder = holder.sub(counter.get() + " / " + total + "> " + venCode + " ");
boolean modified = false;
CompanyVendorEntity entity = vendorCtx.findOrCreateByCode(venCode, subHolder);
VendorEntity entity = vendorCtx.findOrCreateByCode(venCode, subHolder);
Map<String, Object> map = repository.findVendorByVendCode(entity.getCode());
if (map == null) {
subHolder.error("供应商项不存在:" + venCode);
@@ -107,13 +107,13 @@ public class VendorSyncTask extends AbstContractRepairTasker {
}
}
private void updateCloudYu(CompanyVendorEntity entity) {
private void updateCloudYu(VendorEntity entity) {
Vendor vendor = entity.getVendor();
if (vendor == null) {
return;
}
if (!Hibernate.isInitialized(vendor)) {
vendor = getCompanyVendorService().findById(vendor.getId());
vendor = getVendorService().findById(vendor.getId());
}
Company company = vendor.getCompany();
if (company == null) {
@@ -129,14 +129,14 @@ public class VendorSyncTask extends AbstContractRepairTasker {
yongYouU8Service.save(cloudYu);
}
private void updateCompanyNameAndAbbName(CompanyVendorEntity entity, MessageHolder holder) {
private void updateCompanyNameAndAbbName(VendorEntity entity, MessageHolder holder) {
CompanyService companyService = vendorCtx.getCompanyService();
Vendor vendor = entity.getVendor();
if (vendor == null) {
return;
}
if (!Hibernate.isInitialized(vendor)) {
vendor = getCompanyVendorService().findById(vendor.getId());
vendor = getVendorService().findById(vendor.getId());
}
Company company = vendor.getCompany();
if (company == null) {

View File

@@ -23,7 +23,7 @@ import com.ecep.contract.cloud.u8.ctx.AbstractYongYouU8Ctx;
import com.ecep.contract.ds.company.service.CompanyService;
import com.ecep.contract.ds.customer.service.CompanyCustomerService;
import com.ecep.contract.ds.other.service.EmployeeService;
import com.ecep.contract.ds.vendor.service.CompanyVendorService;
import com.ecep.contract.ds.vendor.service.VendorService;
import com.ecep.contract.model.CloudYu;
import com.ecep.contract.model.Company;
import com.fasterxml.jackson.databind.JsonNode;
@@ -50,7 +50,7 @@ public class YongYouU8Service implements IEntityService<CloudYu>, QueryService<C
private CompanyService companyService;
@Lazy
@Autowired
private CompanyVendorService companyVendorService;
private VendorService vendorService;
@Lazy
@Autowired
private CloudYuRepository cloudYuRepository;

View File

@@ -15,13 +15,13 @@ import com.ecep.contract.constant.CloudServiceConstant;
import com.ecep.contract.ds.company.service.CompanyService;
import com.ecep.contract.ds.customer.service.CompanyCustomerEntityService;
import com.ecep.contract.ds.customer.service.CompanyCustomerService;
import com.ecep.contract.ds.vendor.service.CompanyVendorEntityService;
import com.ecep.contract.ds.vendor.service.CompanyVendorService;
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.model.Vendor;
import com.ecep.contract.model.CompanyVendorEntity;
import com.ecep.contract.model.VendorEntity;
import com.ecep.contract.model.Employee;
import lombok.Getter;
@@ -59,12 +59,12 @@ public class AbstractYongYouU8Ctx extends AbstractCtx {
return getCachedBean(CompanyCustomerEntityService.class);
}
public CompanyVendorService getCompanyVendorService() {
return getCachedBean(CompanyVendorService.class);
public VendorService getCompanyVendorService() {
return getCachedBean(VendorService.class);
}
public CompanyVendorEntityService getCompanyVendorEntityService() {
return getCachedBean(CompanyVendorEntityService.class);
public VendorEntityService getCompanyVendorEntityService() {
return getCachedBean(VendorEntityService.class);
}
boolean updateEmployeeByCode(Supplier<Employee> getter, Consumer<Employee> setter, String code,
@@ -139,9 +139,9 @@ public class AbstractYongYouU8Ctx extends AbstractCtx {
MessageHolder holder, String topic) {
Company company = null;
if (StringUtils.hasText(vendorCode)) {
CompanyVendorEntityService vendorEntityService = getCompanyVendorEntityService();
CompanyVendorService customerService = getCompanyVendorService();
CompanyVendorEntity entity = vendorEntityService.findByCode(vendorCode);
VendorEntityService vendorEntityService = getCompanyVendorEntityService();
VendorService customerService = getCompanyVendorService();
VendorEntity entity = vendorEntityService.findByCode(vendorCode);
if (entity == null) {
holder.warn("无效" + topic + "" + vendorCode);
} else {

View File

@@ -32,13 +32,13 @@ 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.CompanyVendorEntityService;
import com.ecep.contract.ds.vendor.service.CompanyVendorService;
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.model.Vendor;
import com.ecep.contract.model.CompanyVendorEntity;
import com.ecep.contract.model.VendorEntity;
import com.ecep.contract.model.Contract;
import com.ecep.contract.model.ContractCatalog;
import com.ecep.contract.model.ContractFile;
@@ -334,11 +334,11 @@ public class ContractCtx extends AbstractYongYouU8Ctx {
Company company = contract.getCompany();
boolean modified = false;
boolean vendorModified = false;
CompanyVendorService vendorService = getCompanyVendorService();
CompanyVendorEntityService vendorEntityService = getCompanyVendorEntityService();
CompanyVendorEntity entity = vendorEntityService.findByCode(unit);
VendorService vendorService = getCompanyVendorService();
VendorEntityService vendorEntityService = getCompanyVendorEntityService();
VendorEntity entity = vendorEntityService.findByCode(unit);
if (entity == null) {
entity = new CompanyVendorEntity();
entity = new VendorEntity();
entity.setCode(unit);
}
entity = updateVendorEntityDetailByCode(entity, unit, holder);
@@ -407,8 +407,8 @@ public class ContractCtx extends AbstractYongYouU8Ctx {
return true;
}
private CompanyVendorEntity updateVendorEntityDetailByCode(CompanyVendorEntity entity, String unitCode,
MessageHolder holder) {
private VendorEntity updateVendorEntityDetailByCode(VendorEntity entity, String unitCode,
MessageHolder holder) {
if (vendorEntityUpdateDelayDays > 0) {
LocalDateTime today = LocalDateTime.now();
if (entity.getFetchedTime() != null) {
@@ -574,7 +574,7 @@ public class ContractCtx extends AbstractYongYouU8Ctx {
return getContractService().findByCode(contractCode);
}
public boolean syncByVendorEntity(Vendor vendor, CompanyVendorEntity entity, MessageHolder holder) {
public boolean syncByVendorEntity(Vendor vendor, VendorEntity entity, MessageHolder holder) {
String code = entity.getCode();
holder.debug("同步供应商相关项 " + code + "," + entity.getName() + " 的合同");
if (!StringUtils.hasText(code)) {

View File

@@ -22,7 +22,7 @@ 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.CompanyVendorEntity;
import com.ecep.contract.model.VendorEntity;
import com.ecep.contract.model.Contract;
import com.ecep.contract.model.Inventory;
import com.ecep.contract.model.Invoice;
@@ -111,10 +111,10 @@ public class PurchaseBillVoucherCtx extends AbstractYongYouU8Ctx {
Vendor vendor = getCompanyVendorService().findByCompany(company);
if (vendor != null) {
List<CompanyVendorEntity> entities = getCompanyVendorEntityService().findAllByVendor(vendor);
List<VendorEntity> entities = getCompanyVendorEntityService().findAllByVendor(vendor);
holder.debug(company.getName() + ""
+ entities.stream().map(CompanyVendorEntity::getCode).collect(Collectors.joining(", ")) + " 关联项");
for (CompanyVendorEntity entity : entities) {
+ entities.stream().map(VendorEntity::getCode).collect(Collectors.joining(", ")) + " 关联项");
for (VendorEntity entity : entities) {
// 查询 U8 数据库
List<Map<String, Object>> ds = repository.findAllPurchaseBillVoucherByVendorCode(entity.getCode());
holder.debug(

View File

@@ -15,11 +15,11 @@ import com.ecep.contract.MessageHolder;
import com.ecep.contract.SpringApp;
import com.ecep.contract.cloud.old.OldVersionService;
import com.ecep.contract.ds.company.service.CompanyService;
import com.ecep.contract.ds.vendor.service.CompanyVendorEntityService;
import com.ecep.contract.ds.vendor.service.CompanyVendorService;
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.CompanyVendorEntity;
import com.ecep.contract.model.VendorEntity;
import com.ecep.contract.model.VendorCatalog;
import lombok.Setter;
@@ -27,7 +27,7 @@ import lombok.Setter;
public class VendorCtx extends AbstractYongYouU8Ctx {
private static final String AUTO_CREATE_VENDOR_AFTER = "cloud.u8.auto-create-vendor-after";
@Setter
private CompanyVendorService companyVendorService;
private VendorService vendorService;
@Setter
private CompanyCtx companyCtx;
@Setter
@@ -66,14 +66,14 @@ public class VendorCtx extends AbstractYongYouU8Ctx {
* @param unitCode 供应商相关项编码
* @param holder 消息
*/
public CompanyVendorEntity updateVendorEntityDetailByCode(CompanyVendorEntity item, String unitCode, MessageHolder holder) {
public VendorEntity updateVendorEntityDetailByCode(VendorEntity item, String unitCode, MessageHolder holder) {
if (applyEntityDetail(item, repository.findVendorByVendCode(unitCode), holder)) {
item = save(item);
}
return item;
}
public boolean applyEntityDetail(CompanyVendorEntity item, Map<String, Object> map, MessageHolder holder) {
public boolean applyEntityDetail(VendorEntity item, Map<String, Object> map, MessageHolder holder) {
if (map == null || map.isEmpty()) {
holder.warn("Vendor 中未检索到供应商数据");
return false;
@@ -199,7 +199,7 @@ public class VendorCtx extends AbstractYongYouU8Ctx {
}
// 检索相关项
List<CompanyVendorEntity> entities = getCompanyVendorEntityService().findAllByVendor(vendor);
List<VendorEntity> entities = getCompanyVendorEntityService().findAllByVendor(vendor);
if (entities.isEmpty()) {
holder.error("供应商关联任何相关项");
return false;
@@ -209,7 +209,7 @@ public class VendorCtx extends AbstractYongYouU8Ctx {
boolean companyModified = false;
// 更新相关项
for (CompanyVendorEntity entity : entities) {
for (VendorEntity entity : entities) {
if (!StringUtils.hasText(entity.getCode())) {
holder.warn("相关项:" + entity.getCode() + " 无效,跳过");
continue;
@@ -234,7 +234,7 @@ public class VendorCtx extends AbstractYongYouU8Ctx {
}
// 同步供应商关联的合同
for (CompanyVendorEntity entity : entities) {
for (VendorEntity entity : entities) {
if (getContractCtx().syncByVendorEntity(vendor, entity, holder)) {
updated = true;
}
@@ -242,7 +242,7 @@ public class VendorCtx extends AbstractYongYouU8Ctx {
return updated;
}
private boolean updateCompanyNameAndAbbNameByVendorEntity(Company company, CompanyVendorEntity entity, MessageHolder holder) {
private boolean updateCompanyNameAndAbbNameByVendorEntity(Company company, VendorEntity entity, MessageHolder holder) {
CompanyService companyService = getCompanyService();
if (company == null) {
return false;
@@ -261,9 +261,9 @@ public class VendorCtx extends AbstractYongYouU8Ctx {
return modified;
}
private boolean updateVendorDevelopDate(Vendor vendor, List<CompanyVendorEntity> entities, MessageHolder holder) {
private boolean updateVendorDevelopDate(Vendor vendor, List<VendorEntity> entities, MessageHolder holder) {
LocalDate developDate = null;
for (CompanyVendorEntity entity : entities) {
for (VendorEntity entity : entities) {
// 取最早的开发日期
if (developDate == null || entity.getDevelopDate().isBefore(developDate)) {
developDate = entity.getDevelopDate();
@@ -272,11 +272,11 @@ public class VendorCtx extends AbstractYongYouU8Ctx {
return updateLocalDate(vendor::getDevelopDate, vendor::setDevelopDate, developDate, holder, "开发日期");
}
public CompanyVendorEntity findOrCreateByCode(String venCode, MessageHolder subHolder) {
CompanyVendorEntityService service = getCompanyVendorEntityService();
CompanyVendorEntity entity = service.findByCode(venCode);
public VendorEntity findOrCreateByCode(String venCode, MessageHolder subHolder) {
VendorEntityService service = getCompanyVendorEntityService();
VendorEntity entity = service.findByCode(venCode);
if (entity == null) {
entity = new CompanyVendorEntity();
entity = new VendorEntity();
entity.setCode(venCode);
entity = service.save(entity);
subHolder.info("创建供应商相关项: " + venCode);
@@ -284,7 +284,7 @@ public class VendorCtx extends AbstractYongYouU8Ctx {
return entity;
}
private Vendor createVendorByVendorEntity(CompanyVendorEntity entity, MessageHolder holder) {
private Vendor createVendorByVendorEntity(VendorEntity entity, MessageHolder holder) {
LocalDate developDate = entity.getDevelopDate();
if (developDate == null) {
holder.warn(entity.getName() + " 没有设置开发日期,跳过");
@@ -313,13 +313,13 @@ public class VendorCtx extends AbstractYongYouU8Ctx {
}
private Company findOrCreateCompanyByVendorEntity(CompanyVendorEntity entity, MessageHolder holder) {
private Company findOrCreateCompanyByVendorEntity(VendorEntity entity, MessageHolder holder) {
String name = entity.getName();
String abbName = entity.getAbbName();
return getCompanyCtx().findOrCreateByNameOrAbbName(name, abbName, entity.getDevelopDate(), holder);
}
public CompanyVendorEntity save(CompanyVendorEntity entity) {
public VendorEntity save(VendorEntity entity) {
return getCompanyVendorEntityService().save(entity);
}