diff --git a/server/src/main/java/com/ecep/contract/ds/vendor/repository/VendorApprovedRepository.java b/server/src/main/java/com/ecep/contract/ds/vendor/repository/VendorApprovedRepository.java index 9271a60..2e2691f 100644 --- a/server/src/main/java/com/ecep/contract/ds/vendor/repository/VendorApprovedRepository.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/repository/VendorApprovedRepository.java @@ -1,19 +1,13 @@ package com.ecep.contract.ds.vendor.repository; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; +import com.ecep.contract.ds.MyRepository; import com.ecep.contract.model.VendorApproved; /** * 合格供方名录 */ @Repository -public interface VendorApprovedRepository extends - JpaRepository, JpaSpecificationExecutor - - - -{ +public interface VendorApprovedRepository extends MyRepository { } \ No newline at end of file diff --git a/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorApprovedFileService.java b/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorApprovedFileService.java index 23f25ec..479c77a 100644 --- a/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorApprovedFileService.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorApprovedFileService.java @@ -1,6 +1,7 @@ package com.ecep.contract.ds.vendor.service; import com.ecep.contract.IEntityService; +import com.ecep.contract.EntityService; import com.ecep.contract.QueryService; import com.ecep.contract.SpringApp; import com.ecep.contract.constant.ParamConstant; @@ -26,12 +27,22 @@ import java.util.List; @Lazy @Service @CacheConfig(cacheNames = "vendor-approved-file") -public class VendorApprovedFileService +public class VendorApprovedFileService extends EntityService implements IEntityService, QueryService, VoableService { @Lazy @Autowired private VendorApprovedFileRepository repository; + @Override + protected VendorApprovedFileRepository getRepository() { + return repository; + } + + @Override + public VendorApprovedFile createNewEntity() { + return new VendorApprovedFile(); + } + /** * 根据ID查找供应商已批准文件 * @@ -44,41 +55,29 @@ public class VendorApprovedFileService } @Override - public Page findAll(JsonNode paramsNode, Pageable pageable) { - Specification spec = null; - if (paramsNode.has(ParamConstant.KEY_SEARCH_TEXT)) { - spec = getSearchSpecification(paramsNode.get(ParamConstant.KEY_SEARCH_TEXT).asText()); - } - spec = SpecificationUtils.andParam(spec, paramsNode, "list"); - return findAll(spec, pageable).map(VendorApprovedFile::toVo); + protected org.springframework.data.jpa.domain.Specification buildSearchSpecification(String searchText) { + return (root, query, builder) -> { + return builder.or( + builder.like(root.get("fileName"), "%" + searchText + "%"), + builder.like(root.get("description"), "%" + searchText + "%")); + }; } + @Override - public long count(JsonNode paramsNode) { - return repository.count(); + protected org.springframework.data.jpa.domain.Specification buildParameterSpecification(JsonNode paramsNode) { + org.springframework.data.jpa.domain.Specification spec = null; + spec = SpecificationUtils.andParam(spec, paramsNode, "list"); + spec = SpecificationUtils.andFieldEqualParam(spec, paramsNode, "fileName", "description"); + return spec; } - @Override public VendorApprovedFile getById(Integer id) { return repository.findById(id).orElse(null); } - /** - * 获取供应商已批准文件的查询规格 - * 根据搜索文本构建文件名和描述的模糊查询条件 - * - * @param searchText 搜索文本 - * @return 构建的查询规格 - */ - @Override - public Specification getSearchSpecification(String searchText) { - return (root, query, builder) -> { - return builder.or( - builder.like(root.get("fileName"), "%" + searchText + "%"), - builder.like(root.get("description"), "%" + searchText + "%")); - }; - } + /** * 根据查询规格和分页参数获取供应商已批准文件列表 @@ -159,4 +158,4 @@ public class VendorApprovedFileService entity.setList(null); } } -} \ No newline at end of file +} diff --git a/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorApprovedService.java b/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorApprovedService.java index ba01dd2..6cb6922 100644 --- a/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorApprovedService.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorApprovedService.java @@ -24,6 +24,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import com.ecep.contract.IEntityService; +import com.ecep.contract.EntityService; import com.ecep.contract.MyDateTimeUtils; import com.ecep.contract.QueryService; import com.ecep.contract.constant.CompanyVendorConstant; @@ -40,7 +41,8 @@ import com.fasterxml.jackson.databind.JsonNode; @Lazy @Service -public class VendorApprovedService implements IEntityService, QueryService, +public class VendorApprovedService extends EntityService + implements IEntityService, QueryService, VoableService { private static final Logger logger = LoggerFactory.getLogger(VendorApprovedService.class); @Lazy @@ -57,6 +59,16 @@ public class VendorApprovedService implements IEntityService, Qu @Autowired private SysConfService confService; + @Override + protected VendorApprovedRepository getRepository() { + return repository; + } + + @Override + public VendorApproved createNewEntity() { + return new VendorApproved(); + } + public File getBasePath() { return new File(confService.getString(CompanyVendorConstant.KEY_APPROVED_LIST_BASE_PATH)); } @@ -72,26 +84,15 @@ public class VendorApprovedService implements IEntityService, Qu } @Override - public Page findAll(Specification spec, Pageable pageable) { - return repository.findAll(spec, pageable); - } - - @Override - public Page findAll(JsonNode paramsNode, Pageable pageable) { - Specification spec = null; - if (paramsNode.has(ParamConstant.KEY_SEARCH_TEXT)) { - spec = getSearchSpecification(paramsNode.get(ParamConstant.KEY_SEARCH_TEXT).asText()); - } - // 添加额外的参数过滤 + protected org.springframework.data.jpa.domain.Specification buildParameterSpecification( + JsonNode paramsNode) { + org.springframework.data.jpa.domain.Specification spec = null; spec = SpecificationUtils.andFieldEqualParam(spec, paramsNode, "title"); - return findAll(spec, pageable).map(VendorApproved::toVo); + return spec; } @Override - public Specification getSearchSpecification(String searchText) { - if (!StringUtils.hasText(searchText)) { - return null; - } + protected Specification buildSearchSpecification(String searchText) { return (root, query, builder) -> { return builder.like(root.get("title"), "%" + searchText + "%"); }; diff --git a/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorCatalogService.java b/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorCatalogService.java index 42bf5be..b6b27e9 100644 --- a/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorCatalogService.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorCatalogService.java @@ -14,6 +14,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import com.ecep.contract.IEntityService; +import com.ecep.contract.EntityService; import com.ecep.contract.QueryService; import com.ecep.contract.ds.vendor.repository.VendorClassRepository; import com.ecep.contract.model.VendorCatalog; @@ -30,12 +31,23 @@ import com.fasterxml.jackson.databind.JsonNode; @Lazy @Service @CacheConfig(cacheNames = "vendor-catalog") -public class VendorCatalogService implements IEntityService, QueryService, +public class VendorCatalogService extends EntityService + implements IEntityService, QueryService, VoableService { @Lazy @Autowired private VendorClassRepository repository; + @Override + protected VendorClassRepository getRepository() { + return repository; + } + + @Override + public VendorCatalog createNewEntity() { + return new VendorCatalog(); + } + @Override public Page findAll(JsonNode paramsNode, Pageable pageable) { Specification spec = null; @@ -65,10 +77,15 @@ public class VendorCatalogService implements IEntityService, Quer } @Override - public Specification getSearchSpecification(String searchText) { - if (!StringUtils.hasText(searchText)) { - return null; - } + protected org.springframework.data.jpa.domain.Specification buildParameterSpecification( + JsonNode paramsNode) { + org.springframework.data.jpa.domain.Specification spec = null; + spec = SpecificationUtils.andFieldEqualParam(spec, paramsNode, "name", "code", "parentId"); + return spec; + } + + @Override + protected Specification buildSearchSpecification(String searchText) { return (root, query, builder) -> { return builder.or( builder.like(root.get("name"), "%" + searchText + "%"), diff --git a/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorEntityService.java b/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorEntityService.java index 4f18177..38c42a1 100644 --- a/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorEntityService.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorEntityService.java @@ -15,6 +15,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import com.ecep.contract.IEntityService; +import com.ecep.contract.EntityService; import com.ecep.contract.QueryService; import com.ecep.contract.SpringApp; import com.ecep.contract.ds.other.service.EmployeeService; @@ -29,12 +30,22 @@ import com.fasterxml.jackson.databind.JsonNode; @Lazy @Service @CacheConfig(cacheNames = "company-vendor-entity") -public class VendorEntityService implements IEntityService, QueryService, +public class VendorEntityService extends EntityService implements IEntityService, QueryService, VoableService { @Lazy @Autowired private VendorEntityRepository repository; + @Override + protected VendorEntityRepository getRepository() { + return repository; + } + + @Override + public VendorEntity createNewEntity() { + return new VendorEntity(); + } + @Override public VendorEntity getById(Integer id) { return repository.findById(id).orElse(null); @@ -74,6 +85,14 @@ public class VendorEntityService implements IEntityService, QueryS }; } + @Override + protected org.springframework.data.jpa.domain.Specification buildParameterSpecification(JsonNode paramsNode) { + org.springframework.data.jpa.domain.Specification spec = null; + spec = SpecificationUtils.andParam(spec, paramsNode, "vendor"); + spec = SpecificationUtils.andFieldEqualParam(spec, paramsNode, "name", "abbName", "code"); + return spec; + } + @Override public List search(String searchText) { Specification spec = getSearchSpecification(searchText); @@ -154,4 +173,4 @@ public class VendorEntityService implements IEntityService, QueryS model.setModifier(employeeService.getById(vo.getModifierId())); } } -} \ No newline at end of file +} diff --git a/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorTypeService.java b/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorTypeService.java index 24b08e6..d316c2c 100644 --- a/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorTypeService.java +++ b/server/src/main/java/com/ecep/contract/ds/vendor/service/VendorTypeService.java @@ -17,6 +17,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import com.ecep.contract.IEntityService; +import com.ecep.contract.EntityService; import com.ecep.contract.QueryService; import com.ecep.contract.VendorType; import com.ecep.contract.ds.vendor.repository.VendorTypeLocalRepository; @@ -30,27 +31,44 @@ import com.fasterxml.jackson.databind.JsonNode; @Lazy @Service @CacheConfig(cacheNames = "vendor-type") -public class VendorTypeService implements IEntityService, QueryService, +public class VendorTypeService extends EntityService + implements IEntityService, QueryService, VoableService { @Lazy @Autowired private VendorTypeLocalRepository repository; @Override - public Page findAll(JsonNode paramsNode, Pageable pageable) { - Specification spec = null; - if (paramsNode.has(ParamConstant.KEY_SEARCH_TEXT)) { - spec = getSearchSpecification(paramsNode.get(ParamConstant.KEY_SEARCH_TEXT).asText()); - } + protected VendorTypeLocalRepository getRepository() { + return repository; + } + @Override + public VendorTypeLocal createNewEntity() { + return new VendorTypeLocal(); + } + + @Override + protected Specification buildParameterSpecification(JsonNode paramsNode) { + Specification spec = null; if (paramsNode.has("type")) { spec = SpecificationUtils.and(spec, (root, query, builder) -> builder.equal(root.get("type"), VendorType.valueOf(paramsNode.get("type").asText()))); } - // field spec = SpecificationUtils.andFieldEqualParam(spec, paramsNode, "lang", "value"); - return findAll(spec, pageable).map(VendorTypeLocal::toVo); + return spec; + } + + @Override + protected Specification buildSearchSpecification(String searchText) { + return (root, query, builder) -> { + return + // builder.or( + builder.like(root.get("type"), "%" + searchText + "%") + // ) + ; + }; } @Cacheable(key = "#p0") @@ -64,30 +82,11 @@ public class VendorTypeService implements IEntityService, Query return repository.findById(id).orElse(null); } - @Override - public Page findAll(Specification spec, Pageable pageable) { - return repository.findAll(spec, pageable); - } - @Cacheable(key = "'all-'+#p0.toLanguageTag()") public Map findAll(Locale locale) { return repository.getCompleteMapByLocal(locale.toLanguageTag()); } - @Override - public Specification getSearchSpecification(String searchText) { - if (!StringUtils.hasText(searchText)) { - return null; - } - return (root, query, builder) -> { - return - // builder.or( - builder.like(root.get("type"), "%" + searchText + "%") - // ) - ; - }; - } - @Caching(evict = { @CacheEvict(key = "#p0.id"), @CacheEvict(key = "'all-'+#p0.getLang()")