Browse Source

'优化建筑设施-分页接口,优化代码逻辑'

james 1 year ago
parent
commit
252679c597

+ 2 - 2
service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/BaseBuildFacilityMapper.java

@@ -17,6 +17,6 @@ import java.util.List;
  * @since 2023-07-26
  */
 public interface BaseBuildFacilityMapper extends CrudMapper<BaseBuildFacility> {
-    List<BaseBuildFacilityType> baseBuildFacilityTypeList(@Param("facilityTypes") List<String> facilityTypes);
-    BaseBuild getBuildName(Integer buildId);
+    BaseBuildFacilityType baseBuildFacilityTypeList(@Param("facilityType") String facilityType);
+    List<BaseBuild> getBuildName(@Param("buildIdList") List<Integer> buildIdList);
 }

+ 40 - 30
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseBuildFacilityServiceImpl.java

@@ -93,44 +93,54 @@ public class BaseBuildFacilityServiceImpl extends AbstractCrudService<BaseBuildF
     @Override
     public CommonPage<BaseBuildFacility> page(BaseBuildFacilityRequestVO requestVO){
         List<BaseBuildFacility> list = new ArrayList<>();
-        BaseBuild one1 = baseMapper.getBuildName(requestVO.getBuildId());
-
-        LambdaQueryWrapper<BaseBuildFacilityRelate> queryWrapper1 = Wrappers.lambdaQuery();
-        queryWrapper1.eq(BaseBuildFacilityRelate::getBuildId,requestVO.getBuildId());
-        List<BaseBuildFacilityRelate> facilityList = baseBuildFacilityRelateService.list(queryWrapper1);
-
-        List<BaseBuildFacility> list1 = new ArrayList<>();
-        if(CollectionUtils.isNotEmpty(facilityList)){
-            List<Integer> facilityIdList = facilityList.stream().map(m ->m.getFacilityId()).collect(Collectors.toList());
-            LambdaQueryWrapper<BaseBuildFacility> queryWrapper = Wrappers.lambdaQuery();
-            queryWrapper.eq(requestVO.getId() != null,BaseBuildFacility::getId,requestVO.getId())
-                    .in(BaseBuildFacility::getId,facilityIdList)
-                    .like(StringUtils.isNotBlank(requestVO.getFacilityNum()),BaseBuildFacility::getFacilityNum,requestVO.getFacilityNum())
-                    .like(StringUtils.isNotBlank(requestVO.getFacilityName()),BaseBuildFacility::getFacilityName,requestVO.getFacilityName())
-                    .eq(StringUtils.isNotBlank(requestVO.getFacilityType()),BaseBuildFacility::getFacilityType,requestVO.getFacilityType())
-                    .eq(BaseBuildFacility::getDeleteFlag,0)
-                    .eq(BaseBuildFacility::getTenantId,SecurityUtils.getTenantId())
-                    .orderByDesc(BaseBuildFacility::getId);
-            list1 = this.list(queryWrapper);
-            if(CollectionUtils.isNotEmpty(list1)){
-                List<String> facilityTypeList = list1.stream().map(m ->m.getFacilityType()).collect(Collectors.toList());
-                List<BaseBuildFacilityType> typeList = baseMapper.baseBuildFacilityTypeList(facilityTypeList);
-                for(int i=0;i<list1.size();i++){
-
-                    if(CollectionUtils.isNotEmpty(typeList)){
-                        for(int j=0;j<typeList.size();j++){
-                            if(list1.get(i).getFacilityType().equals(typeList.get(j).getTypeCode())){
-                                list1.get(i).setTypeName(typeList.get(j).getTypeName());
+        LambdaQueryWrapper<BaseBuildFacility> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(requestVO.getId() != null,BaseBuildFacility::getId,requestVO.getId())
+                .like(StringUtils.isNotBlank(requestVO.getFacilityNum()),BaseBuildFacility::getFacilityNum,requestVO.getFacilityNum())
+                .like(StringUtils.isNotBlank(requestVO.getFacilityName()),BaseBuildFacility::getFacilityName,requestVO.getFacilityName())
+                .eq(StringUtils.isNotBlank(requestVO.getFacilityType()),BaseBuildFacility::getFacilityType,requestVO.getFacilityType())
+                .eq(BaseBuildFacility::getDeleteFlag,0)
+                .eq(BaseBuildFacility::getTenantId,SecurityUtils.getTenantId())
+                .orderByDesc(BaseBuildFacility::getId);
+        List<BaseBuildFacility> list1 = this.list(queryWrapper);
+        if(CollectionUtils.isNotEmpty(list1)){
+            List<BaseBuildFacilityRelate> facilityList = new ArrayList<>();
+            List<BaseBuild> baseBuildList = new ArrayList<>();
+
+            List<Integer> facilityId = list1.stream().map(s ->s.getId()).collect(Collectors.toList());
+            if(CollectionUtils.isNotEmpty(facilityId)){
+                LambdaQueryWrapper<BaseBuildFacilityRelate> queryWrapper1 = Wrappers.lambdaQuery();
+                queryWrapper1.in(BaseBuildFacilityRelate::getFacilityId,facilityId);
+                facilityList = baseBuildFacilityRelateService.list(queryWrapper1);
+                if(CollectionUtils.isNotEmpty(facilityList)){
+                    List<Integer> buildIdList = facilityList.stream().map(s ->s.getBuildId()).collect(Collectors.toList());
+                    baseBuildList = baseMapper.getBuildName(buildIdList);
+                }
+            }
+
+            for(int i=0;i<list1.size();i++){
+                for(int j=0;j<facilityList.size();j++){
+                    if(list1.get(i).getId().equals(facilityList.get(j).getFacilityId())){
+                        for(int k=0;k<baseBuildList.size();k++){
+                            if(facilityList.get(j).getBuildId().equals(baseBuildList.get(k).getId())){
+                                list1.get(i).setBuildId(baseBuildList.get(k).getId());
+                                list1.get(i).setBuildName(baseBuildList.get(k).getBuildName());
                             }
                         }
                     }
-                    list1.get(i).setBuildId(one1.getId());
-                    list1.get(i).setBuildName(one1.getBuildName());
                 }
+
+                BaseBuildFacilityType typeOne = baseMapper.baseBuildFacilityTypeList(list1.get(i).getFacilityType());
+                list1.get(i).setTypeName(typeOne.getTypeName());
             }
+        }
 
 
+        if(StringUtils.isNotBlank(requestVO.getBuildName())){
+            list1 = list1.stream().filter(m-> m.getBuildName().contains(requestVO.getBuildName())).collect(Collectors.toList());
+        }
 
+        if(requestVO.getBuildId() != null){
+            list1 = list1.stream().filter(m-> m.getBuildId().equals(requestVO.getBuildId())).collect(Collectors.toList());
         }
 
         if(list1.size() > 0){

+ 7 - 7
service-iot/service-iot-biz/src/main/resources/mapper/iot/BaseBuildFacilityMapper.xml

@@ -32,11 +32,8 @@
             bbft.*
         from base_build_facility_type bbft
         <where>
-            <if test="facilityTypes != null and facilityTypes.size() > 0">
-                AND bbft.type_code in
-                <foreach item="item" collection="facilityTypes" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
+            <if test="1 == 1">
+                AND bbft.type_code = #{facilityType}
             </if>
         </where>
     </select>
@@ -45,8 +42,11 @@
             bb.*
         from base_build bb
         <where>
-            <if test="1 == 1">
-                bb.id = #{buildId}
+            <if test="buildIdList != null and buildIdList.size() > 0">
+                AND bb.id in
+                <foreach item="item" collection="buildIdList" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
             </if>
         </where>
     </select>