refactor: 重构供应商文件类型枚举及相关服务

feat: 为多个服务添加缓存支持
fix: 修复WebSocket任务管理和远程调用异常处理
refactor: 重命名CompanyVendorFileType为VendorFileType
refactor: 优化项目成本导入任务实现
fix: 修复ContractTabSkinBase中的空指针问题
refactor: 统一WebSocket客户端任务调用接口
This commit is contained in:
2025-09-17 22:28:17 +08:00
parent 7560250036
commit c0e4916474
43 changed files with 624 additions and 260 deletions

View File

@@ -1,19 +1,73 @@
package com.ecep.contract.service;
import com.ecep.contract.model.ContractType;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.cache.annotation.Caching;
import org.springframework.stereotype.Service;
import com.ecep.contract.model.ContractKind;
import com.ecep.contract.vm.ContractKindViewModel;
import java.util.List;
@Service
@CacheConfig(cacheNames = "contract-kind")
public class ContractKindService extends QueryService<ContractKind, ContractKindViewModel> {
@Cacheable(key = "#p0")
@Override
public ContractKind findById(Integer id) {
return super.findById(id);
}
public ContractKind findByName(String name) {
throw new UnsupportedOperationException("Unimplemented method 'findByName'");
try {
return async("findByName", name, String.class).handle((response, ex) -> {
ContractKind newEntity = createNewEntity();
return updateValue(newEntity, response);
}).get();
} catch (Exception e) {
throw new RuntimeException("查询实体失败" + name, e);
}
}
public ContractKind findByCode(String code) {
throw new UnsupportedOperationException("Unimplemented method 'findByCode'");
try {
return async("findByCode", code, String.class).handle((response, ex) -> {
if (ex != null) {
throw new RuntimeException("远程方法+findByCode+调用失败", ex);
}
ContractKind newEntity = createNewEntity();
return updateValue(newEntity, response);
}).get();
} catch (Exception e) {
throw new RuntimeException("查询实体失败" + code, e);
}
}
@Cacheable(key = "'kinds'")
@Override
public List<ContractKind> findAll() {
return super.findAll();
}
@Caching(evict = {
@CacheEvict(key = "#p0.id"), @CacheEvict(key = "'kinds'"),
})
@Override
public ContractKind save(ContractKind entity) {
return super.save(entity);
}
@Caching(evict = {
@CacheEvict(key = "#p0.id"), @CacheEvict(key = "'kinds'"),
})
@Override
public void delete(ContractKind entity) {
super.delete(entity);
}
}