|
@@ -1,6 +1,7 @@
|
|
|
package com.usky.iot.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
@@ -9,16 +10,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.usky.common.core.bean.CommonPage;
|
|
|
import com.usky.common.core.exception.BusinessException;
|
|
|
import com.usky.common.security.utils.SecurityUtils;
|
|
|
-import com.usky.iot.domain.BaseBuild;
|
|
|
-import com.usky.iot.domain.BaseBuildFacilityRelate;
|
|
|
-import com.usky.iot.domain.BaseFacilityType;
|
|
|
-import com.usky.iot.domain.BaseGgpFacility;
|
|
|
+import com.usky.iot.domain.*;
|
|
|
import com.usky.iot.mapper.BaseBuildMapper;
|
|
|
-import com.usky.iot.service.BaseBuildFacilityRelateService;
|
|
|
-import com.usky.iot.service.BaseBuildService;
|
|
|
+import com.usky.iot.service.*;
|
|
|
import com.usky.common.mybatis.core.AbstractCrudService;
|
|
|
-import com.usky.iot.service.BaseFacilityTypeService;
|
|
|
-import com.usky.iot.service.BaseGgpFacilityService;
|
|
|
import com.usky.iot.service.vo.BuildFacilityRelateRequestVO;
|
|
|
import com.usky.iot.service.vo.BuildFacilityRelateResponeVO;
|
|
|
import com.usky.iot.service.vo.BuildFacilityStatusVO;
|
|
@@ -51,6 +46,12 @@ public class BaseBuildServiceImpl extends AbstractCrudService<BaseBuildMapper, B
|
|
|
@Autowired
|
|
|
private BaseFacilityTypeService baseFacilityTypeService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private BaseBuildFacilityService baseBuildFacilityService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private BaseBuildFacilityTypeService baseBuildFacilityTypeService;
|
|
|
+
|
|
|
@Override
|
|
|
public void add(BaseBuild baseBuild){
|
|
|
// if(checkNameUnique(baseBuild)){
|
|
@@ -180,6 +181,95 @@ public class BaseBuildServiceImpl extends AbstractCrudService<BaseBuildMapper, B
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<Object> buildFacilityInfo(Integer id) {
|
|
|
+ List<Object> list = new ArrayList<>();
|
|
|
+ LambdaQueryWrapper<BaseBuildFacilityRelate> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.eq(BaseBuildFacilityRelate::getBuildId,id);
|
|
|
+ List<BaseBuildFacilityRelate> baseBuildFacilityList = baseBuildFacilityRelateService.list(queryWrapper);
|
|
|
+ if (CollectionUtils.isNotEmpty(baseBuildFacilityList)) {
|
|
|
+ List<Integer> facilityIdList = new ArrayList<>();
|
|
|
+ for (int i = 0; i < baseBuildFacilityList.size(); i++) {
|
|
|
+ facilityIdList.add(baseBuildFacilityList.get(i).getFacilityId());
|
|
|
+ }
|
|
|
+ QueryWrapper<BaseBuildFacility> query2 = Wrappers.query();
|
|
|
+ query2.select("floor as floor","count(id) as count","facility_type as facilityType")
|
|
|
+ .in("id",facilityIdList)
|
|
|
+ .eq("delete_flag",0)
|
|
|
+ .groupBy("floor","facility_type");
|
|
|
+ List<Map<String, Object>> baseBuildFacilityList1 = baseBuildFacilityService.listMaps(query2);
|
|
|
+ QueryWrapper<BaseBuildFacility> query3 = Wrappers.query();
|
|
|
+ query3.select("floor as floor","count(id) as count")
|
|
|
+ .in("id",facilityIdList)
|
|
|
+ .eq("delete_flag",0)
|
|
|
+ .groupBy("floor");
|
|
|
+ List<Map<String, Object>> baseBuildFacilityList2 = baseBuildFacilityService.listMaps(query3);
|
|
|
+ QueryWrapper<BaseBuildFacility> query4 = Wrappers.query();
|
|
|
+ query4.select("facility_type as facilityType","count(id) as count")
|
|
|
+ .in("id",facilityIdList)
|
|
|
+ .eq("delete_flag",0)
|
|
|
+ .groupBy("facility_type");
|
|
|
+ List<Map<String, Object>> baseBuildFacilityList3 = baseBuildFacilityService.listMaps(query4);
|
|
|
+ List<String> facilityTypeList = new ArrayList<>();
|
|
|
+ if (CollectionUtils.isNotEmpty(baseBuildFacilityList3)) {
|
|
|
+ for (int l = 0; l < baseBuildFacilityList3.size(); l++) {
|
|
|
+ facilityTypeList.add(baseBuildFacilityList3.get(l).get("facilityType").toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ LambdaQueryWrapper<BaseBuildFacilityType> queryWrapper1 = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper1.in(BaseBuildFacilityType::getTypeCode,facilityTypeList);
|
|
|
+ List<BaseBuildFacilityType> baseBuildFacilityType = baseBuildFacilityTypeService.list(queryWrapper1);
|
|
|
+ if (CollectionUtils.isNotEmpty(baseBuildFacilityList2)) {
|
|
|
+ for (int j = 0; j < baseBuildFacilityList2.size(); j++){
|
|
|
+ Map<String, Object> map1 = new HashMap<>();
|
|
|
+ map1.put("floor", baseBuildFacilityList2.get(j).get("floor"));
|
|
|
+ List<Object> list1 = new ArrayList<>();
|
|
|
+ if (CollectionUtils.isNotEmpty(baseBuildFacilityList1)) {
|
|
|
+ for (int k = 0; k < baseBuildFacilityList1.size(); k++){
|
|
|
+ Map<String, Object> map2 = new HashMap<>();
|
|
|
+ if (baseBuildFacilityList2.get(j).get("floor").equals(baseBuildFacilityList1.get(k).get(
|
|
|
+ "floor"))){
|
|
|
+ map2.put("facilityType", baseBuildFacilityList1.get(k).get("facilityType"));
|
|
|
+ map2.put("count", baseBuildFacilityList1.get(k).get("count"));
|
|
|
+ if (CollectionUtils.isNotEmpty(baseBuildFacilityType)) {
|
|
|
+ for (int m = 0; m < baseBuildFacilityType.size(); m++) {
|
|
|
+ if (baseBuildFacilityList1.get(k).get("facilityType").equals(baseBuildFacilityType.get(m).getTypeCode())){
|
|
|
+ map2.put("typeImg", baseBuildFacilityType.get(m).getTypeImg());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ list1.add(map2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ map1.put("facilityList", list1);
|
|
|
+ list.add(map1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<BaseBuildFacility> typeFacilityInfo(Integer id, String floor, String typeCode) {
|
|
|
+ LambdaQueryWrapper<BaseBuildFacilityRelate> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.eq(BaseBuildFacilityRelate::getBuildId,id);
|
|
|
+ List<BaseBuildFacilityRelate> baseBuildFacilityList = baseBuildFacilityRelateService.list(queryWrapper);
|
|
|
+ List<Integer> facilityIdList = new ArrayList<>();
|
|
|
+ if (CollectionUtils.isNotEmpty(baseBuildFacilityList)) {
|
|
|
+ for (int i = 0; i < baseBuildFacilityList.size(); i++) {
|
|
|
+ facilityIdList.add(baseBuildFacilityList.get(i).getFacilityId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ LambdaQueryWrapper<BaseBuildFacility> queryWrapper1 = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper1.in(BaseBuildFacility::getId,facilityIdList)
|
|
|
+ .eq(BaseBuildFacility::getFacilityType,typeCode)
|
|
|
+ .eq(BaseBuildFacility::getFloor,floor)
|
|
|
+ .eq(BaseBuildFacility::getDeleteFlag,0);
|
|
|
+ List<BaseBuildFacility> list = baseBuildFacilityService.list(queryWrapper1);
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
// @Override
|
|
|
// public boolean checkNameUnique(BaseBuild baseBuild){
|
|
|
// Integer id = null == baseBuild.getId()?-1:baseBuild.getId();
|