Commit f479b810 authored by maoying's avatar maoying

电力中心管控平台应急指挥相关接口开发

parent 35b58fb4
......@@ -4,6 +4,8 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.BeanUtils;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.InputStream;
......@@ -665,4 +667,17 @@ public class oConvertUtils {
}
return json;
}
/**
* 字符串转为数组
* @param strs
* @return
*/
public static List<String> stringToList(String strs){
if(ObjectUtils.isEmpty(strs)){
return new ArrayList<String>();
}
String str[] = strs.split(",");
return Arrays.asList(str);
}
}
package com.yeejoin.amos.boot.module.ccs.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotation.TableField;
/**
* 电力设备资产
*
* @author system_generator
* @date 2021-11-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "EquipmentDto", description = "电力设备资产")
public class EquipmentDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "站点编码")
private String stationCode;
@ApiModelProperty(value = "站点名称")
private String stationName;
@ApiModelProperty(value = "电力设备唯一标识")
private String mrid;
@ApiModelProperty(value = "名称")
private String name;
@ApiModelProperty(value = "所属区域mrid")
private String areaMrid;
@ApiModelProperty(value = "所属区域")
private String workArea;
@ApiModelProperty(value = "所属建筑mrid")
private String buildMrid;
@ApiModelProperty(value = "所属建筑")
private String buildName;
@ApiModelProperty(value = "所属楼层mrid")
private String floorMrid;
@ApiModelProperty(value = "所属楼层")
private String floorName;
@ApiModelProperty(value = "所属房间mrid")
private String roomMrid;
@ApiModelProperty(value = "所属房间")
private String roomName;
@ApiModelProperty(value = "地址")
private String address;
@ApiModelProperty(value = "设备图片,多条以,隔开")
private List<String> img;
@ApiModelProperty(value = " 电源负荷图,多条以,隔开")
private List<String> powerImg;
@ApiModelProperty(value = " 封堵图,多条以,隔开")
private List<String> pluggingImg;
@ApiModelProperty(value = "行车路线图,多条以,隔开")
private List<String> routeImg;
@ApiModelProperty(value = "取水图,多条以,隔开")
private List<String> fetchWaterImg;
@ApiModelProperty(value = "责任部门")
private String chargeDept;
@ApiModelProperty(value = "责任人")
private String chargeUser;
}
package com.yeejoin.amos.boot.module.ccs.api.dto;
import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 消防建筑表
*
......@@ -63,6 +63,9 @@ public class FireBuildingDto extends BaseDto {
@ApiModelProperty(value = "位置")
private String position;
@ApiModelProperty(value = "属性信息")
private String attribute;
@ApiModelProperty(value = "子节点")
private List<FireBuildingDto> children;
}
package com.yeejoin.amos.boot.module.ccs.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 电力设备表
*
* @author system_generator
* @date 2021-11-09
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("ast_equipment")
public class Equipment extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 站点编码
*/
@TableField("station_code")
private String stationCode;
/**
* 站点名称
*/
@TableField("station_name")
private String stationName;
/**
* 消防建筑唯一标识
*/
@TableField("mrid")
private String mrid;
/**
* 名称
*/
@TableField("name")
private String name;
/**
* 所属区域
*/
@TableField("area_mrid")
private String areaMrid;
/**
* 所属区域
*/
@TableField("work_area")
private String workArea;
@TableField("build_mrid")
private String buildMrid;
/**
* 所属建筑
*/
@TableField("build_name")
private String buildName;
@TableField("floor_mrid")
private String floorMrid;
/**
* 所属楼层
*/
@TableField("floor_name")
private String floorName;
@TableField("room_mrid")
private String roomMrid;
/**
* 所属房间
*/
@TableField("room_name")
private String roomName;
/**
* 地址
*/
@TableField("address")
private String address;
/**
* 设备图片,多条以,隔开
*/
@TableField("img")
private String img;
/**
* 电源负荷图,多条以,隔开
*/
@TableField("power_img")
private String powerImg;
/**
* 封堵图,多条以,隔开
*/
@TableField("plugging_img")
private String pluggingImg;
/**
* 行车路线图,多条以,隔开
*/
@TableField("route_img")
private String routeImg;
/**
* 取水图,多条以,隔开
*/
@TableField("fetch_water_img")
private String fetchWaterImg;
/**
* 责任部门
*/
@TableField("charge_dept")
private String chargeDept;
/**
* 责任人
*/
@TableField("charge_dept")
private String chargeUser;
}
......@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.ccs.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
......@@ -101,5 +102,10 @@ public class FireBuilding extends BaseEntity {
* 详情位置
*/
private String position;
/**
* 属性信息
*/
private String attribute;
}
package com.yeejoin.amos.boot.module.ccs.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.ccs.api.entity.Equipment;
/**
* 电力设备表 Mapper 接口
*
* @author system_generator
* @date 2021-11-09
*/
public interface EquipmentMapper extends BaseMapper<Equipment> {
}
package com.yeejoin.amos.boot.module.ccs.api.mapper;
import com.yeejoin.amos.boot.module.ccs.api.dto.FireBuildingDto;
import com.yeejoin.amos.boot.module.ccs.api.entity.FireBuilding;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
......@@ -10,5 +17,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @date 2021-11-09
*/
public interface FireBuildingMapper extends BaseMapper<FireBuilding> {
List<FireBuildingDto> getFireBuildingByMridIntreeMrids(@Param("mrid") String mrid);
}
package com.yeejoin.amos.boot.module.ccs.api.service;
import com.yeejoin.amos.boot.module.ccs.api.dto.EquipmentDto;
/**
* 电力设备接口类
*
* @author system_generator
* @date 2021-11-09
*/
public interface IEquipmentService {
EquipmentDto getEquipmentByMrid(String mrid);
}
package com.yeejoin.amos.boot.module.ccs.api.service;
import com.yeejoin.amos.boot.module.ccs.api.dto.FireBuildingDto;
import java.util.List;
/**
* 消防建筑表接口类
*
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.ccs.api.mapper.FireBuildingMapper">
<select id="getFireBuildingByMridIntreeMrids" resultType="com.yeejoin.amos.boot.module.ccs.api.dto.FireBuildingDto">
SELECT
*
FROM
`ast_fire_building`
WHERE
type = 'building'
AND find_in_set(#{mrid}, tree_mrids)
</select>
</mapper>
package com.yeejoin.amos.boot.module.ccs.biz.controller;
import java.text.ParseException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.ccs.api.service.IEquipmentService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/**
* 电力设备资产
*
* @author system_generator
* @date 2021-11-09
*/
@RestController
@Api(tags = "电力设备资产Api")
@RequestMapping(value = "/equipment")
public class EquipmentController extends BaseController {
@Autowired
IEquipmentService iEquipmentService;
/**
* 根据电力设备mrid获取设备信息
* @param mrid
* @return
* @throws ParseException
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "根据电力设备mrid获取设备信息", notes = "根据电力设备mrid获取设备信息")
@GetMapping(value = "/{mrid}/info")
public ResponseModel getEquipmentByMrid(
@ApiParam(value = "电力设备编号") @PathVariable String mrid) throws ParseException {
return ResponseHelper.buildResponse(iEquipmentService.getEquipmentByMrid(mrid));
}
}
......@@ -58,4 +58,17 @@ public class FireBuildingController extends BaseController {
@ApiParam(value = "换流站code") @PathVariable String stationCode) {
return ResponseHelper.buildResponse(fireBuildingServiceImpl.buildingTree(stationCode));
}
/**
*
* @param mrid
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{mrid}/info")
@ApiOperation(httpMethod = "GET", value = "根据建筑编码获取建筑信息", notes = "根据建筑编码获取建筑信息")
public ResponseModel getBuildingByMrid(
@ApiParam(value = "建筑code") @PathVariable String mrid) {
return ResponseHelper.buildResponse(fireBuildingServiceImpl.getBuildingByMrid(mrid));
}
}
package com.yeejoin.amos.boot.module.ccs.biz.service.impl;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.utils.oConvertUtils;
import com.yeejoin.amos.boot.module.ccs.api.dto.EquipmentDto;
import com.yeejoin.amos.boot.module.ccs.api.entity.Equipment;
import com.yeejoin.amos.boot.module.ccs.api.mapper.EquipmentMapper;
import com.yeejoin.amos.boot.module.ccs.api.service.IEquipmentService;
/**
* 电力设备实现类
*
* @author system_generator
* @date 2021-11-09
*/
@Service
public class EquipmentServiceImpl extends BaseService<EquipmentDto,Equipment,EquipmentMapper> implements IEquipmentService {
@Override
public EquipmentDto getEquipmentByMrid(String mrid) {
// TODO Auto-generated method stub
LambdaQueryWrapper<Equipment> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Equipment::getMrid, mrid);
Equipment eq = this.getOne(wrapper);
EquipmentDto eqDto = new EquipmentDto();
if(ObjectUtils.isEmpty(eq)){
return eqDto;
}
BeanUtils.copyProperties(eq, eqDto);
eqDto.setImg(oConvertUtils.stringToList(eq.getImg()));
eqDto.setFetchWaterImg(oConvertUtils.stringToList(eq.getFetchWaterImg()));
eqDto.setPluggingImg(oConvertUtils.stringToList(eq.getPluggingImg()));
eqDto.setPowerImg(oConvertUtils.stringToList(eq.getPowerImg()));
eqDto.setRouteImg(oConvertUtils.stringToList(eq.getRouteImg()));
return eqDto;
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.ccs.biz.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.ccs.api.dto.BaseDto;
import com.yeejoin.amos.boot.module.ccs.api.dto.FireBuildingDto;
......@@ -8,13 +9,16 @@ import com.yeejoin.amos.boot.module.ccs.api.mapper.FireBuildingMapper;
import com.yeejoin.amos.boot.module.ccs.api.service.IFireBuildingService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.rdbms.annotation.Condition;
import org.typroject.tyboot.core.rdbms.annotation.Operator;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
......@@ -50,4 +54,18 @@ public class FireBuildingServiceImpl extends BaseService<FireBuildingDto, FireBu
private List<FireBuildingDto> getChildren(String mrid, List<FireBuildingDto> dtoList) {
return dtoList.stream().filter(d -> StringUtils.isNotBlank(d.getParentMrid()) && d.getParentMrid().equals(mrid)).peek(s -> s.setChildren(this.getChildren(s.getMrid(), dtoList))).sorted(Comparator.comparing(BaseDto::getCreateDate)).collect(Collectors.toList());
}
public Map<String, Object> getBuildingByMrid(String mrid){
Map<String,Object> result = new HashMap<String, Object>();
List<FireBuildingDto> fireBuildings = this.baseMapper.getFireBuildingByMridIntreeMrids(mrid);
if(!ObjectUtils.isEmpty(fireBuildings)){
FireBuildingDto fireBuilding = fireBuildings.get(0);
result = JSON.parseObject(JSON.toJSONString(fireBuilding), HashMap.class);
if(!ObjectUtils.isEmpty(fireBuilding.getAttribute())){
HashMap<String, Object> attribute = JSON.parseObject(fireBuilding.getAttribute().toString(), HashMap.class);
result.putAll(attribute);
}
}
return result;
}
}
\ No newline at end of file
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