Commit c1c49a24 authored by 张森's avatar 张森

/equip/building/video/getBuildingVideoTreeVideoList

建筑 + 监控视频
parent aded8250
...@@ -48,4 +48,7 @@ public class BuildingVideoVO { ...@@ -48,4 +48,7 @@ public class BuildingVideoVO {
@ApiModelProperty("视频类型") @ApiModelProperty("视频类型")
private String videoType; private String videoType;
@ApiModelProperty("建筑ID")
private String buildId;
} }
package com.yeejoin.equipmanage.common.vo; package com.yeejoin.equipmanage.common.vo;
import com.baomidou.mybatisplus.annotation.TableField; 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.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 建筑树 * 建筑树
...@@ -76,5 +79,7 @@ public class BuildingTreeVo { ...@@ -76,5 +79,7 @@ public class BuildingTreeVo {
@ApiModelProperty("类型") @ApiModelProperty("类型")
private String type; private String type;
@ApiModelProperty("视频合集")
private List<BuildingVideoVO> videoList;
} }
...@@ -45,6 +45,13 @@ public class BuildingVideoController extends AbstractBaseController { ...@@ -45,6 +45,13 @@ public class BuildingVideoController extends AbstractBaseController {
} }
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation("物联监控->单位建筑树(节点上绑定视频集合数据)")
@GetMapping(value = "/getBuildingVideoTreeVideoList")
public List<BuildingTreeVo> getBuildingVideoTreeVideoList() {
return buildService.getBuildingVideoTreeVideoList();
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation("消防建筑视屏监控分页列表") @ApiOperation("消防建筑视屏监控分页列表")
@GetMapping(value = "/page") @GetMapping(value = "/page")
public Page<BuildingVideoVO> buildingList( Page page, BuildingVideoListVO dto) { public Page<BuildingVideoVO> buildingList( Page page, BuildingVideoListVO dto) {
......
...@@ -6,6 +6,7 @@ import com.yeejoin.equipmanage.common.entity.FormInstance; ...@@ -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.BuildIsRiskDTO;
import com.yeejoin.equipmanage.common.entity.dto.BuildSearchDTO; import com.yeejoin.equipmanage.common.entity.dto.BuildSearchDTO;
import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoListVO; import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoListVO;
import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
...@@ -222,4 +223,7 @@ public interface FormInstanceMapper extends BaseMapper<FormInstance> { ...@@ -222,4 +223,7 @@ public interface FormInstanceMapper extends BaseMapper<FormInstance> {
* @return * @return
*/ */
String selectParentBuildId(@Param("code") String code); String selectParentBuildId(@Param("code") String code);
List<BuildingVideoVO> getBuildVideoList();
} }
...@@ -326,6 +326,9 @@ public interface IBuilldService extends IService<Building> { ...@@ -326,6 +326,9 @@ public interface IBuilldService extends IService<Building> {
List<BuildingTreeVo> getBuildingVideoTreeNew(); List<BuildingTreeVo> getBuildingVideoTreeNew();
List<BuildingTreeVo> getBuildingVideoTreeVideoList();
List<Map<String, Object>> getBuildingDetaiList(); List<Map<String, Object>> getBuildingDetaiList();
/** /**
......
...@@ -6,6 +6,7 @@ import com.yeejoin.equipmanage.common.entity.FormInstance; ...@@ -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.BuildSearchDTO;
import com.yeejoin.equipmanage.common.entity.dto.FormGroupColumnEquipDto; import com.yeejoin.equipmanage.common.entity.dto.FormGroupColumnEquipDto;
import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoListVO; import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoListVO;
import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoVO;
import com.yeejoin.equipmanage.common.vo.UnitAreaTreeVo; import com.yeejoin.equipmanage.common.vo.UnitAreaTreeVo;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
...@@ -174,4 +175,6 @@ public interface IFormInstanceService extends IService<FormInstance> { ...@@ -174,4 +175,6 @@ public interface IFormInstanceService extends IService<FormInstance> {
List<Map<String, Object>> getSpecialChildrenListByName(String parentId, String bizOrgCode, String name); List<Map<String, Object>> getSpecialChildrenListByName(String parentId, String bizOrgCode, String name);
List<FormGroupColumnEquipDto> queryColumnAndValueByGroup(String groupCode, Long instanceId); List<FormGroupColumnEquipDto> queryColumnAndValueByGroup(String groupCode, Long instanceId);
List<BuildingVideoVO> getBuildVideoList();
} }
...@@ -1579,6 +1579,50 @@ public class BuildingServiceImpl extends ServiceImpl<BuildingMapper, Building> i ...@@ -1579,6 +1579,50 @@ public class BuildingServiceImpl extends ServiceImpl<BuildingMapper, Building> i
}).collect(Collectors.toList()); }).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) { private List<BuildingTreeVo> getCompanyBuildingChildrenWithCount(String parentId, List<BuildingTreeVo> companyBuildingList) {
return companyBuildingList.stream().filter(a -> parentId.equals(a.getParentId())).peek(a -> { return companyBuildingList.stream().filter(a -> parentId.equals(a.getParentId())).peek(a -> {
a.setChildren(getCompanyBuildingChildrenWithCount(a.getId().toString(), companyBuildingList)); a.setChildren(getCompanyBuildingChildrenWithCount(a.getId().toString(), companyBuildingList));
......
...@@ -15,6 +15,7 @@ import com.yeejoin.equipmanage.common.entity.SourceFile; ...@@ -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.BuildSearchDTO;
import com.yeejoin.equipmanage.common.entity.dto.FormGroupColumnEquipDto; import com.yeejoin.equipmanage.common.entity.dto.FormGroupColumnEquipDto;
import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoListVO; 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.GroupCodeEnum;
import com.yeejoin.equipmanage.common.enums.GroupColumnDataType; import com.yeejoin.equipmanage.common.enums.GroupColumnDataType;
import com.yeejoin.equipmanage.common.utils.RandomUtil; import com.yeejoin.equipmanage.common.utils.RandomUtil;
...@@ -589,4 +590,9 @@ public class FormInstanceServiceImpl extends ServiceImpl<FormInstanceMapper, For ...@@ -589,4 +590,9 @@ public class FormInstanceServiceImpl extends ServiceImpl<FormInstanceMapper, For
} }
return list; return list;
} }
@Override
public List<BuildingVideoVO> getBuildVideoList() {
return formInstanceMapper.getBuildVideoList();
}
} }
...@@ -653,4 +653,20 @@ AND field_name =#{name} ...@@ -653,4 +653,20 @@ AND field_name =#{name}
<select id="selectParentBuildId" resultType="java.lang.String"> <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 instance_id FROM `wl_form_instance` f where f.field_name = 'code' and f.field_value = #{code}
</select> </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> </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