Commit 360c2ff2 authored by 郭武斌's avatar 郭武斌

*)新增联动控制实体及服务类

parent f19a3893
package com.yeejoin.amos.boot.module.jcs.api.dto;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
* <pre>
* 联动控制器
* </pre>
*
* @author gwb
* @version $Id: ControllerDto.java, v 0.1 2021年8月20日 上午10:52:52 gwb Exp $
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ControllerDto", description = "联动控制器")
public class ControllerDto extends BaseDto {
@ExcelIgnore
private static final long serialVersionUID = 1L;
/**
* 控制站
*/
@ApiModelProperty(value = "控制站")
private String station;
/**
* ip
*/
@ApiModelProperty(value = "ip")
private String ip;
/**
* 端口
*/
@ApiModelProperty(value = "端口")
private Integer port;
/**
* 控制器名称
*/
@ApiModelProperty(value = "控制器名称")
private String name;
/**
* 控制器类别
*/
@ApiModelProperty(value = "控制器类别")
private String type;
/**
* 状态
*/
@ApiModelProperty(value = "状态")
private String state;
}
package com.yeejoin.amos.boot.module.jcs.api.dto;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
* <pre>
* 控制器设备
* </pre>
*
* @author gwb
* @version $Id: ControllerEquipDto.java, v 0.1 2021年8月20日 上午9:29:18 gwb Exp $
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ControllerEquipDto", description = "控制器设备")
public class ControllerEquipDto extends BaseDto {
@ExcelIgnore
private static final long serialVersionUID = 1L;
/**
* 控制器
*/
@ApiModelProperty(value = "控制器")
private Long controllerSeq;
/**
* 编号
*/
@ApiModelProperty(value = "编号")
private String num;
/**
* 名称
*/
@ApiModelProperty(value = "名称")
private String name;
/**
* 状态
*/
@ApiModelProperty(value = "状态")
private String state;
}
package com.yeejoin.amos.boot.module.jcs.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
*
* <pre>
* 联动控制器
* </pre>
*
* @author gwb
* @version $Id: Controller.java, v 0.1 2021年8月20日 上午9:22:28 gwb Exp $
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("jc_controller")
public class Controller extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 控制站
*/
@TableField("station")
private String station;
/**
* ip
*/
@TableField("c_ip")
private String ip;
/**
* 端口
*/
@TableField("c_port")
private Integer port;
/**
* 控制器名称
*/
@TableField("c_name")
private String name;
/**
* 控制器类别
*/
@TableField("type")
private String type;
/**
* 状态
*/
@TableField("c_state")
private String state;
}
package com.yeejoin.amos.boot.module.jcs.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
*
* <pre>
* 控制器设备
* </pre>
*
* @author gwb
* @version $Id: ControllerEquip.java, v 0.1 2021年8月20日 上午9:29:34 gwb Exp $
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("jc_controller_equip")
public class ControllerEquip extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 控制器
*/
@TableField("controller_seq")
private Long controllerSeq;
/**
* 编号
*/
@TableField("e_num")
private String num;
/**
* 名称
*/
@TableField("e_name")
private String name;
/**
* 状态
*/
@TableField("e_state")
private String state;
}
package com.yeejoin.amos.boot.module.jcs.api.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
*
* <pre>
* 联动控制器类型枚举
* </pre>
*
* @author gwb
* @version $Id: ControllerTypeEnum.java, v 0.1 2021年8月20日 上午10:21:44 gwb Exp $
*/
@Getter
@AllArgsConstructor
public enum ControllerTypeEnum {
BELL("1", "警铃"),
BROADCAST("2", "广播"),
DOOR("3", "车库门");
private String code;
private String name;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static ControllerTypeEnum getEnum(String code)
{
for (ControllerTypeEnum status : ControllerTypeEnum.values())
{
if (status.getCode().equals(code))
{
return status;
}
}
return null;
}
}
package com.yeejoin.amos.boot.module.jcs.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.jcs.api.entity.ControllerEquip;
/**
*
* <pre>
* 控制器设备 Mapper 接口
* </pre>
*
* @author gwb
* @version $Id: ControllerMapper.java, v 0.1 2021年8月20日 上午10:14:24 gwb Exp $
*/
public interface ControllerEquipMapper extends BaseMapper<ControllerEquip> {
}
package com.yeejoin.amos.boot.module.jcs.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.jcs.api.entity.Controller;
/**
*
* <pre>
* 联动控制器 Mapper 接口
* </pre>
*
* @author gwb
* @version $Id: ControllerMapper.java, v 0.1 2021年8月20日 上午10:14:24 gwb Exp $
*/
public interface ControllerMapper extends BaseMapper<Controller> {
}
......@@ -21,12 +21,15 @@ import com.yeejoin.amos.boot.module.jcs.api.dto.AlertCalledFormDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.AlertCalledObjsDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.AlertCalledTodyDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.AlertCalledZhDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.ControllerDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.ControllerEquipDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.KeyValueLabel;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerData;
import com.yeejoin.amos.boot.module.jcs.api.entity.AlertCalled;
import com.yeejoin.amos.boot.module.jcs.api.entity.AlertFormValue;
import com.yeejoin.amos.boot.module.jcs.api.entity.Template;
import com.yeejoin.amos.boot.module.jcs.api.enums.AlertStageEnums;
import com.yeejoin.amos.boot.module.jcs.api.enums.ControllerTypeEnum;
import com.yeejoin.amos.boot.module.jcs.api.enums.DutyInfoEnum;
import com.yeejoin.amos.boot.module.jcs.api.mapper.AlertCalledMapper;
import com.yeejoin.amos.boot.module.jcs.api.mapper.AlertSubmittedMapper;
......@@ -80,6 +83,10 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto, AlertCal
@Autowired
private ESAlertCalledService eSAlertCalledService;
@Autowired
private ControllerServiceImpl controllerService;
@Autowired
private ControllerEquipServiceImpl controllerEquipService;
@Autowired
private EmqKeeper emqKeeper;
@Value("${mqtt.topic.command.alert.notice}")
private String topic;
......@@ -359,7 +366,7 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto, AlertCal
// 警情基本信息
AlertCalled alertCalled = this.getById(id);
QueryWrapper<AlertFormValue> queryWrapper = new QueryWrapper<>();
Map<String, Object> map = new HashMap();
Map<String, Object> map = new HashMap<String, Object>();
map.put("title", "【" + alertCalled.getAlertType() + "】" + alertCalled.getAddress());
queryWrapper.eq("alert_called_id", id);
// 警情动态表单数据
......@@ -438,18 +445,96 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto, AlertCal
@Transactional(rollbackFor = RuntimeException.class)
public Boolean controlEquip() throws Exception
{
//打开消防警铃
jcsControlServerClient.sendBellAction("204,205,206", "1");
//播放广播
jcsControlServerClient.sendFileAction("201,202,203", "1490075199246.mp3");
//打开北站车库门
jcsControlServerClient.writeStateAction("172.19.111.153", 502, 100, "1,1,1,1");
//打开北站车库门弱电警铃
jcsControlServerClient.writeStateAction("172.19.111.153", 502, 107, "1");
//打开南站车库门
jcsControlServerClient.writeStateAction("172.19.111.163", 502, 100, "1");
//打开南站车库门弱电警铃
jcsControlServerClient.writeStateAction("172.19.111.163", 502, 107, "1");
/**
* 获取控制器设备
*/
List<ControllerEquipDto> controllerEquipDtoList = controllerEquipService.queryAllForList();
Map<Long, List<String>> controllerEquipMap = new HashMap<>();
for (ControllerEquipDto controllerEquipDto : controllerEquipDtoList)
{
List<String> numList = controllerEquipMap.get(controllerEquipDto.getControllerSeq());
if (ValidationUtil.isEmpty(numList))
{
numList = new ArrayList<>();
}
numList.add(controllerEquipDto.getNum());
controllerEquipMap.put(controllerEquipDto.getControllerSeq(), numList);
}
/**
* 获取联动控制器
*/
List<ControllerDto> controllerDtoList = controllerService.queryAllForList();
StringBuilder bellNumSb =new StringBuilder();
StringBuilder broadcastNumSb =new StringBuilder();
for (ControllerDto controllerDto : controllerDtoList)
{
//消防警铃
if (controllerDto.getType().equals(ControllerTypeEnum.BELL.getCode()))
{
List<String> bellNumList = controllerEquipMap.get(controllerDto.getSequenceNbr());
if (!ValidationUtil.isEmpty(bellNumList))
{
for (String num : bellNumList)
{
bellNumSb.append(num).append(",");
}
}
}
//广播
if (controllerDto.getType().equals(ControllerTypeEnum.BROADCAST.getCode()))
{
List<String> broadcastList = controllerEquipMap.get(controllerDto.getSequenceNbr());
if (!ValidationUtil.isEmpty(broadcastList))
{
for (String num : broadcastList)
{
broadcastNumSb.append(num).append(",");
}
}
}
}
/**
* 打开消防警铃
*/
if (!ValidationUtil.isEmpty(bellNumSb.toString()))
{
String bellNum = bellNumSb.toString();
bellNum = bellNum.substring(0, bellNum.length() -1);
jcsControlServerClient.sendBellAction(bellNum, "1");
}
/**
* 播放广播
*/
if (!ValidationUtil.isEmpty(broadcastNumSb.toString()))
{
String broadcastNum = broadcastNumSb.toString();
broadcastNum = broadcastNum.substring(0, broadcastNum.length() -1);
jcsControlServerClient.sendFileAction(broadcastNum, "1490075199246.mp3");
}
/**
* 打开北站车库门
*/
List<ControllerDto> northDoor = controllerService.queryForList("3", ControllerTypeEnum.DOOR.getCode());
if (!ValidationUtil.isEmpty(northDoor))
{
ControllerDto controllerDto = northDoor.get(0);
//打开北站车库门
jcsControlServerClient.writeStateAction(controllerDto.getIp(), controllerDto.getPort(), 100, "1,1,1,1");
//打开北站车库门弱电警铃
jcsControlServerClient.writeStateAction(controllerDto.getIp(), controllerDto.getPort(), 107, "1");
}
/**
* 打开南站车库门
*/
List<ControllerDto> southDoor = controllerService.queryForList("2", ControllerTypeEnum.DOOR.getCode());
if (!ValidationUtil.isEmpty(southDoor))
{
ControllerDto controllerDto = southDoor.get(0);
//打开南站车库门
jcsControlServerClient.writeStateAction(controllerDto.getIp(), controllerDto.getPort(), 100, "1");
//打开南站车库门弱电警铃
jcsControlServerClient.writeStateAction(controllerDto.getIp(), controllerDto.getPort(), 107, "1");
}
return true;
}
......
package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import java.util.List;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import com.yeejoin.amos.boot.module.jcs.api.dto.ControllerEquipDto;
import com.yeejoin.amos.boot.module.jcs.api.entity.ControllerEquip;
import com.yeejoin.amos.boot.module.jcs.api.mapper.ControllerEquipMapper;
/**
*
* <pre>
* 控制器设备 服务实现类
* </pre>
*
* @author gwb
* @version $Id: ControllerEquipServiceImpl.java, v 0.1 2021年8月20日 上午10:16:33 gwb Exp $
*/
@Service
public class ControllerEquipServiceImpl extends BaseService<ControllerEquipDto, ControllerEquip, ControllerEquipMapper>
{
public List<ControllerEquipDto> queryAllForList() {
return this.queryForList("", false);
}
}
package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import java.util.List;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import com.yeejoin.amos.boot.module.jcs.api.dto.ControllerDto;
import com.yeejoin.amos.boot.module.jcs.api.entity.Controller;
import com.yeejoin.amos.boot.module.jcs.api.mapper.ControllerMapper;
/**
*
* <pre>
* 联动控制器 服务实现类
* </pre>
*
* @author gwb
* @version $Id: ControllerServiceImpl.java, v 0.1 2021年8月20日 上午10:15:49 gwb Exp $
*/
@Service
public class ControllerServiceImpl extends BaseService<ControllerDto, Controller, ControllerMapper>
{
public List<ControllerDto> queryAllForList() {
return this.queryForList("", false);
}
public List<ControllerDto> queryForList(String station, String type) {
return this.queryForList("", false, station, type);
}
}
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