diff --git a/src/main/java/com/glxp/api/controller/basic/BasicProductCategoryController.java b/src/main/java/com/glxp/api/controller/basic/BasicProductCategoryController.java index 36cb2eccd..970124695 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicProductCategoryController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicProductCategoryController.java @@ -38,7 +38,6 @@ public class BasicProductCategoryController { @Resource BasicProductCategoryService basicProductCategoryService; - @GetMapping("/udiwms/basic/product/category/filter") public BaseResponse filterBasicUnitMaintain(BasicHospTypeFilterRequest basicHospTypeFilterRequest, BindingResult bindingResult) { @@ -170,18 +169,25 @@ public class BasicProductCategoryController { @GetMapping("/udiwms/basic/product/category/bindList") public BaseResponse bindList(FilterUdiProductRequest filterUdiProductRequest) { - if (StrUtil.isNotEmpty(filterUdiProductRequest.getUdiCode()) && StrUtil.isEmpty(filterUdiProductRequest.getUnionCode())) { - if (StrUtil.isNotEmpty(filterUdiProductRequest.getUdiCode())) { - UdiEntity udi = FilterUdiUtils.getUdi(filterUdiProductRequest.getUdiCode()); - filterUdiProductRequest.setNameCode(udi.getUdi()); + if (StrUtil.isNotEmpty(filterUdiProductRequest.getUdiCode())) { + UdiEntity udiEntity = FilterUdiUtils.getUdi(filterUdiProductRequest.getUdiCode()); + if (udiEntity != null) { + filterUdiProductRequest.setNameCode(udiEntity.getUdi()); + filterUdiProductRequest.setUnionCode(udiEntity.getUdi()); } - List udiRelevanceResponses = basicProductCategoryService.selectAll(filterUdiProductRequest); - if(udiRelevanceResponses != null && udiRelevanceResponses.size()>0){ - filterUdiProductRequest.setOriginUuid(udiRelevanceResponses.get(0).getOriginUuid()); - filterUdiProductRequest.setNameCode(null); - } - - }else{ + } + //如果输入DI标识,精确找到不同层级对应的产品信息 + if (StrUtil.isNotEmpty(filterUdiProductRequest.getUnionCode())) { + FilterUdiRelRequest filterUdiInfoRequest = new FilterUdiRelRequest(); + filterUdiInfoRequest.setNameCode(filterUdiProductRequest.getUnionCode()); + List temps = basicHospTypeService.filterUdiGp(filterUdiInfoRequest); + if (temps != null && temps.size() > 0) { + filterUdiProductRequest.setOriginUuid(temps.get(0).getOriginUuid()); + filterUdiProductRequest.setNameCode(filterUdiInfoRequest.getNameCode()); + filterUdiProductRequest.setUnionCode(null); + } + } else { + //只查找主标识产品信息 filterUdiProductRequest.setDiType(1); } @@ -198,7 +204,19 @@ public class BasicProductCategoryController { //是否是一级分类 BasicProductCategory category = basicProductCategoryService.checkCode(filterUdiRelRequest.getParentCode()); - + //过滤已被选入的产品 + FilterUdiProductRequest request = new FilterUdiProductRequest(); + if("10000".equals(category.getParentCode())) { + request.setCode(filterUdiRelRequest.getParentCode()); + }else{ + request.setCode(category.getCode()); + } + List udiRelevanceResponses1 = basicProductCategoryService.selectAll(request); + ArrayList list = new ArrayList<>(); + for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses1) { + list.add(udiRelevanceResponse.getId()); + } + filterUdiRelRequest.setExistid(list); List udiRelevanceResponses=null; @@ -213,7 +231,7 @@ public class BasicProductCategoryController { if (StrUtil.isNotEmpty(filterUdiRelRequest.getUnionCode())) { FilterUdiRelRequest filterUdiInfoRequest = new FilterUdiRelRequest(); filterUdiInfoRequest.setNameCode(filterUdiRelRequest.getUnionCode()); - List temps = udiRelevanceService.filterUdiGp(filterUdiInfoRequest); + List temps = basicHospTypeService.filterUdiGp(filterUdiInfoRequest); if (temps != null && temps.size() > 0) { filterUdiRelRequest.setOriginUuid(temps.get(0).getOriginUuid()); filterUdiRelRequest.setNameCode(filterUdiInfoRequest.getNameCode()); @@ -225,7 +243,8 @@ public class BasicProductCategoryController { } if("10000".equals(category.getParentCode())) { //查全部 - udiRelevanceResponses= basicHospTypeService.filterUdiGp(filterUdiRelRequest); + udiRelevanceResponses= basicHospTypeService.filterUdiGpexist(filterUdiRelRequest); + }else{ // 查上级 FilterUdiProductRequest filterUdiProductRequest = new FilterUdiProductRequest(); @@ -235,10 +254,12 @@ public class BasicProductCategoryController { filterUdiProductRequest.setYlqxzcrbarmc(filterUdiRelRequest.getYlqxzcrbarmc()); filterUdiProductRequest.setUnionCode(filterUdiRelRequest.getUnionCode()); filterUdiProductRequest.setThrPiId(filterUdiRelRequest.getThrPiId()); - + filterUdiProductRequest.setNameCode(filterUdiRelRequest.getNameCode()); + filterUdiProductRequest.setExistid(list); udiRelevanceResponses= basicProductCategoryService.selectAll(filterUdiProductRequest); } + PageInfo pageInfo = new PageInfo<>(udiRelevanceResponses); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); @@ -251,8 +272,7 @@ public class BasicProductCategoryController { @GetMapping("/udiwms/basic/product/category/SelcetproductList") public BaseResponse SelectproductList(FilterUdiRelRequest filterUdiRelRequest) { - //是否是一级分类 - BasicProductCategory category = basicProductCategoryService.checkCode(filterUdiRelRequest.getParentCode()); + List udiRelevanceResponses=null; @@ -278,6 +298,8 @@ public class BasicProductCategoryController { //只查找主标识产品信息 filterUdiRelRequest.setDiType(1); } + //是否是一级分类 + BasicProductCategory category = basicProductCategoryService.checkCode(filterUdiRelRequest.getParentCode()); if("10000".equals(category.getParentCode())) { //查全部 udiRelevanceResponses= basicHospTypeService.filterUdiGp(filterUdiRelRequest); @@ -290,6 +312,7 @@ public class BasicProductCategoryController { filterUdiProductRequest.setYlqxzcrbarmc(filterUdiRelRequest.getYlqxzcrbarmc()); filterUdiProductRequest.setUnionCode(filterUdiRelRequest.getUnionCode()); filterUdiProductRequest.setThrPiId(filterUdiRelRequest.getThrPiId()); + filterUdiProductRequest.setNameCode(filterUdiRelRequest.getNameCode()); udiRelevanceResponses= basicProductCategoryService.selectAll(filterUdiProductRequest); diff --git a/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java b/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java index 0667bd3d3..6580c5dda 100644 --- a/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java +++ b/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java @@ -21,6 +21,8 @@ public interface UdiRelevanceDao extends BaseMapperPlus filterUdiGp(FilterUdiRelRequest filterUdiRelRequest); + List filterUdiGpexist(FilterUdiRelRequest filterUdiRelRequest); + // UdiRelevanceResponse selectUdiByUUid List selectByUuid(@Param("uuid") String uuid); diff --git a/src/main/java/com/glxp/api/req/basic/FilterUdiProductRequest.java b/src/main/java/com/glxp/api/req/basic/FilterUdiProductRequest.java index a639efbc1..98fa46517 100644 --- a/src/main/java/com/glxp/api/req/basic/FilterUdiProductRequest.java +++ b/src/main/java/com/glxp/api/req/basic/FilterUdiProductRequest.java @@ -3,6 +3,8 @@ package com.glxp.api.req.basic; import com.glxp.api.util.page.ListPageRequest; import lombok.Data; +import java.util.List; + @Data public class FilterUdiProductRequest extends ListPageRequest { @@ -19,6 +21,7 @@ public class FilterUdiProductRequest extends ListPageRequest { private String thrPiId; private String originUuid; private Integer diType; + private List existid; diff --git a/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java b/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java index b7840c826..2154fe7de 100644 --- a/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java +++ b/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java @@ -77,5 +77,6 @@ public class FilterUdiRelRequest extends ListPageRequest { private List ids; private String flbm; private String parentCode; + private List existid; } diff --git a/src/main/java/com/glxp/api/service/basic/BasicHospTypeService.java b/src/main/java/com/glxp/api/service/basic/BasicHospTypeService.java index bba6e0f9d..fc0ebceaf 100644 --- a/src/main/java/com/glxp/api/service/basic/BasicHospTypeService.java +++ b/src/main/java/com/glxp/api/service/basic/BasicHospTypeService.java @@ -35,6 +35,8 @@ public interface BasicHospTypeService extends IService { List filterUdiGp(FilterUdiRelRequest filterUdiRelRequest); + List filterUdiGpexist(FilterUdiRelRequest filterUdiRelRequest); + Boolean checkName(BasicHospTypeRequest basicHospTypeRequest, Integer type); diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicHospTypeServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicHospTypeServiceImpl.java index 7ba10f5f0..8c5d071cb 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicHospTypeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicHospTypeServiceImpl.java @@ -8,7 +8,6 @@ import com.github.pagehelper.PageHelper; import com.glxp.api.dao.basic.BasicHospTypeDao; import com.glxp.api.dao.basic.UdiRelevanceDao; import com.glxp.api.entity.basic.BasicHospTypeEntity; -import com.glxp.api.entity.basic.BasicHospTypeRelEntity; import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.req.basic.BasicHospTypeFilterRequest; import com.glxp.api.req.basic.BasicHospTypeRequest; @@ -203,6 +202,20 @@ public class BasicHospTypeServiceImpl extends ServiceImpl filterUdiGpexist(FilterUdiRelRequest filterUdiRelRequest) { + if (filterUdiRelRequest == null) { + return Collections.emptyList(); + } + if (filterUdiRelRequest.getPage() != null) { + int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit(); + PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit()); + } + + List data = udiRelevanceDao.filterUdiGpexist(filterUdiRelRequest); + return data; + } + @Override public Boolean checkName(BasicHospTypeRequest basicHospTypeRequest, Integer type) { Long sum = null; diff --git a/src/main/resources/mybatis/mapper/basic/BasicProductCategoryRelMapper.xml b/src/main/resources/mybatis/mapper/basic/BasicProductCategoryRelMapper.xml index 5a6b4057c..4378d441b 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicProductCategoryRelMapper.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicProductCategoryRelMapper.xml @@ -67,6 +67,12 @@ and basic_products.originUuid = #{originUuid} + + and basic_udirel.id not in + + #{item} + + diff --git a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml index dade4df0c..2263f7da6 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml @@ -461,6 +461,188 @@ ORDER BY modifyTime DESC + + +