Commit c1c49a24 authored by 张森's avatar 张森

/equip/building/video/getBuildingVideoTreeVideoList

建筑 + 监控视频
parent aded8250
......@@ -48,4 +48,7 @@ public class BuildingVideoVO {
@ApiModelProperty("视频类型")
private String videoType;
@ApiModelProperty("建筑ID")
private String buildId;
}
package com.yeejoin.equipmanage.common.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoListVO;
import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
* 建筑树
......@@ -77,4 +80,6 @@ public class BuildingTreeVo {
@ApiModelProperty("类型")
private String type;
@ApiModelProperty("视频合集")
private List<BuildingVideoVO> videoList;
}
......@@ -45,6 +45,13 @@ public class BuildingVideoController extends AbstractBaseController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation("物联监控->单位建筑树(节点上绑定视频集合数据)")
@GetMapping(value = "/getBuildingVideoTreeVideoList")
public List<BuildingTreeVo> getBuildingVideoTreeVideoList() {
return buildService.getBuildingVideoTreeVideoList();
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation("消防建筑视屏监控分页列表")
@GetMapping(value = "/page")
public Page<BuildingVideoVO> buildingList( Page page, BuildingVideoListVO dto) {
......
......@@ -6,6 +6,7 @@ import com.yeejoin.equipmanage.common.entity.FormInstance;
import com.yeejoin.equipmanage.common.entity.dto.BuildIsRiskDTO;
import com.yeejoin.equipmanage.common.entity.dto.BuildSearchDTO;
import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoListVO;
import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoVO;
import org.apache.ibatis.annotations.Param;
import java.util.LinkedHashMap;
......@@ -222,4 +223,7 @@ public interface FormInstanceMapper extends BaseMapper<FormInstance> {
* @return
*/
String selectParentBuildId(@Param("code") String code);
List<BuildingVideoVO> getBuildVideoList();
}
......@@ -326,6 +326,9 @@ public interface IBuilldService extends IService<Building> {
List<BuildingTreeVo> getBuildingVideoTreeNew();
List<BuildingTreeVo> getBuildingVideoTreeVideoList();
List<Map<String, Object>> getBuildingDetaiList();
/**
......
......@@ -6,6 +6,7 @@ import com.yeejoin.equipmanage.common.entity.FormInstance;
import com.yeejoin.equipmanage.common.entity.dto.BuildSearchDTO;
import com.yeejoin.equipmanage.common.entity.dto.FormGroupColumnEquipDto;
import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoListVO;
import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoVO;
import com.yeejoin.equipmanage.common.vo.UnitAreaTreeVo;
import java.util.LinkedHashMap;
......@@ -174,4 +175,6 @@ public interface IFormInstanceService extends IService<FormInstance> {
List<Map<String, Object>> getSpecialChildrenListByName(String parentId, String bizOrgCode, String name);
List<FormGroupColumnEquipDto> queryColumnAndValueByGroup(String groupCode, Long instanceId);
List<BuildingVideoVO> getBuildVideoList();
}
......@@ -1579,6 +1579,50 @@ public class BuildingServiceImpl extends ServiceImpl<BuildingMapper, Building> i
}).collect(Collectors.toList());
}
@Override
public List<BuildingTreeVo> getBuildingVideoTreeVideoList() {
//1.组装数据
List<BuildingTreeVo> companyBuildingList = buildBuildingAndCompanyListVos(buildVideoAuthKey, null,"video");
List<Map<String, Long>> countList = iFormInstanceService.getBuildVideoCount();
Map<Long, Long> countMap = countList.stream().collect(Collectors.toMap(p -> p.get("buildId"), p -> p.get("total")));
List<BuildingVideoVO> videoList = iFormInstanceService.getBuildVideoList();
videoList.forEach(x -> {
if (StringUtil.isNotEmpty(x.getLocation()) && StringUtil.isNotEmpty(x.getAddress())) {
x.setLocation(x.getLocation() + '-' + x.getAddress());
} else {
if (!StringUtil.isNotEmpty(x.getLocation())) {
x.setLocation(x.getAddress());
}
}
x.setVedioFormat(x.getVideoType());
x.setUrl(videoService.getVideoUrl(x.getName(), x.getPresetPosition(), x.getUrl(), x.getCode()));
});
Map<String, List<BuildingVideoVO>> videoBuildMap = videoList.stream().collect(Collectors.groupingBy(BuildingVideoVO::getBuildId));
companyBuildingList.forEach(c -> {
// 建筑类型数据,填充本级及子级包含的摄像头数量
if (!ALL_BUILDING.equals(c.getGroupType())) {
c.setTotal(countMap.get(c.getInstanceId()) == null ? 0L : countMap.get(c.getInstanceId()));
c.setVideoList(videoBuildMap.containsKey(String.valueOf(c.getInstanceId())) ? videoBuildMap.getOrDefault(String.valueOf(c.getInstanceId()), new ArrayList<>()) : new ArrayList<>());
} else {
// 方法 复用,覆盖掉不需要的数据
// c.setTotal(0L);
}
});
//2.list to tree
return companyBuildingList.stream()
.filter(a -> companyBuildingList.stream().noneMatch(c -> c.getId().toString().equals(a.getParentId())))
.peek(b -> {
b.setChildren(getCompanyBuildingChildrenWithCount(b.getId().toString(), companyBuildingList));
if (!ALL_BUILDING.equals(b.getGroupType())) {
b.setTotal(b.getChildren().stream().filter(c -> c.getTotal() != null).mapToLong(BuildingTreeVo::getTotal).sum());
}
}).collect(Collectors.toList());
}
private List<BuildingTreeVo> getCompanyBuildingChildrenWithCount(String parentId, List<BuildingTreeVo> companyBuildingList) {
return companyBuildingList.stream().filter(a -> parentId.equals(a.getParentId())).peek(a -> {
a.setChildren(getCompanyBuildingChildrenWithCount(a.getId().toString(), companyBuildingList));
......
......@@ -15,6 +15,7 @@ import com.yeejoin.equipmanage.common.entity.SourceFile;
import com.yeejoin.equipmanage.common.entity.dto.BuildSearchDTO;
import com.yeejoin.equipmanage.common.entity.dto.FormGroupColumnEquipDto;
import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoListVO;
import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoVO;
import com.yeejoin.equipmanage.common.enums.GroupCodeEnum;
import com.yeejoin.equipmanage.common.enums.GroupColumnDataType;
import com.yeejoin.equipmanage.common.utils.RandomUtil;
......@@ -589,4 +590,9 @@ public class FormInstanceServiceImpl extends ServiceImpl<FormInstanceMapper, For
}
return list;
}
@Override
public List<BuildingVideoVO> getBuildVideoList() {
return formInstanceMapper.getBuildVideoList();
}
}
......@@ -653,4 +653,20 @@ AND field_name =#{name}
<select id="selectParentBuildId" resultType="java.lang.String">
SELECT instance_id FROM `wl_form_instance` f where f.field_name = 'code' and f.field_value = #{code}
</select>
<select id="getBuildVideoList" resultType="com.yeejoin.equipmanage.common.entity.vo.BuildingVideoVO">
SELECT
a.id AS id,
a.name AS name,
a.token AS token,
a.url AS url,
a.video_type as videoType,
a.code AS code,
a.address,
a.preset_position as presetPosition,
b.source_id as buildId
FROM
wl_video a
LEFT JOIN wl_video_source b ON a.id = b.video_id
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment