Explorar el Código

地理设施类型查询优化

hanzhengyi hace 1 año
padre
commit
a7a3172a19

+ 12 - 2
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseFacilityTypeServiceImpl.java

@@ -10,8 +10,10 @@ import com.usky.iot.domain.BaseGgpFacility;
 import com.usky.iot.mapper.BaseFacilityTypeMapper;
 import com.usky.iot.service.BaseFacilityTypeService;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.iot.service.BaseGgpFacilityService;
 import com.usky.iot.service.vo.BaseGgpFacilityTypeNumVO;
 import com.usky.iot.service.vo.BaseGgpFacilityTypeVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -27,12 +29,15 @@ import java.util.List;
  */
 @Service
 public class BaseFacilityTypeServiceImpl extends AbstractCrudService<BaseFacilityTypeMapper, BaseFacilityType> implements BaseFacilityTypeService {
+    @Autowired
+    private BaseGgpFacilityService baseGgpFacilityService;
     @Override
     public List<BaseGgpFacilityTypeVO> typeInfo() {
         List<BaseGgpFacilityTypeVO> list = new ArrayList<>();
         LambdaQueryWrapper<BaseFacilityType> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.eq(BaseFacilityType::getTenantId, 1);
         List<BaseFacilityType> list1 = this.list(queryWrapper);
+        Integer typeNum = baseMapper.selectCount(queryWrapper);
         if (CollectionUtils.isNotEmpty(list1)) {
             List<Integer> typeIdList = new ArrayList<>();
             for (int i = 0; i < list1.size(); i++) {
@@ -42,15 +47,20 @@ public class BaseFacilityTypeServiceImpl extends AbstractCrudService<BaseFacilit
             List<BaseGgpFacilityTypeNumVO> list3 = new ArrayList<>();
             List<BaseGgpFacilityTypeNumVO> list4 = new ArrayList<>();
             List<BaseGgpFacilityTypeNumVO> list5 = new ArrayList<>();
+            Integer facilityNum;
+            BaseGgpFacilityTypeVO baseGgpFacilityTypeVO = new BaseGgpFacilityTypeVO();
+            baseGgpFacilityTypeVO.setTypeNum(typeNum);
             if (CollectionUtils.isNotEmpty(typeIdList)) {
                 Integer[] a2 = typeIdList.toArray(new Integer[typeIdList.size()]);
                 list2 = baseMapper.typeNumList(1);
                 list3 = baseMapper.typeNormalNumList(1);
                 list4 = baseMapper.typeUpkeepNumList(1);
                 list5 = baseMapper.typeCloseNumList(1);
+                LambdaQueryWrapper<BaseGgpFacility> queryWrapper1 = Wrappers.lambdaQuery();
+                queryWrapper1.eq(BaseGgpFacility::getTenantId, 1);
+                facilityNum = baseGgpFacilityService.getBaseMapper().selectCount(queryWrapper1);
+                baseGgpFacilityTypeVO.setFacilityNum(facilityNum);
             }
-            BaseGgpFacilityTypeVO baseGgpFacilityTypeVO = new BaseGgpFacilityTypeVO();
-            baseGgpFacilityTypeVO.setTypeNum(3);
             List<BaseGgpFacilityTypeNumVO> list8 = new ArrayList<>();
             if (CollectionUtils.isNotEmpty(list2)) {
                 for (int i = 0; i < list2.size(); i++) {

+ 2 - 2
service-iot/service-iot-biz/src/main/resources/mapper/iot/BaseFacilityTypeMapper.xml

@@ -46,7 +46,7 @@
     </select>
     <select id="typeUpkeepNumList" resultType="com.usky.iot.service.vo.BaseGgpFacilityTypeNumVO">
         SELECT d.id,IF(facility_type IS NULL,0,COUNT(*)) AS
-        normalFacilityNum
+        upkeepFacilityNum
         FROM base_facility_type d
         LEFT JOIN base_ggp_facility e ON e.facility_type = d.id
         <where>
@@ -59,7 +59,7 @@
     </select>
     <select id="typeCloseNumList" resultType="com.usky.iot.service.vo.BaseGgpFacilityTypeNumVO">
         SELECT d.id,IF(facility_type IS NULL,0,COUNT(*)) AS
-        normalFacilityNum
+        closeFacilityNum
         FROM base_facility_type d
         LEFT JOIN base_ggp_facility e ON e.facility_type = d.id
         <where>